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

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: