Ingy döt Net Tells How Acmeism Bridges Gaps in the Software World (Video)
Ingy döt Net (yes, that's his name) likes to bridge gaps in the software world. People get religious about their favorite programming languages, he says, but in the end, no matter the language, the methodology or the underlying OS, all programming is about telling computers what to do -- from "add these numbers" to complex text manipulation. Ingy compares a new app or module in the world of Free and Open Source as a gift that the creator has given to others; if that gift can be simultaneously bestowed on users of Perl, Python, and Ruby at the same time, its worth is amplified. So he proposes (and provides a growing set of tools) to make programming language irrelevant, by the sly means of encouraging people to write software using whatever their favorite tools are, but with a leaning toward using only language features which are broadly available to *other* programming languages as well. He's adopted the term Acmeism to describe this approach; Acmeists who follow his lead strive to create software that is broadly re-useable and adaptable, rather than tied only to a single platform.
That's called "using C"...
He must have a very loving family
Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
try{ ...
}
catch(roadrunner)
Always seems to fail for some reason, though.
the not resist
He's going to overturn decades of experience, hard work, research, and language development because HE'S A REBEL!!!
The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
Let's limit all software features to that which was available in GW BASIC.
Never heard of him, so why should I take his ideas seiously?
This is easily the worst piece of non-news/mattering stuff ever.
Other than going back to assembler (or rather its modern equivalent "C"), there is no way to do what he proposes even if we stay in the imperative class of languages. OO is also possible with C, but no compiler support whatsoever and that means most people cannot do it. Then we have functional languages which cannot reasonably be emulated in C. And we have logical languages, with the same problem. With a bit of a broader focus, CA systems like Mathlab also qualify as "programming environments", and again, they cannot reasonably be emulated in C. And don't even get me started on things like garbage collection, weak pointers, coercion, multiple inheritance, static type safety, dynamic type safety, covariant or conform inheritance (Eiffel), etc.
So while this person may have a fancy (or rather stupid) name, he has no clue about programming and this is about the most stupid thing one could propose.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
... they're having computer problems. His brother is http://xkcd.com/327/">Bobby Tables.
...because it looks like that's the one he hurt thinking up this stuff.
They want their idea back:
http://plan9.bell-labs.com/sys/doc/acme/acme.html
...or, you know, not.
Christ, what a douchebag.
"Everyone, wait! It's all just 1s and 0s! I'VE SOLVED ALL OF OUR PROBLEMS!"
Mod me down with all of your hatred and your journey towards the dark side will be complete!
We were taught to create things called flowcharts. Then we moved to writing algorithms, which was just writing the program in your natural language (english for me).
If you did it correctly, you could easily pick whatever programming language you wanted and type it up. Most of the time your errors were just typos, and not logic errors.
I wonder if Ingy stopped for a minute to think why people create different programming languages. They sure did it to make things harder for programmers right? Who would think that non ordinary language features might help anyone do his work better / quicker / use less resources?
Why is this idiot in the front page?
He says people get religious with programming languages. Keeping with the metaphor, this guy is a crazy iconoclast that will dynamite the Budhas in Afghanistan or all art in the Byzantine empire just because "he doesn't get it"
now get off my lawn
From his web site:"Most computer programmers learn one programming language."
Umm...I'm sure I've ever met a programmer who only knew one language. Even in college, I had to navigate six (mainframe and PC assembler, COBOL, C, C++, FORTRAN) in coursework and 3 more (Perl, Java and Javascript) in my campus job, not to mention all the scripting and compiling environments I had to navigate to get things to work.
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
Dumber for watching that vid! What a piece of drivel! All that was missing was fucking Sitar music..
I can say this in a Kathy Bates accent "Ingy döt Net is da debil!"
Harrison's Postulate - "For every action there is an equal and opposite criticism"
Most computer programmers learn one programming language.
Utter, insulting, nonsense.
I actually listened to the whole thing (and that's a few minutes of my life I wish to have back) and he seems to be focused on scripting languages -- PERL, Javascript, PHP, etc. I'll save you a few minutes: he wants us all to focus our dev efforts on only those language features that are common across his in-scope languages. Further, once you've written something in your favorite scripting language, you should port that "gift" to the other in-scope languages to give your "gift" the widest possible distribution.
In short, Acmeism consists of a quintupling of your workload by asking you to port everything you write multiple times. The whole language evangelism thing apparently bugs him and he's opting out.
Most computer programmers learn one programming language.
I think the technical term usually referred to those programmers is "unemployed". It could be argued that other acceptable terms are, "lazy", "dinosaurs", "students", and "People who switched to a major like Business or Human Resources after they realized Comp Sci was too tough for them."
I don't know a single good programmer who only knows 1 language... Many I know will try to at least get familiarized with a new language 1 or 2 years.
Comparing knowing a number of computer languages to a number of spoken languages is absurd.
Two computer languages is probably closer to the difference in writing a novel in English vs a screenplay in English. It's mostly format and structure for most languages.
For those who don't know, Ingy is a fairly prolific Perl developer [1]. The position he espouses here is quite typical of folks developing modern Perl. The crux of it is that it is better to provide an interface or API for a smaller bit of code that is easily spoken with than one tucked away in the bowels of a massive framework that's tied to a specific language. This position is really a reiteration of Ken Thompson's Rule of Modularity within the Unix Philsophy [2].
To me, this is a noble design goal because it allows developers to use the programming languages they're comfortable with and/or those that best fit the task at hand. I feel that this general principle has been the guiding force behind Google developing Protocol Buffers [3] and Facebook developing Thrift [4]. Software seems easier to build in small pieces that interoperate than if the developers try to build a monolithic and homogenous system all in one go.
It saddens me to see so many folks dismiss this position as a "fad" when it's one of the points to the open source movement.
There are only two things I can't stand in this world. People who are intolerant of other people's cultures... and the Dutch.
First language I learned was BASIC, like a lot of people. Then I picked up C++, Pascal and Objective C in high school and college. Once I got out into the real world, there were other languages I absolutely had to learn on the job, such as Java, SQL and C#. Along the way, I picked up Perl and Python since these two languages are the Swiss army knives in my toolbox.
Lately, I have found the only time I actually delve back to write anything in C++ or Objective C is because I absolutely need to be closer to the metal. Otherwise, I'm writing it in Python or Perl. I know that there is a lot of debate between these two languages. I like them both, and I have found it to my advantage to keep both available.
As far as the "Acme-ization" effect...I've been doing this ever since I fired up my first BSD box many many years ago. Bash or Perl make it so very easy to create a quick workflow of existing tools. And if you don't have a tool to do what you need, you get down to thumbtacks and write one, and then fit it into your workflow. Truly the first Rapid Application Development Framework before RoR was an itch in daddy's pants.
Cool bro, go ahead and go nuts. #$## There is nothing worst in the programming world then the "Intermediate Developer". Lets use the same language to handle raw sensor data, stateless web applications and statistical and data transformation in wholly different contextes. Hell coffescript compiles to such nice debuggable code and i cannot be bothered to learn all these "languages". But i prefer Dadaism 4.5.
As soon as I saw the title I thought this must be another sterling example of "news for nerds" presented by the wonderful mind of none other than Timothy.
when doing interviews. Buddy looks he fucked on too many T3's
by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
It depends on what you mean by "learn". If you consider it to mean grasping the basics and banging out some code with the reference book by your side, then I've "learned" a lot of languages. If you consider it to mean developing an understanding of the obscure points and having enough expertise to navigate an unusual stumbling block in five minutes that might confuse a journeyman for days, then I've really only learned one. Also, I've had one as my primary for a few years and then gotten away from it. I would consider my knowledge there to be so rusty that I would be back to beginner level.
In other words, if you approach the semantics in a certain way I think he's right. Most programmers have dabbled in dozens of languages; but dabbling isn't necessarily what he means by "learn".
I read it Acmeism first ... it made perfect sense.
There are only two things I can't stand in this world. People who are intolerant of other people's cultures... and the Dutch. - Nigel Powers
Glad to see that contemporary programming is finally taking more influence from early 20th-century Russian poetry. http://en.wikipedia.org/wiki/Acmeism
Where to start. First of all, let me make a nod to (http://www.swig.org/) a tool that makes binding C and C++ to other languages easier. The technology to provide code to many languages is a largely solved problem. Write what you can in C and bind it to the world.
The notion that you can have an abstract programming language that just maps into a bunch of platforms is quite a ways off. The demand for it just doesn't exist. UML tried this in the late 90s, and it mostly failed (there was some traction in real time systems engineering).
The lack of code reuse is not due to a single language mindset, a unwillingness to share. Writing reusable code is just hard. It requires careful design and a lot of effort.
There no easy way around the lowest common denominator problem. Sure, it's easy to map printing a line to a console to a bunch of platforms. But, when you get past what the basic of the standard C library calls, you pretty much just end up creating yet another platform and language, compounding the problem. We just don't have the design experience or languages yet to express many programming tasks abstractly and effectively.
So I have to forget about all the system calls available on an OS when programming in C++, and the Java platform libraries as well as all the other 3rd party libraries I use when using Java in order to make my code compatible with Python?
Does this guy even realise that the platform he has moronically named himself after is really a single languange specification / platform with different syntax optioons?
One language that compiles to anything: Haxe: http://haxe.org/
On the topic of writing re-usable modules... that's why system architects get paid the big bucks.
On the topic of building a common infrastructure that all languages can use and hook into: that's what the CLR does in M$ land. That's what the JVM does for Scala etc. That's what the Parrot VM is doing for open-source dynamic languages. Ultimately, it seems to me that the real problem Ingy is struggling with is the fact that there's so many standards. The real solution would be for everyone to... standardize... on a single runtime platform. But the only feasible way to do that right now is to translate source code into the target language and then let the target platform carry on as normal. That's why I said the solution is Haxe.
Go ahead, write a program in Java using only language features available in Haskell.
"he says, but in the end, no matter the language, the methodology or the underlying OS, all programming is about telling computers what to do -- from "add these numbers" to complex text manipulation"
Biggest load of garbage i've ever heard.
- The type of language is very important, if he took the time to learn C++ correctly. Instead of changing his name, he would see that.
- Methodology is a big factor, its what makes the program run. Without it, we end up with buggy/slow programs written in substandard languages like Python/Java by "wannabe's".
Programming is not just about telling a machine what to do. Its how to complete that task with efficiency/stability, an artform by the creator.
Then again, if you cant be bothered to learn C++, i very much doubt performance will ever truly be a part of your coding methods.
If i change my name to "Bob dot Wannabe", you think i can have dreams like "Ingy döt Net" and change the world with half arsed experience?