If Java Is Dying, It Sure Looks Awfully Healthy
Hugh Pickens DOT Com writes "Andrew Binstock writes at Dr. Dobb's that a recurring prejudice in the forums where the cool kids hang out is against Java, often described as verbose and fading in popularity but Binstock sees little supporting evidence of Java being in some kind of long-term decline. While it is true that Java certainly can be verbose, several scripting languages have sprung up which are purpose-designed to spare developers from long syntactical passages to communicate a simple action, including NetRexx, Groovy, and Scala. As far as Java's popularity goes, normally, when technologies start their ultimate decline, tradeshows are the first to reflect the disintegrating community. But the recent JavaOne show was clearly larger and better attended than it has been in either of the last two years and vendors on the exhibiting floor were unanimous in saying that traffic, leads, and inquiries were up significantly over last year. Technically, the language continues to advance says Binstock. Java 8, expected in March, will add closures (that is, lambda expressions) that will reduce code, diminish the need for anonymous inner classes, and facilitate functional-like coding. Greater modularity which will be complete in Java 9 (due in 2016) will help efficient management of artifacts, as will several enhancements that simplify syntax in that release. 'When you add in the Android ecosystem, whose native development language is Java, it becomes very difficult to see how a language so widely used in so many areas — server, Web, desktop, mobile devices — is in some kind of decline,' concludes Binstock. 'What I'm seeing is a language that is under constant refinement and development, with a large and very active community, which enjoys a platform that is widely used for new languages. None of this looks to me like a language in decline.'"
Wake me up when java supports unsigned integers. Until then it's not a real language.
>> While it is true that Java certainly can be verbose, several scripting languages have sprung up which are purpose-designed to spare developers from long syntactical passages to communicate a simple action
Keep it up - you might just invent assembly...
Is Java a scripting language? I think anyone that thinks Scala is a scripting language, whatever that is, doesn't know what they are talking about.
Java had closures in the form of Anonymous classes. While it is true that lamda expressions will be much more concise, it is not correct to suggest that closures are being added with Java 8.
I often hear that Java "doesn't have closures." Since anonymous methods can capture variables within the scope of their declaration, they are closures.
I also frequently hear that Java is "interpreted," but that's a whole 'nother discussion.
Funny, I thought Scala was a fully compiled, statically type-checked language (at least as much as Java is). A language is not a scripting language just because it doesn't suck.
A man can dream, can't he?
I wish it would get the fuck on with it. Type erasure.
I use it on mission critical applications at work and it does a very efficient job of testing all the functionality of Nagios to page me at 3:00 AM. I have other java applications that are designed to explore the limits of slab allocation and heap return in memory. Theres even a java application I wrote that calculates financial reports. I know what you're thinking, and yes, it performs well as it stress-tests VoIP bandwidth and the helpdesk ticket system.
there are still so many uses for java. one of my earliest and oldest projects I still use to this day! its an application to help post Slashdot comme!####)))!%[NO CARRIER]
Good people go to bed earlier.
"When you add in the Android ecosystem, whose native development language is Java" - unless your app is a NativeActivity running C / C++ or C# (Mono) without a shred of Java.
The Dead Collector: Bring out yer dead.
[a company puts COBOL on the cart]
Oracle Corporation with Dead Body: Here's one.
The Dead Collector: That'll be ninepence.
Java: I'm not dead.
The Dead Collector: What?
Oracle: Nothing. There's your ninepence.
Java: I'm not dead.
The Dead Collector: 'Ere, he says he's not dead.
Oracle: Yes he is.
Java: I'm not.
The Dead Collector: He isn't.
Oracle: Well, he will be soon, he's very ill.
Java: I'm getting better.
Oracle: No you're not, you'll be stone dead in a moment.
The Dead Collector: Well, I can't take him like that. It's against regulations.
Java: I don't want to go on the cart.
Oracle: Oh, don't be such a baby.
The Dead Collector: I can't take him.
Java: I feel fine.
Oracle: Oh, do me a favor.
The Dead Collector: I can't.
Oracle: Well, can you hang around for a couple of minutes? He won't be long.
The Dead Collector: I promised I'd be at Microsoft. They've lost nine today.
Oracle: Well, when's your next round?
The Dead Collector: Thursday.
Java: I think I'll go for a walk.
Oracle: You're not fooling anyone, you know. Isn't there anything you could do?
Java: I feel happy. I feel happy.
[The Dead Collector glances up and down the street furtively, then silences the Body with his a whack of his club]
Oracle: Ah, thank you very much.
The Dead Collector: Not at all. See you on Thursday.
Oracle: Right.
Welcome to the Panopticon. Used to be a prison, now it's your home.
The reason Java is still alive and well is not because it's a good language. It's not because Oracle does a good job patching security faults with it. It's not because it may be able to run most of it's code on any given OS that can run its VM.
The reason Java is still alive and well is because it is the OO language most schools, universities and colleges teach in their CS classes.
The decline relative to other languages is evident in this data: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
I'm surprised no mention of PowerShell was listed. It's obviously platform specific, but Microsoft has done a nice job of including it in all their major platforms and products in recent years. I've used it on site for several customers, and I've had customers who are more technical asking about help with it. I'd be interested to see what sort of growth it's seen, and how it is supplanting (one can hope) old vbscript files that still linger.
I will shred my adversaries. Pull their eyes out just enough to turn them towards their mewing, mutilated faces. Illyria
Implying such handicapped thing can be called healthy.
Unfortunately it is also breeding some mutant offspring like c#.
Outside of Android - I believe use and acceptance is waning heavily. As a client-side web tool (where it got most of it's early predominance) it has been cockblocked by iOS, and is becoming overshadowed by native HTML5 (JavaScript) stuff. As a server-side tool it has been getting taken over by Ruby/Rails, Python and the stuff mentioned in the OP.
People don't understand the difference between Java the Language, Java the Virtual Machine (JVM) and Java the Browser Plug-in.
What do NetRexx, Groovy, and Scala have in common? They are all languages that are considered production stable running on top of the JVM. There are about a half dozen production ready languages that run on top of the JVM in fact. By running in the JVM these languages automatically pick up all sorts of performance and availability enhancements (JIT, Hotspoting, caching, etc.) the JVM offers. That's a lot of R&D the new languages don't have to invest in. It also allows new languages to be used in existing Java infrastructure with little to no change.
The reason this is all possible is because Java the language is just an abstraction that compiles to Java Op Code. Java Op Code is very stable. Since Java 1.0 all that's changed with the opcode is a couple new operations and couple deprecations. There's still around 100 codes total.
So why do people think Java is on the decline? Well the browser plug-in has been getting a bad name as of late. But that plug-in != Java. And frankly very few applications need a Java Plug-in. HTML5 and JS work just fine for the UI. It's not going to be a great loss if peopledisable it. You also get knee jerk reporting on this advising people to get all Java on their machines. Like it's somehow less secure than the VB runtime executors.
As far as jobs, I work in the java space. There's way more need than people to fill the need. I make extremely good money java programmer.
The JVM or the language?
I'm god, but it's a bit of a drag really...
A lot of very large users of Java are unhappy with it, not necessarily for technical reasons, but for legal reasons since Oracle set such a negative tone in court.
The only reason Java isn't dead yet is that it would be expensive to abandon existing infrastructure so abruptly. It will be a around for quite a while still, but it won't be too long before it's relegated to the decaying margins of the software industry.
And I do concur. I was also in job market few months back and If I have to believe the recruiters, there were more Java opportunities than the candidates available.
But bitches gonna bitch... I mean, hipsters gonna hipster... or should I say geeks gonna geek?
Lambda expressions? Delicious.
But seriously, very welcome addition to it, so stupidly useful at times where writing some external function/class would be a waste of time and code.
Of course, you can forget it in ENTERPRISE CODING companies, it's all about the bloat there. If your code doesn't have 50 gigatrillion lines per second quaserbits you are fired so hard you came out the other side of the planet.
It's all a matter of perspective, anything alive and well can only get sick and die eventually. Death is an eventuality. So really, Java is dying.
A 'singular oddity' is an event that cannot be explained and only happens when you are alone.
CUSTOMER: Here's one -- nine pence.
DEAD PERSON: I'm not dead!
MORTICIAN: What?
CUSTOMER: Nothing -- here's your nine pence.
DEAD PERSON: I'm not dead!
MORTICIAN: Here -- he says he's not dead!
http://www.sacred-texts.com/neu/mphg/mphg.htm#Scene 2
Oracle is doing some really bizarre things with Java 1.8, and one of the major growth areas of Java is on Android, an environment suited only for insane developers. But the core language is doing fine.
It always was there, and that's what other JVM-based languages compile/JIT-compile to.
Compare and contrast to Javascript with Coffeescript et al. transpiling to it.
Java will not be dead with solid evidence.
They reason that Java is dyng because their iPhones and iPads don't support it.
It's bulky, slow, hard to program in, and Oracle made the web plugin the worst thing to happen to computer security in the history of computers. Adding the Ask Toolbar by default to the installer is the software version of jumping the shark. They are so done and over with and dead and buried at this point. I know a lot of fellow programmers and not one of them has anything positive to say about Java. It needs to die as quickly as humanly possible.
It definitely doesn't help that the JRE installer tries to also install the Ask toolbar. Seriously? Even Microsoft doesn't try to install Bing with the .NET installers, and that's their own property they're desperately trying to push on everyone.
How am I supposed to take a platform seriously if the fundamental piece that has to be installed by all developers AND users to use it is doing the same sneaky things that half the crappy freeware on the internet is doing?
Just how much revenue does Oracle make from Ask anyway?
Speak before you think
Over datasets are in the terabytes. Calculations distribute over thousands of nodes and cores. Only in the 1990s was thre concern about efficiency. 64-bit JVMs have been a godsend. Formerly a FORTRAN-90/C++ shop.
Java allows seamless GUI front ends and web-service control.
The new features in Java-8 are very interesting.
... in the forums where the cool kids hang out is against Java...
Yeah..and how many of these "developers" are still going to be writing code in 5 years?
Java's problem isn't verbosity IMHO. It's the general mindset and community that has grown around the language. Instead of simplicity, they've gone into massive over-engineering, with factory factory factories and the like. A combination of pattern mania, and "enterprise" java, has resulted in turning an otherwise simple language into a veritable nightmare. Contrast this with the python community for example. Language wise, compare Java with C#. C# has done things a lot better in general. It may help that newer versions of Java will achieve some degree of feature parity with it but in the long run, I think it also has to be accompanied by a shift in the general notion of what's "normal" design in the Java world.
I am also in th5554444&&&&&&
The thing about Java is that despite flaws it was cross platform. that is it was, up until chrome. Right now you can't run the latest java in chrome. (chrome is 32 bit, and java 1.7 is 64 only.) And then there's chromebook which also has no java. And then there's Dalvik. So google seems to be pulling a microsoft on Java. I've switched away from using chrome to boycott google.
Some drink at the fountain of knowledge. Others just gargle.
I'm looking forward to having to support crappily-engineered code in some other language! I'm going to slap the first in-house engineer who suggests we jump on the NetRexx bandwagon.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
0 results found. You're slipping ./
With Oracle doing everything possible to kill Java, it's shocking that Java persists.
enough to not give a fuck about you
Functionally speaking, how important is it to have an unsigned data type rather than having the equivalent data type and enforcing a "no negative values" rule?
If your application logic's requirements include being able to represent values between 2^((2^n) - 1) and (2^(2^n)) - 1, such as 128 through 255 or 32768 through 65535 or about 2.1 to 4.2 billion, in a cache-efficient array, you usually want to use an unsigned type. This often comes up when trying to represent the native unsigned data types of an emulated machine or the unsigned data types of various SQL databases. You could use a type twice as wide, but that'd fill L2 cache twice as fast, causing capacity misses. And on mobile, it'd fill RAM twice as fast, causing the system to kill your application for having run out of memory.
I only have two issues with java:
- the constant nagging from the java updater. (Although to be fair, the updater has been killed on any and all of my devices.)
- the braindead way of keeping old version of the jdk and jre around. Words can't describe how freaking lame this is. I only want one java directory, with one jre and one jdk in it. The new versions need to replace the old ones and provide backwards compatibility.
I doubt Java will die in my lifetime and I am only in my 40's. Some people have no clue how many devices use java code.
Yeah, wish I had mod points... that "Ask" bit really been bugging me more and more lately... the presence of "ask-ware" is usually my indicator that some previously nice freeware tool developer has finally decided to cash in and that I should expect more "monetization" schemes to follow... I.E. start looking for a replacement "free" app because this one is about to become nag-ware.
Now, I have nothing against a small developer trying to cash in a bit on a good idea, but ORACLE?? Really?
- Most CS programs train their graduates in Java.
- Java is pretty much the enterprisey middleware language these days. I've seen so many J2EE applications alive inside organizations doing mundane but vital tasks.
- Unless you're a web startup, Java is almost universally used for line-of-business application development. That ugly GUI that collects budget numbers from 500 databases and displays an "executive dashboard" was probably slapped together by an Accenture type outfit using offshore new grad coders and sold to companies for millions.
It's just too prevalent now for people to say, "Oracle sucks, we're porting everything to C#." I can definitely see a market for Java talent similar to the COBOL market 30 years down the road. People won't need millions of Java coders anymore, but they'll need older expert types to go untangle messes.
For whatever reason, Java seems to be popular with the work to spec, outsourcing shop types.
Java must be dying - when's the last time you saw an applet? Let's ignore that it's hugely popular on servers, for enterprise development.
"Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh
But if you really need them, perhaps that should be a signal that a lower-level language is more appropriate for that particular component in the system.
Provided that the platform curator even allows the use of lower-level languages. For example, Java applets have to be written in Java, and Xbox Live Indie Games and Windows Phone 7 applications have to be written in C#.* An applet that attempts to use JNI or an XNA game for Xbox 360 or application for Windows Phone 7 that attempts to use P/Invoke will die with a security exception.
* Technically, XBLIG and WP7 allow the subset of verifiably type-safe CIL accepted by the .NET Compact Framework. But in practice, languages other than C# either aren't verifiably type-safe (such as standard C++ in C++/CLI) or require library facilities not present in the .NET Compact Framework (such as any DLR language).
Larry Ellison is just another borderline personality disorder businessman who doesn't give a fuck about anything besides making himself richer and self-aggrandizement.
He and Ballmer should go to some private island and never be seen again.
First there’s the Java platform. The HotSpot JVM is a marvelous piece of engineering. It does stuff the CLR can only dream of and is so heavily optimized that often Java apps can even match the performance of C programs. Also, there is quite a selection of other virtual machines available (such as JRockit, Zing), should your environment have some specialized requirements.
Secondly there’s a multitude of JVM-based languages, which makes the platform even more amazing. It goes way beyond the famous ones like Groovy, Jython, JavaFX and Scala. Java now includes such treats like invokedynamic opcode and the java.lang.invoke package, making it easier to build dynamic languages for the JVM. There’s already a line up of over 50 JVM-based languages, one of the most interesting ones being php.reboot, which aims to keep the philosophy of PHP but remove its shortcomings. And it also works for Android, too.
There's another good piece on how java's not quite dead yet
I think of it like a George Romero zombie that has plodded along consuming and destroying brains for the better part of two decades and clumsily getting around the shotgun programming language deficiencies with each new release.
Yeah (lots(of(hidden($&@#code))) going on behind the scenes. Such constructs are really pleasure to debug and work with!
Anyone with any real knowledge of Java knows how wrong that is. But, it's been cool on Slashdot to say so and it's automatic karma whoring when you do.
I swear to God...I swear to God! That is NOT how you treat your human!
We all know that prior to Oracle buying Sun, Sun open sourced Java. So to talk about Java's future is to talk about the JVM and the language and consider both open source and closed source implementations (I see the pair as providing the coherent technology that is Java). The Dalvik VM in every Android device runs Java bytecode. Almost all Android apps are written in Java. Look at Android's increasing market share and look at how many of those apps use Java as opposed to NDK.
Java in the enterprise has perhaps plateaued, but in most industries when it comes in enterprise technology it's either the Microsoft stack or the Oracle stack (some run hybrid environments even). I would say if anything the trend I've seen in Oil & Gas is moving away from Microsoft/.NET in favor of Oracle's tech
Also, you can look at various surveys for most popular languages and Java is always at the top.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Scala is not a scripting language
All the ones on Windows, anyway.
And ProLog and Modula to be updated by Borland International eclipsing Microsoft Visual Studio for the first time
The same idiots who pushed C++ on us hate Java because it is not verbose and not "powerful"--i.e. it is easy to use and safe.
No really it will. Apparently there's a law that says to have a website you have to run 45 different Javascripts nested 4 layers deep or more. And because of it basically 99% of the hosts out there are essentially slow junk.
Noooooo....if they mated, they'd produce Satan's offspring more terrible than either of them alone. No, I think it best if we send them to private islands on different planets.
And it'll stick around for just as long...sadly
Microsoft does try install Bing cruft every time one updates Skype however.
Oracle offeres it for free on many platforms. Java's similar competitors C# and ObjectiveC cant make that claim.
Checklist:
* Hugh Pickens DOT Com
* Clickbait summary
* Absurd premise
* Trolling conclusion.
I'm a good cook. I'm a fantastic eater. - Steven Brust
I'm sorry but Java was dead the day they sued Microsoft. I don't blame em for doing so but that just put "lawsuit happy" up on the radar even if it had merit.
Nobody, absolutely nobody wants to use any operating system, library, or runtime that may for legal reasons be unusable in the future. This is mostly why the GPL/LGPL is avoided in regards to Linux, and why Java is avoided by developers because of Oracle. The entire Android lawsuit is a tragic example of repeating the Microsoft lawsuit. Likewise everyone absolutely hates the Java crap on Android that everyone wants to build using the NDK (Native Development Kit) instead.
If you are building using the Java language for Android, you're going to face a future where at some point Google throws in the towel and ejects it from Android. That is not a speculation, that is a promise. Start building your apps now for the NDK.
Java is for people that find real languages too hard. It's like a person that can't paint using paint-by-number.
People on Slashdot, and hell even the internet in general, love to say "X is dying!"
And 99/100 times, they're totally wrong.
Flash is dying, all hail HTML5!
Windows is dying, all hail Linux!
Mac is dying, all hail Linux!
Among others.
The biggest problem with these viewpoints is that the items from column B are not suitable replacements for column A.
But of course, the stuck up nerds can't see that, they only see that whatever they're supporting is clearly superior.
Let's be clear on what /. used to be and what it has become.
Seastead this.
If Python, Ruby, PHP, and Javascript were sled dogs, they would be following Java. and the view would never change.
Sure has a cutting edge website, readers are no doubt the technical leaders of the world.
...it's just compiling.
Do what you can, with what you have, where you are.
Could it just be that with an improving economy, more company's are willing to fork out the thousands of dallars per developer to go to JavaOne?
who said java was dying (apart from some of the dozens of clueless tech-tabloids regularly cited on /.) ?
How am I supposed to take a platform seriously if the fundamental piece that has to be installed by all developers
You had me up until said you "all developers".
Developers need the Java Developers Kit, which notably doesn't prompt you to install toolbars. Nor does the JRE installer on the Java developer site (which used to be java.sun.com).
Unfortunately, unless you know to grab the installer from there...
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Even Microsoft doesn't try to install Bing with the .NET installers, and that's their own property they're desperately trying to push on everyone.
They install it with the OS.
"First they came for the slanderers and i said nothing."
Java has had closures, with all the stuff that does to local variable lifespan, since Java 7. Lambda expressions are just syntactic sugar for writing small closures.
It's an object oriented language. If it's missing a type you need, go make one.
Weaselmancer
rediculous.
Now that's just plain wrong. C'mon: there's nothing about Larry's personality disorders that should be described as "borderline".
Ballmer at least has the grace to exit - give him credit for that!
Socialism: a lie told by totalitarians and believed by fools.
Fork it... .NET Framework, hands down.
The Windows JRE installer is an obnoxious piece of crap. Fortunately modern JDKs ship with something called the JavaFX Bundler, which makes native installers (exe, msi, dmg, rpm, deb) for each platform that bundles a stripped down JRE with the app, so there is no need to install the JRE or keep it up to date. If you are distributing consumer software or don't want to handle the problem of keeping JREs up to date, it's useful.
There are also tools that can eliminate the need for the JVM entirely, for instance by ahead of time compiling entirely to native (Excelsior JET is one such program), or alternative JVMs that sacrifice some performance for code size, like Avian.
Comment removed based on user account deletion
Java is evolving nicely. JVM languages, such as Scala and Clojure, are booming, and awesome to work with. C# , and .NET, are going the way of the Soviet Union.
The only people that hate Java are either Microsoft programmers (VB,etc) and hard-core C programmers.
My favourites languages: Java (J2SE, Android) and PHP/Mysql (web).
My latest Java software: myubank.com/download.php
This is what happens when you confuse anecdotal evidence with fact.
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
It is now official - Netcraft has confirmed: *BSD is dying Yet another crippling bombshell hit the beleaguered *BSD community when recently IDC confirmed that *BSD accounts for less than a fraction of 1 percent of all servers. Coming on the heels of the latest Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as further exemplified by failing dead last in the recent Sys Admin comprehensive networking test.
Fuck Ajit Pai
Java is alive and stands well against newer alternatives simply because java programs are easier for new developers to get up to speed with reading and modifying existing code than newer scripting languages. This is a killer enterprise feature.
Majority of LOB apps perform non-glamurous, but neccessary tasks (as some poster already wrote). But these tasks are critical for business and there is often a need (change of business reality, new insights, regulatory changes, ...) for expedient changes in software. People move around, so it's important that new developers are able to quickly grasp the existing code and get to the point where they are able to do working modifications. The software is also often poorly engineered (because it's developed quickly and because of high variability in developer skill in real world), so it's important that enterprise language makes understanding any (even poorly made) existing code easier. Business pays for this kind of advantages, so java is far from dying, even if writing new code might be less productive.
Static typing and well-defined language enables quick and complete exploration of code from IDE, for example finding all the references to a variable or a method (OK, it won't catch the references done via the reflection mechanism, but that's a trade-off worth having). It's also better suitable for assisted refactoring (important for improving the structure of existing code with minimum hassle) in IDEs with less need for programmer to understand the internals of code, since the IDE has more knowledge about code. Static type checking also gives immediate feedback about the state of codebase at compilation time (or in editor), which simpifies the coordination with multiple programmers on a project and reduces (not eliminates, mind you) the need for running unit tests.
It is probably worse fit for some things, for example tipical applications for web startups, where quick exploratory development of new functionality is more important and where the talent is more selected and personally invested (stock options).
Java is alive and stands well against newer alternatives simply because java programs are easier for new developers to get up to speed with reading and modifying existing code than newer scripting languages. This is a killer enterprise feature.
Majority of LOB apps perform non-glamurous, but neccessary tasks (as some poster already wrote). But these tasks are critical for business and there is often a need (change of business reality, new insights, regulatory changes, ...) for expedient changes in software. People move around, so it's important that new developers are able to quickly grasp the existing code and get to the point where they are able to do working modifications. The software is also often poorly engineered (because it's developed quickly and because of high variability in developer skill in real world), so it's important that enterprise language makes understanding any (even poorly made) existing code easier. Business pays for this kind of advantages, so java is far from dying, even if writing new code might be less productive.
Static typing and well-defined language enables quick and complete exploration of code from IDE, for example finding all the references to a variable or a method (OK, it won't catch the references done via the reflection mechanism, but that's a trade-off worth having). It's also better suitable for assisted refactoring (important for improving the structure of existing code with minimum hassle) in IDEs with less need for programmer to understand the internals of code, since the IDE has more knowledge about code. Static type checking also gives immediate feedback about the state of codebase at compilation time (or in editor), which simpifies the coordination with multiple programmers on a project and reduces (not eliminates, mind you) the need for running unit tests.
It is probably worse fit for some things, for example typical applications for web startups, where quick exploratory development of new functionality is more important and where the talent is more selected and personally invested (stock options).
True, I can find another language. But the other language just happens not to have a runtime environment on the target platform, as 0xdeadbeef and I pointed out.
Cardinal numbers indicate a count of objects: "one, two, three".
Such as a count of each distinct item on an order and a count of cents that the customer paid for each item. For obvious reasons, a negative value would be inconsistent.
Ordinal numbers indicate an order - a position in a sequence: "first, second, third".
Ordinal numbers have two mappings to the cardinal numbers. A "zero-based count" represents an ordinal as the number of items that have already been considered: zero, one, two. A "one-based count" represents an ordinal as the number of items that will have been considered once processing of this item is finished: one, two, three.
I've been working with Java since 1997, and the greatest part of my work since then has been in Java (was doing lots of Unix kernel work and 2-tier/client-server database style projects before that).
In that entire time, only immediately after the dot-com crash in 2001/2002 and for a year or so after that did I find it difficult to find a job where Java was the main skillset required. It might be highly locale-specific; I live in the San Francisco area, and there are piles of both startups and large multinationals that do Java work (although I *have* noticed startups using more Scala and Groovy lately).
But I haven't ever gotten the feeling from the job market that Java is dying.
- Tim
I am a university student and love Java. I believe that Java is becoming more popular because it is a lot of people's first language (mine included) and the one being used the most to teach with. With the terrible job market more and more people are flocking to computer science, thus, more and more people learning Java. Teaching C as a first language will turn people away from CS, while Python doesn't have the textbook support. I believe it's a great language to learn computer science with and I hope it doesn't die any time soon.
Minecraft... runs on Java... that's got to count for something.
I have for years tried to find a single redeeming aspect about Java. One of those: I know Java sucks but it has great "something".
Truth is, that it sucks, period. All aspects of its design are fundamentally stupid and divorced from reality.
Before Java we had Perl, just as slow and shitty, but a hell of a lot easier to write and run. But I guess it wasn't an ecosystem owned by a big corporation like Sun.
Java is just one of those overhyped corporate languages, still living off the fumes of past glory. Looking at how quickly a only marginally better language like C#/.net took over, it proves how it was more of a fad than anything else.
We develop Android apps and we've had to turn to C++ inside a Java wrapper.
Java is too f***ing slow for any sort of rendering, transformation, AI or, well, anything that actually calculates anything! Hopefully the NDK will soon eliminate the need for even the wrapper.
Def: 1) a specific type of coffee bean, 2) a knock-off of the C++ language, easier to us 3) a coffee drink.
In the beginning, it was great.
Easy to understand, write with, build with and live with.
There were libraries so I could do stuff.
OK it was kinda inflexible but who cares.
These days its a pure wankgasm of cruft.
"Closures", "Collections", "Annotations", "Weaving".
There is now so much black boxing, conventions and mind-boggling macro-type shite in there that I can barely understand what a given piece of java does and more. The enterprise stuff is even worse. The project I just got drafted in to rescue is basically unmaintainable at this point. I've been in IT all my professional life and I've seen technologies come and go. If Java came out today nobody would be using it. It only survives due to its installed base.
Watch the Crockford videos. There's at lease 8 hours of stuff you don't know or else you'd never say such silly things.
I blackholed java.com, it was all I could do to keep that damn virus from coming back. Loading it transparently is naughty.
What do I miss? Holy shit, absolutely nothing. And XP stays up for months now. Golly. It's no FreeBSD, but hey anything longer than a day and you were living on borrowed time before.
Need Mercedes parts ?
The argument about languages and side taking is for those with a black and white view of the world. The value of a language is in the context of its purpose. Java has survived so long because it is the right fit for a purpose. The hard to read argument often has nothing to do with the language, it's about programmers who write crap programs. People who don't understand OOs or knowledge of common design patterns are going to stuff it up and there is no shortage of them. That I believe is part of the education process. Go to uni, learn a language and get a brief intro to Objects Orientation and maybe learn the MVC design pattern. Go out and start writing code!!!. The language is just a tool. It's how you design your solution before you start writing code that matters. If you can do that well you don't have to invest in a specific language and get all outraged when someone makes a slight against it or try so hard to tell everyone why your language is much better than theirs. Seen too many people get all bitter because their 'chosen language' has had its moment in the sun. Move with the times, learn new languages and keep doing what I think is one of the most satisfying jobs around.
It is an astonishing, breathtaking failure when viewed with any expertise in how things should be done. You log in and the screen just turns blank with no error message. Or you get an error message that literally just says "Error!" in red and nothing more. Or it gives an error that indicates what can't be the true cause. Or it says we're too busy ... at 3 a.m. Or try again later (but not how much later). Or a bunch of Java code gets splattered onto the page in literal text. Different errrors in every variety of browser. No evidence of version control or other error tracking. No indication of status, good or bad, no list of active problems, no advice when to expect resolution. There is no documentation or explanation of any of this from the authorities or the contractor. The authorities will not report usage statistics, how many succeeded, or how anyone succeeded if there is a specimen anywhere in the universe to copy. One has to question whether it has worked in a single instance.
Here is an acid-core example: every single user has to confirm via email. Yet the email is flat-out RFC-violating non-compliant, and can't be read in email readers that don't know how to handle this non-conformity. Specifically, this violation appears in the email headers:
Received: from . . . service.govdelivery.com .
Content-Type: multipart/alternative;
. .
Content-Transfer-Encoding: base64
This is not an example of bad Java, but it does show the kind of foolishness passing for system-building everywhere you look. This garbage came from govdelivery.com who are apparently the choke point for the entire system. If they fail, or if you fail to deal with them, you are SUNK.
They do have a pretty girl smiling at you from the home page. Puh-leeze.
These are not bugs or glitches or the overwhelm of success. This thing is utterly defective. A FAILURE. One must question whether it will ever work, and if it won't have to be abandoned for a do-over. Nobody expected a smooth rollout, but this is head-slapping incompetence.
And the law is, you must succeed with it, or ELSE! You cannot mail in forms, or call on the phone, to get this done. It all happens on the Web.
And when has the federal government ever appropriated non-government technology and property in this way, and used it as the sole means to enforce something against the citizenry? With the income tax, they at least give you the paper and a post office to send it back and forth. The government will depend completely on the Internet now to keep you from being fined or put in jail?
the key comment in the original post is "forums where cool kids hang around". well in case you haven't noticed, these cool kids are probably not even 1% of the total software engineer/developer population out there. and i would thus question the whole premise of this article. its based on a number that, as we say in physics, infinitesimally small and can be safely ignored for all practical puropses! :-)
You are wrong because Java can in theory be faster than C++. The difference between C++ and Java is that you compile only once with C++, with only some optimizations. For isntance, you can not turn on SSE vector instructions when you compile, because the user's PC might not have SSE instructions in his CPU. Thus, you only use some basic general optimizations that work on every PC: no SSE, etc.
OTOH, Java recompiles every time you invoke your software so the JVM can examine the PC and see that "oh, it has SSE vector instructions, so I will enable that". This means the JVM tailors he optimization for your specific PC. One PC might have SSE, and another not. For instance, there is a project that will allow Java to run on the GPU. So the JVM might choose to run everything on the 5 TeraFlop graphic card instead of a 200 GFlop CPU. C++ can not do these on-the-fly optimizations.
Also, it turns out that the fastest and largest stock exchanges are often written in Java with extreme throughput and low latency (for isntance NASDAQ with latency of 100 microseconds). Stock exchanges written in C++ are not faster. The secret is to disable the Java garbage collector (i.e. you manage your memory yourself, by preallocating lot of objects and always reuse them - this way they will not die). Several extremely well performant applications (HFT systems etc) are written in Java.
So, you are wrong. In 10 years time, I would not be surprised if Java always was faster than C++. Today Java is faster only in some cases, and on par in most (majority) cases.
It's pretty unlikely the offspring would be able to randomly throw palm trees so that they'd form into working yacht to sail away from their aquamural prison.
But some chances aren't worth taking. The words "nuke" and "orbit" spring to mind.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Sorry guys, since when is Scala a scripting language. Anything but?
Java IS dead... just like rock and roll.
No amount of criticism is going to make Java go away so get over it and stop flaming about Java being _______________. I am going to go out on a limb here and state categorically that each and every programming language has its faults. So your choice is simple: either declare that "the glass is half-fiull" or "the glass is half-empty". IMHO Java is an incredibly fantastic language to use for accomplishing your task at hand. Yes, you need to type a little bit more in Java. Shut up and get to work is what your managers are going to say.
--- You are in a little twisty maze of comments, all different.
Oh look, theres two of them!
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html