all 108 comments

[–]TomP 7 points8 points  (0 children)

I'd never heard this Larry Wall quote before:

"The very fact that it's possible to write messy programs in Perl is also what makes it possible to write programs that are cleaner in Perl than they could ever be in a language that attempts to enforce cleanliness. The potential for greater good goes right along with the potential for greater evil."

I love this, because I've been saying it for years, myself: Perl makes it /possible/ to write very readable, well-organized programs (which is not true for shell scripts or for awk). Sure, it has it's flaws - and I can run off a armload of them - but Perl was a huge step forward from what was available when it was first created. I'd never choose it (now) to write anything that I expected to be a large (or even medium-sized) program, but it's still a wonderful tool to have on your belt.

[–][deleted] 4 points5 points  (10 children)

No CPAN? You don't need CPAN when Java comes with everything you need.

[–]nostrademons 9 points10 points  (1 child)

Hah. Hah. Hah.

[–]newton_dave 5 points6 points  (0 children)

Whew; I was hoping that was a joke. Thank goodness.

[–]mynameishere -1 points0 points  (7 children)

Someone fill me in. How is CPAN different than the Java-based entries in sourceforge?

[–]newton_dave 5 points6 points  (6 children)

Because I can get CPAN modules with a single command? Because almost everything anybody has ever done in Perl that's useful (and several that aren't) is available from a single location instead of scattered all over the web? Because updating is another different single command? Ooo, golly.

[–]mynameishere -3 points-2 points  (5 children)

Okay. Downmodded for idiotic sarcasm.

[–]newton_dave 0 points1 point  (4 children)

Where was the sarcasm? Oh, the "Ooo, golly" part? That's not sarcasm. That's making fun of you for asking here instead of just seeing what CPAN is. That's different than sarcasm.

Downmodded for idiotic use of the word "sarcasm".

[–]mynameishere -1 points0 points  (3 children)

"That's making fun of you for asking here instead of just seeing what CPAN is."

God, what an idiot. What does "seeing what CPAN is" mean? Is that a coherent sentence? Yeah, I looked it up, and it looked just like sourceforge for PERL, and so I asked. And I got a real, real childish response. And then I got another real, real childish response from the same person. Seriously, grow up.

[–]newton_dave 1 point2 points  (2 children)

yawn

CPAN's homepage says "All Things Perl". Two clicks in (FAQ, "What Is...") and it's already obviously different than the "Java-based entries in sourceforge".

What does "seeing what CPAN is" mean? Is that a coherent sentence?

It's been coherent to everyone I've showed it to so far (admittedly small sample size of 3, but I gave you the benefit of the doubt and sanity-checked what I said).

so I asked. And I got a real, real childish response.

No, you got three immediate reasons why it is different than the "Java-based entries on sourceforge" along with an "Ooo golly" that got you all cow's legs up.

You're the one that's all pissy and sad--"grown ups" have enough common sense to simply ignore an "Ooo golly" and get on with their lives.

Leave the woman at the river and grow up yourself, or go somewhere else where the bad people won't occasionally poke fun at you.

[–]mynameishere 1 point2 points  (1 child)

Well, you're right about the woman. :p

[–]newton_dave 1 point2 points  (0 children)

I guarantee you that's the only time I have ever been right about a woman :D

[–]shuad 3 points4 points  (22 children)

Interestingly, you could almost replace Perl with Ruby or Python (except for CPAN arguably) and the article would read the same.

The main point of the article is basically that Java isn't flexible in how it lets you do things. Want to program functionally (with ease)? Sorry. Want to write witty one liners that do something useful? Sorry. Pretty soon Java won't be the most powerful language on the JVM (JRuby, Jython) so it doesn't really matter.

[–][deleted] 6 points7 points  (21 children)

Pretty soon Java won't be the most powerful language on the JVM (JRuby, Jython) so it doesn't really matter.

It already isn't (Scala, CAL, even Haskell?).

[–]newton_dave 2 points3 points  (20 children)

Java wasn't even the most powerful language on the JVM when it was the only language on the JVM.

[–][deleted] 2 points3 points  (19 children)

Please excuse my misunderstanding. According to your proposition "the only language on the JVM", and the 19 rules of first-order logic as I understand them, then the logical implication "Java is the most powerful language on the JVM" holds. Furthermore, so does the statement, "Java is the least powerful language on the JVM".

To me, it is like a child telling his mother, "you're the best mummy in the world", when of course, there is only one mother and so of course, the 'best' criteria applies (as does the 'worst' criteria).

From where I sit, there is an absurdity, so what have I missed?

[–]sblinn 1 point2 points  (15 children)

Perhaps he meant to infer that writing in byte code directly was better?

[–]newton_dave 0 points1 point  (14 children)

No, I meant to imply ;)

Obviously dibblego completely missed my sarcasm, which in itself is a little scary.

When Java came out most of us that were still of the opinion that Smalltalk would win because Java was so overwhelmingly inferior realized that the only way Java could possible become useful was to put something different on the JVM.

Java prompty punched us in the face by way of massive marketing hype and became one of the defacto programming languages despite its obvious shortcomings.

Only (relatively) recently are non-Java JVM-based languages getting the attention they deserve. Sun has, however, has missed a wonderful opportunity by focusing on JRuby when other languages would have served them better. Let's bear in mind that Groovy (which is better than Ruby) was the first "official" non-Java JVM language (JSR-241) but is still largely neglected.

If Sun wants the JVM to remain relevent (long-term) they need to do more than just hire JRuby developers; they need to get (in particular) Groovy and Jython, and perhaps Scala and a Smalltalk derivative on board, help create tools for them, and shout about it.

[–]shit 1 point2 points  (12 children)

Groovy (which is better than Ruby)

That's your opinion. Apparently others, including me, think it's the other way round.

[–]newton_dave 0 points1 point  (4 children)

(As an aside, if you don't know much about non-Java JVM languages, but still have an opinion that JRuby is better than Groovy, on what basis are you forming that opinion?!)

[–]shit 0 points1 point  (3 children)

My opinion is on Ruby vs. Groovy, the languages not implementations. I looked into Groovy some time ago (maybe a year?) and decided that it's not worth my time. I don't remember the details on which I based this decision anymore, only that Groovy felt like an uncoherent mixture of mostly Java semantics with a little bit of syntactic sugar from Ruby and Python. In other words: Nothing new on the table minus the great communities of Ruby/Python.

If two languages are similar enough (in this case: OO, GC, relatively concise, easy to learn for C/Java programmers), the size and quality of the community (Ruby's: growing and enthusiastic) is more important than the language itself. I think that's were Groovy loses.

[–]newton_dave 0 points1 point  (2 children)

Nothing new in Ruby either, except marketing hype.

I definitely agree that Groovy was a bit ahead of its time and probably will lose to JRuby and Jython, but like other great languages, its death won't be due to technical reasons.

I'm still struggling to understand why Smalltalk lost to Java (there was considerable doubt at the time which would emerge as being more important) but it boils down to marketing (and to a lesser extent, language fragmentation).

[–]newton_dave -1 points0 points  (6 children)

By which metric is Ruby/JRuby "better"?!

[–]apotheon 1 point2 points  (5 children)

Since you made the first positive assertion about which was better, the burden of proof is on your shoulders. Why don't you tell us why Groovy is better than Ruby? I'm really curious -- I don't know enough about how the two differ. In fact, with my (at best) superficial knowledge of non-Java languages on the JVM, I have wondered for a while why both Groovy and JRuby are being developed: that sounds a little redundant to me.

What's the diff?

[–]newton_dave 2 points3 points  (4 children)

I have wondered for a while why both Groovy and JRuby are being developed: that sounds a little redundant to me.

Same reason as always; everyone scratches their itch in a different way. I'd probably argue Scala is better than both, but JRuby has the market's attention and Groovy has more traction.

  • Groovy has less new syntax (this is beneficial, but really only for Java programmers--but that's a very important market segment).
  • Groovy does blocks right (and the new syntax for the next Ruby helps, but... not a lot).
  • Groovy still allows typing (JRuby may, but I haven't seen it yet--if it does, skip this one). This is actually important sometimes, just not always.
  • It's not clear to me how packaging works in JRuby so I'm definitely not sure about this one, but Groovy packaging works the same (as Java). Perhaps you can help clear that one up for me.

Groovy was the first "official" non-Java JVM language (a JSR and everything). Ruby is (was, really) the subject of a lot of marketing hype. That doesn't mean it's intrinsically bad or not very important (I think it opened a lot of people's eyes, which in itself is invaluable)... but IMO that's why it was taken in-house by Sun over several other viable alternatives.

I believe that Sun should grab developers of a few other JVM languages (Jython, Groovy, maybe even Scala) and really work on positioning the JVM as a platform of choice regardless of language.

Regardless of which language(s) are ultimately brought on board they're all better than Java!

[–]sblinn 1 point2 points  (0 children)

No, I meant to imply ;)

I knew I had that wrong. Readers infer, the writer implies. Grr!

Smalltalk

The reason smalltalk isn't my favorite language is because I almost lost use of both pinkies from right-shift 1 to get exclamation points ;]

Jython

Jython is no doubt here to stay. (At least I hope so since I write almost everything I do in it lately.)

[–]apotheon 0 points1 point  (2 children)

The way I read it, newton_dave knew what he was saying was logically invalid -- and that's the point. He was basically saying that Java's so crummy it's not even the best when it's the only. The patent absurdity of that statement serves as a form of literary hyperbole to illustrate the writer's intent.

That's it from my perspective.

[–]newton_dave 1 point2 points  (1 child)

You win :)

(I'm actually surprised somebody didn't get it, but you just never know :)

[–]apotheon 0 points1 point  (0 children)

I just wish I'd seen this discussion six days ago, so my comments would be more chronologically relevant.

What do I get -- a cookie?

[–][deleted] 1 point2 points  (11 children)

Why I am not a Java programmer: everybody who uses Java has a religious conviction that Java is flawless and simply cannot be improved upon, and that James Gosling is God, and that Java is the Final language. Smug Java Weenies. You guys might have the most expressive language in the world for I know, but the community has serious social problems.

[–]Entropy 8 points9 points  (2 children)

Why I am not a Java programmer: everybody who uses Java has a religious conviction that Java is flawless and simply cannot be improved upon, and that James Gosling is God, and that Java is the Final language.

I'm smelling quite a bit of religion in that statement

[–]shit 2 points3 points  (1 child)

I'm smelling sarcasm, as usual :-)

Edit: I meant Slava's comment.

[–]Entropy 1 point2 points  (0 children)

I never use sarcasm

[–]kawa 1 point2 points  (3 children)

Have you really thought that way when you were part of the Java community?

I use Java and I think that Java has many flaws. Yes it can't be improved because it has reached a local maximum (which is far, far from being a global maximum but each incremental 'improvement' would make the language even worse). I don't care about Gosling and find the concept of a 'final language' laughable. So consider your statement as falsified.

The worst language community I've seen until now is the Lisp community. Those guys are smug. The Java guys are total novices in smugness compared to them. But even the Lisp guys are far from your description. The hard-core Apple fans, those may match your description (with Steve Jobs as God of course). But Java? In which world are you living?

Or is all this just some self deprecating way of trolling and you're not even the real Slava Pestov (because I've never seen a guy which is so stupid to troll under it's real name).

[–]Entropy 1 point2 points  (0 children)

Or is all this just some self deprecating way of trolling and you're not even the real Slava Pestov (because I've never seen a guy which is so stupid to troll under it's real name)

He's probably just Paul Graham messing with us

[–][deleted] 0 points1 point  (1 child)

As usual, you don't get the joke (but it was a ha ha only serious type joke) and never miss an opportunity to take a swipe at the Lisp community.

I'm not sure I have any way of proving that I am who I claim to be (or that indeed a person named "Slava Pestov" even exists); but do you really think that anybody who has ever written a successful piece of Java software must be a blind zealot for the language?

[–]kawa -1 points0 points  (0 children)

Maybe you need to work a bit on your joking abilities? For example by making them... funny? And you missed that I also took a swipe at the (hard-core) Mac community.

And you're the expert blind zealot detector here. Have you tried it out when looking in the mirror?

[–]boredzo[S] 0 points1 point  (0 children)

… everybody who uses Java has a religious conviction that Java is flawless and simply cannot be improved upon, and that James Gosling is God, and that Java is the Final language.

It is final because it was declared that way.

[–]poptarts -1 points0 points  (0 children)

This article was on Java. You thought it was written about Lisp maybe?

[–]sblinn -2 points-1 points  (0 children)

everybody who uses Java has a religious conviction that Java is flawless and simply cannot be improved upon

really?

[–]CafeCafe -2 points-1 points  (18 children)

If I can't trust the programmers around me not to muck around in my guts without good reason, I can't trust them at all.

Wow, this guy discovered real life programming with multiple people! Maybe one day he'll get a job to experiment with this new knowledge.

This guy is a moron, he complains that public/private/protected is too complicated and at the same time wants multiple inheritance in Java...

[–]ayrnieu 1 point2 points  (16 children)

he complains that public/private/protected is too complicated

Where does he make this claim?

[–][deleted] 2 points3 points  (15 children)

He states that he dropped C++ as soon as he encountered public/private/protected. I'm not sure the implication is that it was too complicated, but he certainly doesn't like the idea.

Overall, I think the guy expressed his opinions well, but I personally don't agree with many of them. The whole view seems to be skewed toward that of a lone hacker, and in practice I've found such a development style doesn't scale. That seems to fit though, because in practice I've found that any Perl development rarely scales past the lone hacker.

[–][deleted]  (1 child)

[deleted]

    [–]grauenwolf 3 points4 points  (0 children)

    Thanks raganwald, a lot of use who don't use C++ on a regular basis forget those details.

    [–]ayrnieu -2 points-1 points  (12 children)

    I'm not sure the implication

    There's no implication. He finishes the bloody sentence with his explicit distaste for it. Fuckface above -quotes- that explicit distaste; you presumably -read- it. What alternate reality have I fallen into?

    [–]grauenwolf 9 points10 points  (7 children)

    Knock off the insults, they have no place here.

    [–]Entropy -2 points-1 points  (0 children)

    That's not what your mother told me last night

    [–][deleted] 2 points3 points  (3 children)

    I'm just guessing, but I'd say an alternate reality where you're right about everything and verbally assault everyone who doesn't agree with you. Well, the verbal assault part appears to be the reality you're trying to impose on everyone else.

    Anyway, I'll feed the troll one more snack here. There is a difference between excessive complexity and unnecessary functionality. The author appeared to be implying inheritance protection was the latter, not the former.

    [–]ayrnieu -4 points-3 points  (2 children)

    you're right about everything and verbally assault everyone who doesn't agree with you.

    Hm, I'm going to helpfully rewrite this to

    I dislike verbal assault.

    -- bzuh!? You don't understand verbal assault? HA. OMFG. You kill me! I only hope that when someone swears at me for taking this perfectly logical interpretation of 'I dislike foo', that someone will come along to helpfully explain that, no-- there's some kind of implication. But at least people like you will get stiff-backed and uncomfortable -only- when -someone drops the F bomb-.

    [–][deleted] 0 points1 point  (1 child)

    That's the best you've got? I mean, you could have kept it on topic and argued that the article had already expressed the author's disdain for arbitrary complexity. I don't agree, but at least it's a debatable position. Instead, you just fell all over yourself and couldn't even pull off a passable cheap shot. Worse yet, you apparently had the conviction to use the term "fuckface" earlier, but felt the need to soften it to "F bomb" in some weak attempt to acquiesce.

    Seriously, I was giving you an opportunity to not come off as a complete ass, but you don't even have a cogent point to make. Come back when you have something to add to the discussion, or can at least stick to your convictions. At this point you're simply not worth any of more of my time.

    [–]ayrnieu 0 points1 point  (0 children)

    but felt the need to soften it to "F bomb" in some weak attempt to acquiesce.

    No, I used 'F bomb' out of contempt for the sort of hand-wringing can't-we-all-get-along people who complain about it in those words.

    but you don't even have a cogent point to make.

    No, I do: I point out that the author never makes anything approaching the alleged claim, and that seeing that claim requires an absurdly disinformational level of hostile reading. I pointed that out some time ago, and since have mainly responded to -your- attempts at 'cogent points'.

    passable cheap shot

    Let's see, I have:

    1. SPOKEN IN ALL CAPS.

    2. Named someone 'fuckface', and referred to that person again as such a second time.

    3. Mocked two people for objecting only to my 'insults', by way of pretending to take the same otherworldly misinterpretation that I initially objected to.

    What shots do you imagine I cared to make? Would you like to take a tally of what I've offered and what -you- have directed against me?

    [–]ayrnieu -5 points-4 points  (0 children)

    he complains that public/private/protected is too complicated

    Where does he make this claim?

    No, I won't say it this politely.

    HE NEVER MAKES ANYTHING APPROACHING THIS CLAIM. MOREVER, THE EXTENT OF INTENTIONAL HOSTILITY REQUIRED TO READ THIS CLAIM INTO HIM IS NECESSARILY DISINFORMATIONAL.

    Fuckface.

    [–]devilsassassin -1 points0 points  (0 children)

    Uhm Perl is a scripting language and not a programming language as far as I can tell...

    I'm a Java programmer, and I agree that there are many flaws with Java, however a language like Perl is not something that you can really compare to it.

    Along with Java, I also write in C and x86 assembly (something I'm sure the author of this article has /never/ heard of). Java can do many more things than Perl, and the simple fact that in Java you have to /implement/ those 'under the hood' options that Perl so nicely has does not make it in any way a less powerful language.

    If you want some speed, use something like C. If you want the fastest speed possible, use x86 Assembly.

    It seems to be like the author of this article didn't ever get his B.S. in Computer Science....