Hacker News new | comments | ask | show | jobs | submit login

> "The state of the Go ecosystem after only four years is astounding. Compare Go in 2013 to Python in 1995 or Java in 1999. Or C++ in 1987!"

Wow! The state of C++ searches on google were 0 in 1987, as were searches for "Apples" and "Oranges" so go must be doing incredibly well to have infinity times the results!




Keith wasn't referring to the Google Trends chart. It is an unrelated quote about the state of the various languages' ecosystems 4 years after their release dates.


None of the languages being compared against were released in the ubiquitous-internet age with things like Github and widespread blogging to drive interest and adoption.


I don't think the comparison is supposed to be a value judgement of C++, Java, or Python. It's just an observation about how quickly the Go ecosystem has matured. Of course the internet played a huge role in this!


If one is going to compare a language to Go, I would go with C#, since it's only slightly older (2001 or so) and also backed by a major corporation.


Well since Go made it's appearance in 2009 and C# in 2000, I wouldn't call that 'only slightly older', not even by programming language standards.

Beyond that, Go certainly doesn't have the same backing from Google as C# had from Microsoft, on the other hand Microsoft had a monetary incentive to provide support and tools/frameworks as they charged for those proprietary implementations while Google is giving Go away under a permissive licence.

Anyway, for fun I looked at the language poll made here recently on HN and compared C# and Go:

C# 1130 likes, 465 dislikes Go 1126 likes, 365 dislikes

So it would seem that Go has reached the same popularity as C# here on HN atleast. https://news.ycombinator.com/item?id=6527104


HN is a hotbed of early adopters (and Microsoft is not a favourite among many readers).


>None of the languages being compared against were released in the ubiquitous-internet age with things like Github and widespread blogging to drive interest and adoption.

Which doesn't seem to matter anyway. There are tons of languages released every year that fare even worse than languages released in 1980, despite having "ubiquitous-internet, Github and widespread blogging" at their disposal.


There are tons of languages released every year that fare even worse than languages released in 1980, despite having "ubiquitous-internet, Github and widespread blogging" at their disposal.

Those tools are force multipliers. If the initial force is zero, the output is still going to be zero.


How many are backed by one of the largest companies on the internet?


What is your point here? This is a blog post celebrating the 4th anniversary of a programming language. Shame on them for being proud of what they created because other languages had a harder time?


Not many, including Go. Go is extremely peripheral to what Google does -- it's essentially a 20% project that did well.


That... doesn't really change the general point?


Yes it does, the point is "Go's ecosystem has developed really fast" but maybe a (hypothetical) better language developed in this day & age would've reached the same point in 2 years?


"A better language might do better" is not a very interesting point to make.


Neither is "A language released in the age of the internet gets adopted faster than languages before it".


Isn't it?


With all due respect, I don't feel he is/was old enough to make such claims, as judging by his picture. Not saying that he is right or wrong, only the wrong person to make such claims.


Seems pretty far behind Java in terms of adoption. By 1999, virtually all new enterprise development was being done on Java. In 1997 Java was already #4 on the TIOBE language popularity index. Go isn't even close.


That's true. Java in the 90s was a spectacular con job that millions of developers and managers bought hook, line, and sinker. XML was pretty big back then, too, and now nobody gives two warm shits about XML. Just saying.

Anyway the hype is surely not the reason why anyone should use go. People should use go because it has good libraries, encourages good interfaces, is fast and space efficient, has good self documentation, is easy to test, etc.


> Java in the 90s was a spectacular con job that millions of developers and managers bought hook, line, and sinker

Who's to say that a similar thing isn't happening with the current latest and greatest tools?


Or even just with Go.


Spectacular con job ? Are you joking ?

There was and continues to remain NOTHING that compares to the Java platform.


I assume you mean in terms of hype?

Java can do stuff and people use it which is fine. The con was that it was inherently portable and secure and can be used for client software. None of that is true. Today if someone told me that our new client interface was going to be java that person would be reassigned to a role where their awful judgement would not resurface.

Java today is basically the slower edition of C++ which isn't that amazing of a niche.


Uhh... The hype is there for a reason.

It is inherently portable, because the bytecode can be run everywhere you have a JVM. You don't need to compile for every platform you wan't to run your software in, or muck around with cross-compilers. True, you can do plattform-spesific things in any language, but the Java standards library is almost entirely cross-plattform. In this way, Java really is as cross-platform as it gets.

The language itself is more secure. Buffer overflow? Forget about it. Undefined behaviour? Forget about it. Wierd stuff happening due to pointer arithmetick. Forget about it. Memory leaks? Forget about it, (well, almost).

Why can't it be used for client software? A JVM language can be used for anything that doesn't require minimal use of memory or short start-up time. Any program you write that will be running for more than 10 seconds and don't run in a memory strained environment, fits Java rather well.

Java is also easier to learn and reason about IMHO than C++.

Java today is the easier, safer, more portable but slower and memory-hungry edition of C++. Which is why there is a hype. Altough that hype is slowly dying, due to Java (the language, not the vm and ecosystem) being outdated compared to it's competitors.


> Altough that hype is slowly dying, due to Java (the language, not the vm and ecosystem) being outdated compared to it's competitors.

This part I have some issues with: the language is still quite modern (compared to C, for example). There are several other reasons for its slow demise: its licensing issues and initially problematic Linux implementations put it at a disadvantage on the server side and in circles where open source was important. It is quite verbose and not well-suited for web development - not the best proposition at a time where scripting languages and rapid web prototyping were on the rise. Finally, the enterprisey orientation of later developments around Java and heavyweight ecosystem really put off beginners - editing XML (build.xml bigger than the whole program...) sucks.


I'm comparing Java to languages like C#, C++ and Go, and Java is definitely falling behind. Java 8 will be a big improvement, but I'll still miss having variable type-inference (auto in C++, var in C# and Go).

C is supposed to map very easily to what actually happens under the hood. Thus C will never have closures, type-inference, generators and the like as a part of the language. This is a part of the languages design, which is why you shouldn't compare it to feature rich languages like Java or even C++.


Hmm.. I'm not a Java fan by any means but as it turns out that Java is now actually a very popular language for client side programming. Maybe one of the most popular client side[1] programming languages in existence today.

[1] http://developer.android.com/sdk/index.html


> I assume you mean in terms of hype?

There is nothing wrong with hype if that hype is warranted, and Java certainly has an unmatched track record in terms of delivering solid, portable and easy to maintain code bases that power millions of applications today.

> The con was that it was inherently portable and secure and can be used for client software.

Java hasn't been pitched for client software since the death of applets, circa 1999.

Java is so good in so many domains that it's easier to name the areas where it's not the best: graphical applications and CPU intensive programs (games, numerical calculations). That's about it. For anything else, Java is most likely to be a very solid default choice.


In my opinion Java is pretty good at CPU intensive tasks. Where it falls short is memory usage and memory management. A lot of software is being written in C++ because Java cannot use much of a machine's memory without incurring rather large garbage collector pauses. What Java needs is structured value types and an affordable implementation of pauseless garbage collection.


"There was and continues to remain NOTHING that compares to the Java platform."

... today. Thrownaway2424 said (my emphasis) "Java in the 90s was a spectacular con job that millions of developers and managers bought hook, line, and sinker."

This was true. Sun purchased Java's popularity. It did not even come close to living up to the hype in the first few years. I could segfault it without much difficulty using Swing, and I was hardly using it for anything (school assignment!). I was not a sophisticated developer at the time. I should not have been able to do that.

It is also true that through tenacity and dedication, Java eventually did live up to its promises. But that came later.


Python was around and was just dandy for most of the stuff people were doing with Java.


Both Java and the XML are in heavy use today with plenty of people caring about them.

XML is still the right tool for the job for many use cases. JSON is great for serializing data structures. XML is great for marking up various types of textual data.

Other people have already covered your comment on Java.


I don't understand why people dismiss XML like that, I use it a lot at my line of work and it makes sense.

We need the structure that JSON can't give us and other data markup languages are too obscure to teach them to everyone we work with.


>>Java in the 90s was a spectacular con job that millions of developers and managers bought hook, line, and sinker

In the 90s, before Java, you had C/C++ dominating server based code that wasn't COBOL (Smalltalk tried to compete, but it's failure is a whole different story), with BASIC/Delphi/PowerBuilder/OracleForms/arguablyMFC dominating UI based code.

I will grant that Java gained a lot of buzz due to Java Applets in the browser and with deceptive claims regarding how portable AWT and later Swing applications were. But for server side business application coding (NOT systems coding), Java blew C/C++ out of the water.

C++ on large projects, especially with the feeble template compilers at the time, had insanely long compile/link times. It wasn't unusual to kick off a build and have to wait an hour or more to be able to test it. It's true you could break things up into dynamic libraries to try to reduce link times, but that meant more work, especially if you had to run on different platforms. And there were specialized tools like ClearCase's ClearMake that could speed things up, but they were far from commonplace.

Java for server based code compiled quickly and eliminated the link times (well, it moved linking to runtime, but effectively it also made each class into it's own mini shared library). And Java stack dumps were orders of magnitude more useful than C/C++ core dumps. Performance was slower compared to C/C++, but faster than interpreted languages at the time, and generally "fast enough" for most business applications.

Java's JDK also provided a lot more "out of the box" functionality than what you had with the C++. Heck, even just having a standard String class was tremendously more useful than having to deal with char arrays. And the collection library was feeble, but it was there. (The C++ STL wasn't released until 1998, and RogueWave was probably the closest thing to a de facto C++ library, but it was a commercial product).

The rise of internet e-commerce also convened to help Java out. A lot of sites started with cgi-scripts, which had to launch a new process for every CGI request. Even C/C++ CGI programs were slow because of this. Java's servlet spec provided a very convenient way to run multiple requests in a single process, which was typically at least an order of magnitude faster than CGI at the time. And it was much easier to write servlets than to compile a custom Apache C/C++ module into your apache distribution.

And for as many headaches as Java caused for "cross platform" UI code, it actually worked pretty well for cross platform server side code. Gone were the spaghetti pragmas from cross platform C/C++ code.

So what happened with Java is that the applet/UI buzz got in through the enterprise door, but it's server side conveniences are what enabled it to gain tremendous enterprise acceptance. And IBM jumping on board the Java ship was somewhat of a green light for COBOL shops to move to something else that was still blessed by IBM.

>> XML was pretty big back then, too

XML really didn't come about until the late 90s and was really more of a 2000s buzzard. It's being rightfully replaced by JSON for a lot of browser/server interactions, but for better or worse there are still quite a few places that it's sticking around.


P.S. There's a pretty good chance that Java will see an uptick again when JDK 1.8 finally lands. The lack of a concise format for closures is crippling Java in the midst of the current surge of functional programming idioms.


Java stepped into a natural void. There weren't many safe GC-based languages being used in the Enterprise at that point.


Yes, but there were several waiting in the wings. In the early '90s lots of people were expecting a GCed language - Smalltalk or Dylan or Self or CL or ML or ... - to make the breakthrough and become a mainstream application-programming language. Many of them (including Bill Joy) were pretty unhappy when it turned out to be Java that made it big.


Who mentioned anything about "C++ searches on google"?

There WAS an industry in 1987 and people who are around now were also around then, and can compare how well Go does compared to how well C++ did circa 1987.


But they are so ridiculously far apart that there is absolutely no way you can compare the "uptake" metric without being completely disingenuous.


How about the state of Fortran or COBOL after four years?


Everything in "the future" will always have faster adoption curves. There is more of everything so comparing them is quite difficult.


Not sure about that.. wasn't ruby around for some time before rails caused the relatively large uptake?




Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: