Java Named Top Programming Language of 2015 (dice.com)
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?
Java topping the list of programming languages is like Donald Trump topping the polls for the Republican nomination: they both have their rabid, energetic fan-bases, but most of the rest of us are just sick to our stomachs wondering how it happened and waiting for it to be over ...
As it is most unsuccessful. 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++.
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)
Top 5 in popularity are Java, C/C++/C# and Python. Gee, who could have possibly foreseen this???
Java does the job, and has improved a lot in 1.8. However it's a bit disappointing that there isn't something new in 2015.
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.
It must have been something you assimilated. . . .
Stackoverflow has a slightly different idea of the most popular languages:
javascript× 1021166
java× 990387
c#× 893176
php× 855632
"I'd like to thank ... myself. I deserve it."
If it weren't for deadlines, nothing would be late.
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 smallish web-oriented apps and internal scripting there are choices like Php, Python, Perl, and Ruby. But if you want a compiled language, the viable choices are very limited.
Don't get me wrong, there are plenty of compiled languages with the potential to gain sufficient market share, but until they do, they are a risky platform investment for most orgs.
Table-ized A.I.
n/t
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 !
That being said, even big languages can tumble. (Dice link)
Indeed.
Exactly what list are we looking at to determine their top of the line status? Are we taking in number of lines written in a certain language like GitHub? Are we counting live implementations of any software written in a language? Are we creating a weighted scale function based on number, size and popularity of projects written in a language? Or, since it seems that TIOBE is in the business of selling software development solutions, are we looking languages that have the most return on investment for them?
Here's my advice, avoid any language that has a corporate entity in the driver's seat. Swift, Objective C, C#, Java, .NET are all poison IMHO.
I get that, mostly thanks to enterprise and android, Java is used all over the place and that it will tend to top lists like this, however, what I'll never understand is why people still use it new projects. IMO, the only reason to pick Java is because you need the ability to run (and debug) everywhere and I've seen countless new projects use Java when that's not even remotely a requirement. If you need a performant, statically typed language, there are better alternatives. Even if you need something to run on multiple different platforms, there are often times better options.
... and Java would drop like a rock.
Perl. Does that make me a bad person?
In addition to Hindi, Java is the 2nd language of H-1B.
My favourite over the last 12 months (12 years, actually) has been Fortran 95, simply because it is the best language for my work.
Java is more of a young person's language.
For me it would be like taking ecstasy of dubious provenance instead of large doses of clean, pharmaceutical amphetamines.
(And no, I'm not sharing mine!)
USB, USB, USB!
"winning out over C, Python, PHP, and other languages."
Only on Slashdot would the summary of the article skip over C#, which still outranks Python and PHP. I know this is a MS hater site, but give credit where credit's due, sheesh.
C++. No contest in my mind.
It won because it's the best programming language. You can go cry to your mama about that if you want.
Democracy Now! - your daily, uncensored, corporate-free
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.
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?
"Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
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 and you will see that golang features highly now, pretty much every day. When I list the most exciting projects I've started using in the last few years, about 70% of them are in Go. When I look around me at software startups, they mostly use Go. I was also told that about 80% of startups working with Adrian Cockcroft are using Go (and he spends a lot of his time with startups in his current work)
Also, it's really fun. Seriously. Learn Go and use it.
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
Java... hate everything I've ever used that was built on Java. Slow and crappy are just enough to make you want to commit suicide. Sure, it's more convenient for those writing the code and wanting to be cross platform, but it's worse for everybody else. This is no secret, and so Java needs to die.
I turn to Python first for almost all of my projects, but I've been exploring Haskell and Java a bit lately. So Python, Haskell and Java - in that order.
Well, not Java per-se, but I recently came across OpenXava (www.openxava.org), a Java-based framework and was just blown the fuck away at the incredible productivity built-in for developing applications. After wrestling with RoR and Laravel, I was amazed at the difference. It's like night-and-day. Quite frankly, it (OpenXava) could be written in asembly, Java, COBOL or haiku for all I care. What I do care about is app development productivity and if it happens to be based on java? So what? You "gotta have the very latest or you're just not cool" guys can engage in your techno-masturbation all day long. Meantime, I'm building an app.
Top security risk I could see (at least if you ignore Flash), but top programming language?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
The TIOBE statistic is a failed and widely overrated approach to measuring the popularity of programming languages. All it measures is the frequency of the term "XYZ programmng language". That's not a good proxy to popularity. Imagine we took "flu medicine" as the popularity ranking of illness medicines, that would be obviously weird. My point is, people don't search for or ask about a programming language because it is popular, but to the contrary, like with flu medicine, because they have some *issue* with it. And all TIOBE tells us is that there are two languages that a lot and growing number of people have issues with, Java and PHP. Which is not at all surprising, if you know either of the two.
Java Named Top Programming Language of 2015
Whoa! April 1st is still months away!
I have some reasons to doubt them, since their method is essentially stated using +" programming" on several search engines.
Going through the very first google page ends up with this;
In order to show you the most relevant results, we have omitted some entries very similar to the 360 already displayed.
If you like, you can repeat the search with the omitted results included.
Searches related to +"java programming"
NullPointerException
In 3... 2... 1...
putting the 'B' in LGBTQ+
So it's not PowerBuilder then eh? Too bad, I kinda like it.
Perhaps the labor is cheaper and the software doesn't need anything better. So, it could just be tied to outsourcing increasing.
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 still has many years of development to match Java's reach and scope. (I went to the most recent Gophercon, and was impressed by the energy; I predict that Google will at some point ditch Java/Dalvik for a Go-based stack on Android.)
At this point, it's the plain vanilla ice cream of programming languages: maybe not your favorite, but it won't kill you, and will always do in a pinch!
If you create an industry around having armies of idiot programmers writing boiler plate code all day long, you're going to win any metric based on quantity.
“Common sense is not so common.” — Voltaire
A Java thread with 165+ Posts so far and no mention of Node.js and how it is going to blow everything away anywhere -- unless I missed it. Well if so then I think an award is due to someone.
Microsoft is now developing cross platform .NET framework that would run on Windows, Linux & OSX. It is still pre-release so it is rough but I was able to compile and run my C# code on Ubuntu. New tools would even compile C# to native code by converting it to C++.
Top language for what? Of course mobile apps but, cert. not for websites or major business uses. Loads of garbage apps make java no. 1. Nothing to see here.
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, and Java is just behind in this respect, even with regards to C++14.
Build tools are still a hodge podge of Ant, Maven and Gradle. Maven can make even worse MSBuild file seem reasonable. And package management is just a mess. Even Microsoft is managing to use NuGet to make projects more management and modular. And Java, well, it's module improvements will be too little, too late. And Java projects are just huge monoliths that are hard to maintain and improve.
The JCP has just ground to a complete halt, and once leading edge frameworks have just lagged in terms of new ideas and innovations. I know Java programmers that loath using relational databases. Object Relational Mapping was once a strength of Java, but things like JPA have made verbose and clunky. Entity Framework just makes anything in the Java space look outdated.
It is true that the JVM itself has proven to very effective, and it's use will continue. But, it has improving contenders in LLVM and the CLR (via .Net Core). And in many ways, Java prevents the JVM from evolving (invoke dynamic is a great example).
Between Scala, Clojure and C#, there are better alternatives to Java in the enterprise space. And, in terms of mobile, Google has no reason to keep using Java. Swift has shown that developers want better, more expressive languages. Google has plenty of choices to choose from.
The reasons for using C and C++ haven't changed. The domains they serve they serve well and continue to do so. But, there are less and less reasons to use Java, and it is much easier to replace and displace unlike COBOL and related mainframe tech.
Golang has been like a breath of fresh air. Just saying. Great for server side work.
The heat from below can burn your eyes out
My favorite language of 2015 was Perl 6, which was finally completed at Christmas. Yes, the Duke Nukem Forever of programming languages is really here!
Beware of bugs in the above code; I have only proved it correct, not tried it.
This list is ambiguous. Which Perl is number 11? Was it Perl 5 or Perl 6? Because Perl 6 did release last year, you insensitive clods! Also, I find it amazing to see the surge in assembly language popularity. They are really lighting up the charts, going from 14 last year to 9 this year.
Beware of bugs in the above code; I have only proved it correct, not tried it.
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/
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(), Sql object that makes database interaction dead simple. It's a fairly trivial piece of code, but it looks lean and clean in Groovy.
- Jasen.
Perl was made to create new levels of Hell.
I still have faith in you Perl!
"There is a module for that!"
C rules
> 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.
Never underestimate the relief of true separation of Religion and State.
The problem is that no-one else programs your way. By your own admission your code has such different style to anyone elses that they can tell just by looking at it.
The problem is that someone looking to co-develop or maintain large amounts of code in your organisation has to understand your style, and Dave's style, and Tammy's style, and Jack's style, and, yes, indecipherable line noise from that contractor who you had in six months ago. That is the problem.
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?
*** *** You're just jealous 'cause the voices talk to me... ***
If you read TFA (yeah, yeah, I know), there's a graph showing how each language in the top 10 has rated since 2002. As far as I can see, every language in the top 10 is now rated lower than its peak. For many of them, the peak was in 2002, but for a couple it was later (Ruby and Python, I think).
I'm wondering if the reason relates to TIOBE covering more and more languages, and using a % rating system - the more languages you spread 100% across, the lower the scores will be...
What do you think?
When I see developer resume's and job ads, I see lots of .Net listed, like over 50% it seems. I would have thought that C# might have made it to the double digit percent or on par with C++ at least. Maybe no one uses C# for .Net, and only uses VB?
This is *soooo* bogus!
According to TFA: "The ratings are based on the number of skilled engineers world-wide, courses and third party vendors."
So - it's NOT based on the number of lines of code written in the last year, or the number of lines of code currently present in actively maintained projects, or the number of programmers (programmer != "skilled engineer") using it, or the number of programmers who are using it by choice rather than reluctantly due to external pressures, or the number who are using it who would much prefer to be using something else.
I find it very, very hard to believe that there are more Java programmers than JavaScript programmers out there - I would be extremely suprised to find any working Java programmers who don't also use JavaScript. I'd be very surprised if there were more Java lines-of-code or Java programs out there than JavaScript. Just about every website out there has some JavaScript code in it - and the web designers use it who do not self-identify as "skilled (software) engineers' - do those people not count in this popularity contest?
Why are we calculating "number of ... third party vendors". Just because there are a lot of junk libraries out there that you need to pay money for doesn't make a language more popular than one with a bunch of open-sourced libraries - or one that has one truly spectacularly good library that everyone uses.
A very popular programming language might well be one that so easy to pick up that nobody much needs to run courses on it, which doesn't need third party libraries and such - and which lots of informal non-engineers use. This claim would entirely miss an insanely popular language that met those criteria.
There are some incredibly unpopular things out there which everyone none-the-less uses because they have little choice (PHP, for example!).
A large number of those Java courses must be "Comp Sci 101" in high schools and further education that are required courses for something else (one of my kids recently did one as a required part of her pharmacy degree - and it was *total* junk). Most of the people who attend them have never seen another programming language and so can't have formed an opinion as to whether they prefer Java - and 99% of those people will never write another program in their lives. Those shouldn't reasonably count in a popularity contest.
How do you count "skilled engineers"? People with some kind of formal accreditation? I've been working as a programmer for over 40 years - and I don't think I've ever worked with someone with a formal language accreditation.
How did they score a "skilled engineer" versus a "course" versus a "3rd party vendor"? Do you score 1 point for a programmer, 10 for a course and 100 for a vendor? Is it 10 points for a programmer, 1 point for a course and 3,14159 points for a vendor? I'm quite sure that tweaking those numbers changes the outcome drastically.
So I simply don't buy the criteria this study used. I don't know how you could know what's "most popular" - because the terms are so incredibly vague.
This is junk science...disregard it.
-- Steve
www.sjbaker.org
I find Java to be an unfortunate but common step in a company's evolutionary history. You actually can make Python "scale" in many cases, but you need competent developers. Dynamic typing usually makes messes, but that's not inevitable. (You have to hire great engineers, often skilled in both statically-typed and dynamically-typed languages, to make it work, but it can be done.) Java's main "accomplishment" (good for it, bad for the world) in the enterprise seems to be that it can actually make mediocre "Agile" programmers marginally employable. The common evolution for a software company seems to be: you have your data scientists and idea guys code something up in Python or Ruby/Rails or Javascript/Node and you have your first-generation serious engineers write production code in a statically-typed language (sadly, often Java) and then you hire a bunch of commodity-grade ticket-jockeys (who only know one language, and often that's Java) to maintain it.
I like Haskell a lot and I'm glad to see its community growing. That said, the language that seems to be making the most headway as far as I can tell is Clojure (which I've also used a lot). Clojure has a great community; better than any other language, in my opinion. The JVM is an asset and a detriment (an asset in adoption, a detriment in the long term) and the only issue I have with it is that I generally prefer to have static typing, because if you don't have enforcement of functional programming within the type system, then you probably won't have functional programming at all... but I'd also rather have Clojure's dynamic-typing-because-it's-Lisp than Java's shitty static typing that doesn't help much.
Still, I'm a huge fan of Haskell and static typing and I'd like to go even further into dependent typing, because I'm a curmudgeon and I fucking hate bugs.
I have worked with quant trading for a couple of years, and the High Frequency Trading firms chasing the lowest latency are often using Java instead of C++. I know that NASDAQ's large stock exchange system powering Wall Street (called "INET") is written in Java with latency sub 100 microseconds and enormous throughput. The stock exchanges compete with offering the lowest latency because the HFT firms go to that exchange. Because the lower latency is, HFT earns more money. And HFT have enornoums turn over which means that exchanges can collect hefty fees, so HFT firms are very important customers to exchanges. If HFT firms demand something, stock exchanges do it for them. And if C++ allowed lower latency than Java, everybody would use C++ instead. But they dont. All the fastest stock exchanges uses Java or C++, and they also exclusively use UDP for their middleware.
The secret that NASDAQ uses to get the highest performance so their Java implementation beat C++ exchanges (NASDAQ claims they are the fastest exchange in the world) is that NASDAQ use this trick: they never ever trigger the Garbage Collector. This is done by preallocating lot of objects and constantly reuse them. This way no object goes out of scope and the GC is never triggered. Real Time Java sucks for this extreme performance HFT requires, so Real Time Java is never used in these firms. So, this proves that Java rivals C++ in extreme performance. All the large stock exchanges are written in Java/C++ and runs on Linux/Unix. Mainframes don't have that low latency, so Mainframes are not used. However, all traders that trade on the exchanges are typically running Windows and some trading app written in C# or so.(unless the trading client is HFT firm in that case they run Linux and Java/C++ themselves)
-------------------
Another reason Java is potentiall faster than C++ is because of the adaptive optimizing JVM. You compile C++ binaries once with set flags, and these flags need to target the lowest common denominator, no vector instructions in the cpu, etc. The C++ binay will be plain cpu, with no optimizations. OTOH with Java the JVM will reoptimize the Java executable the longer you run it. The JVM might turn on vector instructions if it discover the cpu supports vector instructions. Sure, you can distribute several different C++ binaries depending on the user's cpu. Or the C++ binary can have lot of checks: "if the user cpu supports vector instruction, use this for loop instead", etc.
But one thing C++ can not optimize for (but JVM can) is this scenario: imagine you have "Employee" superclass and then you have subclassed to "HourlyEmployee" and "PermanentEmployee" classes. Now you have a large list with "Employee" which will process lot of objects in a for loop. If the list contains only "HourlyEmployees" the JVM will do optimizations for them. Now in the next run the list only contains "PermanentEmployees" so the JVM will do another optimization for them. In each run, the JVM will adapt to the subclasses. C++ binaries can not do that. So in theory and adaptive optimizing JVM is the fastest, faster than C++. And JVM is catching up fast, just look at the extreme world of HFT finance. Everybody would switch to C++ if it were faster, because faster means more profit. But they use Java.
-------
Another reason Java is very common, is because in the Enterprise the Oracle DataBase is very common. Oracle owns Java and the DB plays well with Java. The Database is the heart of the company, containing all vital information, so typically the heart of the company runs Oracle DB and Java, on large scale-up servers with as many as 16-sockets, or even 32-sockets. These large scale-up servers cost many millions. These Enterprise workloads can not be parallelized so they can not be run on a cluster, they can only be run on a scale-up server, as SGI explains here:
http://www.realworldtech.com/sgi-interview/6/
"...The success of SGI Altix systems in the high performance computing market are a very positive sign for both Linux and Itanium. Clear
"Let's eat shit - millions of flies can't be wrong."