Java Named Top Programming Language of 2015 (dice.com) 358
Nerval's Lobster writes: What was the most popular programming language of 2015? According to the people behind the TIOBE Index, Java took that coveted spot, winning out over C, Python, PHP, and other languages. "At first sight, it might seem surprising that an old language like Java wins this award," read TIOBE's note accompanying the list. "Especially if you take into consideration that Java won the same award exactly 10 years ago." Yet Java remains essential not only for businesses, it continued, but also consumer-centric markets such as mobile development (i.e., Google Android). That being said, even big languages can tumble. (Dice link) Objective-C tumbled from third place to 18th in the past 12 months, thanks to Apple's decision to replace it with Swift. In 2016, TIOBE expects that "Java, PHP (with the new 7 release), JavaScript and Swift will be the top 10 winners for 2016. Scala might gain a permanent top 20 position, whereas Rust, Clojure, Julia and TypeScript will also move up considerably in the chart."
What has been your most-used (or best-loved) programming language of the last 12 months?
Really??? (Score:5, Funny)
Re:Really??? (Score:5, Insightful)
As TFS points out: ANDROID. That's why Java is #1. We're still stuck with this shithole as long as Android continues to dominate mobile and they continue to focus almost exclusively on Java.
Re: (Score:2)
You could say that Java is like Bill Clinton spending a third term in the White House: an old thing that ought to have been retired, who's kept around because it is married to something successful.
In all seriousness, Java is useful because a lot of people are good at writing Java. It will be a long while before the it is retired and replaced by C#, Swift, or some other language that is Java-like but slightly better. Java will probably retire along with programmers who grew up in the 1980's and 1990's who le
Re:Really??? (Score:5, Insightful)
Java is the new Cobol.
On the good side, it's a general purpose language so can do anything.
On the down side, it's a general purpose language so is bad at everything.
Re:Really??? (Score:5, Funny)
Forget Java...
Visual Basic jumped up - from #17 to #13, which leads me to ask one small question...
Re: (Score:2)
Re: (Score:2)
BTW, hasn't Java already had some sort of little fling with Window Phone? Even so, I predict that Android will continue to steadfastly stand by her man...
Re: Really??? (Score:3)
But C# is worse than Java, so it's not really an answer. If you had stated Ada I would have agreed. C# has two major shortcomings; The dynamically typed 'var' variables and the inability to declare exceptions being thrown. That means that it's easy to introduce bugs that manifests themselves during runtime instead of when compiling.
Re:Really??? (Score:4, Insightful)
The attitude in the summary is just stupid. "Surprising that an old language"... but then ignoring that C is in second place. And really there have not been great languages coming out after Java and no realistic replacements for C. Sure, there are scripting languages but that's a different niche. Not everything that runs programs is on the Web or a PC.
The new programming paradigm that Java excels at is to stop programming and just tie together existing frameworks and libraries like it's one giant lego monolith. Of course somewhere someone has to write the stuff in those libraries; which is more Java and if you get low level enough it's C.
Python replaces some of this but comes with it's own headache (gotta make sure your customers can run it and are configured with the right versions, etc. C# has many problems and is a clumsy hybrid, and also never really caught on outside of the OSX/iOS/NeXT worlds. C++ is stuck in the middle, not quite being as easy as Java and too much feature creep to replace C. Swift is too new, not very portable, etc.
What really happens is that people have a language that works, so stick with it. Why through out ten years worth of code base just because there's something newer? An utter waste of time. The vast majority of commercial programmers never start writing code from scratch but instead are fixing bugs or adding features to an existing product.
Re: (Score:3)
I think you meant to say Objective-C there.
Re: (Score:3)
You are quite right. C# is even less portable. ("no it isn't!" say fans)
Re: (Score:2)
C++ is stuck in the middle, not quite being as easy as Java and too much feature creep to replace C.
Such as?
The main problem is parsing C++ which makes writing a compiler hard. However between GCC, LLVM and the commercial front ends, this is not much of a problem any more. There are still a few C only devices, but they are getting quite obscure. C++ certainly scales down to some of the smallest devices just fine (Attiny, for example). Both IAR and GCC support C++ on some really, really small devices.
But th
Re:Really??? (Score:5, Informative)
It has puzzled me why reputedly intelligent people at google would handicap their platform by such an obviously slow, inefficient language. Android is C and NMI under the covers anyway. One wonders if James Gossling is behind it?
Because it allowed them to be CPU architecture agnostic. I don't believe an ARM based CPU is a requirement for Android?
Re: (Score:2, Insightful)
James was at Google very briefly many years ago, but he wasn't a good fit for their culture so left quickly. More likely influences on decision to use Java were Eric Schmidt or Wayne Rosing, or even Tim Lindholm. All were intimately involved in Java at Sun and were probably favorably inclined toward the language.
But then again, none of you give a rat's ass about actual knowledge of the situation and people involved so I'll just shut up now.
Re: (Score:2)
Obduction from Cyan Worlds: http://cyan.com/games/obductio... [cyan.com]
Your sig. has expired.
It's: http://obduction.com/ [obduction.com]
Please do try to keep up!
Re: (Score:2)
Because it allowed them to be CPU architecture agnostic. I don't believe an ARM based CPU is a requirement for Android?
Except it didn't of course. Everyone seemed determined to learn the same lesson the hard way.
"We don't need native apps, just write in Java/HTML+CSS+JS/.NET/malbolge".
Turns out that actually everyone does need native apps because non native ones just aren't fast enough for some stuff.
Re: (Score:2)
Because it allowed them to be CPU architecture agnostic. I don't believe an ARM based CPU is a requirement for Android?
Absolutely checkout http://www.android-x86.org/ [android-x86.org]
Re: (Score:2)
Apple solved the CPU architecture agnostic issue by using LLVM IR, then recompiling the apps on their server for every CPU architecture.
So Apple solved their agnostic issue by compiling specific packages for every possible case? I don't believe that fits in with any commonly understood definition of agnostic.
Re:Really??? (Score:5, Interesting)
Note that the 'language' is not slow, inefficient, etc. It's hard for a language to be anything.
Now the de-factor *runtime* implementation of said language... Actually isn't that bad either for most people. Yes, if you are an idealized developer writing the most efficient code possible, there is more absolute potential in a C implementation, however in practice the potential delta is extremely small compared to doing a 'good' implementation, regardless of which runtime is executing. A lot of code out there can see an order of magnitude performance improvement through improvements to the code in-place.
Java gets *particularly* a bad rap by being the first language to popularize the runtime as a 'performance friendly' strategy when their runtime was particularly bad, but mostly because by virtue of its popularity, all the less than best programmers are turning out code for it.
Of course, while I recognize that the usual criticisms are not as bad or not JRE's fault, I still hate the wrangling of java runtimes on a system...
Re:Really??? (Score:5, Informative)
The runtime was actually never particularly bad. Java mostly got its bad rap from poor Swing performance (not as smooth, and not as good looking as the native apps). People perceived that "visual lag" as the language being slow, while in reality it has always been pretty damn fast.
Re:Really??? (Score:5, Informative)
The runtime was actually never particularly bad. Java mostly got its bad rap from poor Swing performance (not as smooth, and not as good looking as the native apps). People perceived that "visual lag" as the language being slow, while in reality it has always been pretty damn fast.
The VM initialization time and memory consumption in early Java didn't help, even the smallest program felt like a 747 taking off. That the controls felt like one too didn't help. Now a 747 is obviously a very useful plane in the right place and all but most people just wanted a Cessna. I remember running things like Azureus/Vuze, thank god for uTorrent and later qBittorrent. Maybe it's possible to write good java code but it seems to encourage being a sloth.
Re:Really??? (Score:5, Insightful)
Correct. It is possible to write good java code and it does encourage inefficient practices. This stands in contrast to C++ which makes it rather difficult to write good code (assuming similar algorithms and data structures in both programs), but strongly discourages or even prevents things that cause sloth-like performance. By "good code" here I mean code that is secure and doesn't crash. Complex C++ codebases are invariably riddled with various kinds of exploitable overflows or code paths that trigger segfaults that tear down the entire process. It's especially unfair that Java got a bad rap for security partly due to bugs in the C++ code in the JVM!
That said ..... things are changing. There are actually high frequency trading firms that use Java, believe it or not. Some of the things they make the JVM do are quite impressive. Java's poor perceived performance on the desktop has historically come from several areas. To name just 4:
1) Excessive memory usage leading to swap hell. Garbage collection doesn't play nice with swapping either, due to lack of the right kernel support. A big offender here is the profligate use of pointers and especially inefficient representations of strings (always UTF-16). Also, garbage collectors that were tuned to look good in benchmarks by using larger and larger heaps didn't help.
2) Poorly optimised graphics stacks. Note that if you use Linux you suffered from this very badly because you probably got OpenJDK which used an open source but much slower 2D rendering system, vs the proprietary Sun/Oracle JRE which used a proprietary but much faster licensed renderer called Ductus.
3) Older JVMs weren't well optimised and did things that made them start slowly, like storing all their code as .class files inside zip files. Also, JVMs are huge downloads.
4) Java code has historically not had access to things like vector instructions, advanced data layout and inline assembly, all of which can be exploited to give huge performance gains in things like multimedia apps.
All of these things are being tackled quite energetically by the JVM team, however. The latest JVM can now do things like deduplicate strings in the heap, and in Java 9 (in development version) there's new code that switches the character encoding of strings between Unicode and non-Unicode depending on what's needed at the time. This change is especially impressive because it not only reduces memory usage but actually makes software go faster too due to better cache utilisation and less GC pressure. There's a long term project called Valhalla to upgrade the JVM with value types, which is where C++ gets a lot of its built-in advantage from, by giving the developer better control over data layout. There's also a project called Panama which is adding support for, amongst other things, inline assembly to Java. A prototype was recently posted to the OpenJDK lists. A new open source graphics rasteriser has been built that's faster than Ductus, so even the open source only OpenJDK users will soon have faster graphics, and a new UI toolkit to replace Swing has been developed called JavaFX. It uses hardware accelerated graphics everywhere via OpenGL and DirectX.
Also, Intel have been contributing much more advanced auto-vectorisation logic to the JVM's compilers, the Jigsaw and "minimal JVM" projects are allowing developers to statically link optimised JVMs with their app which then pre-process JARs into special file formats so the loading process is much faster, and there's also work on ahead of time compilation being done to get rid of the slowness at startup before the JITC has compiled all the code.
These are all projects that are either shipped already or in development now. The JVM guys do understand the causes of Java's slowness, they just aren't willing to sacrifice the convenience and robustness the platform offers developers in order to fix things. So, quite often, they find they have to develop new technology and do new research to find ways to have their cake and eat it.
Re: (Score:2)
Re: (Score:3)
Note that the 'language' is not slow, inefficient, etc. It's hard for a language to be anything.
No, I think that's incorrect. The semantics of the language define how hard/easy it is to make optimizations. FORTRAN is very easy to optimize because it's full on native, unboxed types and guarantees that arguments passed to functions don't alias.
C++ is relatively easy because it uses lots of nice, unboxed native types and because it makes guarantees by fiat, such as locally allocated objects never escaping the
Re: (Score:2)
Functions are not fast or slow because of the java language. There are many different Java runtime environments, some more efficient than others, and they are constantly improving. A function that is slow on the windows JRE might be fast on the Google JRE. A function that was slow on a JRE in 1996 might be fast on a newer version of the JRE in 2016.
There is a similar analogy with compiled languages. C++ code might be fast or it may be slow depending on how well a particular compiler can perform optimiza
Re: (Score:2)
It has puzzled me why reputedly intelligent people at google would handicap their platform by such an obviously slow, inefficient language. Android is C and NMI under the covers anyway. One wonders if James Gossling is behind it?
Non Maskable Interrupt?
Re: (Score:2)
Perhaps you should check what the difference between a Java-JVM and a Dalvik-(J)VM is.
Then you would quickly realize: it makes absolutely no sense to run Java on a Mono-(J)VM in contrast to running it on a Dalvik-(J)VM.
The difference between a Mona and a Java VM is: the first one supports signed and unsigned "int" types. Thats it ... the rest is completely identically. Sure, class loading and reflection works a bit different, but that is mere library design.
For starters: the Dalvik VM is a register based VM
Re: (Score:2)
They should have skipped bytecode on the phone and gone straight to the metal.
Re: (Score:2)
Bytecode is faster and use less memory.
That's definitely not true lol. I don't even know where you got that braindead tripe.
Re: (Score:2)
but we're talking about bare runtime environments and just-in-time compilation, which lends itself more to C#, apparently.
No, we are not talking about that.
You are talking about it.
As you don't grasp the difference between runtimes.
Hint: Dalvik is not jit compiling Dalvik byte code to native code, it is simply interpreted. So your arguments about C#/.Net native compilation versus Javas JITing makes no sense at all.
Then your quotes like:
Calling the Java server 2000 times takes 2687 milliseconds. Calling the C# server 2000 times takes 214 milliseconds. The C# one is still much faster.
Retrieving 2000 instances takes 479 milliseconds. Thatâ(TM)s roughly half the time as the C# controllerâ"very fast indeed.
are completely meaningless. What exactly does the word server mean? Why
Re: (Score:2)
That is a lovely bit of word soup you have assembled.
Re: (Score:2)
The strange thing is, I'm not really a good programmer or anything - in fact, I diligently read comments here and do research as I prepare to dip my feet back into it as I try to stop my brain from turning into oatmeal. I read his post twice, looked up, saw the moderation, and was happy - because I was awfully confused. Then, I scrolled down... I think he was serious?
At any rate, if you all are to be believed, the Java (not to be mistaken for JavaScript) is wonderful, fast, slow, garbage, the cause for all
Re: Really??? (Score:2, Informative)
Programming languages are just tools, like hammers and screwdrivers. Use the right tool for the job. Mostly the choice of language for a particular job will be centered on which packages you need -- since nobody writes code from the ground up anymore. If you are looking at Python, check out Flask & Django as examples of powerful frameworks available to you there.
There is a tremendous install base of existing Java applications out there, so if you are a programmer, you will need to eventually learn Ja
Re: (Score:2)
Java is OK. It's also several different things.
I think it's defining feature is its medicority. That's not to say it's bad: it's not, it's just kinda mediocre. It can do more or less everything you expect from a modern language. It has generics, it has OO, it has exceptions, it has closures/lambdas/something close enough, it has native bindings, it's automatic resource cleanup is decent enough now and it has a very extensive standard library. Naturally since it's now quite old it also has heaps of deprecate
Re: (Score:2)
What the fuck does "seems to run faster" mean?
This is the rousing defense of .NET that Microsoft's supporters resort to now?
Re: (Score:3)
Re: (Score:3)
I don't think you can under normal circumstances (i.e. using a perl interpreter). Because in order to run a perl OS you'd need a perl interpreter written in perl which would itself need a perl interpreter written in perl, etc.
I think the only way would be to write a perl compiler.
Re: (Score:2)
Re: (Score:2)
Literally everything that can be done in software can also be done in hardware, it's just harder to change hardware when you find a bug or want to add a new feature. So it's customary to do as much in software as possible because it can be changed. Firmware gets into a gray area. It's technically software, but it is often easier to lump it in with hardware.
You can also do everything that can be done in hardware in software (e.g. a VM). The only catch is that software ultimately has to be running on hard
Re:Really??? (Score:4, Insightful)
Hardly anybody is a "rabid fan" of Java. It's a mature, full-featured language with a healthy (perhaps leading) ecosystem of APIs, tools, developers, and training materials, that is considerably faster compared to scripting languages in many situations. This is reality, not fandom.
Re:Really??? (Score:5, Informative)
Hardly anybody is a "rabid fan" of Java. It's a mature, full-featured language with a healthy (perhaps leading) ecosystem of APIs, tools, developers, and training materials, that is considerably faster compared to scripting languages in many situations. This is reality, not fandom.
This.
I don't like Java. It's the worst of the "curly brace languages" IMO. But I still find it vastly better than the scripting languages, even Python. The ability to find problems at compile time is very important indeed.
I like C# better, but it's a hard sale for Linux server code. I like C++ better for my own code, but I have vastly more confidence in my ability to train a fresh college hire to write safe code in Java than in C++. Hell, I enjoy writing C code more than Java code, but it's not very productive where Java is used today.
Re: Really??? (Score:4, Insightful)
I hate Java but is a hardcore fan. Why? Because it's the language that sucks the least. Slow and buggy "native" runtime gets replaced by Bytecode in my systems as fast as I can manage.
There are lots of people spewing shit on Java every time it's mentioned but not a single person I've talked to can point out a single disadvantage with choosing Java.
Yeah in time there will probably be something better. I even have designs that many developers would prefer over Java. But until there are something available that can create as stable, fast and easy to debug executables as Java while providing at least as productive development environment...
As for .NET it was unavailable for the hardware Google where targeting and still has to many bugs to be stable. And when it comes to servers and desktops same things... come back when it works as well as Java on SPARC/Solaris and various IBM platforms. To name a few targets most developers have to support.
And when it comes to anything that doesn't JIT code. That increases development, deployment and maintenance costs. C++ binaries are to slow compared to C++ because SSE and other advanced CPU features they don't support. Yeah most code doesn't get recompiled with modern compiler's and redeployed. Bytecode however does. Therefore the average deployed Java code is way faster.
And that even gets worse because native code optimized for old processor's may actually be a lot slower than non-optimized code.
And when it comes to Android nothing beats Dalviks performance. Native code is super slow because it use more memory and OpenJVM can't run on android-supported hardware. Yeah that doesn't apply to my Samsung S3. But guess what, early android phone didn't have a fraction of that hardware. So to all of those saying that Dalvik was a bad choice, find some original Android phone and prove that you can make anything faster.
So yeah I don't like Java at all. But people saying that it sucks without providing me with an alternative doesn't help me switch to another language.
Re: (Score:2)
vastly better than the scripting languages, even Python. The ability to find problems at compile time is very important indeed
I run lint after every edit in Python. Should be vastly better than compile at finding errors. Need to get Emacs to auto-run for me.
Re: (Score:2)
With Java I can do simple game with GUI in an hour. With C++ it takes much longer usually days. Mostly because C++ does not have graphics library so first I need to evaluate and pick one.
Fair enough. I think I've written one program with a GUI in the past 25 years. I'm pretty sure I'd use Unity for a game though - C# is really nice these days, if your target platform supports it.
Re: (Score:2)
Re: (Score:2)
Yeah it's always easier to use tools you are familiar with. And it's easier to make decisions when there is only one choice.
When I choose to buy a Chevy Volt it's easy because I know exactly what to buy. But if I choose to buy a Toyota it's hard because I then need to choose which model to buy.
What's wrong with the above statement? Chevy makes lots of cars too, I know. What if they only made the volt? Does that statement make any more sense?
Because it's the best (Score:5, Insightful)
It won because it's the best programming language. You can go cry to your mama about that if you want.
Re:Because it's the best (Score:4, Interesting)
It won because it's the best programming language. You can go cry to your mama about that if you want.
And Java 8 has IMHO completely refreshed the brand from a programming perspective. I'm really enjoying Java again.
Re: (Score:2)
Re:Really??? (Score:5, Insightful)
Re: (Score:3)
I stopped disliking Java since 1.5. People can use Scala and Groovy if Java bothers them so much and still benefit from the ecosystem. They should work on Android as well.
most used not so lovely (Score:2)
half my job is to be sys admin, lots of bash (for linux) and ksh (for bsd) scripting for batch jobs
still having to write shit in perl 5 (boo) and ruby (yay) for larger things, like conversion and importing jobs
on the dev side of my devops job, yes java (ew)
Re: (Score:2)
Re:most used not so lovely (Score:5, Informative)
If you are using Java for Sys-Admin tasks or similar "dev ops" stuff, you should check out Groovy.
Re: (Score:2)
no the java is for actual business code, we get too far into the dev end of devops for QA purposes. devops done wrongly.
Re: (Score:3)
Re: (Score:3)
Scripting languages don't count.
You'd be surprised at how much of everything that is running on scripting languages, or depends on it. Including Slashdot. And don't forget all the games that run Lua as a scripting language.
Old? (Score:5, Informative)
Java took that coveted spot, winning out over C, Python, PHP, and other languages. "At first sight, it might seem surprising that an old language like Java wins this award," ...
Interesting comparison, singling out Java as "old". Python is older. From Wikipedia:
Age doesn't matter. Usefulness does. My top language: Perl - First appeared 1987; 29 years ago.
Re: (Score:2)
The concept of hell isn't new either....
Re: (Score:2)
Age doesn't matter. Usefulness does. My top language: Perl - First appeared 1987; 29 years ago.
The concept of hell isn't new either....
I imagine that the concept of Hell is probably pretty useful - or were you referring to Perl? :-)
... ]
[ I'm the GP poster for this, so I can make fun of myself
Re:Old? (Score:5, Informative)
Age doesn't matter. Usefulness does.
Age matters, because CS is a relatively young discipline. We've learned many things along the way, and capabilities continue to evolve, meaning that certain tradeoffs are more relevant than others.
Would you design today C the exact same way as the original, even if the design goals were exactly the same? Of course not. You'd likely eliminate a lot of the blatant shortcomings, such as the ease in which memory is stomped, the way pointers and memory can be so easily corrupted or leaked, and the unsafe nature of many of its library functions. C++ has proven you can eliminate those faults with little to no runtime overhead. C was designed at a time when memory and run-time efficiency were given much more importance than runtime data integrity or safety. That's simply not the world we live in today, in which a set of flaws in a multimedia library can cause one of the biggest security holes of all time.
Look at how vastly different C++14 looks than C++ 98. The addition of smart pointers, move semantics, lambdas, and a few other key features mean the language almost looks like a modern managed language like C#, albeit quite a bit uglier in the syntax department. And I *still* think that the ref-counted constructor-destructor paradigm is actually more practical in many situations than garbage collection, which is really only designed for a single type of resource (memory, obviously). These days, it's incredibly rare that I actively manage memory or raw pointers in my C++ programs. We've learned that doing so is a common source of bugs and security flaws, so these days we tend to ask the compiler or the runtime to do it for us.
Re: (Score:2)
Youth is relative.
Look how different a 1968 Ford Galaxy looks to today's Ford Galaxy! And think how much pollution you can create with a supercharged 500 cubic inch engine! Forget about VW's puny 100 cubic inches.
My 89 year old mother was a Fortran programmer in the 1960s. Two of my friends had fathers who taught programming in the 1950's.
YMMV
Re: (Score:3)
CS is a relatively young discipline
Youth is relative.
Well, I'm not going to disagree with you, as that's precisely what I stated. Compared to civil engineering, with a few thousand years of history, programming in the 50s or 60s isn't all that impressive. But compared to electrical engineering, which grew up in the 19th century and took off during the 20th, it fares better.
Re: (Score:2)
C was designed at a time when memory and run-time efficiency were given much more importance than runtime data integrity or safety.
Application complexity was also significantly lower than today making easier to troubleshoot and avoid problems in the first place
Re: (Score:2)
Re:Old? (Score:5, Insightful)
Sure, Perl writes terse programs... but to me, valid Perl code is indistinguishable from line noise!
They don't have to be terse / line noise and mine aren't. I learned that lesson a long time ago when I looked at some code I had written a few years prior and thought WTF does that do? All my code, regardless of language, is pretty well documented and structured, especially when I *have* do something weird or *want* to do something extra concise. I have a pretty consistent and logical style - which I think is important - to all my code and, in fact, many co-workers can tell it's mine just from looking at it.
In short, one can write good and bad code in (almost) *any* language.
Larry Ellison's acceptance speech for the award (Score:5, Funny)
"I'd like to thank ... myself. I deserve it."
Lack of choice is the main reason (Score:2, Informative)
The popularity is largely because Java has two niches: enterprise applications, and Android apps.
This does not necessarily mean people like it. On the enterprise side, the only other viable choices are Microsoft languages, and COBOL; and for the Android native app side, there are no viable alternatives (with good-enough market share).
C++ is better suited to hardware-centric applications and system drivers rather than CRUD, and business/enterprise.
It's more of a lack of choice than it is love of Java. For sm
Re: Lack of choice is the main reason (Score:2)
I don't think you know what niche means.
Re: (Score:2)
Re: (Score:2)
For smallish web-oriented apps and internal scripting there are choices like Php, Python, Perl, and Ruby. But if you want a compiled language
All of the above are compiled at execution time, and can also be compiled to an executable if desired. Also, why on earth would you want a compiled language in the first place -- need to be compiled is a necessary evil, not an advantage.
Re: (Score:2)
Ubiquity and Longevity (Score:5, Interesting)
Ubiquity and Longevity are important. It takes a while to create Big software projects, so fad du-jour languages have an Achilles Heel here. Java is pretty much ubiquitous and is very long-lived (so far).
When you have large code bases and lots of people trained in a technology then you tend to use it even more. WORA (Write Once Run Everywhere) is a killer feature, and Java system written on architectures that are now less used (i386, Irix, AIX, Solaris, etc) work pretty much painlessly on new hardware. Java scales from the massive to the miniature and thanks to the talented people at Sun, Oracle and OpenJDK the performance of Java is pretty phenomenal.
I personally am writing a jet combat flight simulator (which I'm mostly keeping under the radar, for now) in Java. I never have to worry about multi-threaded CPU performance. Seriously, never. I only spend time worrying about the bottlenecks in the GPU. Java and OpenGL (via JoGL) are a potent combination. I will never go back to C++ if I can help it - Java libraries and tooling (I love IntelliJ IDEA and the JDK's VisualVM) are so much better. Long live Java !
Re: (Score:2)
Not to mention that Java tooling is quite extensive now - Maven, Gradle or Ivy offers flexible - if sometimes a bit complex - dependency and lifecycle management, which is a godsend when bootstrapping a new developer environment. Add to that nice integration tools, a few really powerful profilers (I'm fond of Yourkit profiler), some wicked hacks like APT that can save your bacon when you need to turn a project around and as said a few posts below a huge amount of readily available libraries and I can't conv
Re: (Score:2)
Don't you mean write once, debug everywhere?
I thought it was "Write once, wait everywhere". :-)
[ For the record, I like Java and use it a lot. ]
Logo places higher than Bash, Erlang (Score:2)
Apparently there are more Logo "skilled engineers world-wide, courses and third party vendors." than Bash. I think there is something very wrong with their methodology.
Go dropped out of the top 50!?! (Score:2)
It looks like the criteria are based on search results so I have to assume that is partially to blame. Seems like Go has been nonstop in the news this past year.
How is it that a search engine company managed the most search unfriendly name for their big programming language?
Golang, golang, golang! (Score:2)
For me last year (and one or two before that) it's been Go (golang) that's taken over my programming life. I've taken it from a "spare time" thing to getting many services into production using Go last year, as well as getting 3 dev teams at work using it and it's already proving more productive than java, which we've all used until now, in some cases for decades.
Look here https://github.com/trending [github.com] and you will see that golang features highly now, pretty much every day. When I list the most exciting proje
Re: (Score:2)
Seconded! People claim nothing's faster than a concerted effort in C, but even then you're suffering event-loop-style development. Go makes concurrency feel natural and therefore faster algorithms can be implemented more easily.
Though algorithm reuse is discouraged somewhat due to lack of Generics, Interfaces allow it somewhat.
But mostly what's great is its simplicity. Everyone can be a language expert, unlike the C++ "ivory tower" or similar. And unlike Java's or Python's simplicity that requires vast fram
I'm a new convert to Java (Score:3)
Re: (Score:2)
I'm a C programmer, and from here your sound like a "gotta have the very latest or you're just not cool" guy.
Re: (Score:2)
Re: (Score:2)
Hey, you're the one that said "real apps". Try redirecting your rage yourself instead of me.
Cue the certification mills (Score:2)
In 3... 2... 1...
The Circle of Life is complete! (Score:2)
I was a new software engineer at Sun when Java was developed; in the industry, lots of "old guard" people immediately started ragging on it. Now it's the scripting language kiddos who mostly rant about it as "old and outdated." Achievement unlocked!
It's a tool, nothing more nor less. It happens to be one that's good enough for a lot of tasks, with a huge installed base and many years of well-tested open-source libraries available. The only newish language that I see with a chance to topple it is Go, but it
Widely used, but vulnerable. (Score:2)
The Java language and frameworks still have their fans, but the platform has just ground to a halt and has ossified into an overly rigid and verbose environment that takes increasingly longer to get anything done in compared to other alternatives.
Type erasure was hailed as the right thing. Time has show it was not, not at all. C#, Swift and Scala have all shown that proper generics really make for better APIs and programming models. More and more programmers are comfortable with higher-order programming, an
LOL (Score:2)
> Entity Framework just makes anything in the Java space look outdated
Well, that statement right there illustrates you don't really know the actual details, do you? :) I write .NET ORMs for a living and have been doing that for a long long time, and EF would wish it was near the functionality and flexibility of a random JPA/JDO compatible java ORM.
Really enjoying go. (Score:2)
Golang has been like a breath of fresh air. Just saying. Great for server side work.
To answer the submitter's original question... (Score:2)
Which Perl is number 11? (Score:2)
Groovy (Score:2)
I've been using Groovy for the past few years. And every where I can I try to use more of it.
http://www.groovy-lang.org/ [groovy-lang.org]
The syntax is terse (no semi-colons if you don't want them), it adds a lot of nice touches (null is false, ?. operator), easy JSON and XML support, and yet it works seamlessly with the vast number of Java libraries out there.
Pair Groovy up with the Gradle (Groovy-based) build tool and you have a slick package.
I just got done writing a little utility with it. No class declaration or main(),
Java = Dead Language in 2009 (Score:5, Interesting)
When it came time to build the next iteration of the company's flagship product I was overruled on moving to Java from Delphi for two reasons. First, because it was a Delphi shop, so it was considered a bad move because it was not our core competency. And second -- and this is what generated the most conflict -- was the notion Java was a dead language. I was confused and amused when this argument was first brought up and floored when it was seconded by the other lead programmer. And no matter how much I tried to point to Java's ubiquity and ratings I was voted down.
I really hope those two developers got a chance to read this story.
Mike? Todd? You there?
Re: (Score:3, Funny)
C++ and Scheme are where you want to be. Ideally your C++ program should use Scheme as an extension, or your Scheme should be implemented in C++.
I program everything in Prolog, except when I need execution speed: then I switch to assembly.
Re:A bit disappointing (Score:5, Insightful)
Wheels on my car do the job and have improved a lot. However, it's a bit disappointing that there isn't something new in 2015.
(Actually not that enamored of Java, but just feel like 'not new' should not be some automatic disappointment in a technology).
Re: (Score:2)
I always think for software, if there aren't any obvious/good UI or feature additions, then focus on performance/stability. Y
Comment removed (Score:5, Interesting)
Re:Why for new projects though? (Score:5, Insightful)
Re: (Score:2)
Better than Perl or C++ at least, and more practical than Haskell or Scheme.
Re: (Score:2)
Care to show anything comparable to this [slashdot.org] blunder in C++ or Perl?
Re: (Score:2)
That sounds like .Net developers to be honest. I run circles around those guys everyday at work.