Slashdot Mirror


Open Source Languages Rumble At OSCON

blackbearnh writes "Everybody knows what the best programming language is, it's whatever one you like the most. But is there a best language overall? Or even a best language for a given purpose? This question has been debated since the first time there were two languages to choose from. The argument is still going on, of course, but maybe a little light will be shed on the issue this week at OSCON. On Wednesday night at 7PM Pacific, representatives of the 5 major open source languages (perl, PHP, Python, Java and Ruby), as arbitrarily decided by O'Reilly, will meet to debate the merits of their various languages. If you're not going to be at OSCON, you can watch it live on a webcast and pose questions or comments to the participants. The representatives are: Python: Alex Martelli, Google; Ruby: Brian Ford, Engine Yard; PHP: Laura Thomson, Mozilla; Perl: Jim Brandt, Perl Foundation; Java: Rod Johnson, SpringSource."

26 of 197 comments (clear)

  1. debate rules by Lord+Ender · · Score: 5, Funny

    OSCON organizers have stated that the language debate won't be considered finished until at least one of the languages is compared to Hitler and/or the Nazis.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:debate rules by TeknoHog · · Score: 3, Funny

      Every time an online discussion resorts to a Hitler analogy, God wins!

      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:debate rules by atheistmonk · · Score: 2, Funny

      The acid is likely what causes you to see the trolls in the first place...

  2. what does open mean? by at10u8 · · Score: 4, Insightful

    When did C lose its status as an open source language? or do we mean languages for web apps?

    1. Re:what does open mean? by Lord+Ender · · Score: 2, Informative

      It looks to me like they mean "high level" languages... the sort that allow you to deal with arbitrarily complex datastructures without burdening the programmer with the manual management of memory allocation and pointers.

      Perl barely qualifies for this category (no pointers, but "references"), yet it was one of the first high level languages, so it should get some respect.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    2. Re:what does open mean? by hardburn · · Score: 3, Informative

      . . . yet it was one of the first high level languages . . .

      Missed it by a few decades. LISP was arguably the first high level language. You could also make a case for COBOL.

      --
      Not a typewriter
    3. Re:what does open mean? by derGoldstein · · Score: 2, Informative

      I'm assuming that they meant "dynamic languages", which is relatively difficult to define as well. Is Java technically "dynamic"? (I honestly don't know how to answer that, BTW)

      Java is definitely the exception, however: static-typing, and the requirement to compile to bytecode. Also, Java is the only language here that's suitable for math-oriented programming, the rest of the languages are primarily used to handle text and/or manage data-structures that contain strings as their edge(leaf?) nodes.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    4. Re:what does open mean? by serviscope_minor · · Score: 5, Insightful

      Maybe they meant languages where the whole stack is Open Source. All the standard software and libraries for those languages is Open Source. There is no standard C compiler, runtime, or library -- only a specification (which is not Open Source or Free) with which to build your own implementation of them.

      Seriously, what the fuck?

      There are multiple open source C stacks all the way from the top to the bottom. Compilers: gcc, tcc and llvm. Gnu's libc, the various libc's in BSDs. Uclibc.

      The main criticism that you're levelling at C is that it actually has a published standard! None of the other languages do. They have an "official" implementation, but nothing like the rather rigorously specified ISO C standard. And if you don't like the cost of paying for it, then you can download N1124, which was the last draft of the standard just before ratification. It's completely free and very accurate.

      --
      SJW n. One who posts facts.
    5. Re:what does open mean? by Deanalator · · Score: 2, Funny

      C is not a major programming language.

      Nothing interesting has been done in C since the early 90's, when many of today's top programmers were just learning to walk.

    6. Re:what does open mean? by Rockoon · · Score: 3, Insightful

      I'll consider C a 'bastard child of assembly' as soon as I can reliably emit arbitrary opcodes (rotate through carry instructions, for instance) without using proprietary extensions.

      The popularity of C is interresting (thank you K&R), the reason for its development is interresting (thank you AT&T), but it is not a low level language. Its a mid to high level language whos programmers incorrectly label as low level, in what I guess is some desparate attempt to make themselves feel superior.

      Its low level only in terms of the abstract machine it targets, which barely touches the surface of any actual instruction sets. This abstract machine is sufficient enough to design and implement rudimentary operating systems (with proper machine-specific extensions), but that just aint low level. The low level bits *are* the machine-specific extensions, and that just aint C.

      --
      "His name was James Damore."
    7. Re:what does open mean? by Toonol · · Score: 2, Informative

      I disagree. C is still the major language used in embedded electronics. In addition, ideologically, it's importance is crucial since c syntax now lies at the core of nearly every major language.

      Just checked: 33,242 C projects on Sourceforge, compared to 44,784 C++, 58,559 Java, 15,562 Python, and 10,871 Perl. (My shock there is Java... sourceforge projects are voluntary... people actually CHOOSE Java?) I'd also claim Javascript as an important, open-source language. You don't see a lot of full apps written in it, but globally it's VERY important, with fingers in all sorts of areas.

    8. Re:what does open mean? by derGoldstein · · Score: 2, Interesting

      I guess "deprecated" is the wrong term, technically. What I meant was, that "in practice", you'd move past many of the lower-level elements of C++ and use STL instead. There's no reason to write your own String class when there's std::string, nor write your own Array class when there's std::vector (and other containers for array-like structures). Because of this, manual memory allocation is rare -- you'd only use 'new' and 'delete' in very special cases. The rest of the time you'd probably depend on RAII and scoping. You'd also avoid pointers and raw arrays, unless, again, you're *creating* a container, or if there's some extreme performance issue.

      Then there's the C-compatibility stuff, that you'd never use in a pure-C++ program. They're just there to stay compatible with C (which is very important, but if you're writing something from scratch, you're not likely to malloc in C++).

      These things aren't deprecated, but they are in the "lower level" bracket of C++, and in most situations are there to write the higher-level classes/templates. And since almost any container you're likely to need already exists in the STL, you're not likely to find them in a program that leans on the STL.

      That's kind of the philosophy of Accelerated C++, in which the higher-level elements are covered first, and only then does it delve into the lower levels (which is the reverse way of how C++ is learned in academia).
      I suppose that the main problem C++ has is its breadth (which I guess is what you meant when you said "complex beast").
      (this comment didn't really go anywhere, but I'll post it anyway...)

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
  3. Just do it already. by Anonymous Coward · · Score: 2, Insightful

    Back in college I was working the summer on a forest firefighting crew ("Hotshots") when one evening back at camp two
    guys got into an argument over whether Stihl or Husquvarna chainsaws were best. Punches were thrown and the two had to be wrestled apart.

    That's what these L1 vs L2 vs Ln arguments all remind me of. Use a for loop or a list comprehension, call free() or let the compiler do it for you,
    use '{' or not, does it really matter? - your manager probably wanted the functionality implemented yesterday - just do it using the tool you know best.

  4. Re:What is an open source language? by hardburn · · Score: 3, Insightful

    Why were those particular languages picked?

    Probably because someone competent and authoritative enough was willing to speak on the languages listed.

    --
    Not a typewriter
  5. little indeed. by N!NJA · · Score: 3, Insightful
    from TFS (emphasis mine):

    The argument is still going on, of course, but maybe a little light will be shed on the issue this week at OSCON. On Wednesday night at 7PM Pacific, representatives of the 5 major open source languages [...]

    5 geeks.... 90 minutes.... that will be a very dim light to be shed on such unanimously-agreed subject.

  6. Rod Johnson by hugerobot · · Score: 4, Funny

    Rod Johnson?? Really?! Rod Johnson is easily one of the top 5 names of all time. Rod Johnson wins by name alone!!!! It's settled. Java is the best language. Suck it, other languages and your weakly named representatives! I'm a PHP programmer more than anything... but I must concede to Rod Johnson. You can't make that name any better! Maybe if his middle name was 'Motherf***ing'.

    1. Re:Rod Johnson by PeanutButterBreath · · Score: 2, Funny

      Agree, except it seems like someone named Rod Johnson would be a Python kind of guy.

  7. the title of this post is flawed by buddyglass · · Score: 5, Insightful

    Programming languages do not have source code, and thus cannot be "open source". Unless perhaps you're referring to languages whose specifications are updated by means of some community driven process, e.g. Sun's JCP. Interpreters, virtual machines and run-time environments do have source code and can be open source. They're just not the same thing as "the programming language" itself, which is essentially just a specification.

  8. There can be only one! by bigsexyjoe · · Score: 2, Insightful

    I love this "Highlander" attitude towards programming. That there will be one language that is the best and I guess will defeat all the other languages. If anything there might have a been a few best languages decades ago, but as time goes on there will just be more and more languages used for different purposes. Should we also debate what's the best tool. A hammer, a screwdriver, or a wrench?

    1. Re:There can be only one! by PeanutButterBreath · · Score: 2, Insightful

      To be fair, the summary presents this as a debate of "the merits of their various languages", not an attempt to cast one as the "best".

      Its kind of ironic that you are projecting this "Highlander" attitude that you deride.

  9. Re:No C or C++ by EsbenMoseHansen · · Score: 3, Interesting

    I really should write it down. I will forget some points. For each feature, I will list a language that actually implements this feature

    • Static typing, both duck and declared (Much like proposed in C++0x)
    • closures (like ruby, or C++0x). I'll even settle for just anonymous inline functions, but the C++0x standard shows how *easy* closures would be.
    • No "native types", everything an object, including nil, constants and whatever (much like ruby and lots of others)
    • Full range of memory techniques supported, including RAII, scoped, shared, weak, garbage collected. (Lots of examples for each point, but really none for them all)
    • Easy to parse grammar, so that the language is parsable with off-the-shelf parser (Java, ruby and many others). *Admittedly*, the parsers of today seems to be solving this problem even for perl and C++, so maybe it is not so important as it once was.
    • No dependency on a virtual machine, should be able to run on bare iron or not (c++)
    • No unneccessary overhead. Overhead introduced by features must only apply if the features are actually used (C++)
    • Full metaprogramming, including static reflection (e.g., the ability to enumerate over all members of a class. Sorry, I don't have an example for this one, but it does seem so *easy* to extend say C++ to do this.)
    • Sensible error messages (like NOT C++ currently and especially g++. "Expected primary-expression before ;" is just not very helpful, and the template errors are much much worse. Much tied to the aforementioned grammar)
    • C interfaces must be easily callable (e.g., NOT like Java) and for preference, easy export of interfaces to at least C)
    • Full dynamic reflection, perhaps optionally (mostly for test)

    I probably forgot a lot, but it's a start, no?

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  10. Mod parent... uh... by HiggsBison · · Score: 2, Insightful

    So do your part to destroy a programmers will to live, deploy a VB6 app today!

    What we need is a "Scary" mod.

    --
    My other car is a 1984 Nark Avenger.
  11. The other members of "Team Java" by Tetsujin · · Score: 4, Funny

    For the Java team, the summary only mentions Rod Johnson - it should be noted that Rod will be joined by other veteran developers advocating Java: Long Wang, Peter Cox (and his wife Anita), and, of course, notable Java developer Dick Manmeat.

    --
    Bow-ties are cool.
  12. Re:The language of fists, knives, and guns? by Deanalator · · Score: 2, Insightful

    It should be a requirement for all esoteric programming language developers that they provide and IDE (or IDE extension) with support for syntax highlighting and auto-complete.

  13. Re:What is an open source language? by alexandre_ganso · · Score: 3, Insightful

    Or because those are whose sell more books. Remember, the thing is being organized by O'Reilley.

  14. Again, Pascal gets the Shaft by syntap · · Score: 2, Funny

    Then again what is Pascal without Borland anymore?