Slashdot Mirror


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?

9 of 358 comments (clear)

  1. Old? by fahrbot-bot · · 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:

    • Java - First appeared 1995; 21 years ago
    • C - First appeared 1972; 44 years ago
    • Python - First appeared 1991; 25 years ago
    • PHP - First appeared 1995; 21 years ago

    Age doesn't matter. Usefulness does. My top language: Perl - First appeared 1987; 29 years ago.

    --
    It must have been something you assimilated. . . .
    1. Re:Old? by Dutch+Gun · · Score: 4, 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.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  2. Lack of choice is the main reason by Tablizer · · 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 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.

  3. Re:Really??? by Midnight+Thunder · · Score: 4, 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?

    --
    Jumpstart the tartan drive.
  4. Re:Really??? by lgw · · 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.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  5. Re:Really??? by swilver · · 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.

  6. Re:most used not so lovely by angel'o'sphere · · Score: 4, Informative

    If you are using Java for Sys-Admin tasks or similar "dev ops" stuff, you should check out Groovy.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  7. Re:Really??? by Kjella · · Score: 4, 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.

    --
    Live today, because you never know what tomorrow brings
  8. Re: Really??? by Anonymous Coward · · 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 Java (and C, Groovy, Python, Perl, etc).