Slashdot Mirror


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.

25 of 164 comments (clear)

  1. Been doing that since ages... by Anonymous Coward · · Score: 4, Insightful

    That's called "using C"...

    1. Re:Been doing that since ages... by Desler · · Score: 4, Funny

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

    2. Re:Been doing that since ages... by istartedi · · Score: 2

      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 those platforms. On the server, they eventually moved away from Perl; but the original decision to keep C out of our hands remained intact. 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.

      Nevertheless, these decisions have been made. It's out of our control, at least for now. Even if it's technically possible; it's still socially impossible. They'll just laugh at you for generating web pages in C. You can do it yourself as a hobby. On your own server... if your ISP doesn't shut you down for running a server. More stuff that's out of your control.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    3. Re:Been doing that since ages... by timeOday · · Score: 2

      We can't even get over the hump in converting to the Metric System...

    4. Re:Been doing that since ages... by Jane+Q.+Public · · Score: 3, Insightful

      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.

  2. Acmeism? by Anonymous Coward · · Score: 5, Funny

    try{ ...
    }
    catch(roadrunner)

    Always seems to fail for some reason, though.

    1. Re:Acmeism? by suutar · · Score: 3, Funny

      that's the problem. Roadrunners don't get thrown, so they can't get caught this way. He should be catching Anvil, Fire, MeWhenSteppingOffCliff, and some other stuff. But for the roadrunner issue he needs to be using roadrunner.halt(). The problem, of course, is getting a handle to the roadrunner instance.

    2. Re:Acmeism? by Samantha+Wright · · Score: 3, Funny

      You need a finally { fallOffCliff(); } block.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    3. Re:Acmeism? by Beardydog · · Score: 2

      I only call fallOffCliff() after my walkingOnSolidGround Boolean becomes true after lazy evaluation.

  3. Yay, another hipster programming messiah!!! by TWiTfan · · Score: 3, Insightful

    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."
    1. Re:Yay, another hipster programming messiah!!! by Anonymous Coward · · Score: 2, Funny

      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 profession as "software artist". AUUUGGH kill me now! Sad thing is he's like 45. No offense to 45 year olds (I'm getting there) but PLEASE don't try to be a hipster, it's it's not only annoying at that point, it's just kinda pitiful.

    2. Re:Yay, another hipster programming messiah!!! by losfromla · · Score: 3, Insightful

      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. It is our life after all and we only get one and why should we be repressed during its short span?

      --
      Only I can judge you.
  4. Re:Who the f*** is he? by Desler · · Score: 2

    You shouldn't.

  5. Re:Ingy döt Net by Megane · · Score: 2

    All I can say is, nice metal umlaut, bro.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  6. This person has no clue by gweihir · · Score: 2

    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.
  7. Further proof that Igny has no clue by xxxJonBoyxxx · · Score: 3, Informative

    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.

    1. Re:Further proof that Igny has no clue by mcmonkey · · Score: 5, Funny

      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?

  8. From The Tao of Programming by BenSchuarmer · · Score: 4, Funny

    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.

  9. Summary for the time-constrained by OscarGunther · · Score: 2

    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.

  10. A Perl/Unix Way of Thinking by srollyson · · Score: 5, Informative

    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
    2. https://en.wikipedia.org/wiki/Unix_philosophy
    3. https://en.wikipedia.org/wiki/Protocol_Buffers
    4. https://en.wikipedia.org/wiki/Apache_Thrift
  11. Re:Ingy döt Net by Anonymous Coward · · Score: 2, Interesting

    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.

  12. Osip Mandelstam is one of my favorite poets! by coldsalmon · · Score: 2

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

  13. Reuse not a matter of will... by ndykman · · Score: 3, Informative

    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.

  14. Re:Acmeism.org quote.. by Em+Adespoton · · Score: 2

    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.

  15. Re:Ingy döt Net by losfromla · · Score: 3, Funny

    you must have felt like a total douchebag

    --
    Only I can judge you.