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

I hate it because it's designed to prevent me from writing good code. I like writing good code, so I don't like tools that stand in my way. Perl lets me do whatever I want. (Which in my case, is to use a state-of-the-art object system, instead of Java's baked-in 1970s era object system.)

Perl has many more high-quality Free libraries, and I personally know a good percentage of the authors, which makes it all that much more appealing. Java may have more programmers, but there is no community; it's all 9-5ers that couldn't care less about programming.

Honestly, the only language I've ever used that didn't have enough libraries was Common Lisp.



Funny. I used Perl professionally for more than half a decade and I always had the same feeling about it. I didn't like how it seemed to always favor the worst way of doing everything. Even today every Perl program has to start without about 20 using statements to get it usable right?

I also disagree about the libraries. Java has many more than Perl, they're just not collected in one place. The Java ones run in huge environments, so while they may not be good for throwing out a cheasy log parsing script in 10 minutes, they will probably scale well beyond what you'll need.


'bless' is state of the art?


No, the Class::MOP metaobject protocol and Moose are.

bless is an object system object system. Class::MOP adds introspection and first-class classes, attributes, methods, and so on. Moose is the object system on top of all that.

The flexibility of Perl's original object system object system allows all object systems -- whether they are hand-coded 'bless'-based objects, Class::Accessor objects, Mouse objects, or Moose objects -- to interact seamlessly.

This means the system can constantly improve, and it does. There are hundreds of "MooseX::" extensions that tweak the way a class or object works, and they all compose nicely together because they all follow the metaobject protocol. The MOP allows further extension and exploration, like easy-to-use and efficient object databases (see KiokuDB).

Anyway, Java keeps trying to add extensibility. But its extensibility is tacked on, and it is massively underused by the community. (Too many people still write getters and setters and think they are "programming"!)

Perl has always been about extensibility, and its community has always been about using it. In the 90s (when Java was created) this was maybe not so good. Now, though, it's awesome.


Well, I agree that Java's bumping into some hard limits -- lack of standard accessor methods as you point out, and no reified generics are constantly annoying. I do think it's reaching the end of it 's natural life and will be looking to move to Go for the same class of problem in the future.

I guess we can just agree to disagree on the rest.




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

Search: