Forgot your password?
typodupeerror
Programming

Ingy döt Net Tells How Acmeism Bridges Gaps in the Software World (Video) 164

Posted by timothy
from the one-for-all-and-all-for-one dept.
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.

Ingy: Hi, my name is Ingy dot Net. I’ve been attending OSCON for many years. I came for the first one in 2000 down in Monterey, and there were some in San Diego, once in Portland, even one in San Jose.

Tim: This time you are actually here against doctor’s orders in a way.

Ingy: Yeah, so I was supposed to have a surgery tomorrow on my eight broken bones. But I told the doctor I had a talk to give at OSCON, and might have to postpone it.

Tim: So are you just biting the bullet to keep back the pain?

Ingy: Yeah.

Tim: So what are you going to talk about here at OSCON?

Ingy: I am going to talk about my favorite speaking subjects, Acmeism, it is actually a term that I coined at the 2009 OSCON which was in San Jose. And I just realized that all of my programming has been involving multiple programming languages at once, and there should be a name for that. So I decided that the name for that would be Acmeism. And I’ve been giving Acmeism talks around the world ever since.

Tim: So what are some of the programming languages that you’ve worked with before that have led you to realize that you are using different languages?

Ingy: Well, I would say, I started out in Perl, and made over a hundred contributions to CPAN, which is the place where all the Perl code goes. And then I started playing with Python and Ruby and JavaScript. And back in 2001, I helped develop a serialization protocol called YAML that tied all of these languages together at the data level, and that was really interesting to me. Since then, I’ve been trying out every new language I can find. My favorite language of the last couple of months is Bash. Bash can really be used at almost every level as a modern dynamic programming language, surprisingly.

Tim: So why do you call it Acmeism, what do you mean by that?

Ingy: Well, Acmeism originally meant it originally was in 1910 to 1912 a Russian poetry movement with six members out of St Petersburg, Russia. And they had some meaning that I am not really too familiar with. But it kind of died out. And so the name was out of circulation for a hundred years, so I figured it was up for grabs again, so I bought all the domains.

Tim: Does that

Ingy: Yeah, they don’t have the domains at all. So I clearly own the name since.

Tim: The concept of programming in any language is attractive, how does it work practically, how do people take knowledge of one or another language domain which can be very different, and come out to some desired end. How do you tie different kinds of programming together?

Ingy: Well, Acmeism is really about it is really about cultures less than programming, it is about certain people in programming cultures who offer gifts to their communities, sometimes these are called modules in Perl and CPAN contains all of the modules. Or more generically, they are called packages, installable units. And I think of these things as gifts to other programmers but if you can give your gifts to several programming languages at once - it is actually very hard to do, and takes a lot of work, but that’s what I think of what Acmeism is - taking your best ideas and getting them past language barriers. Acmeism isn’t necessarily tied to programming. I like to leave that open to natural languages as well. I am taking the English gifts and giving them to the poor French – that kind of thing. But I keep all of my personal efforts in Acmeism to programming.

Tim: So what kind of code does it take for someone to enter that? Like if someone wants to contribute in a way, to write code in a way that puts in more of other people’s lives. What makes Acmeism different from simply writing a program in Perl or writing a program in Python? What is the transformative step?

Ingy: Well, if you create a gift for the Python community, you write some code, you write some documentation, you make it really nice to install and to use, a nice API, has lots of tests, and you package it all up, and it is very easy to install, but it doesn’t do, if that programmer then goes to the Perl community and says, “I really like that gift that Tim gave me, but I can’t use it here because it doesn’t exist.” Well, the work that is necessary to do that is to take the same idea and port it, port every bit of it - the tests, the code, the documentation, and the packaging, over to the different languages that you want to gift it to. What I’m trying to do is come up with more and more tools that make it, so that I can write one set of docs, one subset, one set of code, one set of packaging rules that will create the same gift in a lot of different cultures with the press of a button. But it has a long way to go; but it is coming along more and more every year.

Tim: What’s the example of a tool like that? What sort of tool can you create that helps people create across platform or across language in a piece of software- what makes that simple?

Ingy: Well, you have to think of your ideas and abstractions. And all of these programming languages that people are using are really doing the same thing. They are just ways for people to tell computers what to do. And people get religious about their languages. But they are really just different ways to do the same thing. And what I found when I port code between these similar languages, (I call them the OSCON Languages, which is nice, because we are at OSCON right now, or the O’Reilly Languages sometimes I call them),when you are in these dynamic languages, you can actually port line for line, idiom for idiom, variable for variable, construct for construct. And once you have your idioms done, the porting becomes just work, but if you can make tools that actually do that work for you, then the bootstrapping is accomplished.

Tim: Is it easier to do in some languages than others? That is to say, are there some languages that transfer more readily to translation, that lend themselves to translation more?

Ingy: I would say of the OSCON Languages which I consider to be Perl, Python, Ruby, JavaScript, PHP. I would say they are all almost equivalent in their capabilities. And so I actually write my ideas in the known subset, I don’t use stuff that only PHP can do or something that only Ruby can do. If I was going to write code specifically for Ruby, I would use the whole Ruby toolset but if I am going to use something to be shared across communities, then I would restrict myself to a subset. But it is not really that boring or anything. And I know that my audience is going to be much bigger.

Tim: If someone wants to do that, is it easy to determine what that subset is? Is there a good reference someone could say ‘this command will work across all those or other languages’?

Ingy: Let’s say, right now I am off in the weeds. You know, it is a lot of work for me and for anybody else that is going to do it, but I try to take those findings and quantify those into tools, so that As I said before, Bash is my new programming language, and I know that if I were to write so, maybe the audience has sort of CoffeeScript which is a very syntax for writing JavaScript but there is no reason why you can’t have something similar to that, that can generate all these languages at once. And Bash is very finicky and particular about whitespacing, about coding, but all the idioms are there, so if you could have a CoffeeScript that could generate Bash, I think there would be a lot more Bash backended programs to go just write them in a CoffeeScript syntax but they would be runnable in Bash. And Bash exists everywhere, much like JavaScript exists in every browser. Bash is in almost every OS.

Tim: If people want to join you in the quest to bring anything they write to more and more languages at the same time, what is a good way for them to get started? Are there resources that you direct them to look at?

Ingy: If people are interested in these ideas, I think the best place at this point to start is to drop by # acmeism and irc.freenode.net - the IRC network, and you can talk about it. Or find me here at OSCON.

Tim: Are there websites, domains to look at?

Ingy: Acmeism.org might be a good starting point.

This discussion has been archived. No new comments can be posted.

Ingy döt Net Tells How Acmeism Bridges Gaps in the Software World (Video)

Comments Filter:
  • by Anonymous Coward on Wednesday July 24, 2013 @03:26PM (#44373111)

    That's called "using C"...

    • by Desler (1608317) on Wednesday July 24, 2013 @03:57PM (#44373479)

      Hipsters don't learn C. It's too hard for them.

    • by istartedi (132515)

      The problem with that is when I said, "Why can't we just put C on web pages?" all the people who make the decisions laughed at me.

      You, me, and a bunch of other people would be quite happy with a sandboxed general-purpose VM in the browser, which we could target with anything, including C. We would have been VERY happy with a shell account and a compiler on our web server back in the day.

      We didn't make the decision though. Collectively a decision was made to make JavaScript and Perl widely available on tho

      • " Collectively a decision was made to make JavaScript and Perl widely available on those platforms. On the server, they eventually moved away from Perl; but the original decision to keep C out of our hands remained intact."

        But those decisions were not made randomly; they were made for reasons.

        "The initial excuse of "they'll run wild and consume resources and/or access some forbidden APIs" was never really valid for a properly run *NIX system, and is even less valid now."

        That's because a "properly run *NIX system" is not what everybody has, and probably won't be what everybody has for the foreseeable future. The internet is not exclusive to Techies. And it would be a disaster if it were.

    • by timeOday (582209)
      We can't even get over the hump in converting to the Metric System...
    • by Jane Q. Public (1010737) on Wednesday July 24, 2013 @04:53PM (#44374087)

      That's called "using C"...

      Kind of. What you actually end up with is "the lowest common denominator"... a language that does everything, but with none of the advantages other languages are known for.

      That's why you never see survivalists and electricians both using Swiss Army Knives as their primary tools.

    • by mjwalshe (1680392)
      nah PL/1 is the one true language :-)
  • He must have a very loving family
    • by Anonymous Coward

      Over indulgence. The result is a very smart man who has no real value to society. Perhaps he will write an opus...

    • by Anonymous Coward

      His birth name was "Brian Ingerson". He changed it.

      • by Megane (129182)
        All I can say is, nice metal umlaut, [wikipedia.org] bro.
        • by arth1 (260657)

          Dear Americans:
          When you have two dots over a vowel, and the character immediately to the left isn't also pronounced as a vowel, it must be an umlaut. And in all languages that have umlauts, the pronunciation changes - that's why it's called an umlaut.

          So he wants us to call him "Ingy Duht Net", and when only ASCII is available, rewrite his name to "Ingy Doet Net"?

          Anyhow, if he really is, as he claims in http://ingy.net/resume/ [ingy.net], the creator of YAML, he needs a swift kick in the buttocks on general principles

          • by mwvdlee (775178)

            Not all double dots on a vowel are umlauts, nor should they all be treated as such: https://en.wikipedia.org/wiki/Diaeresis_(diacritic) [wikipedia.org]

            You're right on YAML though; started out as an interresting file format, but has grown into something overly complex.
            I just use JSON instead; it's syntax is a lot more human writable and machine readable.

            • by arth1 (260657)

              Not all double dots on a vowel are umlauts, nor should they all be treated as such: https://en.wikipedia.org/wiki/Diaeresis_(diacritic) [wikipedia.org]

              That's why I said "and the character immediately to the left isn't also pronounced as a vowel". You can't have a diaeresis in a word like "dot" because there's no diphthong to kill. So it must therefore be an umlaut.

          • by TWiTfan (2887093)

            Something tells me that there would be no shortage of people who would line up to kick this guy in the nuts.

          • by umghhh (965931)
            Dear arth1,

            It may be that the term metal umlaut is not known to you which is OK. Not everybody has to be fun of Motorhead, Blue Oyster Cult etc or know that these and othe rmetal bands use this freely to express whatever they think they are expressing with this sort of fonts. In case you did not know GP provided a link to an article in wikipedia that explains this quite nicely.

            This thing about yaml is odd I admit thou.

            • Dear umghhh,

              Words have meanings, letters have sounds. Motorhead sounds different to Motörhead. I think the letter w looks cool, but I can't go around calling myself SlwazwRidw. No one would understand that.

              Also, to stay on topic, obligatory xkcd: http://www.xkcd.com/927 [xkcd.com]

              • by Anonymous Coward

                I think the letter w looks cool, but I can't go around calling myself SlwazwRidw. No one would understand that.

                Are you sure about that? Looks like a perfectly normal Polish name to me.

      • Re: (Score:2, Interesting)

        by Anonymous Coward

        I met him at a party in Portland several years ago, I was the only man at that party who wasn't wearing a dress.

  • Acmeism? (Score:5, Funny)

    by Anonymous Coward on Wednesday July 24, 2013 @03:27PM (#44373123)

    try{ ...
    }
    catch(roadrunner)

    Always seems to fail for some reason, though.

  • by TWiTfan (2887093) on Wednesday July 24, 2013 @03:29PM (#44373145)

    He's going to overturn decades of experience, hard work, research, and language development because HE'S A REBEL!!!

    • by Tablizer (95088)

      Yes, he has a PhD in Spontaneous Maverickism.

      (So did Palin, but nobody can find her school.)

    • Or he will just reiterate what we known all along that Perl is the glue that combines multiple executables together.
      • by Anonymous Coward

        I believe that's precisely opposite his point.

        Consider for instance, his Jemplate system that compiles (perl) Template::Toolkit templates into javascript.

        Or his YAML markup language that lets several languages exchange/share data.

        • by manicb (1633645)

          YAML markup language

          We're familiar with RAS syndrome (redundant acronym syndrome syndrome). YAML expands to "YAML Ain't Markup Language", making this his YAML ain't markup language ain't markup language markup language *headsplosion*

    • Re: (Score:2, Funny)

      by Anonymous Coward

      Man, and seriously he just *defines* obnoxious hipster...

      face piercings - check!
      carefully manicured stubble - check!
      giant horn-rimmed glasses - check!
      tattoos - check!
      red pants - check!
      knit cap with t-shirt - check!
      pointlessly quoting esoteric poetry to sound more educated - check!

      Didn't watch the whole video because of the severe nausea, but I assume he injured himself either kite surfing, riding a single gear bicycle, or falling off a balcony at a party after too many PBRs...

      And his resume lists his profes

      • Re: (Score:3, Insightful)

        by losfromla (1294594)

        I'm approaching that too and thinking about becoming a hipster.
        The thing is, why not?
        I mean, who really cares?
        Do I care what younger people think? No
        Do I care what older stodgy people or people my age think? No
        Am I going to die and no one will care anyway? Yes
        Do I care that some AC thinks it is a ridiculous way to be? No
        Is there a non-zero chance that some hot chick will find me interesting enough? Yes
        decision made.

        I haven't done it but I think that people have the right to be as ridiculous as we want to be

  • by Anonymous Coward

    Let's limit all software features to that which was available in GW BASIC.

    • by nojayuk (567177)
      God's Wonderful BASIC... I was very disappointed to find it wouldn't run under Windows 8.
      • Sure it will. Dosbox runs almost everywhere. Which makes GWbasic truly cross platform.

        • by nojayuk (567177)
          Yeah but the performance would suck under DOSbox. I wanted it to run native on the bare metal OS.
          • The performance of DOSBox is quite good actually. It even has a "dynamic" core which means parts of code is executed on the host when possible.

            But then again, many BASIC interpreters are not very high-performance to begin with.

            All in all, you should get a rather nice authentic GWBASIC experience under DOSBox.

            • by wierd_w (1375923)

              If he feels the need to make retro feeling console aps using a purposefully "simplified" language like BASIC, he should try QB64.

              http://www.qb64.net/ [qb64.net]

              Runs native on win8, doesn't need dosbox.

              Bear in mind that it does not live in realmode dos land though, so don't go expecting to poke at the vga palette register and get away with it and other such gouche antics. (Though he might be able to poke memory from system processes instead, leading to hilarity.)

              If he wants to do that, he needs to stick with dosbox+gwb

          • by dolmen.fr (583400)

            If what you want is the feel of the original GWBasic, you don't want the computer speed of today.

  • by Anonymous Coward

    This is easily the worst piece of non-news/mattering stuff ever.

  • by gweihir (88907) on Wednesday July 24, 2013 @03:38PM (#44373261)

    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.

    • by xxxJonBoyxxx (565205) on Wednesday July 24, 2013 @03:56PM (#44373463)

      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.

      • I'm not even a developer/programmer, just a lowly network admin, and I know almost dozen languages ( java, c#, c/c++, javascript, bash, perl, ruby, python, php, SQL, vbscript ).

        While I'd like to dismiss his claims that most programmers know a single language, I'm forced to accept it as a possibility given the number of apps and their "behavior" that i've had to support.

        • by Desler (1608317)

          His view of "most programmers" seems to be limited to the hipsters he meets at Starbucks that own MacBook Pros.

        • I'm not even a developer/programmer, just a lowly network admin, and I know almost dozen languages ( java, c#, c/c++, javascript, bash, perl, ruby, python, php, SQL, vbscript ).

          While I'd like to dismiss his claims that most programmers know a single language, I'm forced to accept it as a possibility given the number of apps and their "behavior" that i've had to support.

          Well, I notice he said "computer programmers" as opposed to "computer scientists" or "computer architects" or "systems administrators" -- I'd want some stats to back his claim, but I have no problems believing that there's a horde of people out there with no CS degree who taught themselves .Net, BASIC, Objective C, Jacascript, or PHP and consider themselves a "computer programmer" without realizing they're really an interpreter programmer (yes, even ObjC is heavily interpreted).

          I often feel like there's a d

          • I have a CS degree and 20+yrs experience as a "developer", I'm currently working as the CVS gatekeeper for about 30 cross-platform projects employing ~25 developers spread unevenly across the planet. I tell people I'm a "programmer" because they understand the term, I've lost count of the languages I "know" a long time ago so I tell people (not HR people) that I know 2 languages really well, C/C++ and Python. Having said that I can teach myself a new language in a couple of days and virtually every senior
        • by narcc (412956)

          With enough effort, you can develop in FORTRAN regardless of the language.

      • by gweihir (88907)

        Well, most incompetent programmers learn only one language, he is right about that. But just as learning another spoken language broadens your horizon and makes you realize more about the thing you are actually dealing with and that language shapes your view, all reasonable programmers know several languages and do not think in their programming language but in actual concepts. I thing of the one-language programmer just as I think of the 1-trick pony: They have no clue whatsoever.

        Come to think of it, there

      • by CODiNE (27417)

        I just met this guy the other day at Starbucks, he's a comp sci major. Knows 2 whole languages. C# and Java.

        Seriously. CS major, managed languages. I really hope he's using "unsafe" and pointers but I doubt it.

        • by mcmonkey (96054) on Wednesday July 24, 2013 @05:22PM (#44374451) Homepage

          I just met this guy the other day at Starbucks, he's a comp sci major. Knows 2 whole languages. C# and Java.

          Seriously. CS major, managed languages. I really hope he's using "unsafe" and pointers but I doubt it.

          The important question is, did he get your order right?

    • 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.

      That's a bit harsh; I run across the same issue when dealing with spoken languages. People keep trying to create one representation that will easily translate into all spoken languages, and you end up with Esperanto, Basic English, and the early Systran and Google machine translators. What this method fails to capture is that different ways of thinking and doing things sometimes need different means of expression.

      This doesn't mean that there isn't a place for these limited forms of expression -- you just

    • OO is also possible with C, but no compiler support whatsoever and that means most people cannot do it. Indeed, every example in K&R was using sophisticated OO design principles well before the term was coined. My first experience with C++ was on a watcom C compiler in the early 90's, the C++ extensions such as inheritance, etc, were implemented as a set of C macros that you #included as a header file.

    • by plopez (54068)

      You just don't get it dude. It's different this time. A whole new paradigm.

    • by sribe (304414)

      ...he has no clue about programming and this is about the most stupid thing one could propose.

      Hey, for once when I think "what a stupid fucking idea", it seems that most of /. agrees with me! Maybe I'm not just old and cranky after all!

  • ...because it looks like that's the one he hurt thinking up this stuff.

  • by grasshoppa (657393)

    ...or, you know, not.

    Christ, what a douchebag.

    "Everyone, wait! It's all just 1s and 0s! I'VE SOLVED ALL OF OUR PROBLEMS!"

    • by TWiTfan (2887093)

      This is just the kind of brilliant insight you get after smoking weed all night, only to wake up the next day and realize that none of what you wrote down even makes any sense.

  • by Anonymous Coward

    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 j

  • by BenSchuarmer (922752) on Wednesday July 24, 2013 @03:58PM (#44373481)

    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!"

  • by OscarGunther (96736) on Wednesday July 24, 2013 @04:03PM (#44373517) Journal

    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.

    • by idontgno (624372)

      Irony: opting out of language evangelism by loudly evangelizing language neutrality.

      Put that in your unspecified recreational pharmaceutical apparatus and consume it, Alanis Morissette!

    • Sounds like he doesn't have an employer. No way my boss would let me code something 4 times just so its language neutral. I think its a good idea not to go into the weeds of a programing language.
      • by Anonymous Coward

        No, he is (to the best of my knowledge) currently employed and has been employed for the great majority of at least the past ten years.

  • 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

    • by dkleinsc (563838)

      It's mostly format and structure for most languages.

      Not quite: For wildly different families of languages, there's significantly different structures. For example, if you're proficient in Python, switching to Ruby isn't that big a deal, but switching to Haskell is challenging.

      • Kinda like spoken languages. Knowing one romantic language and learning another is much easier than trying to learn an Asian language.

      • by N0Man74 (1620447)

        Sure, and I realize that there are exceptions, which is why I said "most languages". But the vast majority of commonly used languages are in a small number of families, even even most of those families of languages aren't so radically different that an experienced programmer couldn't pick up on it fairly quickly.

        On multiple occasions, I've been able to look at languages I've never touched before and with my programming knowledge (and a few Google searches to help with syntax and keywords) have been able to

    • by Tablizer (95088)

      Actually one can make a decent living knowing almost nothing but the Microsoft "stack". It's not exactly "one language", but pretty close.

      (And I am not saying it's pleasant, only that it's fairly common.)

    • Even I know more than one programming language, and I'm not even sure I qualify as a good programmer (my first professional research publication included a horrible piece of spaghetti code written in HP BASIC for the HP 9845).
    • 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.

      Or the difference between the font you'd use for chiseling a sentence into stone vs using an ink and quill to put it on some parchment. The materials always affect the form and the tools used.

  • by srollyson (1184197) on Wednesday July 24, 2013 @04:16PM (#44373639)

    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.

    1. https://metacpan.org/author/INGY [metacpan.org]
    2. https://en.wikipedia.org/wiki/Unix_philosophy [wikipedia.org]
    3. https://en.wikipedia.org/wiki/Protocol_Buffers [wikipedia.org]
    4. https://en.wikipedia.org/wiki/Apache_Thrift [wikipedia.org]
    • by khakipuce (625944)

      So as a Perl developer i guess he is not big on rich user interfaces? How does he propose to sucessfully convert say a Windows Forms UI to PHP?

      Oh! I get it, that's out-of-scope, who needs UIs? We can all just run a bunch of command line scripts and applications.

      But wait, didn't we do that already .. I seem to remember it being called Unix.

      I for one welcome this bright new future!

  • when doing interviews. Buddy looks he fucked on too many T3's

  • 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
  • by coldsalmon (946941) on Wednesday July 24, 2013 @05:16PM (#44374385)

    Glad to see that contemporary programming is finally taking more influence from early 20th-century Russian poetry. http://en.wikipedia.org/wiki/Acmeism [wikipedia.org]

  • by ndykman (659315) on Wednesday July 24, 2013 @05:52PM (#44374707)

    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.

    • by mjwalshe (1680392)
      they tried this with something called "the last one" back in the day (70's) when CBM's And Apples ruled the roost didn't work then - dont think its going to work now
    • by Morpf (2683099)

      UML is abstract, but it is in no way a programming language.

      On the other hand: As soon as you have implemented your components in the language you use, you can use them as a higher level abstraction and compose your system out of those components. And yes, you need some experience to decide how a component has to look and function like, to be fit for reuse.

      Well there are concepts for being even more abstract than say C# or Java. For example Domain Specific Languages. But I don't really like them, you introd

Any sufficiently advanced technology is indistinguishable from a rigged demo. - Andy Finkel, computer guy

Working...