December 05, 2020
On Saturday, 5 December 2020 at 20:04:05 UTC, Andrei Alexandrescu wrote:
> I wish I had more fluency with Go to be able to figure its pluses and minuses. I find it difficult (for the kind of stuff I am inclined to do) to reckon that you need to implement simple functions such as min and max several times. But when I do e.g. shell scripting I don't care for such things. I wonder where Go fits - someplace where sophisticated abstraction isn't needed yet there's still processing and networking to be done.

As a language, completely uninteresting. As an ecosystem, very useful. Lighter than Java, still solid runtime. Good cloud support. Decent standard lib for webservices with plenty of online tutorials, like Python. Many libs that you want to use in Python have Go equivalents. The more people who use it for webservices, the more useful it gets for that space.

Not unlike Perl in the 90s.

December 05, 2020
On Saturday, 5 December 2020 at 21:07:52 UTC, Ola Fosheim Grostad wrote:
> As a language, completely uninteresting. As an ecosystem, very useful. Lighter than Java, still solid runtime. Good cloud support. Decent standard lib for webservices with plenty of online tutorials, like Python. Many libs that you want to use in Python have Go equivalents. The more people who use it for webservices, the more useful it gets for that space.
>
> Not unlike Perl in the 90s.

But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.

December 05, 2020
On Saturday, 5 December 2020 at 21:38:40 UTC, Daniel N wrote:
> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.

My guesses:

I think it would be that Go is perceived as more light weight. For cloud solutions you pay for memory usage and spin up time. Maybe C# has become just as efficient over time, I haven't seen a comparison, but I think the perception is that C# and Java demand too much resources. Right or wrong.

The trend is that big servers are less attractive and with things like Cloud Functions you instead have just one handler per executable... So you want the runtime to be very light, since each "server" does very little on its own. Maybe Rust or some other language will outcompete Go eventually though. Right now, I'd say that eco system stability is a big win for Go.

Anyway, I guess Go is also becoming competitive for command line programs because of this, as libraries useful for writing web-services tend to be useful for writing batch processing programs too.

December 06, 2020
On 5 Dec 2020 at 22:07:52 CET, "Ola Fosheim Grostad" <ola.fosheim.grostad@gmail.com> wrote:

> As a language, completely uninteresting.

That's its USP.

Go as a language is totally boring, mostly a no-brainer. Yes, you have to write more code, but so what. It's so straight forward, that it doesn't put any brain strain on the programmer. Exactly what they want it to be.

With some C background you learn Go in 1h and can read it mostly instantly. Even the CSP multi threaded part is easy to get into.

> As an ecosystem, very useful. Lighter than Java, still solid runtime.

And things most of the time just work. Add an import, use the lib, done.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster


December 06, 2020
On 5 Dec 2020 at 22:38:40 CET, "Daniel N" <no@public.email> wrote:

> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.

Because you don't want to use a decent language but a simple one that just works.

IIRC C# can produce binaries too (now?), but with Go you just get a zero-dependency binary. Again IMO a very good USP: Copy, run, works.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster


December 06, 2020
On 5 Dec 2020 at 21:04:05 CET, "Andrei Alexandrescu" <SeeWebsiteForEmail@erdani.org> wrote:

> I wish I had more fluency with Go to be able to figure its pluses and minuses.

Take a time-box and give it a try. It's really easy to get into it. Dig into all the corners you want to check and you have a good idea how it works. Really worth the time, even if you just broaden your horizon.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster


December 06, 2020
On Saturday, 5 December 2020 at 21:38:40 UTC, Daniel N wrote:
>
> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.

Learn to implement basic data structures like in C? (no generics 2020 wtf!)

To use a weird way of duck typing in a typed language? (interfaces and upcoming generics)

I don't get it too. The language is hilariously bad imho^^.



December 06, 2020
On Sunday, 6 December 2020 at 19:37:31 UTC, random wrote:
> On Saturday, 5 December 2020 at 21:38:40 UTC, Daniel N wrote:
>>
>> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.
>
> Learn to implement basic data structures like in C? (no generics 2020 wtf!)
>
> To use a weird way of duck typing in a typed language? (interfaces and upcoming generics)
>
> I don't get it too. The language is hilariously bad imho^^.

This comparison is from 2018, so it might not hold true today, but as you see the virtues of Go is the low latency incremental garbage collector and runtime:

https://medium.com/servicetitan-engineering/go-vs-c-part-2-garbage-collection-9384677f86f1

It would be interesting to compare with D.
December 08, 2020
On Sunday, 6 December 2020 at 19:37:31 UTC, random wrote:
> On Saturday, 5 December 2020 at 21:38:40 UTC, Daniel N wrote:
>>
>> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.
>
> Learn to implement basic data structures like in C? (no generics 2020 wtf!)
>
> To use a weird way of duck typing in a typed language? (interfaces and upcoming generics)
>
> I don't get it too. The language is hilariously bad imho^^.

We tend to focus on the language itself too much. Project managers care about delivering results ASAP. So they'll go for something with a matured ecosystem of tools and packages...to get things done.

December 08, 2020
On Tuesday, 8 December 2020 at 00:01:21 UTC, aberba wrote:
> On Sunday, 6 December 2020 at 19:37:31 UTC, random wrote:
>> On Saturday, 5 December 2020 at 21:38:40 UTC, Daniel N wrote:
>>>
>>> But what I don't get is, why would anyone choose Go over C# for instance, it also has an excellent ecosystem but the language is actually decent unlike Go.
>>
>> Learn to implement basic data structures like in C? (no generics 2020 wtf!)
>>
>> To use a weird way of duck typing in a typed language? (interfaces and upcoming generics)
>>
>> I don't get it too. The language is hilariously bad imho^^.
>
> We tend to focus on the language itself too much. Project managers care about delivering results ASAP. So they'll go for something with a matured ecosystem of tools and packages...to get things done.

Actually, I think there should be much more focus on fixing the language and runtime. Go builds on experience with plan9, they did not start from scratch. They had iterations that predate Go.