19 ms·
If Java Is Dying, It Sure Looks Awfully Healthy
- zhubz 13y agoYeah, i don't think so too.
- dmk23 13y agoAny talk of Java "dying" is just nonsensical Java hands down is the most obvious choice for any applications that require performance, yet are too complicated to write and support in C/C++/other lower level languages. Java JIT is very mature unlike JITs for most other languages, which largely remain at the level of experimental projects and fall short on key production requirements. Given that the entire Hadoop ecosystem is based upon Java as well, it is here to stay for anything that has to deal with "Big Data"
- anologwintermut 13y agoIsn't the most obvious choice for things that require performance but are too complicated to write in C, C++? Isn't Java the choice for things that aren't performance critical but are too complicated to write in C? Java survives because thats actually most things.
- fleitz 13y agoYes, that's why kernels are written in java. If you're writing complex code java is rarely the answer as it requires so much complexity itself. Hint: Most java projects just appear to be complex because of the poor quality of the language (and developers). Java is hands down the choice for simple projects written by way too many poor quality developers. The JVM can barely manage 12 GB of memory, Java is a piece of crap when it comes to anything that's actually complex.
- bradhe 13y agoThis comment is laughable at best. Ignorant might be a better word for it.
- fleitz 13y agoCare to elaborate? Here's the 12 GB of memory... http://www.datastax.com/docs/1.0/operations/tuning http://www.datastax.com/docs/1.0/operations/tuning As far as the language is concerned... What problem of high performance & complexity apps does Java 7 solve that C++11 doesn't?
- jfoutz 13y agoIt solves the problem of using mediocre developers to get code into production. Clunky, slow and overly complicated is infinitely better than a segfault.
- sillysaurus2 13y agoAutomatic memory management...? "Just use Boost" is not a viable strategy when it adds so much complexity in and of itself. I'm not defending Java, but it's helpful to know what the limits of each tool are.
- eropple 13y agoAutomatic memory management (especially with a garbage collector) is antithetical to high performance. I like the JVM (for Scala, mostly; Java-the-language can go screw), but there is nothing there really remotely close to C++ and C, and the garbage collector is a very large part of why.. Rust might horn in on C++'s bailiwick, but until then, it's gonna be a while. I strongly disagree that Boost really adds "so much complexity"--and, by the way, shared_ptr and friends are in C++11, and by extension within the standard library. So you don't even need this, unless your goal is to target extremely old platforms. But honestly, if you seriously need shared_ptr, your code design is probably just Not Very Good.
- sillysaurus2 13y agoAutomatic memory management (especially with a garbage collector) is antithetical to high performance. The LMAX Disruptor pattern would like to have a word with you. http://lmax-exchange.github.io/disruptor/ http://lmax-exchange.github.io/disruptor/ http://martinfowler.com/articles/lmax.html http://martinfowler.com/articles/lmax.html http://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work http://stackoverflow.com/questions/6559308/how-does-lmaxs-di... I'm not just namechecking the Disruptor pattern. I have extensive experience with it. It's about 10% slower than what could be achieved with C -- which is to say, the benefits of not having to program in C far outweigh the 10% loss of performance. And its performance is almost always far higher than what's needed, i.e. the bottlenecks are elsewhere. I strongly disagree that Boost really adds "so much complexity" We'll have to agree to disagree, I think. Importing Boost is often a sign that something is awry with the design goals of the project. Either the choice of language is wrong, or the project is too ambitious. Though there are some aspects of Boost that are pretty good, such as its unit testing framework. if you seriously need shared_ptr, your code design is probably just Not Very Good. This I fully agree with.
- millerm 13y agoI would venture to say, with no facts or figures mind you, that if you were to evaluate the number of lines of code dedicated to kernel programming to that of applications running applications on the Internet, that the resultant figure would be so small for kernel code that it would look like kernel development doesn't even exist. Saying that developers who use Java are poor quality is also an awful thing to say. Yes, there are many "poor" Java developers. But, it's only because there are so many Java developers in the first place. So, of course when you take even a small percentage of such a large number there will still be a large enough sample to look significant. It's the same for all other languages. Java has been my primary language for the last 14 years. During that time I have worked with countless individuals who I would regard as some of the smartest and most competent programmers (who develop using Java) I have known or heard of. These people make your banks, file sharing sites, massive online market places, electronic billing etc. work. So, go ahead and bash all the developers from Google, Sun, SpringSource, Apache Contributors, Oracle and the other 10,000+ companies out there, but empirical evidence has shown that the language and platform work. Your statement is just so "trollish"... seriously? Edit: capitalized Internet. Letting the run-on sentences and bad grammar fly.
- fleitz 13y agoWhat about java makes it better for high performance / complexity code? I never said there isn't a lot of java code, or that it doesn't work, my assertion is that java is not the hands down choice for high complexity / performance work. If you've got a bunch of mediocre programmers who can't be trusted to make + add things together then sure java is a great choice.
- bdamm 13y agoIt's a natural fit for enterprise programming where time to implement is usually key and logic is endlessly extended to accommodate whatever new business requirements emerge after the last round was deployed. And robustness is valued more highly than raw performance. Use Java - pay for twice the servers and get ten times the uptime? Done. That means that days or weeks spent hunting your latest memory corruption issue makes C a non-option for these applications. As for mediocre programmers - sure, and a large bunch of mediocre programmers scales, whereas a small team of star programmers doesn't. Someone has to tweak the UI. Someone has to implement all that tedious persistence logic. You need star programmers for that? No. I'm excited to see if Go intrudes on this field, but it's a big field and Go's just starting out.
- EdwardDiego 13y ago> Java is a piece of crap when it comes to anything that's actually complex. Define complex?
- neeleshs 13y agoOh please, Workday uses a JVM managing 160GB. Lucene/Solr are not simple projects, by any yardstick, for example. I do agree Java the language is somewhat cumbersome, but saying that its a piece of crap for anything thats complex is naive
- deleted 13y ago[deleted]
- pron 13y agoYou seriously don't know what you're talking about. Virtually all serious software that uses complex concurrent data structures is written in Java nowadays, because the JDK is pretty much the only runtime that supports state-of-the-art, envelope-pushing, concurrency. Here's my previous discussion with haberman on the subject: https://news.ycombinator.com/item?id=6505853 https://news.ycombinator.com/item?id=6505853
- codygman 13y agohttp://learnyousomeerlang.com/ http://learnyousomeerlang.com/
- pron 13y agoErlang is awesome, but only offers high-level concurrency constructs (actually, just a couple), it does not support low level ones (CAS). You can't write, say, a good concurrent hash-map in Erlang. Or in Haskell, for that matter.
- codygman 13y agoUnless I'm mistaken, this library provides CAS for haskell: http://hackage.haskell.org/package/bits-atomic http://hackage.haskell.org/package/bits-atomic Though if you were only affirming that it isn't a language construct you are correct.
- Zigurd 13y agoI'd like to see any language withstand the combination of big project, lots of managers, mixed levels of experience and expertise on the team, and over-reliance on structure and methodology versus having the right people. It just happens that Java gets picked for those kinds of projects.
- dinkumthinkum 13y agoOh come on. To say it is the "obvious" choice is heavy editorializing. I agree it's not going anywhere. As others have pointed out there is a fine language called C++. In point of fact Java is not the obvious choice, that's bit much. There are some very good arguments of Java that may or may not be deal breakers but are still issues ... There must be a middle ground from the power of C that is not OOP gone awry. :)
- wheaties 13y agoLike Erlang's GC what all with the 5 9's of uptime it was designed to handle. I mean, come on, the GC algorithm it uses may be battle tested and far simpler than the GC beast that is the JVM but simple is bad, right?
- buckbova 13y agoWell what do they teach in schools? When I was attaining my degree during the end of the last century, Java (and XML) was being trumpeted as the saving grace for all soon to be software professionals. We were all in love OO programming and this scratched us right where C++ left an itch. Oh Java Beans and Servlets, how we loved thee. It’ll take decades before all the code created by those who came right before me and soon after is gone and we’re gone before Java is considered dying/dead. From what I see the new generation wasn’t forced to learn Java and doesn’t want to use Java.
- gph 13y agoI'm going for my undergraduate degree in CS. Java is the language used in the general programming courses, e.g. Intro to Programming (CS 101) and Advanced Programming (CS 210). I'm taking a C++ class but it was one out of a selection of courses I could take. The java classes are required for everyone going for a CS degree. I think Java is still the main teaching language at most colleges, at least in the beginning courses. I don't think that's going to change for awhile either.
- djb_hackernews 13y agoI don't think the industry is driven by academia. Plus, no CS degree program worth the paper it's printed on even claims to teach Java. If yours did, I'd ask for a refund. Typically schools USE Java to teach computer science topics, for instance my university used it in the Intro course, where we learned program flow control and some OO principles, and in our Data Structures course where it was nothing more than a tool to complete assignments. We used Scheme to explore other programming paradigms, ASM for our architecture courses, C for our OS course, etc. Other than that we could use any language we wanted for other courses. Basically if you come out of school claiming you "learned" Java, or any language, it probably means you are lying or went to a bad school.
- buckbova 13y agoAll of our (the CS degree program I attended) 100s/200s courses in the late 90's were taught using C. From what I remember they didn't "claim" to use any particular language and basically if they did I wouldn't have known what they were referring to anyway. Java came onto the scene with much fanfare. It was a big thing and all the professors were quick to foist it upon us. On a side note, it’s funny for me whenever anyone says they chose the JVM for speed. It’s still ingrained into me that this is not the case. I have to take a second and assure myself this is not 1998, Java is fast now.
- primelens 13y agoAside - I miss the paper Dr. Dobbs' Journal from the early nineties. Is there a modern equivalent?
- ternaryoperator 13y agoDr. Dobb's puts out a monthly PDF issue. It's smaller in terms of content than the paper issues of the 90s, but it's in that mold. Also, the website posts new feature articles every Tuesday, covering a fairly wide range of programming topics. Most articles have code.
- primelens 13y agoYes, I know about the PDF issues, and I also realize that there are so many great resources on the web that having a dedicated general purpose programming magazine doesn't make business sense anymore. It is quite possible that what I miss is really my childhood and the excitement of waiting for the magazine and learning about things (most of which I didn't fully understand) with wide-eyed wonder. But of all the computer magazines I have ever encountered I think it was Dr. Dobbs' that struck the best balance between CS academia and the hands-on world of programming. It straddled that world between abstraction and application perfectly in my opinion. It would be a wonderful role to resurrect in the age of big data and increasing statistical and algorithmic sophistication. Won't happen, though. So I'll just wallow in my moment of nostalgia :-)
- nemothekid 13y ago>A recurring prejudice in the forums where the cool kids hang out (Hacker News, Reddit, etc.) is against Java, the language. Maybe I've been reading a different Hacker News, but I haven't seen this sentiment at all one HN, especially with the love for everything JVM (Clojure, Scala) and all the Database/Big Data tools written in Java (Cassandra, Hadoop, HBase)
- dinkumthinkum 13y agoNo, now I'm not one to fall on either side here but there is certainly ... a lack of love for Java on HN. I mean its definitely there. If you hnsearch, you'll see. I agree, the JVM is a different issue.
- throwaway420 13y agoI disagree with you and think the statement that you quoted is entirely accurate. People can like the languages and tools built on top of the JVM and implemented in Java, without liking coding in Java the language itself.
- deleted 13y ago[deleted]
- jordanthoms 13y agoI just wish they'd fix the generics - Been writing some c# recently, and the lack of type erasure is a really nice advantage. The decision to do it that way because of backwards compatibility issues looks really shortsighted now - virtually nobody runs JVMs from before they introduced generics, but we still have this hack in place to maintain compatibility with them. Would have been better to break the compatibility and introduce a little temporary pain, but have a better result 10 years later.
- zmmmmm 13y agoThere's a lot wrong with Java, but even while having moved on and learned / used professionally many other languages I keep coming back to it and its ecosystem. There is still not another language / platform that provides the same level of a variety of things that are important to me: * platform independence * performance * low level features * simplicity and clarity (for reading, writing not so much) * infrastructure/tools (IDE, visualvm, etc) Admittedly, I lean more and more into JVM languages like Groovy and Scala these days. But even then I still drop into Java to write parts of the code that I want to be as fast as possible.
- jimmaswell 13y agoYou can get all of that and clearer writing in c#, with Intellisense.
- jorgecastillo 13y agoI hope I get no down votes from the following comment. This is not true, C# can be thought as superior to Java, only if you intend to be completely immersed in the Microsoft stack and this assertion is still debatable. I personally like Java more than C# just because Java is truly platform independent and fully open source. When you have two similar software products the one which is open source will always be a better choice. I think Java has a bright future.
- LukeShu 13y agoTo be fair, Mono exists, and contains a free implementation of C#.
- KevinEldon 13y agoI have done less than 10 hours of .NET programming in my life so I have no idea here... but my impression is that MONO substantially less accepted than a standard Java port... not trying to bash, just explaining my view. I'm moving a significant production Java app from a Linux box to Windows in the next 3 months. My expected work is about 2-days, and frankly my management wouldn't expect more, and I'd have a hard time justifying more (it's probably padded already... don't tell). The portability of Java apps is wonderful. I'd guess MONO could do the same thing, Windows to Linux, but just explaining the run-time to my management or Change Management would require testing, which is cost, which is probably waste, but is also necessary... a Oracle JVM on Linux or Windows, doesn't require the same due diligence.
- jasallen 13y agoJava may not be dying, but it does take off early on Fridays for golf. Java is not dying the same way Cobol was not dying 10 years ago. It has a lot of legs left but nobody is 'hoping' to use it, they are told to do so. Java is and always has been almost completely a corporate tool. Again, like Cobol, so the 'cool kids' are not going to give it much love. It's too slow to execute to compete with C++, its too slow to write to compete with Groovy or Scala. And all the cool kids pick an extreme and vote that way. Java is not 'dead', but thought leaders aren't using it right now. The people who inherited the decision of thought leaders of 15 years ago are using it, so the writing is on the wall, its just going to take a while to be read.
- dkuntz2 13y agoI'm fairly certain Java and C++ have comparable speeds, and I think in someways Java's faster.
- jordanthoms 13y agoJava runs about 2x slower than C++ for general CPU-bound stuff - (although it does use much more RAM). That sounds slow, but it's faster than most other languages out there. However, C++ does give you the ability to more easily use processor extensions (SSE, AVX, etc), which you can't use from Java AFAIK - which makes a big difference in performance for certain applications.
- acomjean 13y agoI think generally the libraries in Java help programmers use data structures that make the language seem faster (trees/hashes) . These structures exist in c++ but aren't as easy to use so aren't used as frequently. Those processors extensions will make mathy c++ code significantly faster. When I was on an ada project all the mathy code was written in c/c++ for speed. Pretty amazing the difference.
- cageface 13y agoWhat? C++ comes with robust trees & hashes via the STL, along with a pretty extensive library of algorithms that work on all the STL containers. And, unlike Java, C++ lets you pack value objects contiguously in memory, which can be a massive performance win due to better cache behavior/no pointer chasing.
- AsymetricCom 13y agoJava is dying because it requires more and more resources to make it work. People look at the growing resource requirements and think "wow, look at how Java is growing! We even are teaching middle schoolers Java now!" Wasn't the point of Java to release developers from having to worry about memory? Well, now we have to worry about everything else. It's a failed abstraction and now we have to live with it.
- ternaryoperator 13y ago"Wasn't the point of Java to release developers from having to worry about memory?" I think you're thinking of releasing them from worrying about pointers, which it basically did. When it first came out, its stated goal was to release developers from having to worry about portability, which it did.
- KevinEldon 13y agoJava is doing just fine and with the addition of closures in Java 8 I expect the already incredibly rich set of libraries to improve dramatically.
- mbillie1 13y agoThere are some pretty awesome libraries already... check out https://github.com/jnape/Dynamic-Collections https://github.com/jnape/Dynamic-Collections
- msluyter 13y agoI primarily use java in my day job, and although there's a lot not to like about it, some standard complaints are somewhat overblown. For example, nothing really forces you to use long variable/method names, but even if you do, a modern IDE -- I use IntelliJ -- with auto-completion makes these fairly painless. It's not like you have to type every letter of "SomeClass.veryLongMethodName()" -- rather, you type "SomeClass.v" and then hit tab. Similarly, I never type "for (int i = 0; i < blah; i++)." I type "cmd-J, fori, return." Etc.... So, I'm not particularly persuaded to the "you have to type a lot" complaints. Similarly, Spring has simplified a lot of stuff that J2EE had previously made overly complicated. That's not to say that Java doesn't have problems or isn't suboptimal for a certain set of problems. (In fact, it's unclear to me where java might be optimal.)
- thorum 13y ago> Similarly, I never type "for (int i = 0; i < blah; i++)." I type "cmd-J, fori, return." Etc.... As someone who didn't realize this existed in Intellij, I think you may have just changed my life :)
- acanby 13y agoYou can shorten it even further to typing 'fori' then triggering the expansion by pressing tab. Best shortcut that every IntelliJ user should know is "Find Action" (ctrl + shift + a on Win), press and start typing what you want to do. Will even present shortcuts in the list for next time.
- Zimahl 13y agoBack in college when I was interviewing for jobs sometimes interviewers would first ask you to write any executing Java class because some interviewees said they 'knew' Java and couldn't do even that simple task. A couple years later when Eclipse came out I told a coworker this anecdote and he joked that it was 'main' + ctrl-spacebar followed by 'sysout' + ctrl-spacebar. I lol'd.
- bhauer 13y agoEclipse has something similar, which it calls "code templates." Features like these leave me wondering why "excessive typing" is often cited as a criticism of Java. As far as I can estimate on the fly, I type less than half of the characters that make up my Java code. And as the article points out, for readability, verbosity is arguably a good thing. I sure believe it is, perhaps because I am more distracted by poor symbol selection and syntax than most programmers I know. Speaking of, I don't particularly like the C-lineage syntax, Java included. I don't like the braces and parentheses. I prefer a syntax with fewer symbols and more keywords. Crazy, I know.
- pmelendez 13y agoWell... I am one of those guys who hates Java, but I see Java far away from dying. I know it is not very reliable but Tiobe index is still a decent metric. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... When Visual Basic dies I would start believing that Java could die.
- drunken_thor 13y agoI am really sick of these articles. "Java is alive and well", "Brand new exciting things that tell you Java is still a leader" blah blah blah. To me Java is a great tool, the JVM an even better tool. No one said your favourite language is dying and if they did, they are naive. These articles only give me a small hint that you think java is dying and are trying to do your part to keep it alive. I guess what boils down to is that I hate articles that give me the impression of desperation. Maybe this is my own problem in the long run so I don't know why I wrote this comment.
- was_hellbanned 13y agoI agree. It's link-bait, battling the other link-bait about how Java is dying and { x, y, z } is the #1 language, will dominate any day now, and anyone not coding in it is inferior. Unfortunately, as technology has matured, it has become just as politicized and petty as anything mainstream. Countless people make their reputation and/or income writing blog posts and churned articles, living in the tech periphery like leeches, without creating any actual value. I think this is part of why I have so much nostalgia for the 80's and 90's. Code in whatever makes your life least painful, and learn whatever's in demand for your desired career path.
- nilved 13y ago"Java is dying" is wishful thinking. It's not the case, but we can only hope it will be. Currently, it does a good job of marketing to developers too good for Ruby and Python and not good enough for C.
- ekimekim 13y agoI understand the "not good enough for C" comment, but why "too good for Ruby and Python"? Not trying to pick a fight, just would like you to elaborate.
- PeterisP 13y agoWelll, the reasoning behind it might be from two facts - a) Ruby and Python both are far better beginner/learner languages than Java & others - I mean, if some kid wanted to learn programming, I'd suggest to start in those because they don't have distracting boilerplate; and (b) other things being equal, Java does get you better execution performance than Ruby/Python; not on C level but it's halfway in between. But still "developers too good for Ruby and Python" is an interesting statement; IMHO the only ones who'd claim to be 'too good' for Python/Ruby would be authors of their own languages or maybe the hardcore Lisp or Haskell crowd.
- zainny 13y agoI'm surprised nobody has mentioned Android yet. When you add in the Android factor, Java is probably still one of the most widely used programming languages today. It's funny the article straight away brings up the verbosity argument as well. You want to talk about verbosity - take a look at Objective-C and Cocoa (again, hugely popular today!)! Personally, I quite like Java.
- EpicEng 13y agoPopular in terms of use, yes, but liked? I don't know, I doubt it. Android and iOS essentially force you to use Java or Objective-C respectively. I don't hate Java, but I don't like it either. It lacks quality of life features that other, similar languages have had for years. I can't stand writing code in it if I don't have to (and don't get me started on Objective-C...) From what I hear from others and read on a weekly basis, few people enjoy writing Java code. It may not be dying in terms of numbers, but given an option to use something else those numbers would likely drop very quickly.
- taspeotis 13y ago> and don't get me started on Objective-C.. itsNotTheLanguagesFaultPerSe:butIfTheFunctions:andTheirParameters:werentNamedLikeThis:itWouldBeBearable
- shaggyfrog 13y agoI find the descriptive nature of method signatures to be quite delightful. Unlike other languages like C++, I don't always have to go looking for the function definition to see the types of the parameters it takes, and what exactly was the order again? Combined with Xcode's autocomplete, it saves a lot of time. I shed a small tear every time I have to call a C API with and endless parade of (NULL, NULL, 0, NULL).
- nitrogen 13y agoIn C99 it's possible to use compound literals to implement something like named parameters. You create a struct with all of your parameters, and only include the ones you want to set in the compound literal. Anything not explicitly specified in the compound literal gets set to 0, so the caveat is that 0 can't be a valid value for your parameters.
- Apocryphon 13y agoWhy did Google adopt the language for Android?
- mbillie1 13y agoScala is a "scripting language?" Also, >When the JVM implementation of Ruby, JRuby, added native support for this instruction, its performance zoomed past the C-based Ruby VM, which for years has been the Ruby reference platform. As JRuby's performance continues to pull ahead, I fully expect it to become the reference implementation. Certainly, it will become the vehicle by which most organization first try out Ruby. This was true at some time, afaik the MRI Ruby on 1.9.3+ is faster-than or about-the-same-as the equivalent JRuby implementation. I also know zero people who were first exposed to Ruby via JRuby. JRuby is awesome btw. I just think this article has a bit of a defensive tone...
- camus 13y agoScala is awesome but not a scripting language. Running Scala as script is insane as it takes 1 or 2 seconds to start the JVM/Compile/Execute a fairly large Scala file. You dont want to use that on your server for scripting purposes. Ruby,Python or PHP are more suited for scripting tasks(especially Java code generation,i'm writing an Android app generator right now,since i was tired of all the boilerplate : json+php script = Activity classes , resources files , ContentProviders generated in less than 0.2 seconds no matter how many tables I need for my apps,saves me hours of work).
- acqq 13y agohttp://benchmarksgame.alioth.debian.org/u64q/jruby.php http://benchmarksgame.alioth.debian.org/u64q/jruby.php There are some areas where JRuby is 3 times faster and the areas where it's 2 times slower. Not impressive, compared to native Java implementations: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=jruby&lang2=java&data=u64q http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t... Where you can get even two orders of magnitude speedup.
- fecak 13y agoI've run the Java Users' Group in Philadelphia for almost 14 years, and I specialized in Java recruiting between 1999-2010. I know a lot of Java pros. Our meetings still get pretty strong attendance (80-120 per meeting), but I'm seeing far fewer new sign ups and the faces are much the same. There could be several reasons, but young engineers that I speak with rarely have any interest in Java work (though JVM is still popular). Some members have taken to coming up to me and saying "Java is dying, you know?" at meetings. It will become harder and harder to find engineers to maintain the Java code as the first generation of Java pros start to move on to other languages or retire. Java needs some new blood and better PR to maintain interest from younger devs, and Android may be the best hope.
- rurounijones 13y agoI have 0 interest in learning Java, the language, to a professional level. The JVM on the other hand, with things like JRuby and being able to use popular Java libraries and things like TorqueBox, is incredibly cool.
- fecak 13y agoThis is fairly common it seems, and one of the reasons my JUG (and some others) have modified our guidelines from a Java language focus to a focus on anything Java language or JVM. It has opened things up and allowed us to dive into some topics that will keep our audience more engaged.
- EdwardDiego 13y agoAnecdotal, but I noticed a distinct drop-off in my local user groups, Java and .NET, when Stackoverflow started getting popular.
- codeonfire 13y agoI think interest overall in software development has plateau'd recently. I go to software events and think, "of five million people in the area, these are the fifty really interested in software development. Half are probably hobbyists, and the other half are probably already employed. A person that needs to hire a developer has big problems."
- NAFV_P 13y agoI thought C was dying out. I must be living in the dark ages.
- ekimekim 13y agoI think C has kind of hit equalibrium, in that it's not often used for things outside its "niche", but with no other language threatening it within its niche.
- NAFV_P 13y agoIs forth considered to be in the same niche?
- pavlov 13y agoNot really. Forth is nowadays only used for tiny embedded systems. In contrast, C is the glue language for pretty much everything. Even the latest operating systems like iOS and WinRT use C as the base level API language that is callable from anywhere. They do have significant libraries and conventions to manage that (Apple uses CoreFoundation, Microsoft uses COM), but it's still C.
- memracom 13y agoJava is not dying, it has just started its long slow decline like COBOL did back in the 1980s. But COBOL is still with us and so will Java be with us for a long time. But the momentum is picking up on alternate JVM languages, in particular Grovy, Scala and Clojure. Of course there is also Python(Jython), JRuby, PHP and many others that run on the JVM, but Groovy, Scala and Clojure are the triumvirate that is picking up steam and will end up pushing Java down into the depths where, like C, it will remain as the tool of choice for building JVM libraries. The Oracle JVM is also not the only JVM available these days and there are even some commercial JVMs that are higher performance than Hotspot. I think one could make a strong argument that the JVM will outlive Java itself by a large margin. Say, Java fades out of common usage by 2050 but the JVM is still going strong in 2150.
- damian2000 13y agoJava is a pretty boring language, it must be said. But that's what makes it so good for real world usage - its got a lot of library support and many issues tend to have been ironed out already. Couple of weeks ago I was using Selenium's WebDriver SDK with a Ruby client program. It failed in some obscure TCP/IP stack error coming out of the C Ruby implementation. Using a java client just worked.
- chatman 13y agoWith Hadoop, Lucene, Solr, etc. written in Java, there is no doubt that Java is here to stay. None of these libraries (or many others) have competing implementations written in other languages.
- alpatters 13y ago"None of these libraries (or many others) have competing implementations written in other languages." Except the ones they were written to copy. Each example you give is an open-sourced clone of an pre-existing version implemented in a different language.
- sfjailbird 13y agoThat's not true at all, Lucene is a Java project from the beginning, and has since been copied to virtually every other environment because it is such a kick-ass indexing engine.
- alpatters 13y agoSo in no way did they copy Google's which is implemented in C++ ? Though I agree with OP - these projects and Java are here to stay for the foreseeable future.
- chatman 13y agoNo, they didn't copy any of Google's implementation. They simply implemented efficiently the TF-IDF based document retrieval model.
- cageface 13y agoOne of the huge advantages of Java's static typing + somewhat boring/verbose syntax is that it makes writing powerful tools for manipulating Java code far, far easier than any of the C-based languages with preprocessors or any dynamic languages. After working in IntelliJ for a while with its phenomenal refactoring tools going back to any other coding environment feels somewhat stone age in comparison.
- camus 13y agoBetween writing less code with a text editor and writing loads of verbose code with a powerfull IDE i'd chose the former. How much text processing would you write in Java vs Python/Ruby ? This is a no brainer for me. Dynamic languages have their advantages,though i find Scala to be a good compromise.
- pjmlp 13y agoI have been using IDEs since the mid-90's, that is my feeling every time I see anyone coding as if UNIX System V was the latest version available.
- swah 13y agoI don't use IDEs, but it seems that there are only 2 or 3 that really work: Visual Studio for C/C++, and Eclipse/Intellij for Java. Do you use one of those?
- pjmlp 13y agoI have used all of these during my professional life so far, Almost all Basic, C, C++ and Pascal IDEs from Borland for MS-DOS and Windows The initial releases of Delphi IDE Visual Studio, only after 32 bit support, not earlier The first releases of C++ Builder KDevelop Anjunta Eclipse Netbeans Smalltalk environments Lisp environments Native Oberon environment And a few more not worth remembering.
- auggierose 13y agoStopped reading the article when he referred to Scala as a scripting language. Clearly the author has no idea what he is talking about. Sure, you can use Scala for scripting (I never do) but its main value is in software design, whereas scripting usually is not about design, but about a quick solution.
- linuxhansl 13y agoI use Java, C, C++, Python, Ruby/jRuby, bash, Perl, etc. The right tool for the right job. Anybody making unconditional statements about the decline (or not) of a language is a fool (IMHO). Likewise saying the "C++ is better than Java", or "Java is better than Python" or ... is devoid of any meaning without specifying the domain of the problem to be solved.
- prottmann 13y agoDying? I don't know, but surely not dead. But look at the beginning of Java, at that time it was "cool" and growing. Now Java is an adult and not cool, other languages grow, build new communities, new tools and new possibilites, that's why they offer more fun and many people think java is dying. Java will be there for many many years, Cobol still there too ;-) But someday it will die, that's normal life.
- edem 13y agoCheck the tendency: http://www.itjobswatch.co.uk/jobs/uk/java.do http://www.itjobswatch.co.uk/jobs/uk/java.do
- Yaggo 13y agoTechnologies with giant backers (e.g. Java or Windows) have massive inertia keeping them seemingly alive for years (or decades) after losting their soul.
- retube 13y agoThe best thing about java is the ecosystem around it - a massive range of mature and robust open source libs to do just about anything you like (parsing HTML, part of speech tagging, search indexes, neural networks, fast caches, networking tools, web servers/containers, email servers etc etc) Does any other language have this variety available?
- grn 13y agoI haven't programmed in Java but I sometimes read Java source code. I must admit that I like the language which to me is a better C++. However I don't like the way it is used i.e. tooling, libraries and programs. I don't like AbstractProxySingletonFactories, XML configuration files, long method names and lots of other things. That being said I believe that a change in the programming culture surrounding Java may lead to more pleasant programming experience.
- frownie 13y agoHow many of you are actually handling big Java projects ? Mine is not that big but big enough to have 15 sub projects, 200 dependencies, 5 people for maintenance, batch, GUI, JEE stuff. The only thing I can say is taht although Java is nice, the maven, release mgmt, spring stuff it needs to be actually manageable is absolutely enormous (the question is, how would I manage that in another language ?). Contrast that with interpreted/dynamic languages... No type safety ? But I don't have to wait 3 minutes 30x a day for my build to complete in order to check that my code is actually running... So well, there's room for compromise. For me the tru force and problem with the java ecosystem is that it allows to separate concerns in the enterprise : a team to provide some Eclipse plugins, a team to handle release management, a team to deploy thnig on servers, a team for development, etc.
- pan69 13y agoI'm just getting back into Java (both platform & language) and I'm really excited about it. It has really matured over the past 10 years both in tooling and application architecture philosophies. I'm really looking forward to pick up Java, Spring, Hibernate (maybe I settle for JPA, not sure yet) and my old trusted friend Tomcat. Oh, and I might throw in some Scala, Groovy and JRuby in here and there as well.
- TeeWEE 13y agoThere is Java and there is the JVM. Both are doing well, but Java is progressing slowly, and more and more developers -why actually now what they are doing- are looking into alternatives. These may also be languages running on the JVM though. Java as a languages is getting old, in terms of concepts and verbosity. Functional programming is what is -the next big thing-. And most java-only developers don't know how todo that. While it is still thriving, there is an unstoppable move to newer, more functional languages (which can run on the JVM too).
- arikrak 13y agoI searched various job sites by programming language, and Java always came out on top (by a significant amount) for listings, except on the startup job boards.
- todd8 13y agoJava isn't new anymore. It wasn't really groundbreaking even when it was new in 1995: * Object-orientation: Simula-67 mid 1960's, CLU 1974, Smalltalk 1980 * Garbage collected memory: In Lisp since 1959 !! * JVM: UCSD Pascal had a similar idea in 1974. * Syntax: Java's was a basic evolution of the Algol-68 -> C -> C++ chain * Performance: in 1995 Java was too slow and too big * Write once, Run everywhere: other than assembly language, all languages strove for this. Nothing in the language was that special. Most of it's features weren't new, but it went on to be one of the most important programming languages because the engineers at Sun had put together a good, solid, language on a good, solid, implementation. They had a vision, largely realized now, of a language to support professional software developers. It is now very fast, the size of it's run-time doesn't seem so significant in 2013, it's current garbage-collector is state-of-the-art, and it's eco-system of libraries and frameworks is now unsurpassed. Java may have already peaked. This doesn't change the fact that it has been so important and that experiences with it will shape the future of software engineering. I was impressed with Rob Pike's talk on the Go language: "Language Design in the Service of Software Engineering" [1]. It seems to me that Java's success was driven by largely pragmatic thinking and that the designers of Go are now attempting a similar path to success. Public service announcement: Don't squabble. If you program in C, be happy, your language is the very best for embedded systems and kernel development. If you program in C++, be happy, your language is the very best for developing programs that deal with complex data structures and must run as fast as possible while using memory efficiently. If you program in Objective-C, be happy, your language is the very best for IOS and Mac OS X programming. If you program in C#, be happy, your language is the very best for developing Microsoft .NET applications. If you program in Python, be happy, your language is the very best for rapid prototyping and exploring big-data. If you program in JavaScript, be happy, your language is the very best for client side web programming. If you programming in Haskell, be happy, your language is the very best for exploring reliable software through detailed specification of types. If you program in Ruby, be happy, your language is the very best for putting together Rails apps (and yay, it's getting faster). If you program in Lisp, be happy, your language is the very best for getting the most out of Emacs. If you program in Visual Basic...be happy, there are better languages you can learn. [1] http://talks.golang.org/2012/splash.article http://talks.golang.org/2012/splash.article
- xolve 13y agoAnybody using Rust?
- francis- 13y agoDead cat bounce.