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 Wasn't Cool 10 Years Ago, What About Now?

timothy posted about 2 months ago | from the pretty-good-drink-especially-with-honey-and-cream dept.

Java 511

10 years ago today on this site, readers answered the question "Why is Java considered un-cool?" 10 years later, Java might not be hip, but it's certainly stuck around. (For slightly more than 10 years, it's been the basis of the Advanced Placement test for computer science, too, which means that lots of American students are exposed to Java as their first formally taught language.) And for most of that time, it's been (almost entirely) Free, open source software, despite some grumbling from Oracle. How do you see Java in 2014? Are the pessimists right?

cancel ×

511 comments

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

I hope not (1)

onproton (3434437) | about 2 months ago | (#47742639)

Java is the (only) required programming course for the IT major at my University. /sigh

Re:I hope not (5, Insightful)

Pino Grigio (2232472) | about 2 months ago | (#47742679)

It was just coming into favour when I left. When I was around it was Modula-2 and Eiffel (for OOP) at University. I have always found Java to be absolutely horrific in practice, being pretty much the worst of all worlds. Today C# is far superior, whatever you think about Microsoft, and it's a real shame that .NET was mishandled at birth in the way that it was.

Re:I hope not (3, Interesting)

Z00L00K (682162) | about 2 months ago | (#47742777)

I wouldn't state that C# is superior to Java from a language perspective, both are essentially derived from Ada and C with influences from C++.

If Ada had been more open and better promoted then it would have been a far better choice.

Re:I hope not (4, Insightful)

Anonymous Coward | about 2 months ago | (#47743041)

I wouldn't state that C# is superior to Java from a language perspective, both are essentially derived from Ada and C with influences from C++.

Haven't used C# that much myself (and am totally out of touch with Java these days) but when I first used it just over ten years ago C# *did* strike me as very obviously a Java workalike, albeit one with a few nice improvements. Of course, it had quite obviously enjoyed the benefit of hindsight over Java, picking and choosing the aspects which worked and being able to ignore the dead-ends and mistakes, as well as the legacy library cruft which- even by the early-2000s- Java already had quite a lot of (mainly stuff from the early versions which was later deprecated).

Re:I hope not (1)

buddyglass (925859) | about 2 months ago | (#47743049)

I have only a dim recollection of Ada from a programming languages "survey" course in college, but I remember being bothered by the fact that everything was a word. Some of them could have been symbols. It seemed really...verbose.

Re:I hope not (0)

Anonymous Coward | about 2 months ago | (#47743089)

I wouldn't state that C# is superior to Java from a language perspective

Indeed, no need to state the obvious.

Re:I hope not (3, Insightful)

Anonymous Coward | about 2 months ago | (#47743019)

I wrote compilers for Modula-2 in University, and was minimally exposed to Java (thank God). I have seen fans of it, but my own experience is that Java is a narcoticized slug. Its bloated (worse than COBOL), and has a learning curve steeper than a cow's face. Worse, unlike C, which is a compact language (you can learn all of the data structures can be easily described in 2-3 pages of any textbook or manual), Java goes on and on and on (the smallest book I've seen is 850 pages). There are 10,000,000,000,000 libraries, with that number being modified every year, and offers by exponents of the language to offer another 3-5 libraries for every one available already. In order to be productive in any way (eg: Hello World), you need to call in at least half of all available libraries (each, seperately, and in the correct sequence), and then hope that all of your current libraries are up to date and work with each other. Then you run the program, and wait, and finally it gives you your output: "Hello World".

Re: I hope not (4, Insightful)

bugnuts (94678) | about 2 months ago | (#47742683)

You only need to learn one oo procedure based language. All others are just a book exercise.

One assembly language and how compilers translate stuff.

And then you should also learn scheme.

That will handle basically everything, reducing it to a book learning experiment.

Re: I hope not (0)

Anonymous Coward | about 2 months ago | (#47742887)

I would add to this list one functional language with a type-inference system and pattern matching notation. This complements the other archetypical language experiences you've already listed, and I think does give a well rounded basis for learning almost anything else in the industry.

Nope (1)

Anonymous Coward | about 2 months ago | (#47742641)

Java is not only about FOSS. It also has a strong hold on enterprise software. Which is why is still relevant.

Re:Nope (0)

Anonymous Coward | about 2 months ago | (#47742673)

> Java is not only about FOSS. It also has a strong hold on enterprise software. Which is why is still relevant.

It only has a hold on enterprise because it was peddled as a "silver bullet," the same way Oracle was. It won out because a bunch of salesmen in suits got behind it, not because it's better.

Re:Nope (1)

Pino Grigio (2232472) | about 2 months ago | (#47742715)

That's the wrong side of the equation. What you should say is that it won out because a bunch of suits who make purchasing decisions got behind it. Don't blame the salesman.

Re:Nope (0)

Anonymous Coward | about 2 months ago | (#47742801)

It takes two to tango. I'm not convinced the purchasers came banging on Sun's door seeking a better mousetrap.

Re:Nope (4, Interesting)

msobkow (48369) | about 2 months ago | (#47742841)

Those "suits" you refer to included every major hardware vendor on the planet. Java was only sold as a silver bullet for portability, not speed, not efficiency, not scalability, but solely for it's ability to be shifted from one vendor's platform to another's.

When it comes to straight forward business service and batch job processing, it succeeds admirably at that goal, which is rather rare for what you claim was a "silver bullet."

The "problem" is that all kinds of people have visions of Java doing this, that, and the other thing, ranging from the addition of database bindings that don't allow for stored procedures to 3D graphics. Java's "problem" is that it's gradually becoming too much of a "kitchen sink" instead of staying focused on what it was designed for: portable business programming.

Re: Nope (2)

bugnuts (94678) | about 2 months ago | (#47742697)

COBOL was never cool, either, but is still in use in enterprises.

For learning the craft, they should use what's best to teach it, not necessarily what's relevant at the time (unless it's a job school).

Re: Nope (1)

meerling (1487879) | about 2 months ago | (#47742761)

So most schools should only teach things that are not relevant to employment?

Re: Nope (2)

bugnuts (94678) | about 2 months ago | (#47742781)

What's relevant for learning to program might not correspond to what's currently being used.

Teach a man code a a language, and he's relevant to a small market. Teach a man to program, and he owns them all.

Nope (1)

Mashiki (184564) | about 2 months ago | (#47742643)

Still not cool, it's about as "cool" as activex with all of the broken sandbox and security issues though.

What's the point? (1, Insightful)

jeff4747 (256583) | about 2 months ago | (#47742651)

The problem is what's the point of Java?

If speed is absolutely critical, you're going to go with C/C++/ASM/whatever native-compiled-language works well for your problem.

If speed is not absolutely critical, there's plenty of "scripting" languages that get the job done more easily with less code. And if you're talking about something cloud-based, you can probably handle the lower speed of these options by adding another server node.

Java seems to be in the middle ground where it's more cumbersome than the "scripting" options, yet slower than the "native" options. Leaving not much of a reason to choose it in the vast majority of cases.

Java just doesn't seem to have much a a role today beyond "Google decided to use it for Android apps".

Re:What's the point? (1)

makq (3730933) | about 2 months ago | (#47742671)

The cool kids may not like it, but they can thank Java or more specifically the JVM for Scala.

Re:What's the point? (1)

jeff4747 (256583) | about 2 months ago | (#47742707)

And we can thank C for the kernel. Doesn't mean we have to choose C for new development.

Re:What's the point? (1)

lucm (889690) | about 2 months ago | (#47742757)

Who says you are a cool kid?

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742853)

No, but there isn't really any other option for cases where cross-platform is important. Java has been around for years now and it mostly works. Now, there are the regular security vulnerabilities that definitely do need to be fixed. But there really isn't any viable competition at this stage. Scripting languages are fine, but they do have some serious drawbacks. Not to mention the fact that the install procedures tend to leave something to be desired. Meaning that most non-tech savvy users aren't going to have or be able to install it.

Re:What's the point? (1)

TFlan91 (2615727) | about 2 months ago | (#47742907)

I disagree, Nodejs has done a tremendously good job on being easy to use for all ranges of expertise.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742993)

The IDE (Android Studio) for Android development are slow, because every time I click File->New Project it garbage collects on me because it is written in Java.

Re:What's the point? (1)

Lennie (16154) | about 2 months ago | (#47742703)

Well, there is a whole lot of Java in the enterprise and other organisations like banks.

Obviously they are always last to move, because they have a lot of legacy applications anyway.

Re: What's the point? (1)

bugnuts (94678) | about 2 months ago | (#47742717)

The point was to provide a sandbox, among other things. That freed up a lot of issues with security (although we know how that story ended) and issues with operating systems.

Re:What's the point? (5, Insightful)

MythMoth (73648) | about 2 months ago | (#47742737)

It's a compromise language. Compromises are, in fact, a good thing but purists hate them. Of course. That's what purism *is*. But really, who cares if it's cool? We're geeks, I thought we were supposed to be opposed to "cool" anyway?

It's a known quantity and before you dismiss it you should consider the truly vast amount of software that's been successfully implemented in Java.

Personally I like it. It has it's niggles (if I were king I'd change oh so many things) but it keeps on succeeding like most good compromises.

Re:What's the point? (0)

Kkloe (2751395) | about 2 months ago | (#47742751)

rofl, you put scripting language as better alternative to java?, in what linux terminal have you been hiding for the last 8 years?

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742775)

There are many more scripting languages than shell scripting.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742785)

Hopefully you're joking, but if not: He clearly means interpreted programming languages, not exclusively shell scripts.

Re:What's the point? (1)

fnj (64210) | about 2 months ago | (#47742863)

Why won't anyone just SAY it? Python. It's clear he meant python. Sure as hell not perl or awk.

Re:What's the point? (0)

narcc (412956) | about 2 months ago | (#47743047)

I tried to say Python, but I threw up instead.

As I understand it, it's not an uncommon reaction.

Re:What's the point? (1)

Euler (31942) | about 2 months ago | (#47743083)

Or visual basic

Re:What's the point? (4, Interesting)

Giant Electronic Bra (1229876) | about 2 months ago | (#47742759)

The alternative view is that it is fast enough to do the things that need to be fast and cleaner than all those scripting languages.

Here's the thing. Java applications are VERY EFFICIENT. It may be difficult (not impossible but a pain in the ass) to write Java code which performs a specific task in a deterministic period of time. In other words it is not really a real-time sort of thing. OTOH if you want a perform a large number of operations with maximum overall throughput and a fairly stable task completion time then you cannot beat Java. You could do it in C/C++, but you'll spend a lot more time and effort to get the same results. 10 years I coded large high capacity high speed feed handlers in Java and people said I was crazy, but that application continues to exist and outperform anything that tries to rival it while being highly portable, scalable, and superbly reliable.

The thing with scripting languages is they are for small projects. Sure, its MUCH easier to whip out a perl script or something to do a small job. Its faster at run-time as well, but as soon as that task grows to somewhere in the 5-20k lines of code range you simply cannot do it using a scripting language anymore and stay sane. Inconsistencies creep in, problems pile up, the code starts to have to be used and understood by many people, and its just not possible to maintain the level of determinism required of a large code base. At this point you NEED something like Java.

And yes, C# is a perfectly nice language, but it is only really usable on Windows in any consistent fashion. I see no reason to be limited to that platform. Most of my customers are perfectly comfortable with *nix systems and for high reliability high capacity line-of-business applications no version of windows holds a candle to RHEL and isn't even on the same planet with Solaris.

Re:What's the point? (1)

fnj (64210) | about 2 months ago | (#47742881)

Java cleaner than python? Tell me you're kidding.

Re:What's the point? (2, Insightful)

narcc (412956) | about 2 months ago | (#47743057)

Yeah, I'll agree with that. I think you're simply too dazzled by the "coolness" of python to see it's many, many, terrible warts.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47743025)

Utter BS.

Re:What's the point? (1)

wispoftow (653759) | about 2 months ago | (#47742791)

Because *some **people ***are &sick and *(&tired) **of *all &of ***the ****bullshit &that **goes &with writing C and C++ in order to get an order of magnitude performance increase over those dynamic languages that you allude to.

Re:What's the point? (1)

mlw4428 (1029576) | about 2 months ago | (#47742793)

"The problem is what's the point of Java?"

The problem being solved isn't speed. Most of the scripting languages of yesteryear were very limited or restricted to specific platforms. The problem being solved is cross-platform development.

Re:What's the point? (3, Insightful)

bill_mcgonigle (4333) | about 2 months ago | (#47742811)

If speed is absolutely critical, you're going to go with C/C++/ASM/whatever native-compiled-language works well for your problem.

If speed is not absolutely critical, there's plenty of "scripting" languages that get the job done more easily with less code.

Yeah, this is how most 2+-sigma programmers on the right side of the standard distribution of programmers approach problems.

All the rest (the vast majority) need languages with good error messages, good error landing, decent garbage collection, a lack of value/reference handling, etc., and frankly being more procedural than functional is an asset to a below-average programmer.

Code density is not the criterion most mid-level enterprise IT managers need to deal with. Even with a complex project and a team, you can take one guy and have him write the JNI bits in C++ for performance (BTDTGTTS) while the rest of the team handles other parts and they don't have to know as much. It's actually really bad economics to have all top-notch programmers on your team if your project does not require that.

And before all you kids who got trophies for losing a soccer game get into a snit - by mathematical definition, half of all programmers are below-average.

And Java works pretty well for them, and there are stable and scalable deployment platforms for their code. Expect the "cool kids" to be wondering about Java in 2024 - even if there were a better replacement available today (there isn't), the extant code bases would not get replaced in one decade.

Re:What's the point? (2)

fnj (64210) | about 2 months ago | (#47742909)

by mathematical definition, half of all programmers are below-average

Come on, elementary math. That's not true. Half of all programmers are below MEDIAN. If you don't care enough to get THAT right, I'm not going to bother with the rest of your assertions.

Re:What's the point? (1)

jonathan_ingram (30440) | about 2 months ago | (#47743059)

As you have only been introduced to elementary math(s), you may not be aware that median is also an average. Half of programmers *are* below average using one of the three usual rivals for 'average'. It would be hard to use mean, as it's not clear that you could find a rating system for which using mean would make sense.

Of course, it's not clear that there is any sensible numeric rating scale for programmers, and it would be interesting to argue about what the modal average would be, but it's just a throwaway comment which doesn't need to be analysed in such depth. The meaning and sense of the comment is clear.

If you are going to play the role of overly pedantic nerd, at least do it correctly so you don't get laughed at.

Re:What's the point? (1)

buddyglass (925859) | about 2 months ago | (#47743109)

He may have assumed the normal distribution.

Re:What's the point? (1)

Kagato (116051) | about 2 months ago | (#47742839)

I think that's a pretty dated view of Java. If I'm writing a web service endpoint most of the heavy lifting happens with some very simple method/class @Annotations. My controller classes tend to be in the tens of lines, not hundreds of lines.

The days of writing a some inordinately overthought out factory pattern are long gone for a lot of stuff and the JVM does all sorts of optimizations to make the performance gap between VM and Native pretty small.

Because there is much need at the middle ground (2)

bigsexyjoe (581721) | about 2 months ago | (#47742857)

Yes, the middle ground has some disadvantages of both extremes, but it has some of the advantages to both.

C++ maps to hardware well. An enterprise web solution, doesn't need that. It should have automatic memory management. The scripting languages are not strongly typed. That makes the code a little less maintainable and a little slower.

When Twitter used RoR, it was a nightmare. It just wasn't performant enough. When they went to Scala things got a lot better.

Would Twitter ever want to use C++? I doubt it. They are probably a bit hardware agnostic and they don't want to deal with the classes of bugs that C++ has.

Re:What's the point? (1)

msobkow (48369) | about 2 months ago | (#47742867)

The "point" of Java is portability amongst vendors. It was never designed to be the fastest, most scalable, or most elegant language on the planet. It was designed to be portable.

And it succeeds at that goal, for the most part, so it is and continues to be used widely.

Don't confuse the extensions of the JEE environment or the various JCP packages with the core of Java's mission: running business code across diverse platforms.

Or have you forgotten Java's original tag line? "The Network IS The Computer." And the network includes all kinds of platforms.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742879)

"If speed is not absolutely critical, there's plenty of "scripting" languages that get the job done more easily with less code. And if you're talking about something cloud-based, you can probably handle the lower speed of these options by adding another server node."

Why would you assume scripting languages are the best option for non performance critical software? Scripting languages are a poor choice for many applications because most scripting languages allow entire classes of bug to fall right through to the user blowing the application up in flames in their face that compilers catch and force you to deal with before the application is ever run.

For this reason I'd tend to only recommend scripting languages for stuff that doesn't really matter if it does fail in this manner (i.e. something to automate a common task where you can spend time fixing it, or doing things manually if it falls over without much worry), or for prototyping.

If I'm producing a client facing application in a professional capacity then I wouldn't even dream of using a scripting language, they're just not professional enough for that use case, and that's why anyone doing anything that matters (just about every bank, every major tech company) uses languages like Java, C#, or as you say for stuff where they need more control, C++.

Your defaulting to scripting languages tells us that you really do not know much about selecting the optimal tool for a specific class - your mindset is what has companies left and right being hit by common vulnerabilities that shouldn't even exist in modern software because it's being written with a shitty scripting language that discourages professional grade development.

Besides, even your performance argument is broken, if Java/C# run for example, 2% slower than C++, then a scripting language will often run at least 5% slower. Sometimes 2% is an acceptable trade off to gain faster development times, but 5% or more with a decrease in software quality is not an acceptable trade off.

Re:What's the point? (3, Interesting)

DoofusOfDeath (636671) | about 2 months ago | (#47742883)

If speed is not absolutely critical, there's plenty of "scripting" languages that get the job done more easily with less code.

A big problem with duck-typed scripting languages, such as Python, is that the absence of explicitly stated type requirements in the source code. Using types in function signatures and variable declarations is an extremely useful tool for developers to indicate not only how a system is decomposed, but also what potential future usages they intend to support vs. not support.

I've worked on reasonably large Python, C++, and Java projects. The Python code was by far the hardest to make sense of due to the duck typing and other Python idioms (metaclass, i.e. self-modifying code).

Re:What's the point? (1)

Anonymous Coward | about 2 months ago | (#47742889)

Advantages of Java:
- It comes with a lot of classes that can be used. E.g. string manipulation is much more pleasant than what it is with C++ (sorry, I don't know about the new C++ versions, perhaps situation has improved). Creating threads is also on a different level. And exceptions are very useful. When I started learning Java, I didn't understand unchecked vs. checked exceptions so I hated the exceptions at first.
- JUnit. I have never met a language where unit testing is as simple as it is with Java + Eclipse.
- Maven. Yeah, I know all the trouble it gives, but still, would you rather compile your own dependencies like you do in C++ Windows, or just execute the maven and get everything downloaded for you?
- Static analysis. There are many tools for C++ and other languages, but for some reason I think that e.g. Findbugs is ahead of them.
- Refactoring tools in Eclipse. I have never seen anything coming even close. I can cut and paste to create new classes, I can highlight code to create a method, I can rename anything. I can find a class with its name. I can automatically fix imports (hello C++). etc.
- It is fast enough for almost anything that runs on PC.
- It is cross platform.

Disadvantages:
- It is slow to start (if it wouldn't be, I would replace even Python with it)
- Oracle
- Memory allocation is too difficult. It would be nice if you could just write to the start of the application "allocate 2 GB of memory for the JVM", but this is not possible for the obvious reasons (I know there are work-a-rounds, but that doesn't make it easy)
- There is a lot of deprecated luggage in Java, e.g. classes and methods that should not be used, but are still there for backward compatibility.

I have used quite many different languages since the age of C64, but Java is the language I enjoy using the most. Especially with Eclipse. Not because Eclipse starts so fast or because it is so bug free, but because Refactoring tools, debugging tools, everything that makes my work more easy.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47743079)

Google should make a faster IDE called Android Studio Lite.

Re:What's the point? (1)

jader3rd (2222716) | about 2 months ago | (#47742893)

Java seems to be in the middle ground where it's more cumbersome than the "scripting" options, yet slower than the "native" options. Leaving not much of a reason to choose it in the vast majority of cases.

Compile time type checking is a major reason to pick Java over a scripted language. It's not like performance requirements are binary either. There's a lot of distance between optimized assembly and runtime type checking scripts.

What's the point? (0)

Anonymous Coward | about 2 months ago | (#47742919)

I used to hate Java, but there is no better language than java to write business related applications specially because of the huge library that comes with it and vast amount of tools that you can choose from to do your job. Despite from all negative talks I believe Java is still a nice language to build both desktop and server applications and don't forget android market ;)
Again I'm a big fan of C/C++ but hey let's be honest, how much you can make out of C++ these days. Unless youre a game developer C++ is for no use. :|

Re:What's the point? (2, Informative)

drolli (522659) | about 2 months ago | (#47742945)

The point of java is that you can program more devices on this planet in this language than with anything else.

Java has penetrated all areas of computing, from embedded (down to chipcards) to mobile, from science to database and web servers.

Java has inherent cross-platform mechanisms for elementary things for which c does not have these (treads), and there are (most of the time free) libraries inferfacing in all directions.

Dynamic, standardized binding to databases and XML makes it extremely easy to persist you data in a well-documented and well-tested structured way.

Java has nearly all language features you could desire.

And last but not least: eclipse is a great free IDE. AMong the free IDEs there is IMHO no combination of language+language tools which boots your productivity for specific tasks as eclipse does.

Re:What's the point? (2)

toejam13 (958243) | about 2 months ago | (#47742983)

Both Java and C# are nice in that they give you more power than many scripting languages, while obscuring some of the headaches (read: pointers) that come with lower-level languages like C. Both are [IMHO] also cleaner implementations of an object-oriented language than C++.

Another benefit of Java and C# are in their standard libraries. They're a bit more refined and a lot more consistent than the standard libC library. There has been a huge amount of drift in the libC world since wchars, long longs and safer array handling functions have been adopted. When writing portable C code for both Visual C and Klang, I'm constantly having to write wrapper code that deals with missing, renamed or depreciated functions on either the Windows or BSD side.

Lastly, if your Java or C# apps are speed sensitive, you just do the same thing that people have been doing with C and C++ for years: run your code through a profiler and then write your time critical code in a lower-level language that you call as an external procedure. I haven't written a large app entirely in ASM since my Amiga days (even then, it wasn't the norm).

When learning a new language, students shouldn't have to worry about if Getopt() is a valid function or not. Save that for a more advanced class. With Java, you can assign homework and know that students with Windows, Linux, BSD or MacOS will have the same environment. And in the real world, Java and C# eliminate some of the hassles of the C and ASM worlds, while still allowing you to reach back using external calls when needed. I really do find myself programming in C and C++ less and less every year.

Re:What's the point? (0)

Anonymous Coward | about 2 months ago | (#47743097)

The point of Java was a general-purpose OO language in the late 1990s that wasn't C++. Java is safer, more portable, and lacks C++'s design flaws. Java is also a real-world language, with pragmatic features C++ lacked. While C++ was originally the successor to C as the Language of Choice, its missteps in the 1990s left the door wide open for programmers who needed a better, more modern language. They did not get what they wanted, but got Java, and it is good enough. Java must be doing something right, because Microsoft cloned it with C#, and even Apple is moving away from Objective-C to Swift.

RE: Nope (1)

Anonymous Coward | about 2 months ago | (#47742657)

I goes without saying, but I forgot to mention on the previous post. Enterprise software aren't usually cool...

Language or Plugin? (0)

Anonymous Coward | about 2 months ago | (#47742661)

I'm not enough of a programmer to level judgements on the language, but I'm enough of an IT professional to tell you that the JRE plugin is terrible, and has been for a very long time. Most people don't know the difference, but the plugin gives the language a bad name, which probably makes the whole thing 'uncool'.

Not meant to be cool (1)

Anonymous Coward | about 2 months ago | (#47742663)

Java (and C#) arent meant to be cool, they're meant to get the "menial" work done
Software engineers can use their choice of language: from Assembly to Ruby\Python and other languages to accomplish what they want
Java and C# are meant for us programmers to accomplish the "boring" tasks, writing business specific code,etc... Club Java with SAP rather than other programming languages IMO

I don't care about Java (3, Interesting)

Rinisari (521266) | about 2 months ago | (#47742667)

Java is moving into archaic irrelevance faster than ever. That is, the language itself.

The JVM, however, is now more useful and relevant than it ever was. It used to be naught but an implementation detail. Now, rather, it's central to an entire ecosystem of languages that will inevitably send Java the way of C: used only when the greatest speed is necessary.

Scala [scala-lang.org] is basically a next-generation Java. Java with functional programming, or really, vice versa. JRuby [jruby.org] make Ruby actually scalable, given the presence of native threads and interoperability with existing enterprise libraries that commonly only ship in the form of Java or C# libraries. Clojure [clojure.org] enables LISPers of yore and Schemers of new import explore functional programming as it used to be, without having to drop the wealth of Java libraries available. Ceylon [ceylon-lang.org] , Groovy [codehaus.org] , Jython [jython.org] , and dozen of others [wikipedia.org] are paving a way to give the JVM much more to do after Java becomes obsolete.

Java will never die - it'll just become like COBOL, Fortran, and C before it: used in enterprise software, operating systems, and outdated educational assessments.

Backend of many sites (1)

William Jozef (3719909) | about 2 months ago | (#47742681)

Many websites run on Java based systems (tomcat, JBOSS, WebSphere, etc.). I'd really miss it there. Also, many mobile apps are Java based (android). But where I really would not mis it: in my browser or on my desktop.... or at least, after Burp Proxy becomes be available in some other platform-independant language....

Nope (0)

Anonymous Coward | about 2 months ago | (#47742685)

It's still shit and always will be. Please kill it! damn zombie...

Are the pessimists right? (0)

Anonymous Coward | about 2 months ago | (#47742687)

Yes! Yes! Yes!

It's kludgy crap piled up on more kludgy crap. And Oracle owns it. That right there should have led to complete abandonment. This is just like politics. We keep on reusing, reelecting crap.

Not hip? (0)

Anonymous Coward | about 2 months ago | (#47742691)

It's trying to be [youtube.com] .

Re:Not hip? (1)

lucm (889690) | about 2 months ago | (#47742783)

Thank you for ruining my day. I don't know what JavaZone is but I now hate it.

Language VS The Virtual Machine VS Client (4, Interesting)

Kagato (116051) | about 2 months ago | (#47742693)

There almost needs to be two separate considerations. From a language standpoint Java is a bit middle of the road. It has some well known pain factors, but more or less it's one of the easier OO languages to master. It's used in a lot of high profile web site.

The VM on the other hand does a lot of interesting things under the covers that make the language quite fast. When JRuby hit the scene it was faster than the core ruby project at quite a few things because the VM was doing all sorts of optimizations behind the scenes. Also, because the Java OP code is so stable with relatively few changes per major release you have a bit of a boom in languages you can run inside the Java VM. You get all the benefits of the R&D Sun and Oracle put into JIT, while retaining the ability to do interesting and contemporary things with your language.

Clojure, Groovy, Scala, Python being the primary languages with another 16 that can compile to Java Op code.

Were Java fails mostly is as a client application, running with some sort of Windows GUI. Sure, you can do it, but it realistically people who do Java Swing apps are writing some sort of thick client that could almost always could run inside a contemporary browser without any plugins.

Java is the new COBOL (1)

techfilz (1881458) | about 2 months ago | (#47742705)

Its been around for ages (in IT terms) and has caused more heartburn to developers than bad doughnuts. Used a lot in the monstrous systems that run the Corporates but not so much for developers looking to have a bit of coding fun. Java is as cool as Vanilla Ice was back in the early nineties.

From a users perspetive (0)

Anonymous Coward | about 2 months ago | (#47742713)

java is intolerable, i don't care what you developers say about it, its technical merits and failings asside, its annoying, daily updates. very app/applet followed by a half dozen nag screens because of all the security failings in it.

Then you get to enjoy the unbearably slow performance, and HP-UX style UI from 1992.

Re:From a users perspetive (1)

maliqua (1316471) | about 2 months ago | (#47742723)

Then you get to enjoy the unbearably slow performance, and HP-UX style UI from 1992.

Ahh good ol' CDE i never drew the comparison but that's bang on lol, i wonder if java's ui elements were modeled after CDE

Re:From a users perspetive (1)

Georules (655379) | about 2 months ago | (#47742747)

You use Java in a lot more things than you think. Java Desktop Apps are terrible and the updater is annoying as hell, but it's also likely the language powering most every device you use and many web applications you use day to day.

Re:From a users perspetive (1)

lucm (889690) | about 2 months ago | (#47742797)

I prefer java desktop apps to adobe air apps.

Talk about horrible stuff and annoying updater...

Re:From a users perspetive (0)

Anonymous Coward | about 2 months ago | (#47742959)

it's not really fair to compare things to adobe, its like comparing smells to poo, poo is 99% of the time worse

Re:From a users perspetive (1)

maliqua (1316471) | about 2 months ago | (#47742931)

As i look around *my* room, i see embedded linux devices that are running mostly binaries primarily written in C, many smaller electronics with simple micro controllers, even a windows CE embedded device running software written in .NET and one java based device my phone..

If i think about whats in my car, its a windows CE embedded device running native applications.

java does a lot of enterprise, android and a decent % of webapps. other than android apps rarely do i see something that is java that behaves as well as the non java equivalents

Re: From a users perspetive (1)

Redbehrend (3654433) | about 2 months ago | (#47743043)

You forgot the updater tried to install toolbars every 2 weeks to the common user...

All that packaging (1)

Animats (122034) | about 2 months ago | (#47742719)

The strange thing about Java is that it still uses a virtual machine. There's so much "packaging" associated with Java that compiling to machine code and linking would almost be simpler.

All that packaging (0)

Anonymous Coward | about 2 months ago | (#47742891)

How is that strange? The main reason why Java is still around is because of the virtual machine. It never ceases to astonish me how ignorant some of you people are. It's asinine to use Java to program things where you know are only going to be used on one platform as there are better languages for that. However, if you know that you need your software to work on a wide variety of platforms and run mostly the same on all of them, then Java is one of the few choices you have.

A stupid consideration (5, Insightful)

DoofusOfDeath (636671) | about 2 months ago | (#47742755)

What good engineer gives a f**k about what language "cool", aside from considering his/her ability to hire hipsters to staff the project?

If you're worried about the "coolness" of a language when doing your day job, you're almost certainly doing your job poorly.

Re:A stupid consideration (1)

Kohath (38547) | about 2 months ago | (#47742815)

Agreed. It's time for some people to grow up.

Re:A stupid consideration (3)

Sam36 (1065410) | about 2 months ago | (#47743125)

Also agreed. Seen plenty of startups go down because they want to use the latest when the latest doesn't solve anything.

Re:A stupid consideration (0)

Anonymous Coward | about 2 months ago | (#47742915)

Fucking hell, calm down. Look at the actual discussion; it's about real technical merits of the language. Someone is simply using widely understood idiomatic language as a way of bringing up the topic.

Find a chisel and get your panties out your brown eye.

Java is THRIVING .. as Androids language of choice (0)

Anonymous Coward | about 2 months ago | (#47742765)

Given Android is the largest / fastest growing platform, and given all the new languages on the block run on top of the JVM, Java is here to stay for a very very long time. It's only 'not cool' when people say they are programming in 'Java'. If they say they are 'writing a 'droid app', suddenly it's cool.

Performance improvements have helped it survive. (4, Insightful)

BitterOak (537666) | about 2 months ago | (#47742771)

One of the main reasons Java may be "cooler" today than when it was first introduced is performance.

In the early days of Java, it's VM architecture meant that it was significantly behind fully compiled languages like C/C++ in terms of performance. People were supposed to sacrifice speed for portability. Even for non-speed critical applications, slower languages were thought to be "less cool". Real men used C, and real, real men still coded in assembly language.

But the VM technology in Java has gotten so sophisticated that it isn't significantly behind languages like C/C++ in terms of performance, and that can't be ignored. This is allowing some of the advantages of Java over C/C++ such as garbage collection, dynamic class loading, a certain degree of reflection, various safety systems, etc., to win over some programmers. Java may well be cooler today than it was 10 years ago, because it's really grown up and become a fairly useful language.

Re:Performance improvements have helped it survive (2)

Sauce Tin (1884020) | about 2 months ago | (#47742831)

"But the VM technology in Java has gotten so sophisticated it isn't significantly behind languages like C/C++ in terms of performance, and that can't be ignored." I highly disagree. First, For every level of abstract sophistication you add, you may increase the 'agility' of the language, however you are still farther away from raw machine code. Java is notorious for stacking crap on top of crap on top of crap. Second, Java is far behind in performance. Any true huge performance gains are usually done with the aid of a third-party library, coded in C/C++. Java still can't do integer math anywhere near the speed of C. Java WILL NEVER be as fast as C/C++, because C/C++ isn't run as interpreted bytecode. It compiles straight to machine code. In these terms, this is more a physics problem, not (just) a code problem.

Re:Performance improvements have helped it survive (0)

Anonymous Coward | about 2 months ago | (#47743115)

Java still can't do integer math anywhere near the speed of C.Java WILL NEVER be as fast as C/C++, because C/C++ isn't run as interpreted bytecode

Er... wait, what? A Java "int" is a 32-bit integer, and "long" is 64 bits. They work just like C ints and longs, and Java floats and doubles are the same things as C floats and doubles. Java math compiles into the same machine instructions as C does, there is no special slowed-down instruction set in your CPU for Java.

If you are somehow running interpreted Java, that's *way* retro. Hotspot, the current Sun/Oracle Java system, started compiling byte code into machine code some time in the last millennium. And it's been getting steadily faster ever since - that is the nature of compiler development.

Why Java? PASCAL is THE learning language (2)

Sauce Tin (1884020) | about 2 months ago | (#47742803)

I really wish the academic world would go back to the actual proper learning languages, such as PASCAL. In my university, the introductory course for programming is C++ (as a freshman.) C++ has little 'English logic.' However, if you know English, you should be able to read PASCAL code much better than C/Java code. PASCAL is closer to pseudocode, which is (usually) the first assignment in these classes. Why would you jump from pseudocode to a 'stricter language' like Java? What does /. think?

Re:Why Java? PASCAL is THE learning language (0)

Anonymous Coward | about 2 months ago | (#47742923)

When I started U in 1997, Pascal was taught (for the last group of students). I hated spending time learning a language that would never be used outside of a classroom. I decided to learn C and C++ at the same time and transposed a lot of assignments to those two and then waited a year to take a file processing class so I could take it in C++. I was still not able to get a job until I taught myself PHP.

I could not disagree more. Teach languages in use and the branch off from those. Make sure that students can graduate with specifically useful skills while also teaching them the understanding of the science as a whole.

Java, C/C++/C#, PHP, Python, Assembly, Ruby, javascript/node.js.. those are the languages to start with and build from (in some order)

Re:Why Java? PASCAL is THE learning language (0)

Anonymous Coward | about 2 months ago | (#47742929)

and if they cannot get the concepts of the language abstraction for a scripting language like PHP or Python, they should not be in CPSC

Just don't try to write an OS in Java (4, Insightful)

zieroh (307208) | about 2 months ago | (#47742813)

I'm in the process of hiring software engineers right now, so I've been exposed to a lot of resumes and had the opportunity to talk to a lot of people on the phone (standard phone screen). Invariably, all recent CS graduates list C on their resume as one of their languages. One of the things I ask every candidate to do on the phone is to describe how C strings work. This is my "marker", the test of how much time they've spent in C (vs Java, or ObjC, or whatever). If you're a serious C programmer, you know how C strings work. No exceptions. If you've spent your entire time in college (or even professionally) programming within an environment where strings are handled by object abstraction, you've probably never had to deal with C strings directly. A suitable answer to the question is as simple as "A C string is an array of chars with a null termination at the end".

You'd be surprised at how many people fail the screening process (and thus are rejected) based on this single question. Probably close to 75%, and every single one of them has a CS degree.

Re:Just don't try to write an OS in Java (1)

LetterRip (30937) | about 2 months ago | (#47742949)

That is surprising that folks that claim C knowledge don't know that.

Re:Just don't try to write an OS in Java (2)

narcc (412956) | about 2 months ago | (#47743131)

It doesn't surprise me in the least. Kids today don't care about learning details, they just go straight to the first library or framework that promises to hide such "arcane" details from them.

They'll put C on their resume because they used C++ in an intro class. zieroh's test seems perfectly reasonable to me.

Java? (0)

Anonymous Coward | about 2 months ago | (#47742825)

Other than Minecraft, I haven't used anything that made use of Java in at least 10 years.

Still not cool, *but* ... (1)

djbckr (673156) | about 2 months ago | (#47742835)

Java as a language isn't fun - I haven't used it for many, many years now - but the advent of JVM-targeted languages makes the Java ecosystem fantastic.

Starting with the JVM - a very good machine that runs on pretty much anything, without having to re-compile your program. Perfect, no, but is anything? And the performance (given that it's a virtual machine) is top-notch.

Then there are the JVM-targeted languages: Scala, Groovy, JPython, BeanShell, etc, etc... Pick your poison.

Then there is a crap-ton of very useful libraries out there, and they can be used with any of the above targeted JVM-targeted languages.

So, we can whine about Java (the language) but really, I use it (the JVM, the other languages, and the libraries) to get stuff done. Cool, no. Productive, yes.

Tool - it's a tool and nothing more (0)

Anonymous Coward | about 2 months ago | (#47742903)

Succinctly, Java is the middle ground between low-level C languages, higher level languages and popular scripting languages (JavaScript). It's neither good, nor bad, at general purpose programming tasks; and consider it an answer to the "What flavor of vanilla ice cream do you want?" question. Purchase decision makers will look at it as a lower risk, and much more likely to be viable in 5 years, than the latest trendy scripting, framework or JavaScript library.

"Will it be alive in with recently added significant new features 5 years?" is a critical business question for the development and consulting industry. This is why the 2 guys in a garage open source solution or niche scripting language/framework are avoided by business decision makers. Refer to the 1970s "Nobody got fired for choosing IBM" statement.

It still suffers from the same problems (0)

Anonymous Coward | about 2 months ago | (#47742917)

I was a Java beta user before it was even released. The issue then as it is still to this day: It "almost" works. If you actually try to use the language to accomplish something non-trivial then you will hit roadblock after roadblock. Either a buggy API or a not-quite fully functional API. In the end you end up doing so much work to make your damn program run correctly that you might as well use something that is better in the first place (those choices generally being C/C++ or a scripting language like Lua).

This is not to mention how horribly and annoyingly verbose it is.

Debating "cool" is for teenagers (1)

bigsexyjoe (581721) | about 2 months ago | (#47742951)

What the fuck is this? Is it "cool"? Cool not a term that has a sharp definition, so it's kind of pointless to talk about what is cool. I think A is cool, you think B is cool, that's the end of it.

Java highly used. It solves problems that people want to solve and some people would even say are interesting to solve.

About ten years ago Java 5 came out making it a little more modern and relevant. Then it stalled. However, Oracle has picked up the momentum and it is releasing new versions again. It now supports Lambas and it is expected to have new versions with new features being added every couple of years. I believe that if Oracle keeps releasing new things it won't be relegated to being the language of legacy code. Eventually when there is too much cruft, Scala or something else will start to take over. But that could take a very long time. Look at C++. It's still going strong.

java powered my career for the lat 15 years...cool (0)

Anonymous Coward | about 2 months ago | (#47742981)

Kids, why not go out to play, while grownups get dinner ready.

"What about now?" (0)

Anonymous Coward | about 2 months ago | (#47743029)

Now that it belongs to Oracle, Java isn't even cool enough to be uncool anymore. Bah.

hmm... (1)

buddyglass (925859) | about 2 months ago | (#47743037)

It bugs me that we're using words like "hip" and "cool" to describe programming languages. That anyone would choose to learn (or use) a language on the basis of it being "hip" is dumb. I'm looking at you, Ruby.

Perl, Java, COBOL all say bye to hipsters (0)

Anonymous Coward | about 2 months ago | (#47743073)

Hipsters, begone! You have Swift now. You have Dart. You have JavaScript. Meanwhile, professional programmers will keep using Perl, Java, COBOL, and all the other languages you've thankfully and mercifully left alone. We're going to get real work done with them, as we always have, long before you came and long after you're gone.

How to make any programming language seem cool (2)

stevez67 (2374822) | about 2 months ago | (#47743085)

Create a calendar showing scantily clad beautiful women reclined on cars and motorcycles writing code, and it will appear to be cool. To 12 year old boys.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?