TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Java is the COBOL of my generation and Go is its successor

50 pointsby jlhamiltonabout 11 years ago

19 comments

noelwelshabout 11 years ago
Sigh. We&#x27;re still banging rocks together and amazed when occasionally there is a spark?<p>Look, Ruby and Python -- their implementations just plain suck. There, I said it. MRI and CPython are just a pile of crap. We&#x27;ve known since 1991-ish (see Self) how to make performant runtimes for dynamic languages and 23 years later Ruby and Python still have crappy slow interpreters with no useful concurrency support. Note that Ruby and Python were both started around about that time and are in fact older than Java. Sure the JVM team has a lot of resources, but other language implementations, such as Racket, don&#x27;t and they manage to solve these performance issues.<p>So let&#x27;s not get excited when a language implementation actually achieves a decent baseline of performance. Let&#x27;s expect that and move on.<p>Then there is Go&#x27;s woeful head-in-the-sand type system and its dumb approach to error handling. Errors values are logical ORs -- you can return a useful value OR an error. In Go they are ANDs -- you return a value (which may not be useful) AND an error. Just dumb. We&#x27;ve know how to do error handling without exceptions and without boiler plate since about 1991 (Wadler; monads). Generics since about 1985 (ML). Can we move on yet? Is a quarter-century long enough?<p>Oh, and channels? That&#x27;s Occam (1980s), if not earlier.<p>So what&#x27;s Go? A language with an implementation that&#x27;s not complete crap, and an inability to absorb ideas known for 25 or more years. I&#x27;m supposed to be excited that this will move our field forward? No thanks.<p>(This was a fun rant to write.)
评论 #7686755 未加载
评论 #7686422 未加载
评论 #7686547 未加载
评论 #7686478 未加载
评论 #7686564 未加载
wyagerabout 11 years ago
Jesus, I hope not.<p>Go now is like Java in 1997. A mediocre language with lots of corporate support and a big standard library. It&#x27;s popular in the developer crowd right now because it&#x27;s A)simple B)has a good standard library and C)getting support (in the forms of tools, tutorials, etc.) is easy.<p>We shouldn&#x27;t let those things be the deciding factors in choosing what language to stick with over the next ten or twenty years. That&#x27;s what we did with Java, and even though we&#x27;re on revision 8, people are still (rightfully) complaining about many of the same flaws that are still present 20 years later.<p>As Java aged, developers realized that they didn&#x27;t actually <i>want</i> the type of language that Java started out as, so over time, Java has accumulated features like lambdas, generic programming, etc., but because the language wasn&#x27;t designed with it in the first place, it&#x27;s all sub-optimal cruft.<p>Go has a lot of the same problems now. No generic support (What language designer in 2014 builds something that idiomatically requires casting to the top type? That was <i>precisely</i> a huge problem for Java; Java (sort of) fixed this by adding Generics in 2004), a mediocre type system (which gets completely ignored pretty frequently anyway; see the previous issue), inflexible (you can&#x27;t extend important built-ins like range or make()), and with none of the interesting features that programming languages have gotten good at in the last few decades (pattern matching, immutability, null&#x2F;nil-free programming, etc.).<p>I really hope that developers can see past the hollow promises of corporate support and a strong standard library and wait for a <i>language</i> that is actually good in and of itself, and not just because there are so many developers propping it up. There are a number of very well-designed languages on the horizon. The one closest to Go may be Rust, which has excellent features like ML-style generic programming, pattern matching, an almost-hindley-milner type system, strong support for immutable and functional programming, etc.
评论 #7686426 未加载
评论 #7686628 未加载
评论 #7686342 未加载
评论 #7686641 未加载
评论 #7686329 未加载
manishsharanabout 11 years ago
Does the OP even know what made COBOL successful and useful ? Or for that matter , does the OP even know a Cobol programmer ? I suspect the answer is no and yet his blog is being discussed on HN front page. Cobol predates the RDBMS and made a lot of sense when writing structured data to flat file systems. Cobol language and cobol programmers never aspired to do a general purpose computing. Back in those days, the scientists wrote their programs in fortran and businesses wrote their code in cobol and most computing was done on IBM systems. Then came minicomputers with DBASE. And so on. If you are a canadian, I can guarantee you that most of your RRSP backend data processing is still being done on Cobol ; I had a bruising experience when a newly minted CIO decided to do away with all cobol and replace it with modern langauges ( c# etc.) Long story short, the CIO moved on to another unfortunate company , millions of dollars wasted and the cobol code is still working.<p>And now, get off my lawn !
评论 #7686590 未加载
评论 #7686612 未加载
评论 #7686592 未加载
chimeracoderabout 11 years ago
COBOL is like bedbugs. Nobody <i>likes</i> COBOL; the reason it sticks around is because it&#x27;s damn near impossible to get rid of.<p>COBOL is very hard to migrate out of production because it&#x27;s incredibly difficult to translate COBOL code to other languages. Everyone writes their own version of their COBOL, and even translating one COBOL program to another COBOL programmer&#x27;s &quot;dialect&quot; is non-trivial. COBOL provides all the power of LISP macros, except with none of the elegance - it&#x27;s very hideous once you peel back the layers.<p>On the other hand, it&#x27;s very easy to translate Go to&#x2F;from other C-family languages. Indeed, there was a blog post recently on here about a company that translated their entire Python codebase line-for-line into Go. The Go team is even working on an automatic translator to translate the current gc compiler codebase (written in C) into Go.<p>I&#x27;ve used Go as my primary language for almost two years now. I wouldn&#x27;t say I &quot;love&quot; Go - I love the things it lets me do. If Go is going to achieve the same level of dominance that Java has, and the same level of persistence that COBOL has, it&#x27;s not going to be because it&#x27;s got the ultimate form of lock-in (legacy code) - it&#x27;s going to be because it continues to let people do powerful things very simply.
评论 #7686323 未加载
评论 #7686633 未加载
mark_l_watsonabout 11 years ago
Well, I believe that developers should be able to choose their own tools although work requirements can understandably override personal choices.<p>I used to be a &#x27;Java guy&#x27; (for many years I was the number one Google search result for &quot;Java consultant&quot;) but I migrated to Ruby out of personal preference, then to Clojure because I got a lot of work offers using Clojure, and now I am struggling to learn Haskell. That said, the bits of Java programming that I have been doing lately (mostly Java 8 with streams and lambdas) has been a lot of fun.<p>Bottom line IMHO is that choice of programming language is not that important. More important is having a good fit with existing code bases, lots of trained developers, good libraries and frameworks, and adequate performance.
carsongrossabout 11 years ago
I&#x27;ll say it again:<p>If java was brainf&amp;%k and we still got the JVM out of it, it would all be worth it. And I think there&#x27;s a good chance that Java&#x27;s successor runs on it.
评论 #7686269 未加载
dyejeabout 11 years ago
&quot;My prediction is much stronger than saying Go will be as popular as Ruby, Python, or Node.&quot;<p>Was anybody else thrown off by this? I thought it was weird to throw Node in there considering Go, Ruby, and Python are languages.
评论 #7686495 未加载
评论 #7686554 未加载
brlabout 11 years ago
&gt; Some developers have noted Go’s lack of features or a few other things: no exceptions, nils instead of options, inability to specify dependency versions, mark and sweep GC, no macros, no generics.<p>Not having exceptions is one thing and probably a valid opinion, but specifying library dependencies as whatever today&#x27;s HEAD commit is on a GitHub project always seemed to me incompatible with writing reliable software. Until reading this article (and learning about godep) I thought that I must be misunderstanding how dependencies are managed in Go, because how could that possibly work? In practice how have people been dealing with this before tools like godep?
smrtinsertabout 11 years ago
Does anyone know any good platforms for mobile cobol development?
mseepgoodabout 11 years ago
Do never ever use Google trends to compare programming languages. The names of programming languages have different meanings in different contexts.
iadapterabout 11 years ago
I wonder if this is a response to yesterdays post about modern Java [1]. Timing seems too close to be a coincidence.<p>On the other hand it does not address the points of the other post so I&#x27;m probably wrong.<p>[1] <a href="http://blog.paralleluniverse.co/2014/05/01/modern-java/#comment-1366371487" rel="nofollow">http:&#x2F;&#x2F;blog.paralleluniverse.co&#x2F;2014&#x2F;05&#x2F;01&#x2F;modern-java&#x2F;#comm...</a>
adrianlmmabout 11 years ago
I beg to differ, not that Go doesn&#x27;t have its place, but I think they can&#x27;t even be compared.
0xdeadbeefbabeabout 11 years ago
I don&#x27;t understand these &quot;rah rah rah Go!&quot; posts. If it&#x27;s so great then take off your swami hat and do something with it [0].<p>[0] <a href="https://www.docker.io/" rel="nofollow">https:&#x2F;&#x2F;www.docker.io&#x2F;</a>
Tloewaldabout 11 years ago
So... Go is the next COBOL?
评论 #7686375 未加载
cliveowenabout 11 years ago
If anything Go is the successor of C, Java has nothing to do with Go.
评论 #7686322 未加载
LaSombraabout 11 years ago
I still don&#x27;t understand the hate of Java. No language is perfect. No OS is perfect. No system is perfect. Some like, some don&#x27;t.<p>And I agree with carsongross, the JVM is worth all the hate thrown at it and it still active developed and I think it will go nowhere.
mdaabout 11 years ago
I don&#x27;t think Go is a replacement for Java.
slashnullabout 11 years ago
Go is the new cobol
puppetmaster3about 11 years ago
Or D.