{"id":255219,"date":"2015-03-10T10:51:30","date_gmt":"2015-03-10T14:51:30","guid":{"rendered":"http:\/\/www.eugenesis.com\/java-makes-programmers-want-to-do-absolutely-anything-else-with-their-time\/"},"modified":"2015-03-10T10:51:30","modified_gmt":"2015-03-10T14:51:30","slug":"java-makes-programmers-want-to-do-absolutely-anything-else-with-their-time","status":"publish","type":"post","link":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/agnosticism\/java-makes-programmers-want-to-do-absolutely-anything-else-with-their-time.php","title":{"rendered":"Java Makes Programmers Want To Do Absolutely Anything Else With Their Time"},"content":{"rendered":"<p><p>        This question originally appeared on Quora:     Why do many software engineers not like Java?  <\/p>\n<p>        Answer by Michael O Church, functional    programmer and machine learning engineer, on Quora  <\/p>\n<p>    First, lets cover the technical issues. Its verbose, combines    the worst of both worlds between static and dynamic typing by    having a hobbled but extremely clunky type system, and mandates    running on a VM that has a macroscopic startup time (not an    issue for long-running servers, but painful for command-line    applications). While it performs pretty well nowadays, it still    isnt competitive with C or C++ and, with a little love,    Haskell and OCaml can or will eclipse it in that domain. For    real-world production servers, it tends to require a fair    amount of JVM tuning.  <\/p>\n<p>    The VM itself has a lot to recommend it. It offers concurrency    and garbage collection at a level of quality that, until    recently, wasnt found anywhere else. Python may have a better    user experience, but it also has a GIL, which rules out    parallelism. Much important software in the early 2000s was    written in Java because, at the time, it was the best choice,    even taking the mediocrity of the language itself into account.    It had Unicode (albeit, UTF-16) from the start and a strong    concurrency story, and it was a notch above C++ in terms of    user experience (because, really, who wants to debug template    errors deep in someone elses legacy code?)  <\/p>\n<p>    If you put Java on a technical trial, it doesnt do so bad. The    language sucks, the platform is pretty good for most    purposes. I do hate the dominant interpretation of    object-oriented programming with a passion, because it    objectively sucks. See:     Michael O. Churchs answer to Was object-oriented programming a    failure?  <\/p>\n<p>    So lets talk about the political and cultural issues. First,    the dominant Java culture is one of mediocrity and bad taste,    with MetaModelVibratorVisitorFactory classes dominating. Ive    heard a number of experts on the Java issue argue that Javas    biggest problem is the community, and that comes directly from    the fact that good programmers dont want to deal with the    bastardization of OOP that has entrenched itself in mainstream    corporate development. You have a lot of people who trained up    as Java programmers, havent seen a command line ever, and    have no clue how the computer actually works. Most of them have    never actually written a program; they just write    classes and some Senior Chief Architect (who makes    $246,001 per year and hasnt written a line of code since the    1990s) figures out how to stitch them together, and then tells    some other clueless junior how to implement the glue in the    gutshot hope that one will actually have the talent to make an    actual working program out of the mess.  <\/p>\n<p>    This isnt inherent to the JVM, because Clojure (currently    hosted on the JVM, although its endgame seems to be    language-agnosticism) has a radically different (and better)    community. Scalas community is more mixed, but the top Scala    engineers (the ones making tools like Spark and Kestrel) are    really freaking good.  <\/p>\n<p>    The root problem, lying under all of this, is that God clearly    intended for the programmer-to-program ratio to be one-to-many.    Its much more productive and engaging to work that way.    Programs should be small, and when you need a lot of code to    solve a large problem, you should create a system and    give it the respect that systems deserve. The vision that seems    ensconced in the modern Java community is one of Big Programs    where the programmer-to-program ratio is many-to-one. Ive    written at length about why this leads inexorably to political    behavior and low productivity: Java Shop Politics.  <\/p>\n<p><!-- Auto Generated --><\/p>\n<p>Follow this link:<br \/>\n<a target=\"_blank\" href=\"http:\/\/www.forbes.com\/sites\/quora\/2015\/02\/21\/java-makes-programmers-want-to-do-absolutely-anything-else-with-their-time\" title=\"Java Makes Programmers Want To Do Absolutely Anything Else With Their Time\">Java Makes Programmers Want To Do Absolutely Anything Else With Their Time<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> This question originally appeared on Quora: Why do many software engineers not like Java? Answer by Michael O Church, functional programmer and machine learning engineer, on Quora First, lets cover the technical issues <a href=\"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/agnosticism\/java-makes-programmers-want-to-do-absolutely-anything-else-with-their-time.php\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":57,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"limit_modified_date":"","last_modified_date":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[577694],"tags":[],"class_list":["post-255219","post","type-post","status-publish","format-standard","hentry","category-agnosticism"],"modified_by":null,"_links":{"self":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts\/255219"}],"collection":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/users\/57"}],"replies":[{"embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/comments?post=255219"}],"version-history":[{"count":0,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts\/255219\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/media?parent=255219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/categories?post=255219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/tags?post=255219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}