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?

208 of 358 comments (clear)

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

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

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

    5. 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.
    6. 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.
    7. 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.
    8. 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.

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

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

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

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

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

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

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

      --
      "Old man yells at systemd"
    18. 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?
    19. 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."
    20. 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.
    21. 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.

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

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

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

    25. 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...
    26. 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?

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

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

    29. 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
    30. 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.
    31. 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."
    32. 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."
    33. 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."
    34. 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.

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

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

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

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

    39. 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."
    40. 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."
    41. 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.
    42. 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.

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

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

    44. 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
    45. Re:Really??? by Darinbob · · Score: 2

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

    46. 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."
    47. 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).

    48. 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?
    49. 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?
    50. 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?
    51. 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.

    52. 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.
    53. 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.
    54. 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.
    55. 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.
    56. 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.

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

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

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

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

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

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

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

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

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

    65. 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.
    66. 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.
    67. 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.
    68. 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)
    69. 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."
    70. 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)
    71. 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."
    72. 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?

    73. 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.
    74. 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.
    75. 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.

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

    77. 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.
    78. 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.
    79. 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.
    80. 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

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

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

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

    84. 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. ;-)

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

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

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

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

      But mongoDB is webscale

    88. 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.
    89. 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.
    90. 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.
    91. 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.

    92. 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
    93. 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
    94. 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
    95. 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
    96. 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.
    97. 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.
    98. 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.
    99. 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.
    100. 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.
    101. 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.
    102. 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 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 bluefoxlucid · · Score: 1

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

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

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

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

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

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

  5. 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 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
    2. 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. . . .
    3. 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.
    4. 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. . . .
    5. 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
    6. 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.
    7. 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

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

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

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

    11. 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. . . .
    12. 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
    13. 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.
  6. 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.
  7. 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.
  8. 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 Tablizer · · Score: 1

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

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

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

    8. 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?
    9. 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.
    10. 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.
    11. 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.

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

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

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

    18. 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
  9. 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: 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.

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

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

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

    Perl. Does that make me a bad person?

  11. 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 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!
    2. Re: Fortran95 by Ferocitus · · Score: 1

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

      --
      USB, USB, USB!
    3. 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
  12. 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)
  13. 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: 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.

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

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

    4. 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?
    5. Re:Because it's the best by bigsexyjoe · · Score: 1

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

  14. 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
  15. 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 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
  16. 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 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.
  17. 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.

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

  20. Re:Top programming language? by gnupun · · Score: 1

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

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

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

    --
    putting the 'B' in LGBTQ+
  22. 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!

  23. 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.
  24. 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.
  25. 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.

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

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

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

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

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

    2. 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
  35. 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
  36. 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.

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

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