Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

If Java Is Dying, It Sure Looks Awfully Healthy

timothy posted 1 year,12 days | from the is-someone-brewing-another-pot? dept.

Java 577

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.'"

Sorry! There are no comments related to the filter you selected.

Wake me up... (0, Troll)

Anonymous Coward | 1 year,12 days | (#45091087)

Wake me up when java supports unsigned integers. Until then it's not a real language.

Re:Wake me up... (5, Insightful)

nitehawk214 (222219) | 1 year,12 days | (#45091177)

Wake me up when netcraft confirms it. Until then it's not dying.

Re: Wake me up... (2)

DVega (211997) | 1 year,12 days | (#45091253)

It has an unsigned 16 bits integer. It is called "char"

Re:Wake me up... (5, Informative)

Anonymous Coward | 1 year,12 days | (#45091367)

Wake me up when java supports unsigned integers. Until then it's not a real language.

Python, Perl, and Ruby are examples of other languages that don't support unsigned integers. These languages are independent of the underlying hardware and automatically upsize the integer to handle larger value. You can always use the AND operator to convert to an unsigned integer for C calls. (e.g. var & 0x0FFFFFFFF).

You're not a real programmer if you can't adapt to the lack of unsigned variables.

Re:Wake me up... (4, Insightful)

BreakBad (2955249) | 1 year,12 days | (#45091499)

You're not a real programmer if you can't adapt to the lack of unsigned variables.

BOOM

Re:Wake me up... (5, Insightful)

frinkster (149158) | 1 year,12 days | (#45091767)

You're not a real programmer if you can't adapt to the lack of unsigned variables.

Forget about being a "real programmer" and focus on being a "real developer.' There are functional requirements and then there are technical requirements. 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? I'm not sure I can think of any, aside from the case of being able to interpret unsigned data types for interoperability. But that says nothing about the need for the actual storage of that data.

I'm pretty sure that some respected Computer Scientist said something about premature optimization....... It's a good rule. Focus on meeting the functional requirements of the system you are developing, and then optimize where it makes sense. I don't think you are going to notice the lack of unsigned data types. 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.

Re:Wake me up... (4, Insightful)

petermgreen (876956) | 1 year,12 days | (#45091995)

I'm pretty sure that some respected Computer Scientist said something about premature optimization

I think there is a balance to be struck, putting too much effort into optimising early on is a waste of time but that doesn't mean that languages that make inefficient soloutions easy and efficient soloutions painful are a good thing. Unsigned types are just one of many cases where java does this.

Unsigned types are a good thing for several reasons.

1: They are easier to bounds check. If you have an unsigned type you only have to worry about making sure it is not too large. If you only have a signed type then you either have to make sure all your bounds checks cover the negative case or be very careful not to accidently generate negative values.
2: They can store values twice as large. Sometimes that is the difference between fitting the number you want in one size of data element and being forced up to the next size (which is likely to double your memory requirements).
3: Some algorithms (particulally in crypto) are designed arround unsigned integers of a specific size.
4: the interoperability requirement you mention. Sometimes you have to work with another system where it has been decided by someone outside your project that say a 32-bit signed integer is sufficient.

Don't get me wrong all these things CAN be worked arround but those workarrounds mean lower efficiency AND more potential for mistakes.

P.S. Java does have an unsigned 16 bit integer type despite lacking unsigned 8 , 32 and 64 bit types. It calls that 16 bit unsigned type "char".

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.

Mixing languages adds extra complexity, especially with stuff like java. So IMO a good critera for a language is what range of "levels" it can cover without having to resort to mixing languages.

On the verge of using a type twice as wide (2)

tepples (727027) | 1 year,12 days | (#45092009)

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.

Re:Wake me up... (0)

Anonymous Coward | 1 year,12 days | (#45091833)

You're not a real programmer if you can't adapt to the lack of unsigned variables.

So I am not a real programmer. But how about some choice. Why would I be calling an 0x0FFFFFFF masking operation everywhere in my program, if I don't have to do that in C? Just because some language programmers are so lazy they don't want to think about speed, doesn't mean I have to use their slow language. It's just sad.

Re:Wake me up... (0)

Anonymous Coward | 1 year,12 days | (#45091877)

Wake me up when java supports unsigned integers. Until then it's not a real language.

Python, Perl, and Ruby are examples of other languages that don't support unsigned integers. These languages are independent of the underlying hardware and automatically upsize the integer to handle larger value. You can always use the AND operator to convert to an unsigned integer for C calls. (e.g. var & 0x0FFFFFFFF).

You're not a real programmer if you can't adapt to the lack of signed variables.

there, fixed it for you.

Google Chrome is killing java (2, Interesting)

goombah99 (560566) | 1 year,12 days | (#45091783)

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.

Re:Google Chrome is killing java (5, Insightful)

binarylarry (1338699) | 1 year,12 days | (#45091801)

Java is a lot bigger than Java Applets.

Java Applets fucking suck and deserve to die.

Re:Google Chrome is killing java (0)

Anonymous Coward | 1 year,12 days | (#45091933)

chrome isn't a platform. Google will drop it in a year or two.

Keep it up - you might just invent assembly... (0)

xxxJonBoyxxx (565205) | 1 year,12 days | (#45091171)

>> 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...

Re: Keep it up - you might just invent assembly... (0)

Anonymous Coward | 1 year,12 days | (#45091229)

"Java 8, expected in March, will add closures (that is, lambda expressions)" - They're inventing Lisp!

Re: Keep it up - you might just invent assembly... (2)

znanue (2782675) | 1 year,12 days | (#45091673)

As if features are the only thing that makes a language a language. I'm not saying Lisp isn't nice, but which lisp? And, after you select which lisp, which library to do the thing you're trying to do? Oh wait, they often don't exist. So you hand roll your own, because it is easy in lisp, due to lisp's powerful nature. So now you can't hire people who know about the things you're doing right out of the gate because you choose a specific lisp and hand rolled a bunch of stuff. Need to integrate with xyz technology? There's probably not a lisp library for it that is standard, if it exists at all. Its also rarely mature...

In the end, some version of lisp might still be a really good choice for some project. However, it has significant disadvantages to overcome. Adding lisp like elements to a language like Java is a much nicer thing than your quip seems to appreciate because it gives you some of the advantages of using lisp while retaining all the advantages that java will provide. Maybe lisp should try to invent java by standardizing the language and writing a lot of mature libraries?

Mod -1, Uninformed (0)

Anonymous Coward | 1 year,12 days | (#45091575)

It always was there [wikipedia.org] , and that's what other JVM-based languages compile/JIT-compile to.

Compare and contrast to Javascript with Coffeescript et al. transpiling to it.

scripting language? (1)

Anonymous Coward | 1 year,12 days | (#45091193)

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 already had closures (3, Informative)

Anonymous Coward | 1 year,12 days | (#45091203)

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.

Scala is a scripting language? (3, Insightful)

bendilts (1902562) | 1 year,12 days | (#45091209)

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.

Re:Scala is a scripting language? (-1)

Anonymous Coward | 1 year,12 days | (#45091243)

But Scala does suck. Its community sucks. Its syntax sucks. Its trying to be all things to everyone sucks. It just sucks.

Re:Scala is a scripting language? (3, Interesting)

binarylarry (1338699) | 1 year,12 days | (#45091509)

Scala is basically C++ on the JVM.

It's what Java would be if the stewards of Java weren't so conservative (or lazy) about new features.

The powerful features of Scala tend to make code unreadable months down the road in my experience. :(

Re:Scala is a scripting language? (0)

Anonymous Coward | 1 year,12 days | (#45091841)

It's what Java would be if the stewards of Java weren't so conservative (or lazy) about new features.

The powerful features of Scala tend to make code unreadable months down the road in my experience. :(

Actually, there are two things about Scala that make Scala code unreadable:

a) Operator overloading. Yeah, Matrix + Matrix looks nice, but the temptation to abuse operator overloading seems to be too overwhelming for most people that get exposed to it.
b) Innumerable typing shortcuts for common operations. I'm ok with "f x" being a shortcut for f(x), but there are 38 shortcuts compounded on top of that which are conditionally valid depending on context.

Outside of that, the type system in Scala is really nice, and it does support a nice mix of classes and functional programming.

Re:Scala is a scripting language? (2)

pscottdv (676889) | 1 year,12 days | (#45091449)

More to the point, it's not Java. It's Scala.

Re:Scala is a scripting language? (0)

Anonymous Coward | 1 year,12 days | (#45091777)

Then you're poorly informed.

Just write a program to execute at toplevel of a .scala file (instead of inside a main class, as usual), and run it as script with "scala filename.scala", or add a "#! /usr/bin/env scala\n!#" at the beginning - it had this ability since ever.

It also has plenty of niceties for using as scripting shell, like this [scala-lang.org] .

Scala 2.11 also adds support for using Scala interpreter through standard Java Scripting Engine interface.

Re:Scala is a scripting language? (0)

Anonymous Coward | 1 year,12 days | (#45091897)

That proves nothing. You can make a similar wrapper for C or Haskell (runhaskell) and very few people would call C or Haskell scripting languages.

A Man Can Dream (0)

techprophet (1281752) | 1 year,12 days | (#45091225)

A man can dream, can't he?

Re:A Man Can Dream (4, Funny)

i kan reed (749298) | 1 year,12 days | (#45091325)

Yes, we can all dream of a day when Oracle is just ashes on the ground, and a footnote in corporate history.

If in fact it is dying... (1, Insightful)

scottnix (951749) | 1 year,12 days | (#45091245)

I wish it would get the fuck on with it. Type erasure.

Re:If in fact it is dying... (1)

Anonymous Coward | 1 year,12 days | (#45091361)

Fixing that will be one of the main features of Java 9. It's too bad it is taking so long to address that.

javas not dead! (4, Funny)

nimbius (983462) | 1 year,12 days | (#45091277)

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]

Re:javas not dead! (0)

Anonymous Coward | 1 year,12 days | (#45091397)

No, Java is dead.
Steve Ballmer said so, long time ago. He also said C# is the future!

Re:javas not dead! (0)

dmbasso (1052166) | 1 year,12 days | (#45091489)

I only use two Java applications: Liferea (after google reader died) and Jitsi. When I start them, I can feel the sadness in my computer. They take ages to startup, but granted, after they've started they're just like any regular native application. Though Jitsi doesn't integrate well with gtk3, but overall it is pretty good.

Re:javas not dead! (1, Insightful)

znanue (2782675) | 1 year,12 days | (#45091899)

I only use two Java applications: Liferea (after google reader died) and Jitsi. When I start them, I can feel the sadness in my computer. They take ages to startup, but granted, after they've started they're just like any regular native application. Though Jitsi doesn't integrate well with gtk3, but overall it is pretty good.

You can't know this unless you purposefully don't want to count using web apps as "using an app". My understanding is the backend of much of the google stuff is written in Java, just as an obvious example.

Dude, still on dial-up? (1)

Latent Heat (558884) | 1 year,12 days | (#45091773)

I am also in th5554444&&&&&&

Android is not always Java (0)

Anonymous Coward | 1 year,12 days | (#45091293)

"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.

Re:Android is not always Java (2)

bluefoxlucid (723572) | 1 year,12 days | (#45091359)

It would have been better if Android supported Python instead of Java.

Re:Android is not always Java (4, Informative)

i_ate_god (899684) | 1 year,12 days | (#45091431)

Re:Android is not always Java (1)

BreakBad (2955249) | 1 year,12 days | (#45091565)

kivy.org

Re:Android is not always Java (0)

binarylarry (1338699) | 1 year,12 days | (#45091543)

Leesin here fella! Android would have been better if it had used !

That's proof you see!

Re:Android is not always Java (1)

Anonymous Coward | 1 year,12 days | (#45091731)

Great idea! Let's implement everything on our phone in an incredibly slow, dynamically typed language, whose only relevant implementation has a GIL and a pathetically bad concurrency model! That will be great for performance and battery life!

Google is dropping Python for a reason.

Re:Android is not always Java (1)

bluefoxlucid (723572) | 1 year,12 days | (#45091793)

Actually, Python is strong-dynamic-duck-typed and pre-compiles. Each time you install a Python module, the package manager runs Python to load it as a privileged user--which automatically generates a .pyc and a .pyo compiled native object in the module directory. There are many further implementations of Python (including the ridiculous Pypy, a Python interpreter written in Python) that are compatible with the language; Google supplies Dalvik, a Google-written implementation of Java, so I fail to see why it's any huge obstacle for them to have supplied a Google-written implementation of Python instead.

Java was used for strategic reasons, not technical reasons.

Re:Android is not always Java (1)

Anonymous Coward | 1 year,12 days | (#45091991)

I never said Python wasn't strongly typed, and Python bytecode is basically nothing more than an AST. Every existing Python implementation, including PyPy, is ridiculously naive and years behind the JVM, the CLR, or modern JavaScript implementations. Languages like Python are also much harder to optimize due to how dynamic they are. Like JavaScript, it would take an absolutely massive investment to make a decent Python implementation and no one with the resources cares enough to do it.

Re:Android is not always Java (1)

Waffle Iron (339739) | 1 year,12 days | (#45091939)

Great idea! Let's implement everything on our phone in an incredibly slow, dynamically typed language, whose only relevant implementation has a GIL and a pathetically bad concurrency model! That will be great for performance and battery life!

Google is dropping Python for a reason.

If Google had used Sun's Java VM for Android, performance and battery life would have been even worse than you predict for Python. However, Google deployed their own implementation of Java that was specifially tailored for mobile platforms.

There's no reason they couldn't have done the same thing with Python; there are several independent implementations of Python targeted at different use cases. They have the relevant technologies with their accelerated Javascript engines.

Re:Android is not always Java (1)

Aguazul2 (2591049) | 1 year,12 days | (#45091759)

It would have been better if Android supported Python instead of Java.

To develop stable applications quickly, you want MORE compile-time checking, not less. Like if Java could mark variables as nullable or not and compile-time check that (there are some extensions for that, but they don't always keep up). Java/JVM does so much right ... If people can't see that, then I suggest they attempt some reasonably large project in several languages and compare. (I have done exactly that, in C, Vala and Java; Rust will be next when I get some time.)

Re:Android is not always Java (0)

bluefoxlucid (723572) | 1 year,12 days | (#45091903)

Python is a strongly-typed language, which I like; Perl is a mess. I like how Python will compile-check and then runtime-check, is easy to test, and will throw an exception and traceback for the tiniest thing that any sane language should sensibly handle. You mean I can't pass a number as a string to be printed, I have to str() it? Idiot language, Perl automatically knows that! ... but then again Perl applications never work and are impossible to debug...

Re:Android is not always Java (4, Informative)

IamTheRealMike (537420) | 1 year,12 days | (#45091977)

NativeActivity doesn't support most of the Android APIs, including most obviously the widget toolkit. It's intended for games that just need an OpenGL context and raw input, all other kinds of apps still need to use Java.

And you know what? That's not such a bad thing. A few years ago I guess I was basically a C++ programmer who was in the "Java sucks" camp, and I came back to Java only because I wanted to write stuff for Android. Over time I've come to appreciate the whole platform and ecosystem more. Things I especially appreciate:

  • IntelliJ IDEA and the Inspector. My previous experience with Java IDEs was Eclipse, which is not only incredibly slow and resource intensive but also has a very confusing IDE. Over the years this situation has changed - IntelliJ is genuinely helpful, and uses much more reasonable amounts of RAM than such IDE's used to. I find myself very much appreciating the real-time, on the fly static analysis that can find all kinds of issues from basic logic bugs to common API usage errors, like inverting the arguments of assertEquals in a unit test.
  • Most Java libraries are available via Maven repositories. Maven itself is a rather quirky beast that I never truly warmed to, but the Java world has what is essentially a giant apt-get for libraries. IntelliJ understands how work with Maven such that you can write some code that doesn't compile, press alt-enter over the missing class and tell it to go figure it out. It can find the right library, automatically download it and all its dependencies, install it into the local Maven repository and recompile the code, all on the fly within a few seconds. Coming from the C/C++ world where every single project has a uniquely malformed build system and package repositories (when they exist at all) are maintained by Linux distributors who are invariably miles behind upstream releases, it's extremely convenient.
  • JavaFX 8 turns out to be a really nice UI toolkit. Java got a well deserved reputation for awful desktop apps that were clunky, slow, and had UIs only a mother could love. This problem started with AWT that was limited by the lowest common denominator (Motif at a time when nearly the whole world used Windows). Swing was more powerful but was still very ugly and was hobbled by the lack of any truly great UI designers for it (every IDE creator invented their own). JavaFX 8 resolves all these problems: it's designed to be competitive with Cocoa, so the whole thing is an OpenGL accelerated scene graph, it makes it easy to support fancy effects and animations, and it comes with a very straightforward and easy to use Scene Builder app that makes building UIs a snap. I've used the Apple GUI design tools and Scene Builder is even easier. JFX8 seems to make desktop app development with Java actually compelling again.
  • Lots of people know it. That means, for an open source project, lots of potential contributors.

The story, as visualized in Python (5, Funny)

idontgno (624372) | 1 year,12 days | (#45091305)

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.

Re:The story, as visualized in Python (0)

Anonymous Coward | 1 year,12 days | (#45091433)

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.

s/Oracle/Sun/g and it's true.

Java won't die. (5, Insightful)

sirsky (53613) | 1 year,12 days | (#45091331)

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.

Re:Java won't die. (4, Insightful)

Anonymous Coward | 1 year,12 days | (#45091533)

Uh huh. Maybe you're not old enough to remember PASCAL? Which was the overwhelming favorite of colleges and schools back in the late 80s and early 90s?

Re:Java won't die. (0)

HeckRuler (1369601) | 1 year,12 days | (#45091541)

butbutbut this way we don't have to teach them anything about pointers, because Java doesn't have pointers!

Re:Java won't die. (0)

Anonymous Coward | 1 year,12 days | (#45091737)

Java has pointers - they are just required to point to something real and don't have arbitrary type.

Re:Java won't die. (1)

pak9rabid (1011935) | 1 year,12 days | (#45091807)

Horse shit...Java is nothing but pointers (aka "references"). It just hides dereferencing and memory management for you.

Re:Java won't die. (0)

Anonymous Coward | 1 year,12 days | (#45091563)

Perhaps most schools, universities and colleges teach it in their CS classes because it's still alive.

Re:Java won't die. (5, Informative)

ausekilis (1513635) | 1 year,12 days | (#45091665)

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.

Which is both a blessing and a curse. I went through my programming undergrad classes in the last round they offered C and C++. It worked out well because my employer needed those languages and for me to be able to learn others quickly, such as Java and C#. My experience with classes in C++ and lower level bit-bashing in C gave me the knowledge in being able to create custom libraries and handle oddly defined standard binary blobs, such as DTED data.

This same employer stopped looking at my school afterwards simply because Java was the dominant language. The graduates being churned out had knowledge of data structures and libraries, but knew very little of the ins and outs of binary data streams, binary blobs, memory management, and all those other things that you need in C and C++ that Java gives you for free.

Yes, it's good to have an approachable basis for such a complicated field as programming (computer science/software engineering/development/etc..). However, going from C/C++ to Java is a lot easier than the other way around. There's a reason my professor called Java a "Training Wheels Language"

Re:Java won't die. (0)

SQLGuru (980662) | 1 year,12 days | (#45091703)

+1 to the above.

It is alive not because people really enjoy working in the language. It's because there's plenty of legacy code and plenty of corporate standards where it's the language to be used......companies are hiring again. That means there's money out there to go to conventions. There are people that need to learn new things and companies can afford to send people to these events that they couldn't do two years ago.

I personally hate Java (technically, it isn't Java I hate so much as the ecosystem and tools around it....the language itself is just a language).....but I use it when I have to.

Re:Java won't die. (1)

Anonymous Coward | 1 year,12 days | (#45091721)

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.

And the reason most schools, universities and colleges teach Java, keeping it alive and well, is because it's a good language...

Long term decline (0)

Anonymous Coward | 1 year,12 days | (#45091339)

The decline relative to other languages is evident in this data: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Scripting / PowerShell (1, Interesting)

Thyamine (531612) | 1 year,12 days | (#45091343)

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.

Re:Scripting / PowerShell (1)

Bill, Shooter of Bul (629286) | 1 year,12 days | (#45091555)

For what its worth, the only Vbscript I've seen has been replaced with Python. Obviously the authors of the original code were just too lazy to actually do a full VB Gui app. I'm sure there are a lot of use cases where python couldn't replace vbscript as nearly as well as powershell. I've also converted a few to bash for cygwin. I don't like using platform specific code.

Re:Scripting / PowerShell (0)

Anonymous Coward | 1 year,12 days | (#45091687)

at least 80% of my new windows scripts are powershell, the remainder is usually a quick batch script with a for loop and a couple of if statemtents. the batch scripts usually have more variables defined than lines of actual code though...

Re:Scripting / PowerShell (3, Insightful)

Sarten-X (1102295) | 1 year,12 days | (#45091779)

The point was to list decent halfway-decent scripting languages.

Powershell is a batch file on steroids. It is good for automating system administration in a known environment, but not much else. While many Microsoft products do offer modules, there's still a lot of (especially older) ones that don't. Also, since much of the existing API is a direct port from Windows' internal structure, many of the designs are non-intuitive, like having IP addresses almost completely separate from NICs.

My biggest complain about PowerShell is what I now unaffectionately call "PHP syndrome": Extensible through modules, but there are no namespaces. As the system grows, the list of core commands grows as well, and there is no clear grouping available outside the documentation.

Yes, it is a nice enough replacement for the dozens of little VBScript files kicking around, because it offers easy access to WMI and .NET. Unfortunately, it also brings over a new "On Error Resume Next", in the form of silently continuing after each error.

Re:Scripting / PowerShell (1)

Sarten-X (1102295) | 1 year,12 days | (#45091943)

The point was to list decent halfway-decent scripting languages.

For what it's worth, I meant that sarcastically. All languages suck. PowerShell, I've found, just sucks more than most.

Re:Scripting / PowerShell (1)

ErichTheRed (39327) | 1 year,12 days | (#45091971)

You may get your wish soon -- I remember when VBS was just starting to become available in Windows, and I also remember one of the things holding back its adoption was the fact that you couldn't guarantee that there was a complete "VBS stack" on the system. WMI was an addon, MDAC was an addon, even the XML parser wasn't guaranteed to be the same version until IE 6 came out. Even the scripting engine itself was an add-on! Therefore, you had to write lowest common denominator scripts until you got all the old stuff up to date. We were still using batch files for quite a while, and knew we could do things faster and easier, but we were stuck in a mixed NT/XP environment. (Yes, this was a while back.)

I have the same issue with PowerShell and a mixed Windows 7 and XP environment. In a big enterprise you can't absolutely guarantee that a compatible PowerShell interpreter plus the right version of .NET is available. Microsoft has done an OK job of making sure most of the functionality is backported, so we're starting to move away from VBS.

Honestly, my complaint about PowerShell is its complexity. You get access to vast resources through the .NET Framework, and that's great. But just like any other modern language with a monster prebuilt library, just finding what you need to write and what has been written for you is still a Google operation. One huge improvement is the ability to dispense with thousands of "results parsing" functions. VBS meant you had to do a lot of output reading/interpreting in code, plus access to things like WMI and data services is still kind of a magic incantation thing. Now PowerShell lets you directly work on objects. Example: I wrote a script to edit an XML configuration file for one of our apps the other day, just to make a simple change. It was a huge script in VBS with all the error checking, magic incantations to access the XML DOM and parsing of results. PowerShell lets you directly manipulate the file in memory.

Implying such handicapped thing can be healthy. (0)

Anonymous Coward | 1 year,12 days | (#45091357)

Implying such handicapped thing can be called healthy.

Unfortunately it is also breeding some mutant offspring like c#.

Android, Objective-C and Tiobe Index (2)

bradgoodman (964302) | 1 year,12 days | (#45091379)

I think much of Java's *lack* of decline is attributable solely to it's "native support" (use) in the Android platform - just as the sudden rise of Objective-C (See Tiobe index) is obviously attributable to the iPhone and iPad devices.

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.

Re:Android, Objective-C and Tiobe Index (0)

Anonymous Coward | 1 year,12 days | (#45091547)

As a client-side web tool (where it got most of it's early predominance) it has been cockblocked by iOS

Are you high? iOS has fuckall to do with the decline of client side Java. Dynamic HTML+Javascript killed most of the need for that YEARS ago, well before iOS was a stain on Jobs' tighty whities.

Re:Android, Objective-C and Tiobe Index (4, Insightful)

binarylarry (1338699) | 1 year,12 days | (#45091685)

I don't think Java and Rails, Python, etc actually compete much. They're very different technologies.

Rails and Python are great when you don't have significant technical skills and just need to slap some shit together and throw in on a web server.

Java is better in areas where you need high performance and scalability, but it's also much more costly to do anything with it.

Re:Android, Objective-C and Tiobe Index (2)

slim (1652) | 1 year,12 days | (#45091997)

The smart thing to do is use Jython, JRuby, Groovy.

Then you can write in Java when the problem demands it, and in something more expressive when you're gluing it together. And you have access to all the thousands of libraries Java has.

I saw a JRuby presentation in which they said they expected JRuby to outperform native Ruby -- because the Ruby runtime is written by a few guys, whereas the JVM has half a campus full of incredibly clever people, just working on making it run Java Bytecode as fast as possible.

Java and the JVM (4, Informative)

Kagato (116051) | 1 year,12 days | (#45091387)

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.

Re:Java and the JVM (2, Informative)

Kjella (173770) | 1 year,12 days | (#45091707)

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.

This page [oracle.com] seems to indicate it's slightly over 200 in Java 7.

Re:Java and the JVM (1)

Kagato (116051) | 1 year,12 days | (#45091843)

I'm basing it on a presentation Charles Nutter (of JRuby fame) gave years ago when he walked through all the Op Codes, how they functioned, and why it's fairly "easy" to compile languages to work with the JVM compared to .Net. It's quite possible I'm a bit outdated on the number since 1.5 was still stable and 1.6 was pretty new. It's still a very small Op list.

Which Java? (4, Insightful)

i_ate_god (899684) | 1 year,12 days | (#45091391)

The JVM or the language?

Re:Which Java? (0)

Anonymous Coward | 1 year,12 days | (#45091613)

The island.

Seriously if you can't tell from the title, then read the summary a bit.

Sudden death (1)

degeneratemonkey (1405019) | 1 year,12 days | (#45091405)

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.

Re:Sudden death (1)

degeneratemonkey (1405019) | 1 year,12 days | (#45091451)

Also, the distinction between the language and the JVM is irrelevant here. Behind both lurks an army of Oracle lawyers waiting to pounce.

Re:Sudden death (5, Informative)

Kagato (116051) | 1 year,12 days | (#45091647)

I consult in a lot of sectors. Banking, Insurance, New Media, Old Media, Start-ups, etc. People who want to leave Java for some new language are doing it because of a set of features. I've yet to come across anyone, let alone an institution, that wanted to leave Java because of Oracles court proceedings (I would assume against Google for Android).

There was tons of talks on OpenJDK at JavaOne. If Oracle is the next Microsoft you would think they would have put the hammer down on that. I didn't see any of that happening. In fact Microsoft's cloud support of Java is based on OpenJDK and that was a keynote item.

On the other hand, I do hear a lot of dissatisfaction from the MySQL folks. They are moving to Maria (or other DBs). That has little to do with Java.

I was at the JavaOne 2013 (0)

Anonymous Coward | 1 year,12 days | (#45091409)

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.

Java pays my bills (0)

Anonymous Coward | 1 year,12 days | (#45091411)

But bitches gonna bitch... I mean, hipsters gonna hipster... or should I say geeks gonna geek?

All about the lambda (0)

Anonymous Coward | 1 year,12 days | (#45091423)

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.

The beginning of the end (1)

GeekWithAKnife (2717871) | 1 year,12 days | (#45091439)


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.

Re:The beginning of the end (1)

el jocko del oeste (2450190) | 1 year,12 days | (#45091483)

Ain't we all!

Bring out your dead! Bring out your dead! (1)

Zecheus (1072058) | 1 year,12 days | (#45091481)

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 [sacred-texts.com] 2

It's only a decline of purity. (1)

Max Threshold (540114) | 1 year,12 days | (#45091527)

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.

Minecraft (1)

Anonymous Coward | 1 year,12 days | (#45091591)

Java will not be dead with solid evidence.

Apple fanboys (1)

rodrigoandrade (713371) | 1 year,12 days | (#45091625)

They reason that Java is dyng because their iPhones and iPads don't support it.

dead and buried (0, Troll)

slashmydots (2189826) | 1 year,12 days | (#45091629)

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.

Re:dead and buried (0)

Anonymous Coward | 1 year,12 days | (#45091819)

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.

And the alternative is .NET? No thanks. I program in both and VS2010 is crap. Don't care about the execution environment because both .NET and Java run fine. Just cannot stand Visual Studio.

If there's such a market.. why the Ask toolbar?? (5, Insightful)

gregmac (629064) | 1 year,12 days | (#45091727)

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?

Re:If there's such a market.. why the Ask toolbar? (0)

Anonymous Coward | 1 year,12 days | (#45091969)

enough to not give a fuck about you

shipping java scientific software for 15 years (4, Interesting)

peter303 (12292) | 1 year,12 days | (#45091733)

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.

And in 5 years? (1)

pak9rabid (1011935) | 1 year,12 days | (#45091749)

... 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 (5, Insightful)

engun (1234934) | 1 year,12 days | (#45091763)

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.

Re:Java's problem isn't verbosity (5, Funny)

Kagato (116051) | 1 year,12 days | (#45092001)

There's certainly a lot of factory pattern stuff out there. But your comparison is a bit outdated. Now days development uses a lot of annotations, auto-wiring/dependency injection. If I need to roll out a web service that makes some DB calls it's not that big of a lift. Maybe a half a dozen classes to get the job done (including tests).

Hooray! (3, Funny)

Greyfox (87712) | 1 year,12 days | (#45091921)

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.

CTRL-F ask.com (1)

BigTunaTim (2777397) | 1 year,12 days | (#45091947)

0 results found. You're slipping ./

It's shocking (2)

kelemvor4 (1980226) | 1 year,12 days | (#45091957)

With Oracle doing everything possible to kill Java, it's shocking that Java persists.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?