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

Java has many features that are amazing for larger projects:

* Instant recompilation

* One string type

* One error handling system

* Capitalized identifier = class name = file name = imported name

* English names for everything and no operator overloading

All these are ignored by e.g. Haskell or Rust.



> English names for everything

You mean like, AbstractSingletonProxyFactoryBean? Sure, it's English, but when you end up with a project with that many layers of needless abstraction, it's not going to be easily and quickly comprehensible by anyone who isn't already familiar with it.


Yeah, that's a fair point.

I think factories and beans are a sign that object construction in Java is a mess. In the applications I work with, most calls to "new" are dealing with data structures (lists, maps, protocol buffers), and behavior-heavy business objects are a mostly static call graph. Not sure if there's a name for this pattern though.




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

Search: