8 ms·
As a long time Java developer (I downloaded the first beta that was released). I would have to say that this pretty much did it for Java. Sure it was showing it
by kls 16y ago
As a long time Java developer (I downloaded the first beta that was released). I would have to say that this pretty much did it for Java. Sure it was showing it's age but until now the pain of leaving it behind was too great for many. I think now there are a lot of people wondering what the future pains will be brought if one decides to stay in the Java world. Oracle has thrown the gauntlet down and pretty much said, Java is for paying customers. So my question now is who is the likely successor? I have been playing the guessing game for a while now as to who I think the most likely champion is and I keep drawing blanks. I think the JVM languages are too close to Oracles reach for comfort now, so I think Clojure, Scala, JRuby and the rest are out. Python is nice and has a pretty decent eco-system but there is a die hard no interpreted languages camp (I know, I know) but it exists. I don't know enough about Go to form an opinion of it's worthiness. I don't think we are going back to C or C++. Objective-C is perceived to be too Apple, .NET too Microsoft. Perl had it's moment in the sun. Ruby too controlled by a select few. My point is, I would love to know what other people think on the subject. I think the writing is on the wall, I just can't seem to read what name the writing spells.
- windsurfer 16y agoLanguage shouldn't matter, it's the tools around it. Now instead of having one massive amount of tools for a single language, the way of the future (that's already here, actually) is fragmentation and cooperation. Ever heard of LAMP? It's four very different tools and multiple languages that make up only a part of a larger software stack that is only for a particular purpose. This works surprisingly well, and it's easy to swap out any piece you want with another. And this wasn't by design of some massive company like Sun or Oracle, but merely cooperation and good old software interfaces.
- RodgerTheGreat 16y agoI still hold out some hope for the Java language, but I share many of your feelings. My main issue in searching for another language is that I don't see many imperative languages with the same kind of methodical approach to object-oriented design and comparable language support for concurrency. The C++ build environment feels like going back to the stone age after using a compiler like javac, and while D seems interesting it still appears to be a rather severe step backwards. Many of Python's design decisions (significant whitespace, idiomatic exceptions-as-flow-control, duck-typing) really rub me the wrong way. I've been tinkering with Lua and FORTH to keep myself sharp, but I can't imagine treating either as a replacement bread-and-butter language like Java.
- Luyt 16y agosignificant whitespace Many years ago, this delayed me looking seriously into Python. But when its powerful data structures finally convinced me to start using it, I quickly became accustomed to significant whitespace: I always indented my code correctly anyway, whatever language I'd use. So it was just a case of dropping the { and }. After a few hours I was accustomed to it. The funny thing is, I still program a lot in C++ and PHP (and Java sometimes). When I write these languages, I fall back on using { and } like I did before, without even noticing it. Getting proficient in a new language doesn't make you forget your old languages.
- RodgerTheGreat 16y agoI appreciate where you're coming from, but of the three gripes I mentioned whitespace is the least of my concerns. The syntax of Python bothers me much less than the design philosophy.
- rbanffy 16y agoAny specifics? I may be using Python for so long that I got used to its warts. Some outside perspective could be useful.
- drblast 16y agoI can't answer for the parent poster, but one thing specifically irked me about Python and that was the variable scoping rules and the lack of forced declaration. The result was that any misspelling of variables could result in extremely difficult to find bugs. This was a final straw that pushed me over the "I don't really care for the syntax of this language much" cliff. Not a showstopper, but combined with a number of other small complaints, Python "rubbed me the wrong way" too. Yeah, significant whitespace alone isn't a problem. Lack of variable definition by itself isn't a big deal. Explicit "Self" as a parameter is kind of annoying but makes sense. The lame anonymous functions that don't have the full power of the language are ugly. Taken together those are enough to turn me off to the language. BUT, Python has a few killer features like great libraries, flexible built in data structures, and an excellent foreign function interface. If I needed a scripting language for a native-code app it would be one of the top choices. By the way, my experience with Python is a few years old, I don't know if anything's changed with the new version. Edit to add: Other dynamic languages have various solutions to the variable declaration problem, usually involving a parser or compiler warning when you use an unbound variable. Python's syntax would have to change to make that possible, I think.
- flatline 16y agoI think the answer is, at least in large part, right there in your post. There is pretty broad knowledge in the industry of how to build cross-platform C++ applications, practices that weren't mature when Java took off, and this includes targeting IOS. Python and Ruby are great for automation and web development. Is there a need for One Language to Rule Them All? The JVM is the best part of Java IMO and I'm not really clear on where that stands in this current battle, but I know there are JVM implementations out there other than HotSpot.
- rbanffy 16y agoYou can't really compare Java with C++ directly. All they have in common is the syntax style. Java was designed to be C++ programmer friendly, but it shares a lot more with Smalltalk than with C++.
- badmash69 16y agoI fail to comprehend your objection. The licensing terms are what is at dispute here and not the technical merits of the language or the JVM platform. These were the same terms ( more or less ) when you downloaded the first JDK. Apache and Google are disputing the licensing terms . Oracle has nowhere said Java is only for paying customers. Just chillax !!!
- kls 16y ago"Oracle has nowhere said Java is only for paying customers" They killed OpenSSO, they killed Open Office, the killed Open Solaris, They where contractually bound to not kill MySQL so they just raised the price through the roof to send the message. Pretty much they killed anything that you did not have to pay for. The worst part is they did not just withdraw paid positions from working on it. They alienated the volunteer members of the community until they resigned in protest. Sun agreed to license the TCK to Apache under non-discriminatory terms an Agreement that Oracle is not, has not and will not living up to, because they don't want JDKs to exist that did not pay Oracle or more importantly they want them to licence it under the restrictive provising that they require e.g no use on servers and no use on Mobile. How many more items do they have to destroy until people start seeing the serial and systematic behavior that is going on. do you not find it funny that Apple gave the JVM back to Oracle and Oracle is doing everything in it's power to keep non-sanctioned VM's off of Mobile devices. That is what the Apache dispute is really about, Oracle does not want a non-oracle JVM in the mobile world and I can bet you dime to dollar that it has to do with a back room deal between Oracle and Apple. Why do they want to keep the non-sanctioned JVM's off of Mobile devices, well because a closed ecosystem is more lucrative for Apple and Oracle than one in which Apache and Google are giving stuff away for free. There is a fundamental difference in world views between Apple / Oracle and Google / Apache. Apple and Oracle are vertical stack providers they want to provide the whole stack soup to nuts and don't want anyone playing in their ecosystem, it just so happens that Apple wants the consumer market and Oracle wants the Enterprise market so they make good bed fellows. They are about the only two tech companies left that are not at war with each other. Google and Apache represent a threat to their world vision and they have declared war to stop them. Oracle is all about every piece of their vertical being a piece that is monetized you can rest assured that Java is no exception. Like it or not Java and the JVM are pawns in a big game of who is going to own the mobile market. It is the future market and winner takes all, if Oracle backs Apple in wining the market, then Apple can ensure that Oracle is position to be the Enterprise infrastructure for the new Mobile market. Like it or not, Java is a sacrificial pawn in a bigger game now. The developer in me does not care, quite honestly the return to verticals means the return to easy money for writing software for verticals but the consumer in me shudders at the though of the verticals winning. You think Apples platform is restrictive, now wait until they own 90% of the market. They will make the early 90's Microsoft look like a benevolent democracy and well Oracle will just become a technical tax to anyone wanting to do business.
- callahad 16y agoI think .Net is poised to capture much of Java's current market. The C# developers I know really do seem to enjoy the language and associated tooling, and it's very well established in the enterprise. I can't think of anything else that has significant mindshare and is directly addressing that space. At the same time, alternative languages (Python, Ruby, etc.) are becoming more and more capable, and are slowly eroding the class of problems that need "enterprise-grade" solutions. Furthermore, virtualization, as well as tools like Chef, Puppet, Capistrano, Virtualenv, and RVM are making great strides at simplifying the deployment and management of "native" solutions. Taken together, I think you'll see huge gains by smaller languages in the areas traditionally served by Java and .Net. But if I had to pick a dark horse or two, I'd look to LLVM and JavaScript. There's huge amount of momentum and money behind LLVM, and I could easily see it becoming the next major target platform for experimental languages. Similarly, the recent JavaScript arms race has left us with at least four extremely high-performance JavaScript runtimes, and it's quickly becoming the lingua franca of the web. There have been many attempts to harness that talent and apply it to more general application development: Apple's Dashboard, Palm's WebOS, Node.JS, Appcelerator Titanium. Others initiatives are trying to pull general application development into the web dev world: Sproutcore, 280 North's Cappuccino, etc. Eventually, someone is going to strike the right balance, and JavaScript's importance and influence will skyrocket. Other things that may spawn something really cool: Parrot, Go.
- kls 16y agoWhile I love JavaScript, I shudder at the though of using it as a systems integration language. For the verry reason that it shines as a UI development language (flexibility), it makes me cringe to think of using it for system integration work where items like guaranteed delivery and transactions are far more important that flexibility. As well, I just don't see .NET doing it, it has very little adoption amount the unix camps and the next language will most assuredly will come with the blessing of that camp just as Java did. I mean it was the unix guys that adopted it because they could offer there server offerings on their platform of choice while not ignoring the Microsoft juggernaut. As for LLVM, I have had the same thought and I think you are on to something, I keep thinking whatever it is, it will crop up on LLVM.
- 16y ago
- badmash69 16y agoplease cite the link for this statement "Java is for paying customers." 'Cause without this link , it seems you are merely spreading FUD.
- chc 16y agoI'm not sure what you're looking for. You want a link to an attitude or pattern of behavior?
- badmash69 16y agoI would settle for a link -- from an analyst or a press release to back up that claim. Otherwise , this thread (not the parent article)is just FUD.
- kls 16y agoYou not too familiar with Ellison's frequent ramblings on this subject are you? Take a look at the link below I think it will open your eyes to how Ellison views Open Source, he sees very little value in it and will not buy Open Source companies because he feels that he cannot monetize them. To the potential that he would want to. It is natural to draw the conclusion that he sees Suns free offerings in the same light as he has never changes position on the subject. It is no big secret that the only kind of customer Oracle has is the paying kind. http://us.ft.com/ftgateway/superpage.ft?news_id=fto041820061306424713 http://us.ft.com/ftgateway/superpage.ft?news_id=fto041820061... As well as this one where they pretty much say yep we are going to monetize the JVM. http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/ http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/ We see in China and India, all that stuff is freely available and Red Hat is just cut completely out of the market. I'm not gong to spend $5bn, or $6bn, for something that can just be so completely wiped off the map. They take all the Red Hat code, have their own equivalent of the Red Hat network, and Red Hat gets zero. So its all very interesting. You can build a sustainable business [in open source], you just can't charge a lot for it. There's brand value – there's real brand – there's people, and that's it.
- chc 16y ago
- Nelson69 16y agoWell that's pretty simple. There isn't really a suitable successor that does what Java really does. It was low-enough level to have decent performance and high enough level to be used to quickly do some complex stuff with some runtime protection. I'm curious, the JCP didn't exist until quite a while after Java got going. There are tons of documents in various states of completion and with various levels of support. To me, JCP has sort of given java a terrible look to the non-java coder. It looks fat, bloated and incredibly Byzantine. I've actually heard developers have conversations about JCP<number>, that just seems like a bad thing to me. Meanwhile SpringSource has done some great and wonderful things. Even newer JCP specs, like JPA (if that's 'newer') were sort of done outside of it all and then backported in to the JCP process. I don't know, C has been pretty much "dead" for decades, there is very measured and limited change in that language. Putting the Java language in a similar place, adding some dynamic support to the JVM and maybe focusing on cleaning up the class libraries and interop with higher level languages might be the best thing for it. I don't know, it all looks bad, that's for sure but i can't say the JCP was the end all be all either.
- loup-vaillant 16y ago> There isn't really a suitable successor that does what Java really does. It was low-enough level to have decent performance and high enough level to be used to quickly do some complex stuff with some runtime protection. There was such a successor before Java even existed: ML. It is safer, and current free implementations are at least as fast (and they have a C FFI). The catch is, programmers need to recognize that "OO" is little more than a brand, then see that despite it's "FP" branding, ML implements the underlying principles just as well (if not better).
- gjm11 16y agoUnfortunately, what Java really does isn't only to be that combination of low-level and high-level. Just as vitally, (1) it is nice and easy and familiar for programmers familiar with current mainstream languages -- C-family syntax, approximately the usual control structures, few concepts that someone who's already programmed in C or C++ or C# or whatever won't find reasonably familiar -- and (2) it comes with a big bag of libraries for doing standard things: UI, database connectivity, regular expressions, logging, XML processing, and so forth. Yes, ML is pretty good at those underlying principles; yes, you can use it to write code that's compact, safe, and fast; but it's not going to replace Java because #1 and #2 make Java easy for "ordinary programmers" doing ordinary businessy programming in a way that ML isn't and probably never will be. (For the avoidance of doubt, I am not arguing that anyone who is comfortable in ML should use Java instead.)
- wmf 16y agoOracle has pretty much said, Java is for paying customers. Actually, they said Java on phones is for paying customers and Java on servers will always be free. http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/ http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/
- bad_user 16y ago> Java on servers will always be free Great, so I'm free to take a server implementation and port it to mobile phones, right? Free as in what?
- rbanffy 16y agoAs long as you base it on OpnenJDK and don't claim it's Java (you would need the TCK for that) you would be perfectly fine. Just remember not to step on additional patents Oracle may have for the mobile space.
- eftpotrm 16y agoSo you can't cliam it does what it has to to be useful and you run the risk of unknown lawsuits on hidden grounds from a large and litigious company who you're trying to outmaneuver to avoid giving them money. You want to try and build a business doing that?
- rbanffy 16y ago> So you can't cliam it does what it has to to be useful You can always claim it's based on OpenJDK. > and you run the risk of unknown lawsuits on hidden grounds from a large and litigious company who you're trying to outmaneuver to avoid giving them money I won't be the one to indulge such a paranoid delusion. Oracle won't sue you for using OpenJDK because they know it would be a lost cause.
- mbreese 16y ago> Oracle won't sue you for using OpenJDK because they know it would be a lost cause. Even if it's based on OpenJDK, you still wouldn't get any patent protection. I wouldn't put my trust in Oracle to not sue me over anything...
- rbanffy 16y ago> JVM languages are too close to Oracles reach for comfort Not at all. All of them run on the OpenJDK and the GPL makes it Ellison-proof. He can scream an threaten all he wants. OpenJDK is not as cool as all the Sun-invented niceties in their own VM implementations, but it's good.
- kaffiene 16y agoI don't believe that the GPL gives you patent protection. (GPL 3 does, but this is the GPL 2 I think)
- rbanffy 16y agoGPLv2 gives an implicit grant. You cannot distribute your code under GPLv2 unless you can ensure the user has full right to use and redistribute your code. Section 6 says "You may not impose any further restrictions on the recipients' exercise of the rights granted herein." Section 7 says "if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program." The scope may be different under different laws (that's one of the reasons GPLv3 makes it explicit) but it's pretty much reasonable to assume Oracle would rather not test it on court.
- dkarl 16y agoDo you think it's implausible that Apache could fork Java and Oracle could be eventually left with nothing but a trademark and some loyal corporate customers? With so many prominent Java folks leaving Oracle, I'm not sure what kind of leadership or moral authority they could muster to convince people that they're the most more credible center for the Java community. The community would suffer from a fork, no question, and it would be severely weakened, but I think Java users would prefer to go through such a tribulation rather than write off Java completely. Personally, I think Apache should fork Java and kick it off with a renaming competition, just to get us past the most traumatic part.
- kqr2 16y agoI thought the main problem with forking without getting the Java(TM) seal of approval is you may be liable for patent infringement.
- Corrado 16y agoYes, well you couldn't get the Java(TM) seal of approval but there is nothing saying you couldn't make your own "seal of approval". Fork Java, create your own Test Compatibility Kit, and start approving implementations. Done.
- zokier 16y agoThat wouldn't help against Oracles patents, which they are seemingly happy to use.
- dkarl 16y agoMay, might, could, Apache and Google have lawyers who can provide a much better answer to that question if they're asked (and paid) to do it. Even if the odds are less than even, if people really believe that Java is dead under Oracle, they will risk a lot for a chance to salvage the massive investment that thousands of companies and thousands of open-source projects have made in Java.
- rmc 16y ago
- kaffiene 16y agoOracle has been quite clear that Java will continue as it always has for normal, non-paying customers. Only the JRockit stuff which they were already charging for will be pay-for in the future. But whatever, FUD away.
- kls 16y agoOracle has been quite clear that Java will continue as it always has for normal, non-paying customers Not on mobile that have not, in fact they have stated quite the opposite. With mobile projected to surpass desktops in 18 months that is cause for concern. Make no mistake about it, the wranglings with Apache and the patent suit with Google are intricately related. This is all about ownership of mobile.
- pietrofmaggi 16y agoWhen Java was released in '95 it replaces Smalltalk in the Enterprises (mainly banks). And during this decade Smalltalk was down to little or no usage till useful stuffs (Seaside and Pharo comes to mind) bring it back to life. Can Smalltalk be the new (old) stuff?
- protomyth 16y agoIn order to truly replace Java, any language really, really needs to think about the ecosystem around the language. Smalltalk vendors really do not have a good deployment strategy, certainly nothing as comprehensive as Java. The other problem is that Smalltalk is pretty alien to a Java programmer (image vs. text, block based control flow vs. traditional control flow). Garnett and Forester's recommendations might be key. Although, I still would argue the premise and say most of these institutions know Oracle and understand dealing with them. I don't see people giving up their Oracle databases and having bundled, recommended Java might make Java more of a lock.
- deleted 16y ago[deleted]
- sigzero 16y agoI don't think anyone really knows at this point. I don't see this "killing" Java at all though. I don't think the Oracle path is clear but I don't think it is gone. Time will tell though.
- bergie 16y agoThere is GNUstep for Apple-free Objective-C (http://gnustep.org/ http://gnustep.org/), and Vala is another interesting modern language (http://live.gnome.org/Vala http://live.gnome.org/Vala)