8 ms·
Reasons to be excited about Java in 2013
- va9 14y agoJVM is definetly going to be exciting just not because of Java but all other JVM languages.
- mitchty 14y agoYep, in a way the jvm is doing the one thing that native platforms haven't. That is provide a universal (in java land at least) interface in java bytecode to languages running within the jvm. Think about the ffi annoyances with c->c++->other-lang, its so simple in jruby to use clojure libraries, or rhino for some other stuff, or vice-versa, or whatever. And I'm not a java fanboy, but that fundamental aspect of the jvm as a platform is crazy cool.
- bitwize 14y agoThe same is true of Mono/.NET as well; in fact the CLR was designed for this and has features the JVM lacks, such as parametric types, invokedynamic, tail calls, etc. If you're into functional programming the CLR is the runtime to beat.
- nirvdrum 14y agoinvokedynamic is new in JDK 7. It still has some maturing to do, but JRuby is already targeting it.
- WildUtah 14y agoCLR is the runtime to beat Except it doesn't run on any useful platforms. Java makes the effort to be consistent and good on a wide variety of quality systems.
- jiggy2011 14y agoI think MS missed a beat here, if they had pushed for the .Net CLR to be a first class and equal citizen on OS X , iOS and Linux they would probably be in a much more relevant position in the future.
- YeahKIA 14y agoIts an open spec that can be implemented on any other platform that cares. Mono is available on many platforms btw
- jiggy2011 14y agoThis is true, but Mono has always lacked implementations of a bunch of APIs and had not quite as nice dev tools. If there had been a true first party (i.e provided by MS .Net CLR) for other platforms it would probably have had massive traction.
- pbz 14y agoNo, it wouldn't. Let's be honest, people would say it's from Microsoft and not use it for that very reason. Could be better than JVM and still most wouldn't use it. Linus was right, the hatred of Microsoft is a disease, and a lot of people in the open source community suffer from it.
- guard-of-terra 14y agoMicrosoft cast it upon itself. When you cry wolf all the time, nobody comes to help. Microsoft can't let go. They can't say "this code is now open and no strings attached". They can say "but not really". They can say "but don't touch anything". Microsoft can't open. What they can do is okay for consumers. Consumers will download whatever software available and use that. Developers? Hell no. Developers don't trust openness that can be revoked. Because this means their product stops working.
- camus 14y agoWhy would MS make .NET really cross plateform ? MS is here to sell Windows and Windows Software, nothing more. Mono is an unofficial hack and can be shut down anytime by Microsoft , i would not bet my career on that stuff.
- thebluesky 14y agoScala provides tail call optimization and invoke dynamic has been in the JVM for years (since JDK7). The JVM is also considerably faster than the CLR and unlike Mono is heavily used in industry.
- drivebyacct2 14y agoIs the same true of LLVM?
- biesnecker 14y agoReasons to be excited about Java in 2013: scala, clojure, jruby, groovy, ...
- ExpiredLink 14y ago... which no serious developer will use. Not in 2013, not later.
- ZoFreX 14y agoAbsolutely ridiculous comment. You added nothing to the discussion and gave no justification for a frankly ignorant standpoint. I can speak for two of them: JRuby is an absolute godsend even if you aren't massively interested in Ruby - Java libraries/classes + a REPL is a phenomenally powerful combination and makes learning new libraries incredibly easy. Groovy I am not a fan of for significant development, but it's great for DSLs, and in particular gradle is the nicest way I've found to manage dependencies and project setup.
- thebluesky 14y agoI can't speak to the other languages, but Scala is definitely being used pretty heavily in a number of pretty major back-end systems for stock trading, cloud computing, banking and successful startups like Twitter, Foursquare, Tumblr, Quora etc.
- dasil003 14y agoI think by "serious" the GP must have meant literally serious developers, such as those working in huge corporate body shops who are prevented from not being serious by strict regiment. Certainly management in such environs would consider authorization to use any more expressive language than Java as tantamount to handing out dynamite on Halloween.
- ExpiredLink 14y agoI can understand that esp. young developers get bored and want to try something new and fancy. OTOH, JRuby and Groovy are, at best, niche languages without traction. The drawbacks of Scala have been discussed widely, also here on hn. Clojure? How many Hickey fans actually write real-world programs?
- joshAg 14y agoCan someone who knows more explain how java will do gpgpu? Is it going to make the jvm runnable on a gpu, or are they going to do something like compiling jvm byte-code to C/++/assembler code that will handle all the memory management it takes to run code on the gpu?
- seanmcdirmid 14y agoThey could always do some fancy operating overloading to produce expression trees that are then converted into GPU codelike I did in this C# library I made a while ago (basically, call it a staged embedded DSL): http://bling.codeplex.com/ http://bling.codeplex.com/ The idea works well for functional code (what pixel and vertex shaders basically are) but it doesn't really map well to more imperative GPGPU code.
- DaNmarner 14y agoIf "JVM languages go from strength to strength" is a reason to get excited about Java in 2013, should I be already excited in 2012?
- guard-of-terra 14y agoAren't you?
- finnw 14y agoYes, but you will need a time machine
- camus 14y agoAbout the JVM not the language ...
- nnq 14y agoQuestion (maybe stupid, not a Java guy nowadays...): will bytecode coming from code using Java 8 features be runable on older VMs? Or, to put it otherwise, are new features like lambdas just syntactic sugar / compiler sugar, or have they significantly changed the bytecode and VM to make them work?
- guard-of-terra 14y agoThey add new instructions with each release so the bytecode is not backwards compatible. But it does not matter much because most of jvm code is deployed on the server, and the rest is delivered with bundled jvm. However, you can have compiler generate lower version bytecode for you. If you have a Java 8 compiler but want Java 1.4 bytecode - no problem, just ask compiler to target 1.4. It will warn you if you use any >1.4 features. Maybe it will even let you use lambdas (maybe not, I'm not sure). Java is very backwards compatible. That's why it progresses so slowly perhaps.
- ZoFreX 14y agoBytecode is not made incompatible with every release, actually - for example the generics added in 1.5 use type erasure, and so are a compile-time-only feature, leaving the bytecode still compatible with 1.4 JVMs.
- guard-of-terra 14y agoYou're confusing JVM versions with Java versions. A JVM class compiled for JVM 6 target will not run under JVM 1.4. It will fail to load because of version mismatch. However, you can use Java 6 compiler to compile Java 6 code to JVM 1.4 bytecode. That's what you are talking about.
- ZoFreX 14y agoYes, I am. I got confused over what you meant by " It will warn you if you use any >1.4 features" - I thought you meant language >1.4, not bytecode spec >1.4. Thanks for setting me straight :)
- caycep 14y agohow much is all of this tied to Oracle? is openjre and other non-oracle jvms ready for prime time?
- buzaga2 14y agoexciting if you're still a Java developer, right? Java getting lambdas is cool, I'd be excited if I still was a Java Developer... but it's like at least 3 years I'm using lambda functions everywhere else, almost all the other reasons sound like old news too... "Java now is 'cloud'!", really?
- bulgroz 14y agoWhat about the memory wall ? being limited to few gigs because of the GC stop-of-the-world is not very exciting.