Live data from Hacker News

Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

zeroturnaround.com

91–100 of 149 posts

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#91

Java as a language is not that great, but the alternatives are usually even worse: - Python: slow, dynamic typing - Scala: slow compilation, very complex syntax, worse tooling, - C#: MS-centric (but other than that C# is superior to Java)

Not sure why you think that C# is MS-centric. There is nothing about the language that is particularly MS or Windows specific and the .Net Framework was written to be general and cross-platform.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#92

Earlier quoted context omitted.

One problem of many is that Java is quite verbose, and while IDEs like Eclipse help with this, there's a significant contingent of open source developers who both refuse to use typical IDEs and who also like to manually manipulate their code rather than let an IDE tweak it about. Languages like Ruby and Python make that easily manageable in a way Java doesn't.

There are languages on the JVM as well with far less boilerplate, that still give you static typing, performance that is compatible with Java, and the whole ecosystem. For instance, Scala and Kotlin.

Scala's compilation was really slow the last time I tried. It's also a really complex language and I found some parts ugly.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#93
post #73

Earlier quoted context omitted.

Honest question: Are their refactoring IDEs for Ruby, Python, or other dynamically typed languages? Agree 100% about Java's verboseness. I really want type inference, lightweight objects, properties (vs JavaBean accessor convention), switch for 'instanceof', etc. However. Java's verbosity is nothing compared to the verbosity of the common APIs and frameworks. All that DI, IoC, configuration via markup, etc. are terri…

> I really want type inference, lightweight objects, properties (vs JavaBean accessor convention), switch for 'instanceof', etc. I believe you're asking for Scala. For example, switching on types: trait Foo class Bar extends Foo class Baz extends Foo val thing = // could be either bar or baz, don't know thing match { case f: Foo => println("Got foo") case b: Bar => println("Got bar") }

:)

Our study group has done two Scala tracks (and currently studying Akka and reactive programming).

Ruby and Scala make my head hurt. I don't have a mental model for what's happening under the hood. Unlike LISP, Forth, Java, etc.

I really do want a refined, simplified Java. My wishlist of features are gleened from Boo (minus the duck typing), Nice, and Kava (lightweight objects).

http://boo.codehaus.org

http://nice.sourceforge.net

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.3...

Honorable mention for Frink (preserves units).

http://en.wikipedia.org/wiki/Frink

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#94
post #3

Beefs with this article: 1. Runtime-linking _is_ dynamic linking, and it's a PITA that Java doesn't have an option for static linking, especially given the inherent fragility of the CLASSPATH. 2. clang and gcc have compatible command-line option syntax. 3. The options example he lists for gcc is a pure strawman. Maybe they are necessary to compile that particular source file, but it is not necessary to use all these…

Good point(s), especially #4. The article compares an 80s language (C++) to a 90s language (Java), not to more recent compiler toolchains. Admittedly, there aren't many options here, and e.g. Scala (which I hope will be covered in future articles) relies on the java toolchain. Edit: C++ and Java also have different cultures. The simplest compilation with g++ is "g++ foo.cpp -o foo", which isn't much more complex than…

Except there are 70's languages (Modula-2), 80's (Ada) and 90's (Turbo Pascal/Delphi), that offered more powerful compiler toolchains.

However, given C++'s requirement to be kept compatible with UNIX toolchain model, we suffer from a 70's model in C++.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#95
post #70

Earlier quoted context omitted.

Ruby is 18, Python is 22, what's your point? I'd very much like to hear your valid criticism towards Java. From my point of view that language and ecosystem is alive and well and newer iterations of Java EE have been giant leaps forward in terms of productivity.

Java isn't a bad language, but the point is that it doesn't offer much what other languages don't. It's unique selling point is that it is there, and that it's widespread. Said politely, Java is “conservative” to include new features. Take for example lambdas, which make writing async code, inversion of control, and yes, functional programming much more easy. All modern competitors to Java have lambdas: C++11 and C#…

Well, interfaces with default methods in Java 8 are a form of traits.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#96

Java as a language is not that great, but the alternatives are usually even worse: - Python: slow, dynamic typing - Scala: slow compilation, very complex syntax, worse tooling, - C#: MS-centric (but other than that C# is superior to Java)

Not sure why you think that C# is MS-centric. There is nothing about the language that is particularly MS or Windows specific and the .Net Framework was written to be general and cross-platform.

My impression was that e.g. support for multiplatform GUIs or Mono's speed wasn't as good as Java.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#98

Beefs with this article: 1. Runtime-linking _is_ dynamic linking, and it's a PITA that Java doesn't have an option for static linking, especially given the inherent fragility of the CLASSPATH. 2. clang and gcc have compatible command-line option syntax. 3. The options example he lists for gcc is a pure strawman. Maybe they are necessary to compile that particular source file, but it is not necessary to use all these…

Regarding #1, Java 8 allows for static JNI linking. http://openjdk.java.net/jeps/178

Cool. Did not know that.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#99

Java as a language is not that great, but the alternatives are usually even worse: - Python: slow, dynamic typing - Scala: slow compilation, very complex syntax, worse tooling, - C#: MS-centric (but other than that C# is superior to Java)

Not sure why you think that C# is MS-centric. There is nothing about the language that is particularly MS or Windows specific and the .Net Framework was written to be general and cross-platform.

Mono does not provide support for some stuff like WPF, for example.

Re: Why Java Now Rocks More Than Ever: Part 1 – The Java Compiler

#100

Earlier quoted context omitted.

Not sure why you think that C# is MS-centric. There is nothing about the language that is particularly MS or Windows specific and the .Net Framework was written to be general and cross-platform.

My impression was that e.g. support for multiplatform GUIs or Mono's speed wasn't as good as Java.

Mono's speed is a valid point, but I think that's more of a Mono implementation issue than a C# problem.
Post reply on HN