Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not part of the core language, is an add on. Nice trick, but Perl - that is to say, the language itself - still has pretty crappy OOP. Or has Moose been adopted as a core part of the language now?


Really, with Perl the distinction "part of the core language" is meaningless. You can install a CPAN bundle for a hardcore Perl in one shell command, or get it all preinstalled. Strawberry Perl for Windows has all the good stuff in a single installer, for instance, and if you're on Unix you've similarly got no excuse.

Really. "Core language" is kind of twentieth. Moose is very well-established in the Perl community. That's as core as it gets.


Not part of the core language, is an add on.

So is DBI, Perl::Critic, cpanminus, perlbrew, Dist::Zilla, Perltidy, and (depending on your version) autodie. That's why my definition of a great Perl programmer includes pervasive use of the CPAN--you're restricting yourself unnecessarily if you avoid it.


Quite correct, and it's almost axiomatic at this point that CPAN is Perl's killer app. That said, I wasn't referring to great programmers - I was referring to the language itself.

I'm not sure I understand why basically having to patch your language to get a feature that others have out of the box is not seen as a weakness of that language.

Now, we can talk about Perl + CPAN and all the jazz you find therein, but that's a different discussion. My point is, taken by itself, the language Perl does not have an especially good Object system, especially if you consider Ruby and Python the competition.

"So is DBI, Perl::Critic..."

What's your point? Database bindings and lint like code checking are not features every developer - or even a good chunk of the developers out there - are going to need, or have use for. By that logic I could point out that Perl still wins no points because Ruby and Python - and just about every other contender out there - has their own equivalents.

I'm not referring to CPAN or the the gobs of stuff in it - I'm referring to the language itself And while we're on CPAN, much of the popular and useful material in CPAN has equivalents in Ruby and Python that are every bit as mature and useful.


By your argument then:

* assembly is weak because it lacks pointer arithmetic

* C is weak because it lacks a proper OO

* Java is weak because Clojure is an add-on

* Ruby is weak because Rails is a separate download.

I assume nobody really believes any of this meme-noise.


> * assembly is weak because it lacks pointer arithmetic

Compared to C it is. That's why they invented C.

> * C is weak because it lacks a proper OO

Compared to C++ or Java it would be - that's why they invented them.

> * Java is weak because Clojure is an add-on

Not sure I'm following your analogy here.

> * Ruby is weak because Rails is a separate download.

Have I been saying anything about web frameworks at any point?

You're making a bunch of false analogies. Compared to nothing other than itself, Perl is Perl. That's fine. It's axiomatic. Compared to other options, however, it does have some glaring shortcomings.


> Not sure I'm following your analogy here... You're making a bunch of false analogies.

Not false at all. Substituting FP for OO, the Java install "lacks" Clojure. So extensibility is a weakness? If so, then every gem is a sign of a defect in Ruby The Language (an absurd conclusion).


Clojure is only a Java extension if Java on my machine is an x86 extension. Besides, what's being argued here is that some things should be in the core, not the negativity of an extensible core. I'm somewhat on the fence on the issue. One one hand, it is great to be able to improve your own language. On the other, you are creating/using a forked version of the language, and all the other libraries won't be using your OO -or generic dispatch, or exception or namespace- system, making everything inconsistent.


True - most of what you'd consider "C" is really stdlib and stdio - but nobody would ever say that I/O isn't "part of the core language" because you have to use a library.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: