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

197 comments

  1. Open Sores by Anonymous Coward · · Score: 1, Funny

    My God - it's full of puss!

  2. The language of fists, knives, and guns? by davidwr · · Score: 1

    Just reading the title that's the only obvious conclusion!

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:The language of fists, knives, and guns? by Anonymous Coward · · Score: 1, Funny

      I've said it before, and I'll say it again: the answer is Malbolge.

    2. Re:The language of fists, knives, and guns? by hairyfeet · · Score: 1, Informative

      I have said it before and I'll say it again, the one true language is....VB6! After all, what other language is there that you can not only write programs in, but also cause wonderful facial ticks in "real programmers" and fill their hearts with dread? Hey, real programmers? How would you like to debug a VB6 app, with no comments and lots and lots of GOTOs? BWA Ha Ha Ha Ha!

      See? Only VB6 can give you a functional app with the added bonus of nightmares for the snooty real programmers. And when joined with the power of Microsoft Access, especially the really old ones like Access 2k, it helps to break their spirit, which keeps costs down due to the fact the programmers are too broken and depressed to ask for raises. It is the gift that keeps on giving!

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

      --
      ACs don't waste your time replying, your posts are never seen by me.
    3. Re:The language of fists, knives, and guns? by Deanalator · · Score: 1

      As a professional programmer who has worked on projects in all five of these languages,
      I can honestly say without bias that Java is the best programming language.

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

    5. Re:The language of fists, knives, and guns? by weicco · · Score: 1

      How would you like to debug a VB6 app, with no comments and lots and lots of GOTOs?

      Been there, done that. It only cost me my marriage, kid, house, car and dog and finally I had to switch job. Now I'm happily remarried, we have a wonderful child, two dogs, car, house and everything. Oh yeah, and I'm coding in C# nowadays!

      Just kidding, partly ;)

      --
      You don't know what you don't know.
    6. Re:The language of fists, knives, and guns? by ralphdaugherty · · Score: 1

      After all, what other language is there that you can not only write programs in, but also cause wonderful facial ticks in "real programmers" and fill their hearts with dread?

            well, if we're going to get down and dirty, I'll see your VB6 and raise you RPG /free. There, I can see some real programmers hearts filling with dread already. :)

            But I do have an open source RPG project going, and some heavy duty RPG web serving coming up. Google Code is hosting it: http://code.google.com/p/rdwrites/

            I don't have any pointer code in the first program posted but I'll be adding a file utility program for our iseries Unix style file system where pointer based data structures are used to access file attributes, etc., all the typical Unix C stuff, but preferable to do it all in RPG on the iseries in my opinion, although we do bind in the C library to do standard C error calls.

            But first program released is a 5250 file maintenance program, with the other stuff mentioned coming.

            The ascii files zip is notepad readable and shows what current RPG code looks like. My goal is to open source very high performance example RPG code compared to standard bloated or scripted web fare. But nothing to demo on that yet.

        rd

  3. Mod -1 bad timing by davidwr · · Score: 0, Offtopic

    The article about the planet with the giant red spot near Uranus was earlier this week. Get with the program.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  4. 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 Anonymous Coward · · Score: 0

      Also, participants are advised to bring their flamethrowers and an extra can of napalm.

    2. Re:debate rules by Djupblue · · Score: 1

      Considering the only people motivated enough to participate in such an apparent flame-fest are going to the people who lives in the illusion that their favorite language really is the best. Therefore if they can only come up with good enough arguments the others will finally understand and be enlightened. Of course they will be frustrated when the others don't listen properly and instead tries to argue for their painfully sub-standard choice. So in more and more desperate attempts to break through they will use increasingly more provocative arguments quickly deteriorating the whole mess in minutes. They wont last an hour.

    3. Re:debate rules by derGoldstein · · Score: 1

      Well, of course, you would need the flame to kill all of the TROLLS...
      (or maybe bring some acid?)

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    4. 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.
    5. Re:debate rules by Deanalator · · Score: 1

      Skynet will be written in java.

    6. Re:debate rules by atheistmonk · · Score: 2, Funny

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

  5. 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 Rockoon · · Score: 1

      When did it get that status?

      --
      "His name was James Damore."
    2. 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.
    3. Re:what does open mean? by Anonymous Coward · · Score: 0

      In the embedded world (which is getting increasingly open source), C is best and only real option. C is never going away. C is what powers your anti-lock breaks and keeps your planes flying.

      And embedded is the best to program for ...none of those damn users that make normal programming suck.

    4. 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
    5. Re:what does open mean? by Monkeedude1212 · · Score: 1

      When you CLOSED the last parenthesis of your C code and realized that no one could follow your programming but you, even when you formatted it perfectly.

    6. Re:what does open mean? by PhrostyMcByte · · Score: 1, Informative

      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.

    7. Re:what does open mean? by Anonymous Coward · · Score: 0

      Probably when every other language used it to implement that language?

      When we all use Python/Perl/Ruby/Java/whatever-the-other-one-was to implement the next 'best' language, and regate C to being some bastard child of Assembly, and C++ to being the spawn of satan's Assembler, then we can talk about them being the best language.

    8. Re:what does open mean? by sznupi · · Score: 1

      Uhm, in non-trivial slice of your examples that would be not C, but Ada.

      --
      One that hath name thou can not otter
    9. Re:what does open mean? by blackjackshellac · · Score: 1

      Well, if we mean languages for web apps, then surely javascript deserves more focus than java. \

      --
      Salut,

      Jacques

    10. Re:what does open mean? by Draek · · Score: 1

      I believe it depends on the public's perception of them. If there's a new implementation of the language out there, is it instantly compared to:

      - The language's standard? if so, its an "open language", or "standardized language". Examples are C, Common Lisp, and Javascript.
      - A reference open-source implementation? if so, its an "open-source language". Examples are Python, Ruby and Perl.
      - A reference closed-source implementation? if so, its a "propietary language" or "closed language". Examples are C#, Visual Basic and Delphi

      Arbitrary, stupid, and it leads to unintuitive things such as C# being a "propietary" language despite having both a published, open standard and an open source implementation simply because everyone instantly compares it to the propietary .NET runtime, or Javascript going back and forth between "standardized" and "open-source" depending on the ratio between the "its a published standard" and the "the standard is irrelevant, how it works in Gecko and Webkit is what matters" camps, but thats how its defined, as far as I can see.

      --
      No problem is insoluble in all conceivable circumstances.
    11. Re:what does open mean? by Hythlodaeus · · Score: 1

      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.

      Okay, I'll grant you that criticism against C, but then why wasn't C++/Boost invited to the table? Only interpreted/VM languages? Then why wasn't C++/Boost/LLVM invited? Almost any paradigm you care to program can be realized in C++, the only difference is the bookeeping is hidden in the libraries instead of in the interpreter. It can be hidden, though with syntactic sugar as easy as anything else in the wild. The only thing missing is perfect function forwarding, which is expected in the next major spec.

      --
      For great justice.
    12. Re:what does open mean? by Medievalist · · Score: 1

      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.

      Like awk, for example. Since gawk implemented direct socket I/O a few years ago it's been one of the best high level languages around.

      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.

      I think you left out the words "thousand or so" between first and high level. ;)

    13. Re:what does open mean? by TypoNAM · · Score: 1

      When you CLOSED the last parenthesis of your C code and realized that no one could follow your programming but you, even when you formatted it perfectly.

      It sounds like you've confused C with Lisp. Not to mention it isn't limited to just C that it can get difficult to follow along in source code and I'm not sure why you've singled it out since Java and C# are heavily biased in design by C (and C++ on top of that) and aren't any easier to understand, nor is Ruby, Python, Visual Basic (the original, not the .NET variant), Pascal, etc..

      --
      This space is not for rent.
    14. Re:what does open mean? by Anonymous Coward · · Score: 0

      If you don't think bizarre unreadable code doesn't get written in Python, Ruby or [insert trendy language of the month here] then you have not seen a lot of code written in those languages. The true sign of an incompetent programmer is one that blames the language. Here's a clue: if you cannot write working, readable code in C, then you are not going to be able to write working, readable code in Ruby or Python because you are a poor programmer. Modern languages save a good programmer's time, but they do NOTHING for bad programmers except give them another check mark for their bullshit resume.

    15. Re:what does open mean? by Lord+Ender · · Score: 1

      I don't know too much about LISP. Why do you think it failed to catch on the way these other languages did? If it has modern data structure capabilities, it must be lacking in some other way...

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    16. Re:what does open mean? by Phantom+of+the+Opera · · Score: 1

      I don't know too much about LISP. Why do you think it failed to catch on the way these other languages did? If it has modern data structure capabilities, it must be lacking in some other way...

      Thinking in doubly recursive execution paths is a rare skill/ability.

    17. 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.
    18. Re:what does open mean? by derGoldstein · · Score: 1

      Personally I think people just got tired of counting parentheses...

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    19. 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.
    20. Re:what does open mean? by bertoelcon · · Score: 0, Offtopic

      C is what powers your anti-lock breaks.

      What are anti-lock breaks?

      Code breaks that don't stop the code from running?

      Or is it like breaking into an unlocked car?

      --
      Anything can be found funny, from a certain point of view.
    21. Re:what does open mean? by cube135 · · Score: 1

      What about Perl?

    22. Re:what does open mean? by derGoldstein · · Score: 1

      When you say "easier to understand", do you mean "easier to read" or "easier to learn"? I guess that readability is in the "eye of the beholder", but really when you get to Python and Ruby they're almost *objectively* easier to read. With Python, you almost don't have to know the language to understand a program, it practically looks like pseudo-code (being loosely based on ABC, which is as pseudo as you can get).

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    23. Re:what does open mean? by Anonymous Coward · · Score: 0

      I f you can't read C code, you basically suck as a programmer and ought to change your major to music or something. It's not like it's hard or anything.

    24. Re:what does open mean? by Anonymous Coward · · Score: 0

      Ada was a requirement in several defense applications for a long time. It was never adopted to any significant degree in the commercial sector.
      No new development ever starts with Ada anymore. Even man-rated DO-178B compliant systems are done in C and C++ now.

      Further, unlike the 250 billion lines of cobol running in the world, embedded systems tend to be small and it is often easier to migrate away from ada than to try and still find programmers than are competent at the language. Especially because the hardware and software are so closely tied together and the hardware becomes obsolete pretty quickly.

      Working in software in the aerospace and safety critical software area, I have yet to see any new project start using Ada. The only Ada development I have seen is to support older programs (80's and early 90's).

      Interesting side note:
      This is ironic because Ada was chosen by the military because it would be easier to validate the code was bug free and was forced on the prime contractors. The prime contractors do not have any liability for their military contracts, so if an F16 crashes, the military does not sue the contractor. That is not true for commercial contracts. Despite significantly increased liability for creating software bugs, the prime contractors still mostly chose to use C and C++ rather than Ada

    25. Re:what does open mean? by lolwhat · · Score: 1

      He is obviously a perl programmer, since his post is the standard perl defense when people complain about its syntax.

    26. Re:what does open mean? by chromatic · · Score: 1

      With Python, you almost don't have to know the language to understand a program....

      I hope you intended that as satire.

    27. Re:what does open mean? by six11 · · Score: 1

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

      O'Reilly picked the languages. My guess is it is because these langs are closely associated with their book sales and attendant web sites/blogs.

      As for the contest itself... I am glad I don't actually have to endure it. It's just like those old Budweiser ads (tastes great/less filling) modulo the scantily clad women duking it out in a swimming pool.

    28. Re:what does open mean? by cube135 · · Score: 1

      That's why I asked about Perl. I was expecting it. And was confused when I didn't see it mentioned.

    29. Re:what does open mean? by derGoldstein · · Score: 1

      Javascript going back and forth between "standardized" and "open-source" depending on the ratio between the "its a published standard" and the "the standard is irrelevant, how it works in Gecko and Webkit is what matters" camps

      The difference in implementation of JavaScript in browsers is actually minimal. It's the DOM, events, and CSS-related issues that mess things up. If you stick to *just* JavaScript, the worst that could happen is that IE won't have all of the Array methods (which can be filled in using the language). When it comes to implementing ECMAScript, the different browsers conform quite well.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    30. Re:what does open mean? by derGoldstein · · Score: 1

      I hope you intended that as satire.

      You can *force* any language to appear unreadable. I'm talking about a program that was written by a competent programmer. Compare a random Python script with a random Perl script. Are you actually saying there's no difference in readability?

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    31. Re:what does open mean? by hardburn · · Score: 1

      Partially because it was too early for its time (particularly the speed for convenience tradeoff), partially because of infighting between different LISP camps, and finally because once those two issues were resolved, other languages had emerged that took the same ideas further (like OCaml and Haskell).

      --
      Not a typewriter
    32. Re:what does open mean? by jbolden · · Score: 1

      For almost sixty years it has been driving computer science and language design. There have been literally dozen of Lisps ranging from the Lisp machines of the 70s, to the major software of the 80's: Autolisp, Emacs. Logo is still taught to millions. Many of the idea of LISP are in Ruby, Haskell which is arguably the big "next idea" is a ML / Lisp half breed.

      I'd say it has been successful.

    33. Re:what does open mean? by hardburn · · Score: 1

      I'm not convinced of that. It's just that most programmers start with a language the lends itself to iteration rather than recursion. Since most languages in common use also prefer iteration, any given programmer rarely has an incentive to learn to think in terms of recursion.

      I don't think that's necessarily intellectually lazy, either. Almost any major language has enough little niches that you can spend a lifetime learning them all. It just depends on if you want to be generalist or a specialist.

      --
      Not a typewriter
    34. Re:what does open mean? by Anonymous Coward · · Score: 0

      And your response is the standard defence of shitty programmers who think maybe a new language will prevent them from having to learn how actual memory allocation works.

    35. Re:what does open mean? by Deanalator · · Score: 1

      FLAME ON!

      The java spec is SIGNIFICANTLY more mathematically sound than the C spec will ever be!

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

    37. Re:what does open mean? by Anonymous Coward · · Score: 1, Informative

      I don't know too much about LISP. Why do you think it failed to catch on the way these other languages did? If it has modern data structure capabilities, it must be lacking in some other way...

      Lisp was much slower and more memory-hungry than Fortran and C, back when that made a ton of difference. Also, according to a famous essay, development of Lisp was very slow because its developers wanted it to be "right" (i.e., "perfect"), whereas the developers of C were mostly concerned with getting something that was "good enough for now," never mind the ugly warts. This lead to a proliferation of C programmers who tended to be biased in favor of C's syntax (Perl, C++, Java).

      These days, Lisp's biggest drawback, at least for Windows development, is that there's no good, free Lisp compiler for Windows. They're either toys, free but you have to use Cygwin or similar, or commercial. Contrast with Java, Perl, Python, and (I assume) Ruby, which all have free interpreters/compilers for Windows. Java even has a couple of really good, free IDEs. (Even C has some good, free Windows-based compilers, like Open Watcom.)

      I can still remember reading one Lisper's rant on Usenet many years ago about the lack of free Windows Lisp options. His argument was basically that, since Windows itself isn't free, no one should expect that any software written for it should be free. He was really nasty about it, but his opinion seems to be shared by much of the Lisp community.

      On the other hand, some guy is building a Lisp dialect on top of the Java VM. It's called Clojure, and looks pretty promising: A Lisp-alike that gives easy access to Java's gigantic library could be just the thing to rekindle interest in the language.

    38. Re:what does open mean? by Anonymous Coward · · Score: 0

      It's lacking in popularity. Popularity means better libraries, more job opportunities, easier filling of positions. Catch-22; but LISP is one of the finest languages ever invented.

      "Lisp [...] is the only computer language that is beautiful" -- Neal Stephenson

    39. 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."
    40. Re:what does open mean? by geniusj · · Score: 1

      I can't imagine writing anything in Java that I was thinking of writing in C. If I'm going to write it in C, it's because I want the program to do exactly what I tell it and not play games with me behind the scenes (garbage collection, VM segfaults, VM bugs, etc.) Of course, the kernel is backing it, but I've had far better luck with kernels than I've had with JVMs.

    41. Re:what does open mean? by PhrostyMcByte · · Score: 1

      Did what I said really come off as criticism or antagonistic? It certainly wasn't meant that way. Is anything I said *wrong*?

      I do nearly all my coding in C and C++. There are plenty of things to criticize them on, but having a standard is not one of them. Clearly there are Open Source stacks for C, and clearly Open Source development is possible in C. Nobody is debating that. My only point was that there is no "official" implementation of it.

      I can understand them not including C++, because it is a complex beast that not many have the patience or time to get good with. But C is easy -- I doubt they would have had trouble finding someone competent to represent it. So there must be some other reason. That reason is all I was trying to think of.

    42. Re:what does open mean? by DerWulf · · Score: 1

      "How it works" ... that's lunacy ... I know full well HOW it works it's just that doing manual memory allocation is beneath me. Sort of like how I know how to clean the office yet it's not the best use of my time. C guys always acting like malloc() is rocket science when in actuality it's the sort of mindless book keeping that any programmer worth a damn (and any human being with a shred of self worth, actually) will avoid like the plague.

      --

      ___
      No power in the 'verse can stop me
    43. Re:what does open mean? by PeanutButterBreath · · Score: 1

      By "read" do you mean read aloud?

      Beyond that, I think the most you can say is that Python seems more approachable due to its relatively simplistic syntax. That doesn't translate to "readability" in terms of understanding the code though. Picking up on syntactical conventions is a fairly superficial aspect of learning to read code.

    44. Re:what does open mean? by Jartan · · Score: 1

      It's probably a mistake of the submitter. Calling those five "the 5 major" is most likely his own personal bias (ie he's wrong). For the panel it was probably excluded because it's too different than the others.

    45. Re:what does open mean? by Deanalator · · Score: 1

      Hey, how are those implicit type conversions treating you? What? Different on every OS, architecture, and C implementation in existence?

      How many C programmers do you think there are that really understand the difference between an int, a size_t, and a function pointer? THAT is what I call playing games behind the scenes, and in C it's fucking dangerous, because if you mess that up, it's straight to arbitrary code execution.

    46. Re:what does open mean? by vjoel · · Score: 1

      It's just like those old Budweiser ads (tastes great/less filling) modulo the scantily clad women duking it out in a swimming pool.

      The remainder when divided by scantily clad women is an intriguing concept. Please do explain...

      --
      What part of `yes no` don't you understand?
    47. 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.

    48. Re:what does open mean? by derGoldstein · · Score: 1

      I was referring to the "there's more than one way to do(obfuscate) it" part. Even in human languages, the ones where you only need a small set of basic vocabulary in order to communicate are much easier to learn and use.

      PHP has this in common with Perl. You have 15 tools to do the same job, and each with its own keyword(reserved word). An easy way to figure out if a language is going to be a pain to use and maintain is look up its reserved words list. Another is to have two different programmers write the same program and compare the two -- the more the two programs differ, the more of a hassle it'll be.

      And no, I didn't mean "read aloud", although there's also that. I don't consider this particularly readable.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    49. Re:what does open mean? by derGoldstein · · Score: 1

      Two things came to mind as I read that:
      First -- Is "modern" C++ (with STL and possibly boost) a larger beast than "modern" Java? Haven't they both been inflated to the point that 50%+ of the language is deprecated, and whenever you bring one of them up you have to "be more specific" about "which C++" or "which Java" you're referring to?

      Second -- I use both C and C++ for different needs, and while it's true that C can be "kept simple" in some environments, any project of meaningful scale will become a nightmare to maintain/debug. Whenever I have a choice to skip-to-C++ (usually in embedded programming, where speed and program size are still a big issue) I do so just to I can use containers and avoid throwing pointers around. While it maybe possible to argue that C is simpler, it's also one of the languages that makes it the easiest thing in the world to shoot yourself in the foot with a 12-gauge. I'll use C when there's no other choice (again, embedded systems), but I'll switch to C++ as soon as the architecture is large/fast enough to support it.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    50. Re:what does open mean? by Anonymous Coward · · Score: 0

      Wow - I wish I understood even one thing that you wrote here. You sound so smart.
      I have tried to do ASM but man no matter how many tuts, books or whatever I digest I just don't get it! :(

    51. Re:what does open mean? by geniusj · · Score: 1

      How many C programmers do you think there are that really understand the difference between an int, a size_t, and a function pointer?

      Probably more than you think there are, but I suppose I only know good ones working on high profile projects.

      THAT is what I call playing games behind the scenes, and in C it's fucking dangerous, because if you mess that up, it's straight to arbitrary code execution.

      It's a trade-off I'm willing to make. Especially with all of the stack/heap execution prevention, address space randomization, etc that's out there now.

      I'm just not a big fan of Sun's JVM. I've seen large bugs open with it for years that would've been addressed long ago in a high profile open source project such as gcc or FreeBSD (or GNU) libc. I'd rather not be held hostage by a vendor like that. Especially when OpenJDK seems to be != to Sun's shipping JDK. I could go on and on about other issues I have with it (forced GC, unpredictable performance due to GC, an encouraged programming method that makes processing of large streams very slow, etc), but I'll leave it at that.

    52. Re:what does open mean? by Anonymous Coward · · Score: 0

      Spoken like someone who doesn't actually know how to use malloc very well.

    53. Re:what does open mean? by Trogre · · Score: 1

      They have an "official" implementation, but nothing like the rather rigorously specified ISO C standard.

      Oh, you mean like OOXML?

      *ducks*

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    54. Re:what does open mean? by gr8_phk · · Score: 1

      LISP has much higher-level capability than C, but the syntax looks like a super-duper low level piece of crap to me. When it comes to math, RPN is about as low level as you can get.

    55. Re:what does open mean? by PhrostyMcByte · · Score: 1

      First -- Is "modern" C++ (with STL and possibly boost) a larger beast than "modern" Java? Haven't they both been inflated to the point that 50%+ of the language is deprecated, and whenever you bring one of them up you have to "be more specific" about "which C++" or "which Java" you're referring to?

      Modern C++, even C++0x, does not have many deprecated features. pair, bind1st, etc. are the only things I can think of off the top of my head that will be entirely replaceable in C++0x (by tuples and bind/lambdas). C++'s mantra of "don't pay for what you don't use" makes a lot of deprecation unlikely -- for instance, a Java developer may see std::function as a sensible replacement for function pointers, but it can still have higher overhead so function pointers are here to stay.

      I don't know Java, I can't directly compare the two. I do know C# which I understand is very similar, so I would guess that C++ has many more unique patterns than Java. Run-time code is only part of it, in C++ -- once you learn that, you've got a very different compile-time feature set to master. And then you've got even crazier things like Fusion, which blur the line between run-time and compile-time. Most C++ devs, 10 years into learning it and using it for big real-world projects, will still acknowledge that they don't know it completely and be amazed at some new technique they see.

      Second -- I use both C and C++ for different needs, and while it's true that C can be "kept simple" in some environments, any project of meaningful scale will become a nightmare to maintain/debug. Whenever I have a choice to skip-to-C++ (usually in embedded programming, where speed and program size are still a big issue) I do so just to I can use containers and avoid throwing pointers around. While it maybe possible to argue that C is simpler, it's also one of the languages that makes it the easiest thing in the world to shoot yourself in the foot with a 12-gauge. I'll use C when there's no other choice (again, embedded systems), but I'll switch to C++ as soon as the architecture is large/fast enough to support it.

      I usually skip straight to C++ too. I think it can usually accomplish the same thing C can, but more easily and/or more efficiently. But I also think it doesn't make much difference in management and maintainability of large-scale projects. When you get to that level, it's more about how you organize your code than how you implement it.

    56. Re:what does open mean? by MindStalker · · Score: 1

      Sounds almost like cross platform is really the goal here. C++ is cross platform but the pitfalls in moving from platform to platform are much larger.

    57. Re:what does open mean? by jhol13 · · Score: 1

      Threads.

      C99 has no concept of a memory model (C++ committee is thinking about it and will probably end up in something better than in Java due to hindsight).

      POSIX threads definitely are not pert of C99 and whether it defines the memory model well enough is up to debate, it does not for C++.
      http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/

    58. 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.
    59. Re:what does open mean? by alexandre_ganso · · Score: 1

      Like that?

      main(O){int I,Q,l=O;if(I=l*4){l=6;if(l>5)l+=Q-8?l-(Q=getchar()-2)%2:l;if(Q*=2)O+="has dirtiest IF"[(I/-Q&12)-l/Q%4];}printf("%d\n",8+O%4);}

      (Came from kopczynski.c, at http://www0.us.ioccc.org/years.html)

    60. Re:what does open mean? by bsDaemon · · Score: 1

      use English;

    61. Re:what does open mean? by sce7mjm · · Score: 1

      Java is static at compile time. However class files can be chucked around and objects instantiated from them using the reflection classes over networks and across machine types. Kind of like a CORBA implementation that can do the whole spec ( you just have to write most of the code to do it but the functionality exists). I have often wondered if this was the true purpose of the java byte code/JIT method, when those Java desktop boxes appeared I always assumed they would run like a thin client, big database objects on a server, upgradable client applications on the thin client whilst running, no need to stop and start the program. So kinda mega dynamic. Manages to be horrible at the same time.

    62. Re:what does open mean? by chromatic · · Score: 1

      Are you actually saying there's no difference in readability?

      You said "understandability", which in my experience depends more on the choice of appropriate identifiers, domain knowledge, encapsulation, appropriate factoring, documentation, testability, adherence to local coding standards, the use of appropriate libraries, design patterns, organization, tool support, familiarity with data structures and algorithms, and use of language idioms than it does on the use of whitespace versus braces, the presence or absence of sigils, or first-class support for lambdas or regular expressions.

      As another poster wrote, syntactical considerations are superficial concerns.

    63. Re:what does open mean? by laejoh · · Score: 1

      You could also make a case for COBOL.

      It's called something else.

    64. Re:what does open mean? by howlingmadhowie · · Score: 1

      i think there's a lot of truth in what you say.

      i'd personally like to add that lisp doesn't work the way i imagine computers work. you look at C code and you think "on this means put this in that register and then save that to the stack" or whatever. but with lisp, unless you've seen an interpreter and worked out how it works (which is actually a lot easier than a C compiler because of things like RP notation), you're swimming. as gerald jay sussmann said, "lisp is the fixed point of the solution of the lisp eval and apply functions". and his audience said "wtf?"

    65. Re:what does open mean? by Anonymous Coward · · Score: 0

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

      Bah; perl's a weak hack of C, shell and awk; hacked together to do everything in 20 million different, mutally incompatible ways. The only reason why anybody uses it is masochism, the amount of (usually poor and undocumented libraries) or they're too lazy to learn a better language. Adding hashes (in a very manky way) to the language does not make it a high level language.

      Head of the Perl Haters club

    66. Re:what does open mean? by Anonymous Coward · · Score: 0

      Erm, no. Say whatever you want about C - for example, say it's not assembly, something I'll quite vehemently agree with -, but it's NOT a high-level language.

      High-level languages are things like Haskell or Smalltalk. Maybe perl if you consider CPAN.

      PHP is a mid-level language, and I'd put LISP on there, too.

      C is low-level.

      But hey, that's not a BAD thing. And Assembly, FWIW, is something I'd consider below "low-level", myself.

    67. Re:what does open mean? by ADT7 · · Score: 1

      (this comment didn't really go anywhere, but I'll post it anyway...)

      I'm glad you did, as I've never seen the book you linked to before... and now I'm going to be buying it.

      As in my mind, it teaches C++ the "right" way, at least for me, who is trying to move from C#/Java into C++.

    68. Re:what does open mean? by drinkypoo · · Score: 1

      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.

      Uh, what?

      The terms high-level and low-level are inherently relative. Some decades ago, the C language, and similar languages, was most often considered "high-level", as it supported concepts such as expression evaluation, parameterised recursive functions, and data types and structures, while assembly language was considered "low-level". Many programmers today might refer to C as low-level, as it lacks a large runtime-system (no garbage collection etc), basically supports only scalar operations, and provides direct memory addressing. It therefore readily blends with assembly language and the machine level of CPUs and microcontrollers.

      "High-level programming language." Wikipedia, The Free Encyclopedia. 22 Jul 2009, 08:08 UTC. 22 Jul 2009 <http://en.wikipedia.org/w/index.php?title=High-level_programming_language&oldid=303495317>.

      There is no hard definition for high level language. Maybe you could find some more concrete criteria?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    69. Re:what does open mean? by Lord+Ender · · Score: 1

      If you will read my post, you will see that I explained which definition of "high-level" I was referring to.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    70. Re:what does open mean? by Rockoon · · Score: 1

      Low level doesnt mean feature-light, and I believe your confusion here extends precisely from the people telling you that C is low level. You have been trying to rationalize the popular misconception to yourself and the end result is that PHP is mid-level and ASM is lower-than-LOW within your rationalization.

      A low level language provides an abstraction which is very close to, when not exactly equivilent to, the actual instruction architecture.

      --
      "His name was James Damore."
    71. Re:what does open mean? by DuckDodgers · · Score: 1

      The trade-off for all those parenthesis is metaprogramming. Writing C code that changes other C programs is possible but not easy and rarely useful. Because LISP (and the subset of LISP called Scheme) syntax is so simple, it's very easy to write code that takes other LISP and Scheme programs and modifies them.

      Honestly, I'm not working on any projects where I think that feature would come in handy. But it's definitely a technical edge that LISP offers and a lot of other languages don't.

    72. Re:what does open mean? by DuckDodgers · · Score: 1

      If you need real-time control of your code, or fast startup, or low memory use, or high performance in general, C blows Java out of the water hard enough to put it in orbit.

      But there are thousands of cases where Java code can replace C code, and I haven't seen a VM segfault or VM bug in Java ever. Too much memory use? Sure - although that's always been the result of sloppy developers, who can just as easily put the equivalent of while (true) { malloc(5000); } in their C app. Java VM segfault? Never.

    73. Re:what does open mean? by DuckDodgers · · Score: 1

      I learned C++ years ago from a very simple book (which was perfect for my newbie self) that walked you through new, cout, struct, pointers, etc.... but didn't mention STL at all. I haven't used the language professionally in four years and I would probably hang myself if I read much of my old code.

      Can you or anyone suggest a good introduction to C++ that includes a very solid introduction to STL and/or Boost? I especially prefer books that have sample exercises with each section, I think that's an enormous help to learning. But I'll consider anything. Thanks.

    74. Re:what does open mean? by JoeShmoe950 · · Score: 1

      You're just making stuff up now. In no way are PHP and LISP mid level languages. http://en.wikipedia.org/wiki/Low-level_programming_language -- Only machine code and ASM are low level languages, everything else is high level.

      LISP is about as high level as you can get, with garbage collection, macros, and more abstractions than most other languages combined.
      PHP, likewise, is interpreted, and even it's array datatype is quite a bit above the machine level memory array, supporting dynamic resizing and the like.

      It's not about what you consider "low-level" and "high-level." There are definitions for these terms...

    75. Re:what does open mean? by geniusj · · Score: 1

      If you need real-time control of your code, or fast startup, or low memory use, or high performance in general, C blows Java out of the water hard enough to put it in orbit.

      I guess my point was that if I didn't need any of those things, then I wouldn't be thinking about spending the extra cycles writing the code in C to begin with. But if I *have* decided that I need that level of performance/control, there's no way I'm going to go to Java as my language of choice in that situation.

      But there are thousands of cases where Java code can replace C code

      Sure.

      and I haven't seen a VM segfault or VM bug in Java ever.

      Consider yourself lucky.. Or perhaps I'll consider myself unlucky :-)

    76. Re:what does open mean? by berend+botje · · Score: 1

      Perl took the best from C, shell scripting, awk and grep and extended it even further. It allows 20 million ways to get results. The number one reason to use perl is that it gets the job done. There is a cubic ass-ton of high quality modules available, for free. The way the language incorporates useful datastructures, regular expressions, ties, closures and a host of other contructs make it a very pleasant high level language

      Head of the Perl Lovers club

      You can't have it even if you pry it from my cold dead fingers

    77. Re:what does open mean? by FishWithAHammer · · Score: 1

      I've worked with C for almost ten years.

      I will refer you to my .sig now.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    78. Re:what does open mean? by derGoldstein · · Score: 1

      (I should probably keep this in a text file on my desktop, it's a "batch of advice" which I frequently have to re-write, and it doesn't change much)

      I mentioned the term "modern C++" above, though really it's better to call it "sane C++". By this I mean C++ that won't drive you nuts trying to figure out what went wrong, when something inevitably *will* go wrong. Practices that make programs more safe, and introspective.

      If you already know C++ (the foundations, I mean), it'll be easier to shift to STL-dependent C++. If you're completely new to C++, these resources will still be very important, but you'll need to learn the lower-level stuff in parallel, so you can understand how STL containers/templates are built from the inside (which is important when you need to choose which ones to use).

      A website that should very often sit in the background while you're coding/learning: C++ FAQ Lite. Following these rules will make it much easier to design and maintain your programs.
      Another very useful website: cplusplus.com. It's a huge reference site, with a lot of examples.

      The books I'd recommend:
      Accelerated C++ -- higher-level to lower-level approach.
      C++ Coding Standards -- similar to the C++ FAQ Lite in the nature of the advice, but covers more ground and is probably better organized.
      C++ Common Knowledge -- This is for a few months down the line, delves into some nuances.

      Software:
      Windows: Visual Studio C++ Express -- You can force it to stick to ANSI C++. It's still the best IDE for C++ on windows (IMO).
      Linux/Mac: Eclipse, probably Eclipse IDE for C/C++ Developers. Remember though that you can tweak Eclipse into just about anything.

      If you're writing end-user applications, keep in mind two frameworks: Qt and wxWidgets.

      Quick note about Boost: If you can create a structure using some combination of STL components, do that before resorting to Boost. Boost is highly abstracted, and you should only use the parts which would otherwise be extremely complicated to create from scratch (like regexp).

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    79. Re:what does open mean? by K.+S.+Kyosuke · · Score: 1

      You certainly mean "people unable to set up their text editor in such a way that they would never have to count parentheses again", because there is no actual need to count anything when writing Lisp code if your IQ is over 80 or so.

      --
      Ezekiel 23:20
    80. Re:what does open mean? by K.+S.+Kyosuke · · Score: 1

      "Lisp was much slower and more memory-hungry than Fortran"

      MacLisp on PDP-10 was actually faster than Fortran on PDP-10. Many people abandoned Fortran a went for MacLisp precisely because of speed. (Today, as far as heavy number crunching is concerned, I would direct the attention of others towards Stalin Scheme.)

      These days, Lisp's biggest drawback, at least for Windows development, is that there's no good, free Lisp compiler for Windows.

      Well, SBCL and Clozure CL don't count?

      --
      Ezekiel 23:20
    81. Re:what does open mean? by nurb432 · · Score: 1

      Perhaps they meant scripting languages..

      I agree, C should be on the list, so is pascal, FORTH, Fortran... basic, cobol... assembler... list goes on and on...

      --
      ---- Booth was a patriot ----
    82. Re:what does open mean? by Rockoon · · Score: 1

      Only machine code and ASM are low level languages, everything else is high level.

      Thats not exactly true. There are other low level languages.. they just arent anywhere near as popular as just about anything else..

      For example there is the language called 'TERSE' which is a low level x86 language that had gotten some good reviews about two decades ago, and had actualy become slightly popular for a short time.
      .

      --
      "His name was James Damore."
    83. Re:what does open mean? by feandil · · Score: 1

      ...without burdening the programmer with the manual management of memory allocation and pointers...

      that's all nice and good for your web programmers, but when you have 80MB of ram available, in two different areas with different performance on each you are very happy to be able to do your own memory allocation. all these talks about "high level" language assume that everybody is only programming applications that do not need to worry about memory issues. but try to program an operating system or a video game without "worrying" about it, and we'll see where you go. the day they give these languages the same flexibility that C++ provides I will stop using it. until then, C++ is king, and scripting languages are useful, well... for scripting

    84. Re:what does open mean? by DuckDodgers · · Score: 1

      Thanks for the list. The books are on my Amazon Wishlist and the pages are bookmarked. I already have Eclipse, my regular job is Java development.

  6. No C or C++ by Anonymous Coward · · Score: 0

    Isn't C and C++ open source now? Or at least as open source as Java is?

    1. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      Isn't C and C++ open source now? Or at least as open source as Java is?

      Indeed they are, as a quite a lot of other languages. I suppose they are debating which kid's language is best, really ;)

      Not that I care, in my view, *all* languages fall short. And I don't even think my list is unreasonable!

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    2. Re:No C or C++ by SanguineV · · Score: 1

      So post your list and let the debate begin!

    3. 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.
    4. Re:No C or C++ by serviscope_minor · · Score: 1

      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)

      The C++ template error messages aren't tied to the grammar. The template language is turing complete, and the error messages you get are a complete stack trace along with all the data on the entire stack.

      --
      SJW n. One who posts facts.
    5. Re:No C or C++ by bertoelcon · · Score: 1

      Because Intercal is the real winner.

      --
      Anything can be found funny, from a certain point of view.
    6. Re:No C or C++ by maxwell+demon · · Score: 1

      No, the clear winner is Unlambda. With Shakespeare as a close second (gives a whole new meaning to literate programming!)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    7. Re:No C or C++ by jhol13 · · Score: 1

      You forgot threads (and the memory model needed for that, see e.g. http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/). Very difficult task to do well, that is why most languages to not even attempt.

      Some others worth to consider are libraries (XML, etc.), documentation (Java has good, others have/are catching up), Javadoc and perhaps even support for things like UML, ctags, etc.

    8. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      You forgot threads (and the memory model needed for that, see e.g. http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/). Very difficult task to do well, that is why most languages to not even attempt.

      Some others worth to consider are libraries (XML, etc.), documentation (Java has good, others have/are catching up), Javadoc and perhaps even support for things like UML, ctags, etc.

      True about Memory model, granted. Libraries, definitely *not*. Libraries should exists independently of the language, so that they can be replaced if they suck (see Java for an example of how bad it can get). I don't regard this as *critical*, though, as library implementations are passable.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    9. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      Concepts was going to be the cure for that in C++. Now, alas, I am reading that concepts are not included in the next standard. A sad day indeed.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    10. Re:No C or C++ by Anonymous Coward · · Score: 0

      Well it is good that you tried to state some objective criteria here, but I think that you forgot the most important one:

      The best programming language will be of course that which will, in absolute objectivity, give most fun to its users.

    11. Re:No C or C++ by Anonymous Coward · · Score: 0

      Most (obviously not MMU as it's a managed language) of these points are well catered for in Maude.

      For any non-trivial project, I suspect that good GC is better overall (reliability), and gets better the more semantic information you can preserve wrt to GC (ie. eventually GC gets as good as manual MMU).

    12. Re:No C or C++ by JasterBobaMereel · · Score: 1

      ...try Lua .... it covers *most* of these ....

      --
      Puteulanus fenestra mortis
    13. Re:No C or C++ by goldmaneye · · Score: 1
      Here is why I think parts of your list are unreasonable.
      1. "No unnecessary overhead" and "sensible error messages": I'm not sure these are concrete enough to qualify as features. No language will probably ever satisfy everyone's opinion of "necessary overhead," or "sensible error messages." Some error messages are admittedly worse than others, but what may seem sensible to some will frustrate others. The same is true of language overhead.
      2. "No dependency on a virtual machine": as the performance of virtual machines begins to rival that of "bare iron" execution for high-level languages, the advantages of the one over the other diminish accordingly.
      3. "everything an object" and reflection: this is nitpicking, but it seems that what you really want is some method of treating data objects uniformly and inspecting or coercing their type later on. As the authors of "Structure and Interpretation of Computer Programs" (http://mitpress.mit.edu/sicp/full-text/book/book.html) demonstrate, you can do this in LISP by treating everything as a list, a native type of that language, and providing the appropriate constructors, accessors, and predicates for working with lists that represent different types of data (in the book, they use integer, rational, real, and complex numbers as their type hierarchy).
    14. Re:No C or C++ by DuckDodgers · · Score: 1

      (Off topic). I always liked the saying, "atheism is a religion the same way that not collecting stamps is a hobby". Also, people often interpret agnosticism to mean "I don't know whether a God exists", which is indecisive. But the real meaning of agnostic is "It is not possible to know for certain that God does or does not exist", and that's a decisive assertion.

    15. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      (Off topic). I always liked the saying, "atheism is a religion the same way that not collecting stamps is a hobby". Also, people often interpret agnosticism to mean "I don't know whether a God exists", which is indecisive. But the real meaning of agnostic is "It is not possible to know for certain that God does or does not exist", and that's a decisive assertion.

      Yeah, that's what I wanted to put in my quote. Unfortunately, the length limit is pretty strict :) So I had to go with just assuming people new the "modern" meaning of an agnostic=fence sitter, not the original agnostic=acknowledge that most questions are at the core indeterminable.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    16. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      Here is why I think parts of your list are unreasonable.

      1. "No unnecessary overhead" and "sensible error messages": I'm not sure these are concrete enough to qualify as features. No language will probably ever satisfy everyone's opinion of "necessary overhead," or "sensible error messages." Some error messages are admittedly worse than others, but what may seem sensible to some will frustrate others. The same is true of language overhead.

      By unnecessary overhead I meant that there should be no overhead which isn't required by the job at hand, unless explicitly requested. So,e.g, no mandatory array bounds check.

      As for the sensible error message: To make it more precise: The error message should at least identify the offending token or construct uniquely, and should be able to have enough information that it doesn't take kilobytes of text to write out the error message. But yeah, I suppose that is not strictly quantifyable, I just feel this is a reel problem with C++ -- and the gcc implementation is just horrid (but work is underway to fix that, at least)

      "No dependency on a virtual machine": as the performance of virtual machines begins to rival that of "bare iron" execution for high-level languages, the advantages of the one over the other diminish accordingly.

      No, not at all. The virtual machine incurs several overheads, and only one of them is runtime. Virtual machines are in reality processors running on top of processors, compounding the many tasks including porting, debugging, memory management and so on. E.g, a Java program does not yield a meaningful core dump; it does not manage system memory properly and many excellent debugging tools are just MIA due to the virtual machine.

      "everything an object" and reflection: this is nitpicking, but it seems that what you really want is some method of treating data objects uniformly and inspecting or coercing their type later on. As the authors of "Structure and Interpretation of Computer Programs" (http://mitpress.mit.edu/sicp/full-text/book/book.html) demonstrate, you can do this in LISP by treating everything as a list, a native type of that language, and providing the appropriate constructors, accessors, and predicates for working with lists that represent different types of data (in the book, they use integer, rational, real, and complex numbers as their type hierarchy).

      That is fine, as long as this includes strings so that stuff like "asasas".to_upper() works or 2.next_in_sequence() works. I do not know LISP enough to know if this is possible.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    17. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      ...try Lua .... it covers *most* of these ....

      It fails all the static ones. Lots and lots of script languages passing the other tests, e.g. ruby, python and I believe even ECMAscript.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    18. Re:No C or C++ by jhol13 · · Score: 1

      Java has bad libraries???

      I bet you can tell a language which has better - or maybe not as you think they should not be part. I totally disagree on that, I do not want to reinvent the wheel.

    19. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      Java has bad libraries???

      I bet you can tell a language which has better - or maybe not as you think they should not be part. I totally disagree on that, I do not want to reinvent the wheel.

      Libraries are great! I love boost, ruby-forge and all the rest. But *standard libraries* are problematic.

      Java's standard library is huge. Consequentially, it has some poorly thought-out classes, methods and even frameworks (Vector, Thread::cancel() (or was it stop?), AWT). But because the libraries are *standard* libraries, they will live on forever. There is a name for that: CRUFT. Cruft is bad.

      Much better to have libraries separate, and have programs depend on a library in a sensible way (which, in Java, is much harder than it should be because the standard class loader is more braindead than a school of shrimps).

      And it's not just Java. C's (and C++) standard library sucks in major ways, too! For C, I think strncpy takes the crown as the most useless function in a standard library ever. For C++, I have always had a special hatred for std::vector<bool>.

      I hope I have explained my motivations better now.

      As an afternote: What should be in a standard library is stuff that often gets parsed between libraries: strings, vectors (ArrayList for you Javapeople due to an early blunder), n-tuples, perhaps threads and that sort of thing. That makes it possible for libraries to interact nicely without too much conversion.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    20. Re:No C or C++ by jhol13 · · Score: 1

      I humbly disagree, I am a strong supporter of big standard libraries.

      For example let's take Python. There is no standard GUI library (Tk, IMHO, is not good enough - and nobody uses it). Therefore e.g. Meld is impossible(?) to get to work in Windows. Not good.

      Thread::stop() is deprecated, AWT is not designed to be used (directly). Vector, OTOH, is better than C++ Vector (e.g. insert is thread safe) and I fail to find big problems in it WHEN USED FOR WHAT IT IS DESIGNED FOR. It is not an array nor a Map.

      Nobody forces you to use the standard libraries if they are not appropriate for your use case! Sure they add to bloat but that is with todays computers completely immaterial.

      I agree the Java class loader is idiotic although it has improved.

    21. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      I humbly disagree, I am a strong supporter of big standard libraries.

      For example let's take Python. There is no standard GUI library (Tk, IMHO, is not good enough - and nobody uses it). Therefore e.g. Meld is impossible(?) to get to work in Windows. Not good.

      Thread::stop() is deprecated, AWT is not designed to be used (directly). Vector, OTOH, is better than C++ Vector (e.g. insert is thread safe) and I fail to find big problems in it WHEN USED FOR WHAT IT IS DESIGNED FOR. It is not an array nor a Map.

      Nobody forces you to use the standard libraries if they are not appropriate for your use case! Sure they add to bloat but that is with todays computers completely immaterial.

      I agree the Java class loader is idiotic although it has improved.

      As for Python: It doesn't matter whether it is a standard library. I do not know or use python much, but for C++ and ruby there is Qt, which is cross-platform and much better than anything Java has to offer (I lie: Qt is available for Java, too). It might be available for Python, too, who knows.

      One of the problems is that even if I discard the entire standard library, I still pay the price for loading that huge, steaming pile of junk! And for what? What is the advantage of a standard library compared to just a library? That you save 10 minutes in the beginning of developing an application? Who cares?

      As to the specific points:

      AWT was designed to be used, directly. It is simply a steaming pile of crap, as is both SWT and Swing (havn't actually tried QtJambi, but then that is not a standard library). A lot of it is, I admit, due to the fact that Java does not really lend itself to GUI programming, because it lacks resource management support, and GUI programming has a lot of resources. That leaves you with either a lot of anonymous derivations which is Java's excuse for lambdas, or the finally hell. Or you can go the Qt route and build a parallel graph for managing those resources.

      Vector: How often do you really need thread synchronized vectors? In the few cases where you might be tempted, a n-ary or binomial queue is probably a better choice anyway. Much better to have thread synchronization to be an option, which is also the route that the Java standard library developers chose later on.. But the cannot remove Vector now, without breaking existing programs. Fun, eh? So now every newbie has to be told: You want a vector? Look at ArrayList. CRUFT. This could have been avoided by having this functionality as a perfectly normal library: Old programs would depend on libcollection.so.1 and new ones on libcollection.so.2. Package management would handle the dependencies and everything would just work, without the cruft. As a bonus, porting to small-factor devices wouldn't have required a scaled-down standard library.

      Sorry, I do go on. In any case, once you get to know and learn 5-10 languages and their standard library or so, I'm sure you will see my point.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    22. Re:No C or C++ by jhol13 · · Score: 1

      I mean with thread safe that insert operation in multithreaded C++ is *undefined* (i.e. can and does crash if some other thread is reading from it at the same time).

      BTW, queue is hugely slower when most common access is read or update, especially if several threads are doing it simultaneously.

      Your only complaint is bloat into which I will not go again.

    23. Re:No C or C++ by EsbenMoseHansen · · Score: 1

      I mean with thread safe that insert operation in multithreaded C++ is *undefined* (i.e. can and does crash if some other thread is reading from it at the same time).

      yep, exactly like every collection in Java including Vector, provided that no sync. has been done. So? My point is that this *expensive* guarantee is usually not wanted, which is why the library designer changed course an made the collection library. To quote

      Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw ConcurrentModificationException on a best-effort basis. Therefore, it would be wrong to write a program that depended on this exception for its correctness: the fail-fast behavior of iterators should be used only to detect bugs.

      In other words, it's an expensive, best-effort mechanism that garantees nothing. Or in other words: It is broken by design. Like everyone, the designers made a (common) mistake, and endeavored to fix it. But truly fixing it is not possible because the error is in the std lib. Just like strncpy()

      BTW, queue is hugely slower when most common access is read or update, especially if several threads are doing it simultaneously.

      not if reading front the top and inserting somewhere well-defined is what you want... which is usually the case for such a structure *shared between threads*. Consider what insert at position 5 would mean in a multithreaded case: the inserted element could be anywhere! Find->index would be meaningless without more synching, too, since another thread might insert between the find and the read. I'm not saying that a shared vector with insert and reads never occurs, only that it is rare. Also, as you should now, sync, at the methods of vector is almost certainly the wrong place to do it.

      Your only complaint is bloat into which I will not go again.

      In short, it is all pain, no gain. In Java, it is a symptom of a (probably intentionally) poor support for calling C and C++ interfaces.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  7. My favorite by kurt555gs · · Score: 1

    My favorite language was Z80 ASM. That would be as useful now as a kick stand on a bass boat.

    --
    * Carthago Delenda Est *
    1. Re:My favorite by Binestar · · Score: 1

      My favorite language was Z80 ASM. That would be as useful now as a kick stand on a bass boat.

      http://www.guitarsite.com/news/and_finally/giant_guitar_boat/

      --
      Do you Gentoo!?
  8. What is an open source language? by Anonymous Coward · · Score: 0

    WTF is an open source language?

    Are we talking language spec, implementations, libraries, usage in open source apps...

    Why were those particular languages picked?

    1. 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
    2. Re:What is an open source language? by Deanalator · · Score: 1

      Hey! No debate forking!

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

  9. No C#? by Anonymous Coward · · Score: 0

    I guess it wouldn't be a fair competition if they included C#. The rest of them would just concede and go home.

    1. Re:No C#? by Anonymous Coward · · Score: 0

      On Wednesday night at 7PM Pacific, representatives of the 5 major open source languages

      If the criteria was "open source", whatever that exactly means in this context, C# definitely wouldn't make it. (No, mono doesn't count)

  10. What the heck is an 'Open Source Language' ? by ivan_w · · Score: 0, Flamebait

    And I'm not going to go into the Open Source vs Free Software debate !

    Do they mean : Open specification ?
    Or is it : With an Open Source/Free Software implementation ?
    Or again : Used to write code that is Open Source/Free Software ?

    Because for some or all of these, there are proprietary specifications, there are proprietary implementation and they are used to write proprietary code too..

    And yeah.. Why only present those Web oriented languages (although Perl could probably be taken out)..

    Looks like large scale trolling to me !

    --Ivan

    1. Re:What the heck is an 'Open Source Language' ? by rwa2 · · Score: 0

      And yeah.. Why only present those Web oriented languages (although Perl could probably be taken out)..

      Not that I've RTFA, but I'll bite...

      • one, they're languages that people are using with corporate backing
      • two, the web and "service oriented architectures" are where a lot of programming is going to take place in the future. You won't have programs running on individual computer systems so much anymore, but rather networked programs talking to other networked programs to get stuff done.
      • PERL was pretty web-oriented, back in the day... Slashdot was all perl at some point. Also I suppose its inclusion might represent or at least bridge to a lot of systems administration scripting languages, like sh, tcsh, maybe even tcl/tk which people wouldn't exactly take seriously for application development nowadays.
    2. Re:What the heck is an 'Open Source Language' ? by jgrahn · · Score: 1

      ... the web and "service oriented architectures" are where a lot of programming is going to take place in the future. You won't have programs running on individual computer systems so much anymore, but rather networked programs talking to other networked programs to get stuff done.

      Also, in the future we will commute to work in Jetsons-style flying cars. I realize it is "in" right now, but it serves no sensible purpose for most programs, (except to lock the user to his service provider).

    3. Re:What the heck is an 'Open Source Language' ? by ivan_w · · Score: 1

      And also.. how in the world can a computer "run" if no program is running ?

      --Ivan

  11. Everybody knows what the best programming language by Anonymous Coward · · Score: 0

    PHP, of course.

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

    1. Re:Just do it already. by Anonymous Coward · · Score: 0

      BTW, it's Stihl.

    2. Re:Just do it already. by Anonymous Coward · · Score: 0

      There are degenerate cases, like Ook!, where you can prove Turing Completeness, but where it's also obvious that nobody should be touching this stuff for serious use. These languages are exceptions (and usually designed specifically to be exceptions), but demonstrate that there is value in choosing one language over another.

    3. Re:Just do it already. by mindbrane · · Score: 1

      Husky, 36" bar, skiptooth chain.

      --
      ideopath @ play
    4. Re:Just do it already. by gardyloo · · Score: 1

      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.

      If you worked so much with chainsaws, why don't you write L1 vs L2 vs Log?

    5. Re:Just do it already. by belmolis · · Score: 1

      Heh, what a bunch of sissies. Real woodsmen use an axe. :)

    6. Re:Just do it already. by Myrddin+Wyllt · · Score: 1

      Heh, what a bunch of sissies. Real woodsmen use an axe. :)

      REAL woodsmen set the universal constants at the start such that the universe evolves to fell the tree they want.

      --
      [ ]Half Empty [ ]Half Full [x]Twice as big as it needs to be
    7. Re:Just do it already. by Myrddin+Wyllt · · Score: 1

      ... an argument over whether Stihl or Husquvarna chainsaws were best.

      That's just silly; everyone knows Victorinox chainsaws are best.

      --
      [ ]Half Empty [ ]Half Full [x]Twice as big as it needs to be
    8. Re:Just do it already. by Mikkeles · · Score: 1

      Real woodsmen build a fire around the tree (started with two sticks*) and beat the char on the bole off with a rock.

      (* faster if one of the sticks is a match.)

      --
      Great minds think alike; fools seldom differ.
  13. That's easy... by Theodore · · Score: 1

    It's Fortran...
    Except for when it's Cobol...
    If it's neither of them, then it's C.
    (every language after C is made to ameliorate one of the above three...)

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

    1. Re:little indeed. by dkleinsc · · Score: 1

      See, I think, having worked with all of those languages, that they all suck, but each sucks in different ways and thus each has their uses. The mistake a lot of folks get into is "This is the language I'm most familiar with, so it's the best language ever".

      Of course, the real contest will be the length of the language designers' beard:
      http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-languages-and-facial-hair-take-two.aspx

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
  15. 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 Anonymous Coward · · Score: 0

      Really? I heard he was a real d!ck though..

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

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

    3. Re:Rod Johnson by Galactic+Dominator · · Score: 1

      What about Rod Johnson's Perl necklace?

      --
      brandelf -t FreeBSD /brain
    4. Re:Rod Johnson by Anonymous Coward · · Score: 0

      You have obviously not worked with him.

  16. Odd... by Duncan3 · · Score: 1

    Why are people listed by where they work their day job, as if that has anything to do with it?

    --
    - Adam L. Beberg - The Cosm Project - http://www.mithral.com/
  17. 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.

    1. Re:the title of this post is flawed by Anonymous Coward · · Score: 0

      *ahem* Python is defined by it's C implementation. That implementation is the specification.

    2. Re:the title of this post is flawed by MikeBabcock · · Score: 1

      Although it also has some of the best external documentation both for existing features and PEPs.

      --
      - Michael T. Babcock (Yes, I blog)
    3. Re:the title of this post is flawed by jhol13 · · Score: 1

      Programming languages [...] cannot be "open source"

      For the last decade or so the major complaint of Java has been exactly that, "it is not open source".

      So I call your statement as a semantics-nitpicking-bullshit.

    4. Re:the title of this post is flawed by Phroggy · · Score: 1

      *ahem* Python is defined by it's C implementation. That implementation is the specification.

      Interesting. That's officially true of Perl 5 as well, and is one of the things they're changing in Perl 6. Perl 6 will be defined by the language specification, not by any implementation (and there will be multiple implementations that conform to the spec, we hope).

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    5. Re:the title of this post is flawed by guruevi · · Score: 1

      They probably mean 'open' languages. It's similar to open source. There are programming languages whose specifications are not fully published or not fully implementable by others for whatever reason (licensing, patents), only the publisher knows about all the language details (like say RealBasic, some instructional languages, the Visual series (Basic, J++) and Java-knockoff C#).

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    6. Re:the title of this post is flawed by buddyglass · · Score: 1

      I never knew that about Perl5 or Python. Now that I do, I've got to say that's one of the more stupid things I've heard recently. Defined by its C implementation...on what platform? Using what standard c library? Using what compiler? Essentially that means Python/Win32/VC may be a different "language" than Python/gclib/gcc in that it behaves differently due to some compiler or clib quirk.

      Madness!

    7. Re:the title of this post is flawed by Phroggy · · Score: 1

      The idea is that when somebody has a question about the behavior, and the documentation hasn't been written yet (or is out of date, or whatever), you can say "look at the source code, and that will tell you what the behavior is." This works for questions you've never even thought of, and hadn't ever considered documenting.

      When there is only one official implementation, and the implementation works well enough, then this approach kinda works. It's one step better than saying the specification is the behavior of the implementation, which is how HTML used to work. Even when a specification was published, nobody really appreciated the authority of the spec until HTML 4.01, and some still don't.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  18. 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.

    2. Re:There can be only one! by HomelessInLaJolla · · Score: 0
      --
      the NPG electrode was replaced with carbon blac
    3. Re:There can be only one! by blaizer · · Score: 1

      That's evolution for you. There's positive feedback for the use of popular languages. So the rich get richer.. and the poor languages die.

    4. Re:There can be only one! by wonkavader · · Score: 1

      I had my windows replaced a while ago. If the question is "which is the best tool for window removal?" And you could think of handsaws, sawsalls, wrecking bars or other prybars, etc, they had a clear answer:

      Hammers. All hammers. Nothing else is needed, though a screwdriver also seems to come in handy, though not for screws, more for poking things.

      Oh, and if you're putting in a replacement, you'll also need a caulking gun.

    5. Re:There can be only one! by tpholland · · Score: 1

      I say wrench.

    6. Re:There can be only one! by Myrddin+Wyllt · · Score: 1

      Should we also debate what's the best tool. A hammer, a screwdriver, or a wrench?

      I would go for a Swiss Army Chainsaw

      --
      [ ]Half Empty [ ]Half Full [x]Twice as big as it needs to be
    7. Re:There can be only one! by Anonymous Coward · · Score: 0

      and that one is of course python.

    8. Re:There can be only one! by hansamurai · · Score: 1

      Maybe he just watched Highlander 2 and really wanted there to be only one.

  19. 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.
  20. Haskell by Anonymous Coward · · Score: 0

    One haskell to rule them all

  21. Miller Lite by Ponga · · Score: 0, Flamebait

    php: " Tastes great! "
    python: " Less filling! "
    perl: " $_=_($_);$_+=$_; "

    1. Re:Miller Lite by derGoldstein · · Score: 1

      APL: (~RâSRâ.Ã--R)/Râ1â"âR

      (so pretty much like Perl...)

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    2. Re:Miller Lite by Anonymous Coward · · Score: 0

      java: "My goodness"+System.getSeparator()+" my Guinness!"

    3. Re:Miller Lite by Ponga · · Score: 1

      Flamebait!? Mod must be a perl programmer that got his butt hurt. WTF

  22. 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.
  23. C++ by Anonymous Coward · · Score: 0

    C++ is not in the debate because everyone already knows it's the best! (And you can't debate fact)

  24. Too bad Scala pisses all over these languages by melted · · Score: 1

    Seriously, all of this stuff is really old and tired. All of the cool kids are elsewhere.

    1. Re:Too bad Scala pisses all over these languages by Anonymous Coward · · Score: 0

      Scala? Is that where all the bat-shit crazy people went after they realized ruby wasn't as cool as they thought?

  25. PHP: Laura Thomson by Anonymous Coward · · Score: 0

    Is having php represented by a woman saying something about the language?

    Is it giving an unfair advantage to php?

    1. Re:PHP: Laura Thomson by Anonymous Coward · · Score: 0

      PHP needs all the advantages it can get ...

    2. Re:PHP: Laura Thomson by Phroggy · · Score: 1

      I think I may have met her a couple years ago, at a previous OSCON. I was surprised to find myself speaking to someone who knows PHP very well, and doesn't think it sucks.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  26. You can always tell the vacation cabin owners by Latent+Heat · · Score: 1
    You can always tell the tourists apart from the pros.

    The tourists (i.e. out-of-state vacation cabin owners) all have those orange hard hats with the built-in hearing protectors with "Husqvarna" across the front.

  27. Caffine by davidwr · · Score: 1

    Java keeps you up at night in more ways than one!

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  28. 5 similar languages by Anonymous Coward · · Score: 0

    They should have gone with a bit more diversity in their language selection. All five of the listed ones are pretty similar: imperative, side-effects-based programming.

    1. Re:5 similar languages by SanguineV · · Score: 1

      If they want a heated debate then going for closely related groups is always best. Far more vitriol and animosity between groups who have only minor differences than groups with almost nothing in common.

  29. How about .NET? by Anonymous Coward · · Score: 0

    These are a bunch of us who code in C# after all!

  30. McCarthy? by janwedekind · · Score: 1

    They should invite McCarthy as well. He will all clobber them with LISP fragments.

  31. There is no 'best' language by Anonymous Coward · · Score: 1, Insightful

    Usability depends on how your brain works. If Perl is easier for you then so be it. If Python appeals to your tidy mind then good.

    There is no best. There is only what you want to use.

  32. When is this thing, today or tomorrow? by Sanity · · Score: 1
    It says:

    Date: Wednesday, July 22, 2009
    Time: 7pm PT, San Francisco

    Ok, so 7pm PT today - but then it says:

    Thu, Jul 23th at 3am - London | 10pm - New York | Thu, Jul 23th at 12pm - Sydney | Thu, Jul 23th at 11am - Tokyo | Thu, Jul 23th at 10am - Beijing | Thu, Jul 23th at 7:30am - Mumbai

    So 7pm tomorrow? WTF?

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

    Then again what is Pascal without Borland anymore?

  34. So,e.g, no mandatory array bounds check by Latent+Heat · · Score: 1
    If you mean, don't have a lame bounds check that checks on every single array reference, I agree.

    On the other hand, for many well-mannered loops (that the array index is generated by some kind of iterator or index stepping expression, one not modified from inside the loop), it should be easy enough to have an optimizing compiler/JIT/whatever that checks the bounds once on entry to the loop.

    In that case, I would indeed like to have bounds checking, thank-you-very-much. There are efficient ways to do bounds checking, and why not use them?

    1. Re:So,e.g, no mandatory array bounds check by EsbenMoseHansen · · Score: 1

      If you mean, don't have a lame bounds check that checks on every single array reference, I agree.

      On the other hand, for many well-mannered loops (that the array index is generated by some kind of iterator or index stepping expression, one not modified from inside the loop), it should be easy enough to have an optimizing compiler/JIT/whatever that checks the bounds once on entry to the loop.

      In that case, I would indeed like to have bounds checking, thank-you-very-much. There are efficient ways to do bounds checking, and why not use them?

      What you propose is essentially solving the halting problem. That is not going to work in the general cases... and anyway, using indexes to iterate over an array is bad form anyway. That's what iterators or even better functional for-loops are for. E.g, from ruby:

      mycollection.each_with_index do |item, index|
      # work you magic
      end

      No possibility to get out of bounds there, and thus, no need to check. Note how a runtime check becomes a compile time certainty... that's what I want from my languages :)

      More generally, I don't mind bounds checks as an option... e.g, I use valgrind extensively for that for C++, and STLport is also very nice for that sort of stuff. Having them as an compiler feature would also be cool... then I could simply turn them on with --enable-bounds-check. But I do not want them in production code! There is simply no way for the compiler to guess whether those checks are bad for performance while being completely superfluous.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.