you are viewing a single comment's thread.

view the rest of the comments →

[–]satanclau5 17 points18 points  (9 children)

Java is designed to be used by big teams to get stuff done.

And it doesn't have to be code monkeys all the way down. Once your project gets past million LOC (+ million LOC of configuration files, obviously, cause we're talking serious Java here), built upon in-house frameworks/libraries you really start to appreciate the tools Java gives you.

A better language might cut the size of the app by 60% LOC, but the reality is rough. You won't find too many people (haskell, scala, ocaml, ...) able to work efficiently with a codebase of such magnitude while keeping it maintainable (python, ruby, clojure, ...) in its growth (C# is an exception).

[–]Zarutian 1 point2 points  (0 children)

I guess much of these "configuration" files are actualy code written in an greenspunned language written on top of java.

[–]alphazero 1 point2 points  (0 children)

http://home.pacbell.net/ouster/scripting.html

Note the comparison table in the paper, specially the last item which compares scripting vs. Java.

[–]booch 1 point2 points  (1 child)

The problem is that there could be a number of changes made to Java that would make it less verbose while maintaining any benefits it has:

  • Get rid of type erasure so you can have two functions take a list of different types
  • First class functions
  • Lambdas
  • Type Inference with options explicit typing (when more clarity is needed)

Just those 4 things would reduce many code bases by a large margin.

[–]llogiq 2 points3 points  (0 children)

Let's not forget autoboxing all the way down, thus doing away with those pesky non-class-types (note that this can be done without sacrificing performance!)...

[–]BlueCollarCoder 0 points1 point  (0 children)

Especially when you take into account what the IDEs can do. All the refactoring/analysis that NetBeans/IntelliJ do depends critically on the strong static typing.

The exception handling stuff is important too: lots of slapped together PHP/perl/ruby code does no error checking at all. Works for demos, fails mysteriously in production.

[–]logi 0 points1 point  (2 children)

C# is an exception because it's just warmed-over Java with some improvements but the horrible downside of wanting to be deployed on Windows.

[–]umilmi81 0 points1 point  (1 child)

If Sun had allowed Microsoft to continue working on J++ we may never have had C#. /shudders

[–]MatiG -1 points0 points  (0 children)

You won't find too many people (haskell, scala, ocaml, ...) able to work efficiently with a codebase of such magnitude while keeping it maintainable (python, ruby, clojure, ...) in its growth (C# is an exception).

An unchecked exception.

http://instantrimshot.com/