Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Go, today, is a niche language by usage but is not niche by features.

In their latest blog post, they've noted that it's not quite as niche by usage as they thought it would be.

http://blog.golang.org/2010/11/go-one-year-ago-today.html



sort by: page size:

I think this page (and other like this, e.g. https://quicknotes.io/n/1XB0) show that Go is no longer a "niche" language, unless you consider python and ruby a niche language.

Go is a general purpose language and people write many different kinds of programs in it: from command-line utilities to network tools like web servers and proxies and file servers to distributed databases to website backends.

As long as you keep calling it "niche" I guess we do need those kinds of articles.


> Go is one recent exception of a popular language whose main implementation is completely self hosted. Though, Go doesn't host other popular languages.

It wasn't self-hosted in the beginning, only since version 1.5 IIRC.


> And yet we keep writing Go.

Remember that Go is still a niche language, and the majority of programmers will never write a single line of Go.

There is a nice trend around Go nowadays, but most people are still writing PHP, Python or Java and Go isn't going to replace any of those.


Yeah, this post seems to be most about general purpose language features, and not so much about stuff that is relevant to the niche Go is trying to carve for itself.

Then so has Ruby, Haskell, Erlang, and a bunch of other languages that espouse virtues completely contrary to Go. So I'm not sure what your point is?

Also you didn't even get my point because I explictly contrasted Go, as a niche language, with the big languages that most things are written in.


> In the short term Go may be stealing from Python and Node, but in the long term

Go is a niche language.As a niche language it will perform well in its niche, but it will never be as big as Java or C#. Go total lack of expressiveness makes it unfit for a wide range of applications.

Java is rigid, but I think version 8 makes it more enjoyable. But it will not make all the terrible java core apis and framework go away.They are still here.


> languages used in industry have had them for decades

If languages used in industry have had something for decades it does not automatically mean that it's a good idea. Go reconsiders a couple of things that once were thought to be good ideas like class inheritance, exceptions, generics and questions their net benefits.


>I wouldn't say so... Go may not be as widespread as other older languages, but the speed at which it's taking over new developments (and sometimes re-writes) can't be glossed over that easily.

It has a decent following for a new-ish (5 years) language, but the HN echo-chamber makes it seem ever larger than it actually is.

In the general industry it's nearly a statistical error, especially in the enterprise.


> Ignoring 20-30 years of programming languge theory advancements. Yet everyone laps it up.

I’d argue Go didn’t ignore those things, it just made a different set of trade-offs than most people are used to or expect from a modern programming language. The rationale for this is is well explained in https://youtube.com/watch?v=rFejpH_tAHM&t=306.


> I would have thought that a modern language

The only thing modern about Go is that it's just a few years old, but it's based on programming language concepts that were mainstream in the late 90s.


> Not in the sense that it's a bad language, but just that it's not used much anymore.

What are you talking about? Go is a popular language. Many of the successful software projects released in recent years are written in Go.


> * GO Lang is still pretty obscure for most developers, and an interesting choice given the language's youth and likely-hood to change rapidly as it matures.

The go authors have committed to keeping major versions stable since v1 and are unlikely to massively change anything.

I'm sure much of google's infrastructure is coming to rely on go (and docker!) so they will be as unhappy about such drastic change as others.


> It should also be noted that both are young languages and they are evolving rapidly.

Go will basically get dynamic linking and stop evolving. Its type system is way too simple to support any new significant feature. And go designers have said many time that the language is "done".


> Go strikes me as one of the most conservative programming languages available today. It’s small and simple, and every detail is carefully thought out.

This article is wrong in many ways, but I thought I'd point out this particular one. There are many really weird warts in Go, in fact its about average in "wartiness". Here is one example https://dave.cheney.net/2017/08/09/typed-nils-in-go-2

Go biggest advantage isn't the language, its the decent documentation and standard library design. The language is a bit mediocre. I wish the Go community accepted this and moved on - a mediocre language with good documentation and well done standard library is still an acceptable contender since so many other languages get those two wrong.


> From my perspective it’s one of the very few general purpose languages (along with erlang)

Maybe I'm missing something, but since when Erlang is a general purpose language? Erlang was designed for a quite narrow niche and feels very well there, but Go... well, honestly, I don't understand what Go was designed for.


Is Go “supposed to be a modern language”? I'm not sure even the language designers would agree with that characterization.

Go is not modern and has never been modern. It's an old language that just happened to be designed and implemented recently.

> rather carefully avoids coming anywhere close to addressing the legitimate criticisms of Go as a language.

The "criticisms of Go are addressed every time the language is discussed: in practice, generics are rarely missed. They would be nice to have, but their absence is outweighed by other benefits of the language.

Critiques of Go tend to be principal-based: "Go doesn't have features X, Y, and Z, therefore it cannot be a good language. QED." Praise of Go, on the other hand, tends to be pragmatic: "We built something in Go, features X, Y, and Z weren't missed and we enjoyed features A, B, and C, which the language's detractors oddly refuse to acknowledge." Which view carries more weight is left up to the reader.

> http://paulgraham.com/avg.html

I know this is heresy, but has this article really held up well over time? Since 1995, when ViaWeb was founded, how many other companies have been able to run rings around their competitors by using Lisp or something similar? Are we really going to base our arguments on a sample size of 1? How many counterexamples are there?


> In practice though

In practice though, there is a reason why Go is seeing continuous growth in usage, so I kinda doubt that these features of Go are subjective.

> But other modern languages like Rust or even Swift are quite a bit better on that side of things, and it shows.

In what metrics does that "show" if I may ask? Because it isn't showing in usage numbers across projects.

next

Legal | privacy