5 ms·
Try Go. Go is really stable as a language and have a very small core feature set.
by egnehots 2y ago
Try Go.
Go is really stable as a language and have a very small core feature set.
- leetharris 2y agoThis is easily the most appealing thing to me about Go. I learned Go through the "Learn Go with Tests" way and I had a ton of fun. It is hard for me to recommend using Go internally since .NET/Java are just as performant and have such a mature ecosystem, but I crave simplicity in the core libraries. Here's the link for anyone considering learning Go: https://quii.gitbook.io/learn-go-with-tests https://quii.gitbook.io/learn-go-with-tests
- totallykvothe 2y ago.NET/Java are only as performant as Go if you completely ignore memory usage and focus only on time.
- pjmlp 2y agoSpecially if one is ignorant on how to write proper .NET and Java code.
- BoppreH 2y agoAnd startup time. JIT languages are a bad match for command line applications, for example.
- GOATS- 2y ago.NET can do ahead-of-time compilation now, there are a few gotcha's but it's usable. https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=windows%2Cnet8 https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...
- metaltyphoon 2y agoThis is almost as bad as saying .NET is windows only.
- neonsunset 2y agoOpenJDK and .NET compilers run circles around Go one. It's not even close. The second you go beyond "straight-line" code where function body has limited amount of locals and does not make much calls, the difference becomes absolutely massive. Go also does not do any sort of "advanced" devirtualization that is bread and butter of both to cope with codebase complexity and inevitable introduction of abstractions. Hell, .NET has surpassed Go in compilation of native binaries too. Here's a recent example: https://news.ycombinator.com/item?id=41234851 https://news.ycombinator.com/item?id=41234851 In terms of GC, Go has specialized design that makes tradeoffs to allow consistent latency and low memory usage. However, this comes with very low sustained allocation and garbage collection throughput, and Go the language itself does not make it necessarily obvious where allocations happen, so, as sibling discussions here and under Go iterators submission indicate, this results in the amount of effort to try to get rid of all allocations in a hot path that is unthinkable in C#, which makes it much more straightforward, and is also able to cope with high allocation throughput with ease, much like Java. It is indeed true that Java makes different design choices when tuning its GC implementations, but you might see much closer to Go-like memory usage from .NET's back-end services now that DATAS is enabled by default, without the tradeoffs Go comes with.
- randomdata 2y ago> Go also does not do any sort of "advanced" devirtualization Depends on the implementation. gc doesn't put a whole lot of effort into optimization, but it isn't the only implementation. In fact, the Go project insists that there must be more than one implementation as part of its mandate.
- neonsunset 2y agoGoGC is the fastest overall implementation and the one that is being used in >95% cases, with the alternatives not being-up-to-date and producing slower code, aside from select interop scenarios. Until this changes, the "Depends on the implementation" statement is not going to be true in the context of better performance.
- kinjba11 2y ago
- claytongulick 2y agoI would be a huge fan of go, but json is just too big a hassle to deal with in go compared to JavaScript.
- madeofpalk 2y agoGo is an excellent language for people who turned off C# or Typescript, for better or worse.
- tgv 2y agoThat's not me, and I use it. I like TS, but in the browser. It has not much use elsewhere, certainly not in the backend. Go is not only simple and stable, it's quite flexible, has a good eco-system, a wonderful build system, and is really fast and light at runtime.