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)
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.
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 !
Perl. Does that make me a bad person?
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!
If you need a performant, statically typed language, there are better alternatives.
Sometimes you want a performant, statically typed language that also has a massive number of robust, mature open source libraries available for it. In general, if you want to do something that some other person conceivably may have wanted to do at some point in time, there's a Java library for it that has hundreds of users. Developing a load-balanced application server that uses websockets, communicates with a high-performance database, and uses PKI authentication? Heck, there's probably a maven stereotype that will take care of 95% of the boilerplate code for you. Not to mention the tools that are available -- there are few IDEs or profilers for any language that are as powerful as IntelliJ IDEA and JProfiler, for example.
Plus, learning something new is hard. Learning a new language can be tough enough, but it's far worse if you're switching frameworks on top of that. It doesn't matter if an alternative is better if Java is good enough and it's what you know.
Karma: Terrifying (mostly affected by atrocities you've committed)
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
From a project management perspective Java is a pretty safe choice for a new project. On long projects people come and go - I can find replacement Java programmers in short order. As much as I love clojure, I would never do a large project with it at work because it's too difficult (and expensive) to find competent lispers.
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.
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.
Better than Perl or C++ at least, and more practical than Haskell or Scheme.
In 3... 2... 1...
putting the 'B' in LGBTQ+
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!
Yeah, in Microsoft shops C# will be the top, with PowerShell for quick scripting needs, being able to pipe .Net objects and work nicely with SharePoint, Exchange, and SQL Server. I'll be looking into Python/Jython and possibly some Rhino/JavaScript to work with a J2EE based system.
Beware of the Redittor who loans you a Sharpie.
Constantly patching Java, Flash, and Acrobat, maker of the Penetratable Document Format.
Beware of the Redittor who loans you a Sharpie.
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.
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
That sounds like .Net developers to be honest. I run circles around those guys everyday at work.
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.
Care to show anything comparable to this blunder in C++ or Perl?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
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.
> 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.
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... ***
Java took off partially because it is easier to learn than C++. And Java new devs with little experience were generally willing to take a lower salary than an experienced C++ developer.
SW architects realized that you could coordinate the work of many inexperienced developers with Java and isolate bugs to generally be in their own module. While with C++, new bugs are generally an expensive process to isolate, understand and correct the bug. To further speed up the Java bug hunt, tools for integrating unit tests were quickly picked up by the industry once they were available.
But the assumption that no bugs is the same as good code has never really been corrected in the Java industry, but has been understood in C++ since the beginning.
“Common sense is not so common.” — Voltaire
There are tons of crappy C++, C#, Java, VB.Net, apps out there. Frankly your comments come off as out of touch. This idea that somehow C++ guys are the only ones that understand what it takes to write good good is laughable. Lotus had the same opinion of C and C++ and insisted on writing windows apps mostly in assembly. That hubris allowed other companies to run circles around them.
Some languages tend to attract poor coding because they have entry points that require no skill. You end up with developers that pick up a lot of bad habits over the years. PHP is a notable actor, but .Net has the same baggage from all the guys who started with VB in Access and .Net back in the day. It doesn't matter that Microsoft actually has a really good VM and really put a lot of effort into C#.
Put another way, you can't take the AOL out of the internet.
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.
This idea that somehow C++ guys are the only ones that understand what it takes to write good good is laughable.
You failed to follow along. "And Java new devs with little experience were generally willing to take a lower salary than an experienced C++ developer."
My complaint is that successful C++ projects had to hire gurus, while Java projects could hire inferior people and still manage to ship something.
I definitely did not say that anyone that knows Java is a bad programmer. And from your second paragraph, I think you understand that some languages have different learning curves.
“Common sense is not so common.” — Voltaire
If you're a good software person, it will be easy to learn a new language if you understand the language concepts. Learning the available libraries can take a LOT longer.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes