I have create this thread to talk bad about Java, and to talk good about Java.
My own opinion about Java is uneducated, poor and uninteresting, but is the role of the OP to try to start some debate, so I will try my best.
Born to wash
Java idea of beauty is architecture, a lot of words, something like these clocks sell on the 80's with a transparent glass carcass.
Java like to be verbose, but inside the Java idea of beauty, all this verbosity is ideal, necessary, useful.
Java, like other languages, is created as a reply to older languages than him. Mostly C++. But also Basic, Pascal,...
When Java was only a small children, his creators planned to use it for washing machines. Is this destiny fulfilled? are washing machines programmed in java? probably not, probably use some C compiler.
In his teen ages, Java tried to conquer the Internet. The eyes of Sun where full of light and wisdon, and Sun was able to see a very far future. Sun created HotJava, a browser done right, with the browser written in Java with the idea to run mostly applets. A beautiful idea. Do you want to support X3D?, you just pile more Java libraries on it.
So this failed, but was beautiful.
And then Java managed to get a job in a big coporation, like these that have huge mainframes on the underground, that run all night doing bach task for the ERP of the corporation, with everything programmed in COBOL.
And Java as slowly changing this, very slowly because this is a world that change very slow, but a lighting speed relatively.
And so, the places where overengineering is not a error, but the standard procedure, use Java.
So if you have a ugly problem, only that is disgusting to look at, and purely boring to write down, will the solution be also ugly and boring and disgusting to look at?
I don't know.
- - -
For the Java programmer, Java is not ugly.
Last edited by Teiman; 05-03-2012 at 11:17 AM.
What we are all thinking.
Know has JAVA.
That is *funny*. You think you *see* Java but Java are not *light reflections*.
Maybe you think Java are *many bubbles* too. It is such a joke.
Hehehehe... this don't seems to be working, maybe I sould have used a more cute dog pet.
I still haven't read the OP. If you're looking to start a conversation, don't use a wall of text to do it. :)
All I know about Java is it wants to update way too goddamn often.
Where can I find one of those clocks with a transparent glass carcass?
Java needs to start evolving a lot faster. The Oracle buyout was probably better than Sun continuing to own it, but the rubber has yet to really meet the road there. Wake me up when Java gets lambdas.
Matures languages can stay basically the same for 30 years, so I don't think will evolve much on the next years.
It's terrible the damage that Oracle is going to do to the language, seems to want to turn java into a leper colony. Even if the language evolve, the bigger effect will be the aura of danger created by Oracle.
Oracle certainly haven't helped the cause. I really wish Google had nabbed Sun instead to be honest.
Dog have Java problem is funny knows issue.
Here's an interesting Gartner slide on the development of Enterprise applications.
It essentially demonstrates the desire of Enterprise to have applications developed on platforms that are not rigidly tied to an OS, which in turn can allow flexibility in how they are deployed and reduce cost of development ("write once, run anywhere"). This more or less supports Teiman's comments on "mature Java".
Java makes up a significant portion of that "OS-Neutral" segment and should continue to do. Companies such as VMware are even banking on this through aquisitions of Java development and life-cycle frameworks such as SpringSource.
I think the trend in Enterprise will be for languages of this nature (Java, Ruby, Python, etc) to increase in popularity over time.
We're an enterprise app shop and we've been gradually porting components of our products to Java for years now, and the main parts left in C are the fiddly little bits that delve fairly deep into OS/DB/3rd party app-specific APIs. We've actually been doing this to improve Windows support, as previous versions were fairly heavily mainframe-based and we wanted to be able to move more components to Windows and Unix systems.
I'm still fairly new to Java and there are bits of C/C++ that I miss, but Java has been pretty nice for being able to focus on code correctness, when performance and efficiency aren't as big a concern.
:P My not terrible interesting or well informed opinion:
The biggest push for Java is probably that is the only logical thing to teach in university, so universities create a lot of java programmers every year, and you have to do something with this enormous pool of people. Android has created another zone in need of java programmers and java programmers having fun and solving problems in java will continue doing so in the future. But this is balanced by windows power users that acquire IT responsibilities in companies. People with not IT formation that are windows power users will always create windows dependencies. Most companies don't even have programers, only a group of sysadmins trying to mantain the windows workstations virus free, the printers printing, and the people on VPN connecting. This leech all the time available and make so companies have a IT group made of sysadmins. So all these java programmers can't possibly influence a lot of companies in any way. Just producing good software in java is not enough, and java in the desktop is not terribly powerful ( I have perhaps only two java programs: netbeans and mine craft,... You can't say that's a really powerful ecosystem).
So I don't think the windows stack is menaced, much less by java, java is just not vital enough, and don't seems to produce a potent ecosystem, plus maintaining windows working already leech the 100% of the efforts of IT, so IT can't do much else. All these million java programmers will work in mainframes, move to the smarthphones or learn C#, or learn sysadmins skills and end his life changing printer ink, troubleshooting virii.
Last edited by Teiman; 05-06-2012 at 03:06 AM.
I agree with the statement of Java taking over from COBOL/C/C++ as the language of choice for big-ass Enterprise applications. That's definitely Oracle's own strategy, from their Fusion program of rewriting all their enterprise apps using Java + their own very thick layer of middleware, then buying WebLogic for the better App Server, then buying Sun to gain control of the language itself.
One wrinkle is the rise of smartphone and its encouragement of custom native apps instead of being just another web browser. This may push client development to use some other languages, but won't affect the enterprise application development at all (if engineered properly...and as Teiman says, Enterprise loves over-engineering).
As for Java's verbosity, Java 8 aims to make the compiler do a lot more intelligent guessing of Classes...take a look at that lambda paper I linked to see what's coming. I'd have to say, though, that the new syntax + lambda will make all of us Java oldtimers scratch our heads for a long time. Heck, I've met coders who won't even use the 1.5 for-iterator syntax. People are just set in their ways...
The thing is, those kind of language additions are a double edged sword.As for Java's verbosity, Java 8 aims to make the compiler do a lot more intelligent guessing of Classes...take a look at that lambda paper I linked to see what's coming. I'd have to say, though, that the new syntax + lambda will make all of us Java oldtimers scratch our heads for a long time. Heck, I've met coders who won't even use the 1.5 for-iterator syntax. People are just set in their ways...
The "verbosity" of Java is actually one of its strengths when dealing with a large code base and lots of different developers. Sun, very intentionally, wanted to make Java an extremely simple and explicit language. You can see it in many of their discussions regarding how they came up with Java.
I think this is probably most apparent to folks who have had experience with large codebases in C or C++, with all kinds of crazy defines and macros and junk. All of that stuff lends power to the languages, but it makes reading the code far more difficult. That is, if you just get a big ass C or C++ codebase dropped in your lab, it is likely going to be a fairly steep curve to learn what the hell is going on. You're going to encounter all kinds of things which essentially extend the language for that specific application, and end up making the syntax you're seeing hard to wade through.
Eliminating this was one of the chief purposes of Java. And it was a great success. Even extremely large Java code bases are pretty damn easy for any developer to understand. You can look at any piece of Java code, and get a pretty good idea of what it's doing, even in a vaccum. This is a huge benefit to large scale development.
Some of the proposed changes to Java add power, but they erode this principle somewhat. Not necessarily bad, but not automatically good either.
One thing that always makes me chuckle though about Java is how, every year, without exception, you have folks talking about how Java's past its prime and is gonna disappear.. or be relegated to some tiny niche in the market. But folks have been saying that for decades now... and the Java development community just continues to grow.
Question is, would Apple ever allow it?
I don't think you'll see non-native go away on mobile any time soon. It's so much easier to write high performance code in native(and I'm not talking about compile vs JIT). See WP7 and all the 3rd part list performance issues.
Do you mean that you don't think you'll see native code go away on mobile platforms?I don't think you'll see non-native go away on mobile any time soon. It's so much easier to write high performance code in native(and I'm not talking about compile vs JIT).
I cant parse that. Is a comment about his life lenght?
Err, yeah. I don't think you'll see native go away anytime soon. That's what I get for posting without a full night's sleep.