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

The problem really isn't with a particular component in Java. The problem with Java is, Java came as a quick relief to people who had problems with managing memory themselves. Java solved what seemed to be the most pressing problem at that time. Times have changed, today I have completely forgotten some thing called as 'memory management by programmer', today its a given that a modern language today should do that by default.

The problem with Java today is how big and bloated it has become while it doesn't solve fundamental problems programmers face. Its growingly becoming impossible to program in Java without an IDE. Only Java ninjas can probably program Java with a Text editor. Its XML mess all over the place.

Now it takes several tens of lines of code to do trivial file operations and other trivial tasks. This problem was long solved with languages like Perl and Python around 20 years back. Its almost two decades and Java still hasn't caught up. There are still no practical lambdas and good functional programming capabilities.

The issue is something like this. By asking everything to become an API of some sort and writing so many method calls both my unit tests and exception handling code bloats like crazy. My eyes cringe every time I open a Java class file and nearly 60% of the code in there is either try/catch statements or some form get/set methods.

The code to boilerplate ratio is too high. And it just doesn't feel like a language that belongs to the 2010's. Java and its community also promotes heavy use of XML's often used as bad replacements for RDBMS, this leads to building of small buggy and wrongly built DSL equivalents of small parts of SQL all the time.

The path from now is not the make the language bloat like crazy and then provide IDE's to handle that. It is to make the language syntax intelligent enough to take care of many problems you have to other wise worry about. If you see the whole concept of Lisp and other extensible languages like Perl are all about. To provide forms of extensibility that solve the code scalability problem.

And lastly and unfortunately the Java market is full of substandard programmers whose life begins and ends inside eclipse.

A manager or a pointy haired boss might prefer Java for hiring cheap programmers and the 'Oracle factor'. But Java is dead for Start up's and other sexy glorious projects.



I hear you re: code bloat with too much boilerplate.

I stopped using get/set methods years ago in favor of public instance variables. Yeah, I understand the potential problems with kicking encapsulation to the street and into the gutter (I have written several Java books and I have done many projects in Java, so I am not a noob).

I have also started to favor using unchecked exceptions - that also makes code a lot shorter. This is also Controversial.


Forgive my brevity, mate!

Its been a long day, I've been working non stop since 6 am this morning(I stay in India, Bangalore) and its 9 in the night now. I've been working on some Java code.

The AbstractSomethingFactoryFactoryFactoryClasses.java have taken a toll on me. I'm yet to rewind from the depth's of piles and piles of try/catch statements and Object.someMethod() methods buried deep in abyss of com.something.somethingElse.somethingInWonderland.whereTheHellAreWe folders.

But I will take your advice seriously though.

EDIT : After reading your bio and looking at your work on your site. I am your new fan :)


What are your thoughts on C#?




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

Search: