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?

358 comments

  1. Really??? by scunc · · Score: 5, Funny

    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 ...

    1. Re:Really??? by darkain · · Score: 4, 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.

    2. Re:Really??? by Anonymous Coward · · Score: 0

      My thoughts exactly.

    3. Re: Really??? by Anonymous Coward · · Score: 0

      Seems you have problems with statistics. "Most of us" refers to your friends only, which seem to have a shared opinion on Java.

    4. Re:Really??? by Anonymous Coward · · 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.

    5. Re:Really??? by rasmusbr · · Score: 1

      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 learned it in school and on the job.

    6. Re:Really??? by bluefoxlucid · · Score: 0

      I still say that was a mistake. Google could have gone with Mono and .NET, making C#, F#, VB.NET, and even Java and Python languages on the Android platform. They had no way to know Microsoft would drop Core CLR under an MIT license, or that Mono would fold code for poorly-implemented or poorly-performing functions from Core CLR into Mono, giving a .NET-based Android a boost; they *did* have enough programmers to write their own JVM and convert bytecode from Java to Dalvik, and so could have instead improved Mono as per their needs.

      Google does have the option of migrating all Java/Dalvik functions to Java/Mono. They could, with quite a *lot* of work, have the entire Android ecosystem running on Java using native Java classes interpreted on Mono. The Java code would run as native CLR, with run-time JIT and profiling, just like C# applications--in other words, native, not "Java shoehorned onto .NET".

      If they had gone that direction in the first place, likely C# would be a top language, possibly *the* top language. More importantly, Android would have had Java and C# developers--both fairly large camps outside their overlap--both contributing to its ecosystem.

      In other words: it would have reduced risk and hedged a lot of bets for almost zero cost.

    7. Re:Really??? by knightghost · · Score: 4, 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.

    8. 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.
    9. Re:Really??? by MightyMartian · · Score: 0, Troll

      If performance is the primary consideration, why the hell would you pick .NET/Momo?

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    10. 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.
    11. Re:Really??? by Junta · · Score: 4, 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...

      --
      XML is like violence. If it doesn't solve the problem, use more.
    12. Re:Really??? by Anonymous Coward · · Score: 1

      Sure, but given how viciously Microsoft went after Android with its patents, it makes sense that Google chose to go with something safer legally.

      As for Java, nobody could have predicted the copyrightable API bs that Oracle came up with.

    13. Re:Really??? by Anonymous Coward · · 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.

    14. Re:Really??? by TechyImmigrant · · Score: 1

      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?

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    15. Re:Really??? by bluefoxlucid · · Score: 0, Flamebait

      Why would you pick Java?

      You did see the part where Google wrote a program that converts Java bytecode to Dalvik bytecode, right? Whenever you update Cyanogen and it starts "Optimizing applications", it's reconverting all the Java to Dalvik.

      For a more direct answer?

      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’s roughly half the time as the C# controller—very fast indeed.

      The same code implemented in Java and C# seems to run faster in C#; whereas code running on a Java application server versus a C# application server seems to run faster in Java. Apparently Java Web application servers like Tomcat are more mature than .NET Web application servers; but we're talking about bare runtime environments and just-in-time compilation, which lends itself more to C#, apparently.

      The torch has been passed back and forth over the years, with platform-specific results--frequently .NET is faster than Java, while Java beats Mono. Again: Google found Java too slow, so wrote Dalvik to interpret Java; they could have done the same with C#/CLR/Mono. They had no way to know Microsoft would drop Core CLR as MIT--Mono folded some of that in for performance--but they did have the resources to write their own Java JVM because Java is too slow.

      In short: your question is ridiculous.

    16. Re:Really??? by Anonymous Coward · · Score: 1

      Note that the 'language' is not slow, inefficient, etc. It's hard for a language to be anything.

      Well, they could have documented what functions are efficient and not.

      Java is a bit like Agile. Everyone who claims that it sucks "is just doing it wrong". Unfortunately no one wants to stick out their neck and say what is right.

    17. Re:Really??? by buddyglass · · Score: 5, Insightful

      Most Java "fans" I know are considerably less "rabid" than devotees of more trendy languages (I'm looking at you, Ruby). Just my experience.

    18. Re:Really??? by angel'o'sphere · · Score: 1

      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 ... both Mono/.Net and Java run on stack based VMs. (and that has nothing to do with java.util.Stack .... (*facepalm*) )

      A little bit more in depth: Dalvik VM code is faster to interpret and smaller in compressed JAR/ZIP files than the Java JBC counterpart.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    19. 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.

    20. Re:Really??? by Anonymous Coward · · Score: 0

      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.

      ...

      Well, since it's Android/Dalvik instead of "official" Java...

      More like an aged, wretched, worthless, lying sack-of-shit from the 1990s that's come back to haunt us because it hitched a ride on a morally-bankrupt 1990s economic success story.

    21. Re:Really??? by angel'o'sphere · · Score: 1

      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 should calls in one language be slower than in the other? Are you meaning "web service requests"? Ordinary function calls? What kind of instances are retrieved from where? Etc. pp.

      In short: your question is ridiculous.
      I beg to differ. Your standpoint and arguing is ridiculous.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    22. Re:Really??? by jma05 · · Score: 2

      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.

    23. Re:Really??? by macs4all · · Score: 0

      We're still stuck with this shithole as long as Android continues to dominate mobile and they continue to focus almost exclusively on Java

      At this point, the smartest and bestest move Google could do for Android and its Developers would be to ditch Java/Dalvik, take a one time backwards-compatibility hit, and change over to Swift.

    24. Re:Really??? by SirSlud · · Score: 1

      That is a lovely bit of word soup you have assembled.

      --
      "Old man yells at systemd"
    25. Re: Really??? by Anonymous Coward · · Score: 0

      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. Then I need to figure out how to compile with the library etc. Java and maven are not perfect but project can be set up really fast. And refactoring tools. Auyofix imports on save. Easy in one language impossible in C++.

    26. Re: Really??? by Anonymous Coward · · Score: 0

      well, that's just like your opinion, man.

    27. Re:Really??? by Penguinisto · · Score: 5, Funny

      Forget Java...

      Visual Basic jumped up - from #17 to #13, which leads me to ask one small question...

      ...what the hell is *WRONG* with you people!?

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    28. Re:Really??? by phantomfive · · Score: 1

      There's absolutely no reason to compile to bytecode, unless you need heavy portability between processors. You don't need bytecode to have garbage collection.

      They should have skipped bytecode on the phone and gone straight to the metal.

      --
      "First they came for the slanderers and i said nothing."
    29. Re: Really??? by lgw · · Score: 1

      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.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    30. Re:Really??? by Anonymous Coward · · Score: 0

      "At first sight, it might seem surprising that an old language like Java wins this award,"
      NO!, C/C++ are much older then Java.

      So if Java sucks then c/c++ are super duper sucky. All OS's(Windows, OSX, Linux) and Applications that are written in c/c++ have been buggy, unstable, insecure for the past 20+ years.

    31. Re:Really??? by Anonymous Coward · · Score: 1

      Apple solved the CPU architecture agnostic issue by using LLVM IR, then recompiling the apps on their server for every CPU architecture.

    32. Re: Really??? by Anonymous Coward · · 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.

    33. Re:Really??? by Marginal+Coward · · Score: 1

      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...

    34. Re:Really??? by TsuruchiBrian · · Score: 1

      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 optimizations.

      A language (i.e. a description of grammatical correctness) is separate from the resulting executable logic.

      Languages are good or bad based on how easy it is create good quality source code (semantically clear, maintainable, concise, etc). It's the job of the compiler and/or runtime environment to try to get that source code in a form that actually executes efficiently on a particular machine.

    35. Re:Really??? by nigelo · · Score: 1

      Obduction from Cyan Worlds: http://cyan.com/games/obductio...

      Your sig. has expired.

      It's: http://obduction.com/

      Please do try to keep up!

      --
      *Still* negative function...
    36. Re:Really??? by TsuruchiBrian · · Score: 2

      And all the other OS's written in other languages.... don't exist... But it's reasonable to assume that they would be free of bugs if they did?

    37. Re:Really??? by Anonymous Coward · · Score: 0

      You don't have to use it so just shut your shit eating mouth. Why do you have a telephone pole up your ass about what other people use?

    38. Re:Really??? by Anonymous Coward · · Score: 0

      > Google could have gone with Mono and .NET, making C#, F#, VB.NET, and even Java and Python languages on the Android

      Android does have Python, Lua, Jython, Scala, Kotlin, Javascript and (obviously) Java. C# can be used with Xamarin.

      > it would have reduced risk

      It what way would tying Android to Microsoft's language and runtime "reduce risk" ?

      Java (JME) on phones has been used for many years before Android, even on Windows Mobile.

    39. Re:Really??? by Anonymous Coward · · Score: 0

      > Google wrote a program that converts Java bytecode to Dalvik bytecode,

      Current versions of Android use ART not Dalvik.

    40. Re: Really??? by TsuruchiBrian · · Score: 1

      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?

    41. Re: Really??? by Anonymous Coward · · Score: 0

      That's probably mostly VB .NET which ain't going to be legacy anytime soon.

      VB is mostly used by freelancers that performs quite well doing what that tool was designed for. There are however virtually no jobs for VB developers anywhere in the world.

    42. Re:Really??? by Anonymous Coward · · Score: 0

      Hey, I grew up in the 80's and 90's and flatly do not use Java unless I am forcibly coerced. Not everyone makes terrible choices with their lives.

    43. Re: Really??? by Anonymous Coward · · Score: 0

      And all of Java is extremely fast on the Oracle M7 JVM. Also quite decent on IBM:s JVM for their mainframes.

    44. Re: Really??? by Anonymous Coward · · Score: 0

      Well I think the free interpreting VM was the main reason it was considered slow. JITing wasn't free until around the same time OpenJDK came about...

    45. Re:Really??? by Anonymous Coward · · Score: 1

      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.

      Not to come in between you guys ranting, but... you should check your facts.
      Android has been using JIT with Dalvik since 2.2/Froyo.
      And since 5.0/Lolipop they don't use Dalvik anymore, but ART, which uses AOT (precompilation).

    46. 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
    47. Re:Really??? by MightyMartian · · Score: 1

      What the fuck does "seems to run faster" mean?

      This is the rousing defense of .NET that Microsoft's supporters resort to now?

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    48. Re:Really??? by Anonymous Coward · · Score: 0

      So if you are running gentoo there are absolutely no reason to use bytecode. Guess what, I don't use gentoo or another distribution that provides binaries optimized for my processor. I am mostly running CentOS which supports a heavy set of processor architectures. I practically have all Intel processors currently supported by CentOS in my network, and they all run pretty much the same binaries. Guess what, bytecode is on average faster. Yes there are some of my processors where native counterparts go faster than bytecode.
      People are often forgetting that even within one main "architecture" like AMD64 there are vast differences in how different native code executes on different processors. That's not helped by SSE, AVX and similar instructions which are only transparently supported using bytecode (or some other intermediate language). Some projects like FFMPEG supports multiple processors by conditionally loading different modules depending on what SSE/AVX extention you have, but that's only possible using a huge amount of assembly source-code.
      Also "tricks" like the one FFMPEG use are only possible to do for existing hardware, it usually doesn't work well when you introduce new hardware with old binaries.

      And yeah you need byte-code to have garbage collection, with the full futures that Java garbage collection has. First of all you need bytecode to take advantage to zero cost hardware-assisted garbage collection, available in for example SPARC M7. There are no other language that support that. While it is possible to add support for all features in other languages, your argument is invalid as those features aren't available.

      Further your statements get all the more invalid when talking about the early Android phones. We must assume that they where the reasons for chosing Dalvik, not the capabilities of Snapdragon and other far more recent platforms.

      Bytecode is faster and use less memory. Well it is faster BECAUSE it use less memory. On memory-constrained devices a smaller code size will speed up the code a lot more than a VM will slow it down. If going straight to metal means more data starvation, that's the last thing you want to do.

    49. Re:Really??? by phantomfive · · Score: 1

      Bytecode is faster and use less memory.

      That's definitely not true lol. I don't even know where you got that braindead tripe.

      --
      "First they came for the slanderers and i said nothing."
    50. Re:Really??? by Anonymous Coward · · Score: 0

      No, your answer is ridiculous. How on earth would .NET be faster on hardware it can't even run on? Are there a non-JIT:ing mono implementation that would work on memory constrained early Android devices that I don't know about.

      And no there are no torch passed to .NET from Java when it comes to performance. Google didn't write Dalvik, it was a pre-existing JVM and nothing similar has ever existed for .NET. They chose the best available technology. Also CIL binaries are way larger than Java Bytecode which have a negative impact on the memory footprint and therefore performance on a memory-constrained device.

      It is true that on some specific processors .NET has occasionally outperformed Java. But that requires not only a vendor but model lockin for an application that use it, which is a constraint that makes those results invalid for almost any use case.

      Code optimized for C# and 1 to 1 ported to Java often runs faster in C#. Shocker. Different platforms often require different implementations for true comparisons. Retrieving 2000 instances of what? I have done hundreds of tests between different web-servers and Java is always faster. Of course any real world application, where you would need a high level language, uses databases which will be the main bottleneck. If you are serving static content Varnish is still the best choice so a win for C there.

    51. Re:Really??? by KGIII · · 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 the good in the world, and for all the evil. About the only consensus that I've noticed (which I'm inclined to agree with) is that Java applets (again, not to be confused with JavaScript) were an abomination and the few that are still in use are just because the management (not the programmers) are idiots.

      That said, trying to figure out which languages to start back up with by listening to you guys is rather futile. Combined, you hate and love just about every language out there - and some of you love to hate some and others hate to love some. You're not exactly helpful with this one. As I already know a bit of C, PHP, Perl, and can figure out some JavaScript - I've decided on Python and C++. I'm quite positive that some folks will happily think I've chosen poorly and others will think it wise. In my defense, at least it's not Java.

      --
      "So long and thanks for all the fish."
    52. Re:Really??? by KGIII · · Score: 1

      Hmm... I wonder if we can bootstrap something and make a Perl OS. Completely uncommented, of course.

      --
      "So long and thanks for all the fish."
    53. Re:Really??? by Anonymous Coward · · Score: 0

      VBA perhaps?!

    54. Re:Really??? by Shompol · · Score: 1

      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.

    55. Re:Really??? by TsuruchiBrian · · Score: 2

      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.

    56. Re:Really??? by Darinbob · · Score: 3, 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.

    57. Re:Really??? by Anonymous Coward · · Score: 0

      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.

      You are a funny guy in an idiot kind of way. You anchor your argument with an extremely questionable benchmark from http://insights.dice.com/2013/01/17/java-vs-c-which-performs-better-in-the-real-world-2/

      The author of that article didn't publish the source code, but after another round of tests he concludes with:

      Having worked as a professional C# programmer for many years, I’ve been told anecdotally that .NET is one of the fastest runtimes around. Clearly these tests show otherwise....Java is the clear winner here.

      And he calls himself a professional C# programmer, not Java!

    58. 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).

    59. Re:Really??? by shawn2772 · · Score: 1

      Most Java "fans" I know are considerably less "rabid" than devotees of more trendy languages (I'm looking at you, Ruby). Just my experience.

      Absolutely. "Rabid Java fan" reads about the same to me as "Rabid COBOL fan". I mean, it's not impossible, but why?

    60. Re: Really??? by KGIII · · Score: 1

      Thanks! I'll take that to heart. I am, technically, a programmer. However, I did so (usually in C though I did some BASIC and QBASIC and Perl, PHP, JavaScript) out of necessity. I'm actually mostly a maths geek who was into modeling traffic years and years ago but I've long since sold my company and retired. So, I learned to program because I had to but eventually hired competent people who actually knew what they were doing. Eventually, we had a project where we converted the code base to C++ and I am, for the most part, unfamiliar with the language.

      I've not really coded much of anything since - I've been pretty lazy. Sure, some PHP and maybe a bit of Perl and hacking someone's JavaScript to do what I wanted. Nothing major, nothing of any importance. Technically, there's still some of my Perl out there, running very insecurely and being horribly abused to this very day. (Not of my own but a "safelist" script that I authored for a friend who was into selling things to the MLM folk and not really into MLM himself.)

      My goal is... Well... I don't have an actual project that needs doing. I don't have a damned thing that I want to program - maybe a few to tweak a little but nothing to write so much. I figure I'll learn some code and toss in some patches after I get more fluent in the languages. I'm not a zealot but I do prefer to just give anything that I write away. I don't need money but I don't want my brain to turn to mush. I was 50 when I retired, I'm 58 now, and I can honestly say that I seriously can sense my brain being less active/functional. I do not like that feeling which is why I'll be working on Python first, over the winter, and C++ second.

      I may actually throw some Java into the mix. From what I've seen, it's really mostly people who don't seem to use it well that don't like it. I don't know as I'm qualified to say that, however. It's just an observation and having read *a lot* of comments and various blog posts, etc... There seems to be quite an ecosystem for Java and, from the outside looking in, it's a bit daunting as it's seemingly easy to go down the wrong road and have to backtrack. I don't want to get locked into a framework only to find out that I'd have been more able to understand the actual functionality by using a different framework or even having taken the time to author it myself.

      I'm not so very articulate so, well, hopefully that makes sense.

      --
      "So long and thanks for all the fish."
    61. Re:Really??? by KGIII · · Score: 1

      Hmm... You might be right. I was actually pondering it after I typed and sent it. It *might* be possible to not do it entirely in Perl, of course. Basically bootstrap something that's a decent interpreter (CGI perhaps - common gateway interface perhaps?) where, a more accurate statement would be, that the shell is in Perl so the userland is generated by Perl.

      Keep in mind, this is absolutely something that shouldn't ever be attempted - but I'd install it in a VM if someone tried it. Why? Well, it's not like I've anything more interesting to do than that. It'd be quite interesting, I should think. However, I should think a userland generated in Perl might be possible though there's going to need to be something under it - unless someone's figured out how to compile it. I can't say that I've ever seen compiled Perl but I should also add that I never really looked and am not a guru.

      --
      "So long and thanks for all the fish."
    62. Re:Really??? by Anonymous Coward · · Score: 0

      I know you're being a ridiculous troll, but based on what I just read up on Swift, Google would be far better just continuing to use JVM bytecode because people can use Scala. (Swift is basically a simplified version of Scala. Whether that is good thing or not is left as an exercise to the reader.)

    63. Re: Really??? by Z00L00K · · Score: 2

      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.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    64. Re: Really??? by Anonymous Coward · · Score: 0

      Variables declared with the var keyword in C# are still statically typed, but the compiler figures out what the type is.

      The IL generated between
      var i = 0;
      and
      int i =0;

      is identical.

      There is a dynamic keyword to allow for true dynamic typing, but its use is strongly discouraged except for some cases where it's useful (COM interop, interaction with dynamic languages like IronPython).

    65. Re:Really??? by TsuruchiBrian · · Score: 1

      You bring up an interesting point about the VM. Maybe you could make an actual computer whose instructions are in perl (i.e. hardware that processes the perl language instead of a traditional machine language). It would probably be really complicated needing a hardware high level language parser etc.

    66. Re: Really??? by Anonymous Coward · · Score: 1

      LLVM IR is data layout dependent, so It isn't portable except for trivial cases.

    67. Re:Really??? by NormalVisual · · Score: 2

      C# has many problems and is a clumsy hybrid, and also never really caught on outside of the OSX/iOS/NeXT worlds.

      I think you meant to say Objective-C there.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    68. Re:Really??? by Darinbob · · Score: 2

      You are quite right. C# is even less portable. ("no it isn't!" say fans)

    69. Re: Really??? by Anonymous Coward · · Score: 0

      I think you misunderstand 'var' in C#. 'var' is not dynamically typed in C#: variables declared 'var' have a type inferred by the compiler, but are still statically typed. The advantage of var is that you can create types, statically compiled, without needing to declare them. This is useful when returning shaped data from Lambda/LINQ queries. If you do something with a var that is illegal, it will be caught at compile time.

      var x = "Hello"; // Compiler determines X is a string
      x = 10; // Compilation error: x is not an int.

      C# also supports 'dynamic' variables. They are typed at runtime so can result in runtime errors, but once the type has been determined the variable is set for its scope and they still need to follow the runtimes type rules.

    70. Re:Really??? by Anonymous Coward · · Score: 0

      Oracle suing somebody over something ridiculous, only slightly less predictable than the Sun rising. Pardon the pun, I'll show myself out.

    71. Re: Really??? by Anonymous Coward · · Score: 0

      A language can be verbose and have a clumsy syntax. Me, me, shouts Java.

    72. Re:Really??? by KGIII · · Score: 1

      Hmm... The interpreter on the hardware...

      This might sound crazy and I'm not fluent enough (nor articulate enough) but with the SoC type things going on today... It might be possible to do that on bare metal now that I think about it. It seems that one could, with work, load an interpreter onto the hardware itself?

      I'm probably missing something and, it should be noted, that this is probably insane. In theory, however, it seems to me that one could put a Perl interpreter on the chip itself today. I imagine emulating such in a VM would be easier but it might be possible to put something like that onto a chip and actually go straight to bare metal.

      Alas, I'm in Florida for the winter. They frown, very heavily, on marijuana so I don't have any here. That means I'm not nearly stoned enough to go start digging into documentation and doing research on how difficult it would be to get a VM up that interpreted Perl or, worse, trying to get it onto a chip directly and without anything under it. Oddly, I did have someone offer me some LSD the other day. :/ I doubt that'd help much.

      --
      "So long and thanks for all the fish."
    73. Re:Really??? by TsuruchiBrian · · Score: 1

      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 hardware (e.g. you can have a VM in a VM in a VM in a VM ..... on a real machine).

    74. Re:Really??? by Anonymous Coward · · Score: 0

      Using an intermediate representation was not pioneered by Apple, or even with Java. IBM has been doing it since the System/360. For a modern take on this idea, see the Mill Architecture. It provides a highly orthogonal instruction set which is then specialized to concrete implementations of the architecture. Unlike the JVM, the architecture itself is fundamentally SSA, and designed to be an ideal compiler target. The belt architecture is perfectly suited to this, without the drawbacks or impedance mismatch inherent in stack and register architectures.

    75. Re:Really??? by Anonymous Coward · · Score: 0

      It's always been Python devotees I'd most likely describe as rabid.

      (I'm a Ruby user, but it's not my 'main' language. Learnt it back before someone told me of Rails.)

    76. Re:Really??? by Anonymous Coward · · Score: 0

      All function calls are slow on conventional architectures, and especially slow on register starved architectures, or with the mismatch caused by a stack-based VM. For contrast, see the Mill Architecture, which enables true single cycle function calls, without all of the shuffling of registers or memory-based stack nonsense.

    77. Re: Really??? by Anonymous Coward · · Score: 0

      Since you asked, I will point out a single disadvantage: Java is an obscenely verbose and rigid language, which even makes english appear concise. Any language which requires mountains of boilerplate or other syntactic garbage, is a failure no matter its popularity. We do need alternatives, and I'm disappointed that Google hasn't put more resources into making golang (or anything else for that matter) a true alternative on Android.

    78. Re:Really??? by delt0r · · Score: 1

      You mean like C and C++?

      --
      If information wants to be free, why does my internet connection cost so much?
    79. Re:Really??? by delt0r · · Score: 1

      Also a lot of really really badly written code. Like trying to load 1000 rows of a DB each click of a mouse. If someone uses something writen in C/C++ and its slow (there a lot of examples) no one blames the language. But if its java? Apparently java programmers are perfect. All of them, even the people learning to write their very first program.

      --
      If information wants to be free, why does my internet connection cost so much?
    80. Re: Really??? by delt0r · · Score: 1

      Unity is the way to go. Also if you can write java, picking up C# is fairly easy. Programming languages are tools. And unlike spoken languages, once you know one, learning others is far far easier. And a basic skill for any serious programmer.

      --
      If information wants to be free, why does my internet connection cost so much?
    81. Re:Really??? by Anonymous Coward · · Score: 0

      It's not even that, the problem is that TIOBE's methodology is so fundamentally flawed that it's no better than "We just randomly made a list of programming languages".

      I'm amazed a decade on that not that TIOBE still has Java up top, but that we're still seeing any kind of article posted referencing TIOBE.

      I firmly believe Java is an important language, and maybe it is top, but we don't know that from TIOBE's methodology because it's fundamentally just broken and meaningless, their methodology has absolutely no statistical validity whatsoever because it's rife with too many confounding factors to draw any meaningful conclusion, yet despite this they keep on posting their frankly nonsense list on a regular basis and it keeps getting parroted here by 'tards like Nerval's Lobster.

      The real problem is not what Java is or isn't, it's that anyone puts any merit into what TIOBE has to say.

    82. Re:Really??? by Anonymous Coward · · Score: 0

      A well written Swing app can be pretty smooth and fast if you implement your GUI according to best practices - partial redraws, efficient algorithms and custom (rather than prebuilt) models where needed. If you throw a bunch of outsourced monkeys at it of course you'll get horrible performance.

    83. Re:Really??? by thegarbz · · Score: 1

      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.

    84. Re:Really??? by serviscope_minor · · Score: 1

      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 deprecated stuff.

      The language, I just find deeply mehhhhhh. Like I said it's not bad, but everything feels a little bit clunky and a little bit inelegant and so on. I sort of feel that though it's a jack of all trades, there's no one domain where it fits really really well. Of course it's well supported, got decent tooling and, is one of the fastest (probably the fastest) non native languages. It never does anything brilliantly well, but it does more or less everything well enough.

      It's hard to go far wrong choosing Java.

      I'm not sure I could ever experience some aspects of the sheer joy of programming with Java though, compared to languages which let you really craft something with great elegance. Fun as that is, it's often/usually completely unnecessary for getting a bigger thing built.

      On the minus side, the Java community got thoroughly infected by OO madness. This is not the fault of Java. The world went OO mad, and bad programmers jumped all over C++ making massive insane and awfully bad class heirachies. Those were the dark times. Then Java came along and since it's more forgiving, they all jumped ship to Java and infected the Java community with their brand of insanity. That was the beginning of the end of the dark times for C++ and allowed it to proceed to the modern era (Stroustrup style---which is basically summarised as not doing stupid shit).

      You can't blame Java for those programmers: they were there anywhere. But a lot of the bigger systems especially the older ones are kind of nuts. Thankfully for C++, most of those have died now reside on the eternal servers of a datacentre in Dis.

      But that's Java the language.

      There's also Java the VM. I remember reading about Java in the beginning and the entire point was the VM, not the language. The language was supposed to be a decent but conservative language to go on top of the VM---one of many. The entire point was the VM and it is a good VM, one of the best. Oddly enough despite that being the point of Java, the alternate languages only seemed to pop up after .NET sprung up. It's like people needed telling twice or something.

      The VM is kinda cool and you can do really cool stuff with it.

      The Java VM now supports a bunch of different languages and they can all smoothly interoperate. You don't need to know what language a module is written in in order to use it from your language of choice. That's pretty nice, way nicer than fucking around with C level native bindings.

      --
      SJW n. One who posts facts.
    85. Re:Really??? by Anonymous Coward · · Score: 0

      Ignore flamewars, most of what is said in them is half truth at best. One side of it is tech hipsterism (your language is not cool), the other half is inertia (it has something new in it, bleeeh) and neither is rational.

      What makes and brakes your project is whether language/technology you have chosen has good libraries you can use or whether you will have to write everything on your own. The other thing that makes or breaks it for someone new to programming is whether it is easy to find good newbie oriented tutorials. It is much easier to learn from newbie oriented tutorials and it is much more effective to learn if good libraries exist. (And Java is actually good at these things).

      I would advise you to choose first what it is that you want to do (web? mobile? databases? algorithms? robots? lego? games if yes what games exactly?) and then pick up same language as people who do that thing. Then learn that thing well (not super expert well, but "I am confident I am able to do anything in it" well). Go into details and design. Or write one meaningful big enough project in it. Once you learned one thing well, including libraries, frameworks etc., it is easy to learn different thing well too.

      On the other hand, having written hello world in seventeen different languages adds only little value.

    86. Re:Really??? by serviscope_minor · · Score: 1

      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 there are no features of C++ which make it unsuitable. Trivially, since the subset of C and C++ is almost all of C, you can write identical programs in both languages. You can then replace hard to maintain features in the C code with zero cost abstractions in C++.

      --
      SJW n. One who posts facts.
    87. Re: Really??? by Anonymous Coward · · Score: 0

      While GP is a twat for not getting his facts right, don't you think the terminology is confusing?

    88. Re: Really??? by Anonymous Coward · · Score: 0

      "I figure I'll learn some code and toss in some patches after I get more fluent in the languages. I'm not a zealot but I do prefer to just give anything that I write away. I don't need money but I don't want my brain to turn to mush. I was 50 when I retired, I'm 58 now, and I can honestly say that I seriously can sense my brain being less active/functional."

      In that case, a lot of open source work is being done in JavaScript now. If you browse github for javascript projects, you will find many projects that do useful things and would be thankful for volunteer to fix bugs or implement small features. Fixing bugs and implementing small features for existing small project is great way to learn. It will force you to learn other technologies too (such as databases, graphics libraries etc.)

      One more recommendation: check outstanding pull requests before contributing, a project that ignored pull requests for last two years will ignore your work too.

    89. Re:Really??? by serviscope_minor · · Score: 1

      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.

      --
      SJW n. One who posts facts.
    90. Re:Really??? by serviscope_minor · · Score: 2

      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 calling function. It's of course possible to make them escape but the language declares that "thou shalt not do that under pain of undefined behaviour" and the compiler is allowed to assume it never happens.

      An optimizer is essentially a theorem prover, and has to prove that certain annoying things don't happen in order to insert optimizations which require those annoying things don't happen.

      Every time you remove some guarantee, the language gets harder to optimize because things get harder to prove.

      So, IOW, languages very much can be "fast" or "slow", in that they are relatively easy or hard to optimize. Java is certainly a slower language than C++, but much faster than something like Python.

      --
      SJW n. One who posts facts.
    91. Re:Really??? by Big+Hairy+Ian · · Score: 1

      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/

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    92. Re: Really??? by Anonymous Coward · · Score: 0

      WTH var??? 'var' is NOT dynamically typed! It's type inferred but strongly typed. For dynamic you must use 'dynamic'.

      Unchecked exceptions has opinions for and against it... Personally it bugs me because I consider exceptions must be part of a method's contract.

      But really C# is one of the best languages around. You can criticize the NET framework if you want but the language is fine.

    93. Re: Really??? by Anonymous Coward · · Score: 0

      Ill point out at least one disadvantage of choosing Java: It *sucks* for embedded and real-time software. Either you end up with the garbage collector running at the worst times and making your system no longer real-time, or you have to overspec your hardware so you have enough memory and CPU time to be able to get away with a so-called "real-time" garbage collector.

    94. Re:Really??? by IamTheRealMike · · Score: 4, Insightful

      Maybe it's possible to write good java code but it seems to encourage being a sloth.

      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.

    95. Re:Really??? by Anonymous Coward · · Score: 0

      Languages are good or bad based on how easy it is create good quality source code (semantically clear, maintainable, concise, etc). It's the job of the compiler and/or runtime environment to try to get that source code in a form that actually executes efficiently on a particular machine.

      Whether a languages is good or bad should also be based on how easy it is to create a compiler and runtime environment that is able to run programs with a decent performance on the hardware that people use. A language might be called "slower" than another language if, given equal amounts of effort at developing an optimizing compiler, the language implementations are usually slower than the other language. That's why a C language implementation would almost always be faster than a Java implementation. Of course, ease of creating good quality source code is the most important quality of a language. But you can't ignore performance, because it matters in practice, and you can't shift 100% of the blame to compiler and runtime implementations.

    96. Re: Really??? by Anonymous Coward · · Score: 0

      If a language makes writing things that are algorithmically efficient or easily optimisable by the compiler it might not be unreasonable to call it a fast language. In the past Fortran was the first choice for numerical analysis compared to C++ as the optimised code and syntax was straightforward. The difference us narrower now, provided you don't fragment everything into tiny objects in C++ such that the memory is fragmented.

      However, the use of complex underlying code that is highly optmised via libraries will blur the distinction. E.g. in many 'slow' you can use some fairly simple matrix manipulation syntax and it will ultimately use BLAS underneath in a very efficient way.

    97. Re:Really??? by buddyglass · · Score: 1

      I actually like Java. But I wouldn't describe myself as "rabid" about it.

    98. Re:Really??? by buddyglass · · Score: 1

      I haven't had much experience with the Python community, but I find the culture around Ruby (and Rails) to be more than a little annoying. Stuff like Why's (Poignant) Guide to Ruby. The level of hipster, anti-establishment animus seems higher than among devs who prefer other languages.

    99. Re: Really??? by Anonymous Coward · · Score: 0

      No. You are wrong. I do not have a toolbox of languages. At most, a software engineer, knows one language well (Java, C, C#), one scripting language good (Perl, Groovy, Python) and a broad knowledge of other technologies (Unix, Windows, LDap, Excel, Bash, CSH, etc...)

    100. Re: Really??? by sproketboy · · Score: 1

      You forgot mutable structs, operator overloading, partial classes, indexers - and generally shitty tools.

    101. Re: Really??? by Anonymous Coward · · Score: 0

      I have to agree with the above poster. Languages are tools. If you're just starting out learn the basics. As your career progresses your toolset will change, evolve and become more advanced. I think that the number one thing to remember is never stop learning and number two is dont try to use a hammer with a screw (ie use the right tool for the job)

    102. Re:Really??? by sproketboy · · Score: 1

      A) Python IS a curly brace language (https://en.wikipedia.org/wiki/List_of_C-family_programming_languages)

      B) Java > C#

    103. Re:Really??? by Muad'Dave · · Score: 1

      Already been done years ago, and by lots of others, too.

      --
      Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
    104. Re:Really??? by oh_my_080980980 · · Score: 1

      C# is Java - so no it's not better and no it's going to replace it.

    105. Re: Really??? by Kielistic · · Score: 1

      Apparently the major shortcoming with C# is that you don't understand it. Which is a shortcoming with you- not with it.

      As already pointed out "var" is not a dynamic type; it is inferred at compile time. This is to avoid common OO annoyances like:

      LongDescriptiveOverlyWordyClassName thing = new LongDescriptiveOveryWordyClassName();

      It is designed to be closely tied to the MS Visual Studio ecosystem because Intellisense will tell you instantly what type it is if for some reason you are unsure. With good coding style you should always be sure what type it is based on context.

    106. Re:Really??? by Shortguy881 · · Score: 1

      I always have mod points... Where the hell are my mod points!

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    107. Re: Really??? by Z00L00K · · Score: 1

      It's still a shitty practice to use the 'var' declaration because it has a tendency to result in code that only the writer can understand and after a year not even the writer will remember what that variable really carries unless doing some horrible backtracking.

      C# is a lot harder to maintain than Java because it offers so many ways of doing things the crappy way.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    108. Re:Really??? by Shortguy881 · · Score: 1

      Or MongoDB fans. Those people are crazy.

      What TIOBE really needs to do is create a list languages with the most "rabid" fans. I'd read that.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    109. Re:Really??? by godefroi · · Score: 1

      Swift is catching up, though. Right on VB's tail, now.

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    110. Re:Really??? by KGIII · · Score: 1

      Ha! That's crazy talk! People insane enough to act on it. I think I'm going to have to look into this - thanks!

      Wait, no. Those are Java. Close enough though. They're interesting - I'll have to look around when I get some coffee and food into me. Thanks - they're still interesting.

      --
      "So long and thanks for all the fish."
    111. Re: Really??? by godefroi · · Score: 1

      It was good enough that the C++11 standard added it (except they used "auto" instead of "var").

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    112. Re:Really??? by KGIII · · Score: 1

      Yeah though I was thinking without the need for special hardware - something already on the market that might be re-purposed. A poster, below your comment, did show some Java done on the hardware level. I think, for the sake of this silliness, we'd be able to include the firmware as hardware. I gotta get food into me - coffee will be soon, but I might actually meander around the 'net for a few hours and see what I find. There's a lot of crazy people out there - someone might have done something like this already. Or at least something close enough - that'll keep me amused for a few hours.

      --
      "So long and thanks for all the fish."
    113. Re:Really??? by bluefoxlucid · · Score: 1

      C# has signed and unsigned int types and runs on CIL.

      Android's developer tools only ingest Java VM code and turn it into Dalvik. Funny they don't ingest CIL code, while all the C#, F#, and other .NET compilers produce CIL code. How was targeting Java equivalent to targeting 14 other languages with the same amount of work?

    114. Re: Really??? by Junta · · Score: 1

      I assume/hope that is a joke.... There is no way for 'all' of any language to be 'fast'.

      Eg.
      sleep 100
      echo hello world

      would be a slow way of doing hello world regardless of language.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    115. Re:Really??? by Junta · · Score: 1

      And for 99% of code out there, that nitty gritty won't even be noticed against the backdrop of suboptimal design decisions. Mortals are one or two orders of magnitude away from it being worth sweating that overhead.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    116. Re:Really??? by Jahta · · Score: 1

      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...

      Agreed. I think most of the people who bitch about Java haven't written a line of it in years (if ever). Java today is plenty fast enough for high volume web sites, high throughput transaction engines and more. It runs on pretty much every OS platform that matters. And it's not even particularly verbose these days.

      Can a poor programmer write sucky code in Java that performs badly? Sure. But the same is true of any language. I've seen a lot of guys in startups who were using Ruby, or some other language-de-jour, who couldn't code a scalable, stable web application if their lives depended on it.

    117. Re:Really??? by bluefoxlucid · · Score: 1

      "Seems to run faster" means people wrote benchmarks and the benchmarks said A is faster than B. Benchmarks aren't holy and shouldn't be used to make definitive statements about broad applications.

      OP came in talking about how Java *absolutely* *is* faster than C# and you shouldn't use C# if you want performance. This doesn't appear inherently true, as e.g. an HTTP server written entirely in C# can process requests at 10x the rate as the same logic written in Java and run on JVM; claiming the opposite doesn't appear inherently true, as simple Web applications run on Web server software (e.g. Tomcat) runs 2-3x faster as equivalent Java servlets than C# servlets. That could be Java being faster in that application, or the application server being better-written than its C# counterpart; either way, it seems Java is faster in that application.

      Those are fairly high-quality test (being complex, real-world workloads), but that doesn't make them fully-representative. It's only *more* comprehensive than timing a loop of memory allocations or matrix multiplications or whatnot. You need more than benchmarks to make a definitive statement; you need a theoretical analysis of architecture.

    118. Re:Really??? by Junta · · Score: 1

      I guess that's a fair point, though I would argue that most common developers are nowhere near getting their code to the point where they get good advantage out of those sorts of differences.

      It may have a higher ceiling for programmer to convey intent to optimizer, but most programmers aren't that proficient. The breed of programmer that could match the general required skill by systems in the 80s and earlier and before are a rare breed...

      --
      XML is like violence. If it doesn't solve the problem, use more.
    119. Re:Really??? by lgw · · Score: 1

      Python IS a curly brace language

      Blocks of Python code are not set off by curly braces, therefore, by the wisdom of the ages, it's a toy scripting language. (In the same way that Visual Basic is a toy scripting language, despite being identical to C# aside from the curly braces and some other syntactic quirks.)

      Java > C#

      Just no. I've programmed in both professionally for years. Java has needless boilerplate that C# has gotten rid of (my IDE writes about half the lines of my Java code - why doesn't the compiler do that?). Java simply got generics wrong: you can't have a List, and "type stripping" really sucks when it matters. Java was a day late and a dollar short with lambda and list comprehensions - C#, C++, and Python are all better at that, and all had it years earlier (well, a tie for parts of C++).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    120. Re:Really??? by lgw · · Score: 1

      grr, ancient slashcode. "You can't have a List<int>"

      --
      Socialism: a lie told by totalitarians and believed by fools.
    121. Re: Really??? by Anonymous Coward · · Score: 0

      You're confusing runtime performance with program performance. A rubtime may be way more efficient than another at soing a sleep 100. I.e. Sleep being a busy loop or uninterrutible.

    122. Re: Really??? by Anonymous Coward · · Score: 0

      You don't have to use var, I don't. I don't understand the 2nd part. You can try/catch any error (specific errors as well as generic ones) and throw your own OR add to the known exception then unwind the exceptions in error handling down the line.

      I do agree compile time errors is the goal (always is mine)... but pretty much every languages allows you to hang yourself. I know every language I've used has/does. ;) The object is to know the language well enough to NOT hang yourself. The things you mention are not required hangings therefore they are not "major".

      You should rant more about platform dependent (regardless what MONO does). Or rant about Garbage Collection.

    123. Re: Really??? by Kielistic · · Score: 1

      By "horrible backtracking" you mean "a mouse hover" or at worst looking at the return type of the call it is coming from. If that is "horrible" to you then you are probably not cut out for development. It cuts down on unnecessary verbosity- this is good. And to reiterate this feature is designed to work seamlessly with Microsoft's development tools. They don't care if your Java IDE doesn't support it (and neither do I).

      C# is a lot harder to maintain than Java

      An empty assertion and an incorrect reasoning. C# is probably harder to maintain to you because, as we've already established, you are not experienced with it.

      You are allowed to dislike C# "just because". You don't have to invent reasons to argue Java is better. Every flaw you can find in C# will almost definitely be present in Java as well. It will just take more columns to suck :p

    124. Re: Really??? by Anonymous Coward · · Score: 0

      Point, but since a replacement for java on Android is likely to be some crappy language made up by a 20 something google employee with an inflated ego you kind of have to wonder if the known problem is better.

    125. Re:Really??? by macs4all · · Score: 1

      I know you're being a ridiculous troll

      Says the Anonymous COWARD.

      No, actually, I was being quite serious. Swift is Open Source under the Apache License; so why not?

    126. Re:Really??? by michael.o.church · · Score: 1

      I was at Google at the same time and observed, first hand, the weird and reactionary treatment that Gosling got in the wake of his departure. I don't think that it was Gosling's fault. Googlers are arrogant and herdlike, and there's a hard-core cult of At Google, by which I mean that if you did something and are a domain expert in a field, but you didn't do it At Google, your opinions are considered worthless. This might apply to the kid who's used to being top programmer at shitty companies and who's used to slapping off-the-shelf resources (which often fail at scale) together. Unfortunately, the At Google thing is applied even to people who know what the hell they're doing, and even in things that are outside of Google's core competencies. Google is largely a C++ company (excluding the Android ecosystem, as noted) and the attitude is that "the real code" will eventually be written in C++, but they tolerate Java because they acquire a bunch of shit and forcing every absorbed company to rewrite its entire codebase in C++. Python is there for the managers who want to pretend they still code to write prototypes in, before they tell their teams to build the thing for real in C++. Go is this horrible little language that is beloved within Google because it's marginally better than C++.

    127. Re:Really??? by rhyous · · Score: 1

      Actually, it is started as replacement/rewrite of Java. So it started out better by fixing mistakes that were obvious in the java language. Microsoft took the opportunity caused by Sun's lawsuit to write a better language. C# ditched Java quite quickly and Java has been playing catch-up for years.

    128. Re: Really??? by Anonymous Coward · · Score: 0

      You make a whole litany of unsubstantiated claims. Without proof or at least link to a basis for those claims it's hard to take you seriously. Especially since my own experience is the complete opposite of what you write.

    129. Re: Really??? by rhyous · · Score: 1

      C# is not worse than Java. Your two points are not shortcomings, they are benefits.

      The dynamically typed var are not a problem, it is a solution. It isn't required to use. If you don't like it, don't use it. But dynamic variables are quite nice for two reasons:
      1. The code is much easier to read with var than with overly long variables. Look at these two equivalent lines. The second is obviously easier to read.

                      Dictionary> dictionary = new Dictionary>()
                      var dictionary = new Dictionary>()

      2. It allows for anonymous types, which is extremely useful in linq and makes creating a simply object easy without the hassle of having to create an maintain an object with two properties in source to be used once inside a single method.

      Also, having to declare what exceptions a method throws is obnoxious and useless. In the end, it is time consuming with little benefit and a lot of maintenance time. Not to mention figuring out what exception will might be thrown by a delegate passed in has not been solved yet.

      C# allows you to document exceptions with a standard comment. Comments are where this belongs, not in the code.
      https://msdn.microsoft.com/en-...

      But if you are an expert at Java, then C# only sucks because of one reason: It is not the language you are an expert at. ;-)

    130. Re:Really??? by TsuruchiBrian · · Score: 1

      There is definitely no hardware that can process the perl language without software. That would require very specialized hardware that would be a very stupid and expensive and useless to make.

      I believe there is hardware that runs the java byte code (but not the java language). But for me that's close enough to be considered running java on hardware. But this is all possible because the java compiler (the thing that turns java source to java byte code) exists. I don't think a perl compiler exists.

    131. Re: Really??? by Anonymous Coward · · Score: 0

      Ada still has a purpose and I doubt any current language (besides rust maybe or a functional language) that comes close to its tasking and typing system. It is also pretty fast too...

    132. Re:Really??? by Darinbob · · Score: 1

      And that's why they invented Embedded C++, to force C++ programmers to stop using certain features.

    133. Re:Really??? by JustSomeProgrammer · · Score: 1

      But mongoDB is webscale

    134. Re:Really??? by Anonymous Coward · · Score: 0

      C# is portable these days. You can compile an executable that can run on Linux without needing the .NET framework (or Mono).

      http://www.hanselman.com/blog/ExploringTheNewNETDotnetCommandLineInterfaceCLI.aspx

    135. Re: Really??? by Junta · · Score: 1

      yes, but the phrase was 'all of Java is extremely fast' [on certain runtimes]. The post didn't say the runtimes were fast, but all of Java being fast.

      Also a 'rubtime' being efficient is a bit TMI

      --
      XML is like violence. If it doesn't solve the problem, use more.
    136. Re:Really??? by serviscope_minor · · Score: 1

      Except that EC++ is (a) dead and (b) silly because it bans a number of very useful, zero overhead features such as namespaces. That's why the major compilers allow those features.

      --
      SJW n. One who posts facts.
    137. Re:Really??? by Junta · · Score: 1

      Yeah, it's just that Java was *the* de-facto language for the tech education to churn out. So the 'I don't know what I'm doing but I'm told to do code to get money' crowd is comprised largely of people who do Java and only Java because they were taught the one thing. So good Java developers are hard to see in the sea of crap. Meanwhile, good developers realize that knowing Java or any other language for that matter means you don't need to be picky about what language you use and are flexible to do other things, making less popular languages that don't receive as much 'formal' education looking rosy since it's mostly the playground of motivated and/or skilled individuals who don't get too phased by deviating from their specific teachings.

      In other words, a technology or process that gets supremely popular will inevitably be made to look bad by people 'forced' to do it, and they will do it badly as a rule.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    138. Re:Really??? by Darinbob · · Score: 1

      True, you can voluntarily avoid features rather than try to have a real standard. I'd much prefer a C++ lite style but too often your project gains a member who can't write a line of code without having a template for it or insisting that they must use Boost or ACE.

    139. Re: Really??? by david_thornley · · Score: 1

      "var" (or "auto", as C++ spells it) can be misused, but usually it's obvious what type the variable is at point of definition (or if it isn't, you probably don't need to know it anyway (if it winds up being a function of some sort, you can always call it without knowing the exact type)). If you're not at the point of definition, then you can't just see the type just the same (unless you've got something that will give you the type on a mouseover or something like that).

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    140. Re:Really??? by david_thornley · · Score: 1

      Complex C++ codebases are invariably riddled with various kinds of exploitable overflows or code paths that trigger segfaults that tear down the entire process.

      Modern C (C++11 and C++14) eliminate most of those errors. There will be no overflows if you use STL-type containers, and only a small fraction of the segfaults if you use smart pointers. You can get these benefits by using language constructs that are easy to check for at code review time. You can still make bugs, of course, and there's new classes of errors you can make (like using a surrounding variable by value in a lambda, and having that lambda outlive the block it was declared in), but overall it's a considerable improvement.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    141. Re:Really??? by david_thornley · · Score: 1

      By this time, I think that the important things for code speed are the optimizer, and that the programmer doesn't write inefficient algorithms. The STL algorithms and the like help there.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    142. Re: Really??? by david_thornley · · Score: 1

      We use MFC for our Visual C++ GUIs. It's not great, but it mostly does the job, and has the virtue of being consistent across our C++ applications.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    143. Re:Really??? by Shortguy881 · · Score: 1

      Never seen that. Beautiful, just beautiful.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    144. Re: Really??? by Anonymous Coward · · Score: 0

      What a strange comparison. .NET is forever locked into the niche windows shops. Which has mostly lost the server wars and is quickly losing in the cloud wars. Swift is apple specific where apple isn't trying for market share. They compete for the higher margin users.

    145. Re: Really??? by Anonymous Coward · · Score: 0

      "var" variables in C# are not dynamically typed. They are strongly typed, but the type is "inferred" by the compiler based on what is on the right-hand side of the assignment operator. That means instead of having to type "Dictionary foo = new Dictionary()" that you can shorten it to just "var foo = new Dictionary()". The resulting variable can still be type-checked by the compiler.

      Works well with the DRY (don't repeat yourself) principle.

    146. Re:Really??? by serviscope_minor · · Score: 1

      That's not the fault of C++. Bad people can write bad code in any language. If you don't have code reviews, then that is your fault.

      Besides, it's not like there's anything wrong with templates or boost. Both have their place and are fine when used appropriately.

      --
      SJW n. One who posts facts.
    147. Re:Really??? by angel'o'sphere · · Score: 1

      C# has signed and unsigned int types and runs on CIL. That is what I wrote ;D first I thought you mixed up CIL with CLI ... typical MS to have acronyms like that. In earlier times we just called it CLI byte code.

      How was targeting Java equivalent to targeting 14 other languages with the same amount of work?
      All the infrastructure in CLI/CLR at that time was far inferior to Javas libraries. On top of that for some brain dead reason CLR/C# uses the wrong capitalization, classes lower case, methods upper case, obviously the geeks at google frowned on that. Regarding the amount of languages running on a Java VM, I can probably count to 30 on top of my head:
      https://en.wikipedia.org/wiki/...
      and
      http://www.is-research.de/info...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    148. Re:Really??? by Anonymous Coward · · Score: 0

      The errors that takes time finding are logical, and not catchable by the compiler. With native applications they are often related to memory management and those bugs can take months to find. Like forgetting to allocate an extra byte for the string termination character (zero). However for me the most common bugs are differences in implementation. Qt on Windows can behave slightly different than Qt on Linux.

      Yeah and I almost forgot. SQL incompatibility errors when supporting multiple database back-ends. JPA/Hibernate is probably the most valuable piece of software that other platforms doesn't have.

    149. Re:Really??? by euroq · · Score: 1

      It has puzzled me why reputedly intelligent people at google would handicap their platform by such an obviously slow, inefficient language.

      Java is not slow. In fact, it tops the speed benchmarks, only behind the obvious winners like C, C++, and D which compile to bear bones CPU assembly.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    150. Re:Really??? by euroq · · Score: 1

      Languages are good or bad based on how easy it is create good quality source code (semantically clear, maintainable, concise, etc).

      Well said. This is why many intelligent people dislike C++.

      There can be countless almost religious arguments about the merits of a language. Most of it is anecdotal experience they've had with bad projects they've worked on. I've seen terrible Java and C++, and I've seen great ones as well.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    151. Re:Really??? by euroq · · Score: 1

      First of all, your comment doesn't make sense in the discussion about Android; the server implementation is not what Android does.

      Second of all, Java is a very fast language, right underneath C,C++,D family languages. For one example, see https://attractivechaos.github.... It is generally 2-4x faster than C#. You can google "language speed benchmarks" for many more examples if you want.

      One example:
      C 1.0
      D 1.1
      Java 1.7
      C# 3.8
      Python 4.4
      Ruby 71.1
      R 999.9

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    152. Re:Really??? by Anonymous Coward · · Score: 0

      This guy must be a PHP or JAVA SCRIPT fanboy.

    153. Re:Really??? by Anonymous Coward · · Score: 0

      Turns out that actually everyone does need native apps because non native ones just aren't fast enough for some stuff.

      So basically we are fucked when non native apps do become fast...

    154. Re:Really??? by Anonymous Coward · · Score: 0

      I call it the programmer revolution...

    155. Re:Really??? by TsuruchiBrian · · Score: 1

      As a language C++ is lacking. What it has going for it is a large existing codebase and very mature compilers and other tools.

  2. Strange by Anonymous Coward · · Score: 1, Insightful

    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++.

    1. Re:Strange by Anonymous Coward · · 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.

    2. Re:Strange by Anonymous Coward · · Score: 0

      LOL, nobody uses Scheme and anyone that does should be using Lua(JIT).

      Just face facts, as it has been since forever, everything is C/C++ and web languages (PHP, Perl, Python[blech], Ruby[puke]). There is no other language that even comes close to those.

    3. Re:Strange by Anonymous Coward · · Score: 0

      I'm sure you're joking, but I actually do prototype most things in Prolog. It's just great. Java for speed -- that's right.

    4. Re:Strange by Anonymous Coward · · Score: 0

      FALSE.

      Common Lisp and Ada are where you want to be.

      Scheme and C++ are toy languages.

    5. Re:Strange by Anonymous Coward · · Score: 0

      Nah, algol 60 is where it's at.

    6. Re:Strange by Anonymous Coward · · Score: 0

      You win this entire comment section, methinks.

    7. Re:Strange by naris · · Score: 1

      Scheme is a failed attempt by parenthesis to take over the world...

  3. most used not so lovely by rubycodez · · Score: 1

    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)

    1. Re:most used not so lovely by Anonymous Coward · · Score: 0

      Scripting languages don't count.
       
      And yes, I say that as someone who scripts ten times as much as he codes.

    2. Re: most used not so lovely by n0creativity · · Score: 0

      Scripting languages really don't count, but for what it's worth, as a Windows sys admin, poweshell is my best, ugly and totally uncool, friend.

    3. Re:most used not so lovely by bluefoxlucid · · Score: 1

      The guy who wrote Ruby should be executed for treason against humanity. That shit's worse than COBOL.

    4. Re:most used not so lovely by arth1 · · Score: 2

      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.

    5. 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.
    6. Re:most used not so lovely by rubycodez · · Score: 0

      how so, very terse language and has constructs cobol can't have. About the opposite of COBOL. I'd argue Java is the 21st century cobol, takes four or more times the number of lines of Java to get something done as Ruby.

    7. Re:most used not so lovely by rubycodez · · Score: 1

      no the java is for actual business code, we get too far into the dev end of devops for QA purposes. devops done wrongly.

    8. Re:most used not so lovely by Anonymous Coward · · Score: 0

      And as we all know from the glory days of 'one line of Perl to rule all', the number of lines needed is the ultimate measure of utility.

    9. Re:most used not so lovely by Quantum+gravity · · Score: 2

      Groovy is cool. Also note that Java8 comes with Nashorn (JavaScript) and Shell Scripting. And Nashorn allows you to call Java code.

    10. Re:most used not so lovely by Anonymous Coward · · Score: 0

      Older Java versions already came with an outdated Rhino fork and shell scripting for JavaScript, it just wasn't mandated so some people decided to remove it from the OpenJDK (at least on the Linux distros I used it was missing for iirc compatibility reasons). It has been available for years with the Sun/ORACLE JDK.

    11. Re: most used not so lovely by Anonymous Coward · · Score: 0

      But it runs 10x slower

    12. Re:most used not so lovely by rubycodez · · Score: 1

      Ruby lines of simple clear purpose are not to be compared to a mass of congealed whale guts of Perl

    13. Re: most used not so lovely by rubycodez · · Score: 1

      wrong, the ruby is done while the bloated Java VM is still spinning up

  4. Surprise! by Anonymous Coward · · Score: 0

    Top 5 in popularity are Java, C/C++/C# and Python. Gee, who could have possibly foreseen this???

  5. A bit disappointing by tandavanadesan · · Score: 1

    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.

    1. Re:A bit disappointing by Junta · · Score: 4, 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).

      --
      XML is like violence. If it doesn't solve the problem, use more.
    2. Re:A bit disappointing by Anonymous Coward · · Score: 0

      What are you looking for that isn't out there right now except for a language that writes its own code?
       
      Just because you're bored doesn't mean the tools you have to work with aren't good for what you need to do with them.

    3. Re:A bit disappointing by fatwilbur · · Score: 1

      But there are ALWAYS ways to improve products. You can't blame the fact that some development teams pick items that don't actually improve things. Even with your example, tires, I'm sure there are regular advancements in tire and rubber technology. Your tires might do the job, but newer tires will do it for longer, be more puncture resistant, and quieter on the highway as well.

      I always think for software, if there aren't any obvious/good UI or feature additions, then focus on performance/stability. You can ALWAYS get better at those, and thus every piece of software has the ability to regularly release "something new".

    4. Re: A bit disappointing by Anonymous Coward · · Score: 0

      You talk as if the "Java Language" has issues where it must be improved at a faster pace than every 3-4 years.

      Java, the language, is stable.

      The implementations (Oracle JVM, IBM JVM, OpenJDK, etc, etc) do consistently release updates of their implementations all the time. Just as GNU/Intel/etc release updated versions of their compilers for C frequently, even though C (the language) hasn't changed in years.

  6. 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 Anonymous Coward · · Score: 0

      Common Lisp, C, and Ruby. Java is ghetto

    2. Re:Old? by Locke2005 · · Score: 0

      Sure, Perl writes terse programs... but to me, valid Perl code is indistinguishable from line noise! Unfortunately, I haven't done any Java code in over 10 years (I once taught a Java class). Apparently I should be brushing up on it. By the way, I believe Java is not a mandatory requirement for Android apps, it just helps in making them portable.

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    3. Re:Old? by Anonymous Coward · · Score: 0

      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.

      I generally like C, I'm kind of ambivalent about PHP, I don't like Java, Python annoys the hell out of me but coding Perl is a punishment in hell.

    4. Re:Old? by avandesande · · Score: 1

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

      The concept of hell isn't new either....

      --
      love is just extroverted narcissism
    5. Re:Old? by Anonymous Coward · · Score: 0

      Actually Common Lisp and Functional languages are the true "ghetto" by the non-pejorative sense of the word. Java and the imperative world is the non-ghetto.

    6. Re:Old? by bluefoxlucid · · Score: 0

      Perl is great. Unless you're a paranoid scizophrenic with tin foil wrapped around your balls so the Government doesn't brainwash your babies, it's about 80% likely you haven't ferreted out all the nasty security holes in your perl. That's why, after exploiting Bugzilla, people went on to bypass dbi::quote() by passing a list instead of a string.

    7. Re:Old? by fahrbot-bot · · Score: 4, 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.

      --
      It must have been something you assimilated. . . .
    8. 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.
    9. Re:Old? by fahrbot-bot · · Score: 1

      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 ... ]

      --
      It must have been something you assimilated. . . .
    10. Re:Old? by Anne+Thwacks · · Score: 1
      CS is a relatively young discipline

      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

      --
      Sent from my ASR33 using ASCII
    11. Re: Old? by Anonymous Coward · · Score: 0

      they don't even consider stackoverflow in their index. reason source not parseable.

      goes a long way to tell about objectivity of TIOBE...

    12. Re:Old? by gameboyhippo · · Score: 0

      Totally agree. Nothing is as expressive as Perl. Normal people need full words to understand what's going on. But us perl folks can have conversations like this:

      @#!$ %^% $%;
      2#$ %@#$;
      #$^^&%#EUia !@#$!@#;
      1!@ #!@ #$@ #$%!#;

      For those of you that don't speak Perl, that was "War and Peace".

    13. Re:Old? by Dutch+Gun · · Score: 2

      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.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    14. Re:Old? by Anonymous Coward · · Score: 0

      Perl is the pig latin of computer "languages."

    15. Re:Old? by Luthair · · Score: 1

      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

    16. Re:Old? by Anonymous Coward · · Score: 0

      Sure, Perl writes terse programs...

      It does? Crap. I've been doing it all wrong. I've been writing the programs all this time. I didn't know Perl do it for me.

    17. Re:Old? by ItsJustAPseudonym · · Score: 1

      Funny side-note: I read that as "Perl - First appeared 198729 years ago"

    18. Re:Old? by Anonymous Coward · · Score: 0

      You know, you don't have to write Perl as line noise. You can always write in a clean style.

    19. Re:Old? by Bill_the_Engineer · · Score: 1

      Python - First appeared 1991; 25 years ago

      That's Python 1.0 which is crude when compared to Python 2.0 which was released in Oct 2000.

      If you are going to cite Python 1.0 which was limited and ran only on the Amoeba OS then you might as well compare it to Oak (Java's predecessor) which existed in 1991.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    20. Re:Old? by Anonymous Coward · · Score: 0

      Computer science is also a lot older than you might think. 'Working with computers' kind of computer science is of course a young discipline. But even in ancient times philosophers where trying to crack the code of the universe with theories that are used today in computer science. The ancient empires all needed to have some basic form of computer science to manage their kingdoms / empires, even if the 'computer' was just a stick and some mud or an abacus. Even the medieval Christian scholars can be viewed as early computer scientist with their attempts to find any logic in the bible.

    21. Re:Old? by oh_my_080980980 · · Score: 1

      By that logic Quantum Mechanics isn't that impressive. In case you aren't aware - programming languages evolve over time.

    22. Re:Old? by fahrbot-bot · · Score: 1

      As I stated, I just pulled what was listed on their Wikipedia pages as their "first appeared date".

      --
      It must have been something you assimilated. . . .
    23. Re:Old? by Anonymous Coward · · Score: 0

      In Python, you need explicit indentation which makes for generally nicer code. Also the concept of pythonic and the general Python culture leads to better code. The culture of Perl is to hack out something quick (like for php). So culture is also important.

    24. Re:Old? by david_thornley · · Score: 1

      There were some pretty impressive things done in the 50s and 60s. It's much, much easier to do them now, of course, so we find yet more complicated things we want to write programs for.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    25. Re:Old? by Anonymous Coward · · Score: 0

      C was designed at a time when the popular languages was significantly worse at both.

    26. Re:Old? by Dutch+Gun · · Score: 1

      I didn't word that very well. By "isn't all that impressive", I meant that it wasn't all that long ago relative to the history of many other disciplines (we were discussing the relative maturity of various professional fields). I didn't mean that what they accomplished in the 50's or 60's wasn't impressive in general. On the contrary, I remain in awe of what they managed to do given the technical restrictions of the day.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  7. Just one opinion by Anonymous Coward · · Score: 1

    Stackoverflow has a slightly different idea of the most popular languages:

    javascript× 1021166
    java× 990387
    c#× 893176
    php× 855632

    1. Re:Just one opinion by Shortguy881 · · Score: 1

      Except Javascript isn't a real language. I thought everyone knew that.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
  8. Larry Ellison's acceptance speech for the award by ClickOnThis · · Score: 4, Funny

    "I'd like to thank ... myself. I deserve it."

    --
    If it weren't for deadlines, nothing would be late.
  9. 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.

    1. Re: Lack of choice is the main reason by Anonymous Coward · · Score: 2

      I don't think you know what niche means.

    2. Re:Lack of choice is the main reason by Anonymous Coward · · Score: 1

      FALSE.

      I'm sure your instructor in CS101 "Foundations of Computing" told you that, but the fact is that there is no application domain in which C++ is better suited.

    3. Re: Lack of choice is the main reason by Tablizer · · Score: 1

      "Usage profile groupings"? I'm at a loss for a better word. "Niche" does seem a bit too specific. Suggestions welcomed.

      The "enterprise" app development market and mobile app development market are 2 very different usage/platform profile grouping thingies.

    4. Re: Lack of choice is the main reason by phantomfive · · Score: 1

      Use cases? Use case clusters?

      --
      "First they came for the slanderers and i said nothing."
    5. Re: Lack of choice is the main reason by Anonymous Coward · · Score: 0

      1,$s/niche/domain/g

    6. Re: Lack of choice is the main reason by Tablizer · · Score: 1

      I disagree. Domain is typically like "accounting", "civil engineering", "marketing", etc.

    7. Re:Lack of choice is the main reason by Shompol · · Score: 1

      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.

    8. Re:Lack of choice is the main reason by Tablizer · · Score: 1

      Perhaps I should have said "dynamic" languages, as compared to "static" languages.

      As far as advantages or disadvantages, in my opinion "static" languages are better for lower-level infrastructure, such as building OS's, database engines, etc.; while dynamic languages are better suited for applications.

    9. Re:Lack of choice is the main reason by delt0r · · Score: 1

      IF you going hardware, i can see how C++ is better than C. Since C is syntax sugar for asm and well when your talking to hardware, that is what you want. Outside that you shouldn't be getting to concerned with hardware specifics. It is 2015 for gods sake. 1960s called and what there write once run once on one machine code back please.

      --
      If information wants to be free, why does my internet connection cost so much?
    10. Re:Lack of choice is the main reason by serviscope_minor · · Score: 1

      I'm sure your instructor in CS101 "Foundations of Computing" told you that, but the fact is that there is no application domain in which C++ is better suited

      I think you should demand your money back from your university if your instructors were bad enough to tell you that.

      --
      SJW n. One who posts facts.
    11. Re:Lack of choice is the main reason by serviscope_minor · · Score: 1

      C++ is better suited to hardware-centric applications and system drivers rather than CRUD, and business/enterprise.

      It's also better suited to high performance programs than almost anything else. All the high end machine learning and comptuer vision code is written in C++. That's also why languages touting their speed like to declare victory over C++.

      I think java has declared victory over C++ in speed just about every year since 1995. Of course it also declares victory over the previous version of Java. If the hyperbole is to be believed it should be about 1000x faster than C++, but of course it's more like: THIS year, we're faster than C++.

      A clue: it's not.

      Funnily enough, the only language that ever seems to pull ahead on things not wildly contrived (and then not always)---FORTRAN---never has anyone crowing about how it's faster than C++.

      --
      SJW n. One who posts facts.
    12. Re:Lack of choice is the main reason by Tablizer · · Score: 1

      For a good many "typical" business apps I work with, the performance bottleneck is usually the database and/or the network, not the application code, unless you are doing something odd or wrong. Thus, "speed" is not the main concern.

    13. Re:Lack of choice is the main reason by david_thornley · · Score: 1

      That tends to be the case. I work with applications where performance matters, and we use C++ for them.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    14. Re:Lack of choice is the main reason by Tablizer · · Score: 1

      That's generally what I meant by "hardware-centric applications" in an earlier message. Perhaps I should have worded it differently.

    15. Re:Lack of choice is the main reason by Anonymous Coward · · Score: 0

      2016 FTW...

    16. Re:Lack of choice is the main reason by david_thornley · · Score: 1

      I interpreted hardware-centric as meaning close to the silicon or even embedded, sorry if I misunderstood. I work on CAD applications and stuff that requires a lot of computing, and it's slow enough anyway.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    17. Re:Lack of choice is the main reason by Tablizer · · Score: 1

      CRUD and general business applications are generally a different animal than CAD and graphic-intensive stuff.

    18. Re:Lack of choice is the main reason by david_thornley · · Score: 1

      Yup. Most business software doesn't need to be blazing fast (although I worked at one place for a short time where the daily runs took in excess of sixteen hours, and that could have benefited from more speed). There's different software worlds out there, and I'm happy with the one I'm in.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    19. Re:Lack of choice is the main reason by Tablizer · · Score: 1

      The "daily runs" were probably slow due to mis-tuned or poorly designed databases, I would guess. Businesses processes can take a while to process, but it's usually through database-intensive "batch jobs" or "background jobs", and not client-side data crunching.

      In one project I programmed a server-side reporting process for a major city's telecom co that took about 5 hours to classify a million customer's spending patterns into marketing categories. But I later learned there was a database table I could have used instead to slice the processing to about 1/5 the time. As a contractor, I wasn't made aware of that table's existence and so had to use de-normalized info. I was "doing it wrong" because I didn't know enough about the org's databases and had no access. The manager who hired me wasn't IT and suggested I "use what's available the best you can".

      Certain "resource optimization" problems similar to "traveling salesmen" optimization could be CPU intensive. But that may be because database-friendly versions of optimization algorithms are not easy to build or find. Either way, it's usually not done on the client-side.

    20. Re:Lack of choice is the main reason by david_thornley · · Score: 1

      Yeah. I didn't find out the details, and the place was a bad fit for me (I believe in following basic rules of software engineering). It wouldn't surprise me if a good DBA had been able to reduce that significantly.

      My wife is a bit of a wizard in speeding up Oracle DB stuff, so I know it can often be done and done well.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  10. A sad state of affairs for sure. by Anonymous Coward · · Score: 0

    n/t

  11. Ubiquity and Longevity by zapadnik · · 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 !

    1. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Don't you mean write once, debug everywhere?

    2. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      never have to worry about multithreading? Why? Does the JIT automatically determine invariants and parallelize?

    3. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 1

      > WORA (Write Once Run Everywhere) is a killer feature

      This. We're the Seattle area, so most of our developers refuse to run anything except Windows on their personal systems. Except when our devs constantly hardcode "C:\" in code, it just works when running it on a real server. The same could be said about the few PHP projects we use. The PHP guys are more than ten times faster than the Java devs when building new projects or features, but they bog down in maintenance. Generally speaking, the PHP code, like the Java code, just works when deployed to a server.

    4. Re:Ubiquity and Longevity by fahrbot-bot · · Score: 1

      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. ]

      --
      It must have been something you assimilated. . . .
    5. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Wait? what?... hard code "c:\"... where do you find these kinds of people? I haven't seen that since the late 80s.

    6. Re: Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Come to Seattle. I see it at least once a month. The worst is when they argue that every system has a C drive.

    7. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Different AC here..

      I'm a Seattleite, moved here a few years ago. I've been coding PHP since the late 90s and can code circles around any of these C# or Java fanboys. They constantly give me shit about PHP but I rest my case. I estimate it takes me about 20% of the time it takes them. And my code is more stable.

    8. Re: Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Or just that backwards slash in general. Most of the developers that work for me refuse to use File.seperator and instead hardcore those backwards slashes. It's like they've never seen a URL.

    9. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      I prefer the "write once, compile everywhere" design philosophy of Object Pascal, which both Free Pascal and Delphi achieve. Free Pascal 3.0 also achieves Java's "write once, run everywhere" with its ability to compile to JVM bytecode.

    10. Re: Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Lol, kids these days. I'd like to think I wasn't as ignorant 20 years ago when I started programming professionally.

      BTW: 90% of the developers in my org run Linux, the other 10% are split with Mac and Windows.

    11. Re: Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Debugging Java us also so much more easy than C++. I can actually run and debug a 6 server system on my own computer. Not to even mention that when Java crashes it tells you why and where by default.

    12. Re:Ubiquity and Longevity by Arkan · · Score: 1

      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 convince myself to go back to C/C++ for long term development.

      I'm currently experimenting with React on Meteor though, and even if Javascript lack of typing is making me slightly uncomfortable (last time I developed on an untyped language, it was Basic...) I likes what I see up to now. Repeatable build and integration testing automation is a must to me, so I may be a tad biased.

    13. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      no silly, it is "Write Here Once Run Everywhere"

    14. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      I thought most people had realised by now that "Write once run everywhere" was both a marketing gimmick and a lie, most large C++ projects are actually more portable than most large Java projects.

    15. Re:Ubiquity and Longevity by Anonymous Coward · · Score: 0

      Now that he is writing it in Java users expect his application to be slow crap and unusable, so he no longer needs to worry about making it fast.

    16. Re: Ubiquity and Longevity by Blaskowicz · · Score: 1

      It would be fun to show them a Windows system installed on D:\. Good luck for running the software then.

  12. Sixes and Sevens and Nines by Anonymous Coward · · Score: 0

    That being said, even big languages can tumble. (Dice link)

    Indeed.

  13. How are they forming their metrics? by Anonymous Coward · · Score: 0

    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.

  14. Why for new projects though? by mrun4982 · · Score: 0

    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.

    1. Re:Why for new projects though? by Anonymous Coward · · Score: 0

      Android

    2. Re:Why for new projects though? by Yosho · · Score: 4, Interesting

      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)
    3. Re:Why for new projects though? by Anonymous Coward · · Score: 0

      The value of Java goes way beyond the ability to "run (and debug) everywhere". The number and variety of libraries and frameworks available to Java programs is tremendous. This is what makes Java so compelling today. Granted that other languages that target Java VM provide the same benefit, but that's still kind of Java.

    4. Re:Why for new projects though? by tsotha · · Score: 5, Insightful

      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.

    5. Re:Why for new projects though? by david_thornley · · Score: 1

      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
  15. Take away Android... by Anonymous Coward · · Score: 0

    ... and Java would drop like a rock.

  16. Perl? by Media+Archivist · · Score: 1

    Perl. Does that make me a bad person?

    1. Re:Perl? by Anonymous Coward · · Score: 0

      Perl. Does that make me a bad person?

      Yes. But that's a good thing.

  17. Language of H-1B by Anonymous Coward · · Score: 0

    In addition to Hindi, Java is the 2nd language of H-1B.

  18. Fortran95 by Ferocitus · · Score: 1

    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!
    1. Re:Fortran95 by Anonymous Coward · · Score: 0

      You learned to code using punch cards, didn't you? If you think Java is a "young" person's language.

    2. Re:Fortran95 by Ferocitus · · Score: 1

      Close: on a Tandy 4k machine. Uni used marked cards, but I refused to study compsci until they at least had screens and a keyboard.

      --
      USB, USB, USB!
    3. Re: Fortran95 by Anonymous Coward · · Score: 0

      Fortran is great for formulas and matrices, but doing a hash map is painful.

    4. Re: Fortran95 by Ferocitus · · Score: 1

      Exactly. I don't even need most of the "features" in Fortran.

      --
      USB, USB, USB!
    5. Re:Fortran95 by Anonymous Coward · · Score: 0

      s/large doses of clean, pharmaceutical amphetamines/lsd

    6. Re: Fortran95 by david_thornley · · Score: 1

      Fortran is the wrong choice for most people. It's the right choice for a lot of high-performance numeric computing. For any given language, there's probably a domain where it's the best choice (even COBOL - I just stay away from those domains nowadays), and domains when it isn't.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  19. Only on Slashdot by Anonymous Coward · · Score: 0

    "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.

    1. Re:Only on Slashdot by Bratch · · Score: 1

      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.
  20. favorite by Anonymous Coward · · Score: 0

    C++. No contest in my mind.

  21. Because it's the best by bigsexyjoe · · Score: 4, Insightful

    It won because it's the best programming language. You can go cry to your mama about that if you want.

    1. Re:Because it's the best by Anonymous Coward · · Score: 0

      It won because it's the best programming language. You can go cry to your mama about that if you want.

      Whenever I see something like this, I mentally translate it to "I'm only fluent in one programming language and will probably be replaced soon by a H1-B that is more talented than I am."

    2. Re: Because it's the best by Anonymous Coward · · Score: 1

      I started with basic and moved then to C++. I have experience from about 10 languages. From C++ and Java I have about 10 years from each. I still prefer Java much more. So much that I don't want to touch C++ any more.

    3. Re:Because it's the best by Anonymous Coward · · Score: 0

      Whenever I see something like this, I translate it to, "ZOMG! I'm so fucking easy to troll."

    4. Re: Because it's the best by Anonymous Coward · · Score: 1

      That's bullshit. Im not OP but Im fluent in quite a few language's. None of them can beat Java. And while many claimed that they have a better language, no one have been able to show how my code would benefit from switching.

    5. Re: Because it's the best by Anonymous Coward · · Score: 0

      If you really prefer Java to C++, you don't understand what C++ is for.

    6. Re: Because it's the best by Anonymous Coward · · Score: 0

      hey congrats! you know two languages really well, and one is the proverbial fix for the other. You're really qualified to pick the best language.

    7. Re:Because it's the best by LQ · · Score: 3, 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.

    8. Re: Because it's the best by delt0r · · Score: 1

      Neither do hard core C++ fans and developers. I never understood Linus comments about C++ devs back in the day. But another 5 years of contract work and now i do.

      --
      If information wants to be free, why does my internet connection cost so much?
    9. Re:Because it's the best by Anonymous Coward · · Score: 0

      No, it explicitly states on TIOBE's web page that it does not represent the best but rather the most popular language. That is an entirely different matter altogether.

    10. Re:Because it's the best by Anonymous Coward · · Score: 0

      This being modded insightful is a great example of the problems with Slashdot today. There is no content to it. It offers NOTHING of value and adds nothing to the conversation. It's about as far away from insightful as something can be and is more accurately mild trolling.

    11. Re:Because it's the best by bigsexyjoe · · Score: 1

      No. I wrote the best comment. Get over yourself.

  22. Logo places higher than Bash, Erlang by Ixpath · · 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.

    1. Re:Logo places higher than Bash, Erlang by Anonymous Coward · · Score: 1

      Bash has the disadvantage (in Tiobe's popularity rankings) of often being used without mentioning the word "bash". It's often described simply as "Linux", if it's described at all. But bash is probably somewhat unique in this regard - most other languages are known by their names.

      Note also that they have bash and "Bourne shell" listed separately. IMO, they probably should put bash, Bourne shell and ksh in a single "POSIX shell" category.

    2. Re:Logo places higher than Bash, Erlang by david_thornley · · Score: 1

      I quit doing anything of significant size in bash or ksh over fifteen years ago. I decided that, if it wasn't really short, I preferred Perl. I can read and change bash scripts, but I'd rather not write them.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  23. Go dropped out of the top 50!?! by MillerHighLife21 · · Score: 1

    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
    1. Re:Go dropped out of the top 50!?! by Anonymous Coward · · Score: 0

      "golang [x]" is the trick.

    2. Re:Go dropped out of the top 50!?! by david_thornley · · Score: 1

      I don't think it's the most search unfriendly name. Try C sometime, although at a quick glance about half the first-page results are about the programming language.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  24. Golang, golang, golang! by MartinG · · Score: 1

    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 .@adgimnoprstu
    1. Re:Golang, golang, golang! by Anonymous Coward · · Score: 0

      Golang is retarded and so are you. And yes, I've used it with zero bugs in production for 2 years.

    2. Re:Golang, golang, golang! by snadrus · · Score: 1

      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 frameworks to become manageable, this simplicity stays with advanced applications due to high modularity and integrated testing & tooling.

      --
      Science & open-source build trust from peer review. Learn systems you can trust.
  25. Slow and terrible end user experience by Anonymous Coward · · Score: 0

    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.

  26. Languages I've been using by Anonymous Coward · · Score: 0

    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.

  27. I'm a new convert to Java by GerryGilmore · · Score: 2

    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.

    1. Re:I'm a new convert to Java by OrangeTide · · Score: 1

      I'm a C programmer, and from here your sound like a "gotta have the very latest or you're just not cool" guy.

      --
      “Common sense is not so common.” — Voltaire
    2. Re:I'm a new convert to Java by GerryGilmore · · Score: 1

      I'm not sure why you'd say that: I started out fat-fingering binary into the front panel of a Data General Nova, went through and saw lots of evolutions and - yeah, working on my first app, thought "Sure, let's see what's out there that is the LAG." Looked at RoR, Laravel and a few others and was - quite frankly - disgusted by what I saw. Stumbled across this fucking nice, easy framework to develop "real" apps and - Oh! BTW! - it happens to be based on java. Like I give a shit. It works, and that's what I care about. But, yeah, convince yourself of whatever the hell it is you're trying to convince yourself of, but you've missed the mark here by a mile.

    3. Re:I'm a new convert to Java by OrangeTide · · Score: 1

      Hey, you're the one that said "real apps". Try redirecting your rage yourself instead of me.

      --
      “Common sense is not so common.” — Voltaire
    4. Re:I'm a new convert to Java by david_thornley · · Score: 1

      In C++, all the cool kids are using the latest features, like rvalue references and lambdas and smart pointers. If you use C-type strings and arrays, you're definitely Not Cool.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  28. Top programming language? by Opportunist · · Score: 0

    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.
    1. Re:Top programming language? by gnupun · · Score: 1

      Better than Perl or C++ at least, and more practical than Haskell or Scheme.

    2. Re:Top programming language? by Bratch · · Score: 1

      Constantly patching Java, Flash, and Acrobat, maker of the Penetratable Document Format.

      --
      Beware of the Redittor who loans you a Sharpie.
    3. Re:Top programming language? by Anonymous Coward · · Score: 0

      It'd be more accurate to say that the PDF format itself is an attack launch platform instead of something that can be penetrated. After all, PDF can only have page display commands and embedded JavaScript.

    4. Re:Top programming language? by Opportunist · · Score: 1

      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.
    5. Re:Top programming language? by Anonymous Coward · · Score: 0

      Care to show anything comparable to this blunder in C++

      The lack of bounds checking in C and C++ is one of the biggest problems in computer security. 75% of vulnerabilities in 2003 were buffer overflows. It's no use saying "programmers should program better" because that's clearly never going to happen. Buffer overflows keep happening even after C\C++ have been around and in wide use for decades. The best solution is to switch to a language which offers better buffer overflow protections, like Pascal (see range checks in Free Pascal and Delphi. Pascal also has overflow checks (both Free Pascal and Delphi).

    6. Re:Top programming language? by Anonymous Coward · · Score: 0

      Care to show a blunder that is the fault of the actual language, rather than a third-party library?

    7. Re:Top programming language? by Anonymous Coward · · Score: 0

      To make searching for a similar blunder in C++ or Perl easier:

      - The problem is in a widely used 3rd party library, not the programming language main library
      - The problem occurs only when deserializing data into objects using a specific method (or methods) from the library

      In particular, the problem is that after deserialization, a function is automatically called on the object. Broken by design, not really a bug.

    8. Re:Top programming language? by Anonymous Coward · · Score: 0

      That was only a problem because people actually use Java in web facing situations. For perl, look at man.cgi vulnerabilities. At the time, it was a big deal. For C++, just look at boost.

    9. Re:Top programming language? by Anonymous Coward · · Score: 0

      https://en.wikipedia.org/wiki/Heartbleed
      As you drag out a blunder in a third party library that are not as common as the name suggest. Also that was a logical in a client-server protocol, something we have seen plenty of in C++ applications. I honestly don't know much about Perl but I know it use OpenSSL so Heartbleed applies to it as well.

  29. a different take by Anonymous Coward · · Score: 1

    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.

  30. Too Early by Anonymous Coward · · Score: 0

    Java Named Top Programming Language of 2015

    Whoa! April 1st is still months away!

  31. Suspicious.... by Anonymous Coward · · Score: 0

    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"

    1. Re:Suspicious.... by Anonymous Coward · · Score: 0

      Sorry slashdot eats &gt and &lt, +"<language> programming"

  32. java.lang. by Anonymous Coward · · Score: 0

    NullPointerException

  33. Cue the certification mills by plopez · · Score: 1

    In 3... 2... 1...

    --
    putting the 'B' in LGBTQ+
  34. PowerBuilder... by Anonymous Coward · · Score: 0

    So it's not PowerBuilder then eh? Too bad, I kinda like it.

  35. Re: by Anonymous Coward · · Score: 0

    Perhaps the labor is cheaper and the software doesn't need anything better. So, it could just be tied to outsourcing increasing.

  36. The Circle of Life is complete! by amacbride · · Score: 1

    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!

  37. Not a big surprise by OrangeTide · · Score: 0, Flamebait

    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
    1. Re:Not a big surprise by Kagato · · Score: 1

      That sounds like .Net developers to be honest. I run circles around those guys everyday at work.

    2. Re:Not a big surprise by OrangeTide · · Score: 1

      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
    3. Re:Not a big surprise by Kagato · · Score: 1

      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.

    4. Re:Not a big surprise by OrangeTide · · Score: 1

      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
  38. I think this is notable by AlanObject · · Score: 1

    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.

    1. Re: I think this is notable by Anonymous Coward · · Score: 0

      Probably because the Java and JavaScript languages have absolutely nothing in common except the word "Java" in their names.

  39. Hold on to your chairs by Anonymous Coward · · Score: 0

    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++.

  40. Garbage Java Apps by Anonymous Coward · · Score: 0

    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.

    1. Re:Garbage Java Apps by Anonymous Coward · · Score: 0

      Of course mobile apps but, cert. not for websites or major business uses.

      Obviously you've never worked in a real enterprise environment. Java's quite popular there.

  41. Widely used, but vulnerable. by ndykman · · Score: 1

    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.

  42. Really enjoying go. by motorsabbath · · Score: 1

    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
  43. To answer the submitter's original question... by Crazy+Taco · · Score: 1

    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.
  44. Which Perl is number 11? by Crazy+Taco · · Score: 1

    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.
    1. Re:Which Perl is number 11? by matfud · · Score: 1

      Perl 6 is insignificant due to it only being released at the end of last year. Nobody is really using it yet. So perl 5,4,3,2,1 ;P

  45. Groovy by jasenj1 · · Score: 1

    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.

  46. Re: by Anonymous Coward · · Score: 0

    Perl was made to create new levels of Hell.

  47. Perl! by Anonymous Coward · · Score: 0

    I still have faith in you Perl!

    "There is a module for that!"

  48. C is the only language that should exist by Anonymous Coward · · Score: 0

    C rules

  49. LOL by Otis_INF · · Score: 1

    > 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.
  50. Hell is other developers. by Anonymous Coward · · Score: 0

    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.

  51. Java = Dead Language in 2009 by tgrigsby · · Score: 4, 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?

    --
    *** *** You're just jealous 'cause the voices talk to me... ***
    1. Re:Java = Dead Language in 2009 by Anonymous Coward · · Score: 0

      Java's a security issue riddled and didn't live up to its promises and is interpreted slow. Delphi showed 4th most growth overall http://www.tiobe.com/content/p... from 2015 to 2016.

    2. Re:Java = Dead Language in 2009 by oh_my_080980980 · · Score: 1

      I think you answered your own question: you're a Delphi shop. The lead programmer just wanted to justify his decision. It happens when people feel threatened or don't want to change.

    3. Re:Java = Dead Language in 2009 by david_thornley · · Score: 1

      Thing is, "we're a Delphi shop and everybody is proficient in Delphi and we're going to have Delphi software for a long time to come, so we're keeping it as a standard" is a perfectly good reason to stick with Delphi. Why would it be necessary to badmouth Java to justify that?

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  52. All top-10 languages are past their peak by Anonymous Coward · · Score: 0

    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?

  53. I am surprised C# is so far down by Anonymous Coward · · Score: 0

    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?

  54. Based on what criteria? by sbaker · · Score: 1

    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
    1. Re:Based on what criteria? by Anonymous Coward · · Score: 0

      I would be extremely surprised to find any working Java programmers who don't also use JavaScript.

      Me! I've been using Java for over a decade, and never use JavaScript. I use Java as a general purpose programming language to develop cross platform applications, none of which are web-based, almost exclusively working in Eclipse. These days, I also do a lot of work in Ruby, Perl (trying to move away from that), System Verilog, and use Groovy some.

      If I'm not in Eclipse, I use Ruby/Rake as my build tool, which is far superior to the XML-based stuff, or GNU Make.

      Java has the huge advantage over other languages of having a built-in cross-platform GUI library (Swing, plus the option of SWT) that is extremely well developed, and a lot nicer then the old C/X Windows programming I did for many years before switching to Java.

      I've done some exploration of the GUI development potential in other languages, but in every case either the GUI library or the language itself was a disappointment. To be fair, I still need to look at the Python and C# capabilities in that regard.

      I have to work on some older systems, so the fact that I can just install and run Java without having to compile from scratch with a gazillion different library dependencies is really nice. Having to screw around with that stuff is the curse of the Linux developer, especially when running on somewhat-dated Enterprise versions: I like the fact that I can install the latest versions of Java and Eclipse and it all just works!

      Other widget sets have proven to be a lot more of a pain to use: the developers don't seem to understand the importance of the simple installation issue, and put in all kinds of dependencies that end up creating a huge mess.

      Java also has a lot of modern development ideas, with some very useful static checking, and an ecosystem with good refactoring capabilities, and it is generally a pleasure to work with.

      There's all kinds of improvements that I would love to see in Java, but it's certainly far superior to something like Visual Basic, and it gets the job done.

  55. My last 12 months? Haskell. by michael.o.church · · Score: 1

    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.

  56. Java potentially faster than C++ by Anonymous Coward · · Score: 0

    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

  57. Java is so popular... by Anonymous Coward · · Score: 0

    "Let's eat shit - millions of flies can't be wrong."