7 ms·
Go isn't designed to feel mature, it's designed to be boring and effective. It's designed to keep code complexity low even as the complexity of problems and sol
by tylerl 7y ago
Go isn't designed to feel mature, it's designed to be boring and effective. It's designed to keep code complexity low even as the complexity of problems and solutions increases. It's designed to allow large teams of medium-skill programmers to consistently produce safe and effective solutions. The most precise description ive heard to date is: "Go is a get shit done language."
- dev_dull 7y agoI didn’t read the thesis for each implementation, but it would have been cool to see how long it took an engineer to write each network driver. I bet the Go version, while definitely not the fastest, was one of the fastest to finish.
- pjmlp 7y agoBasically it is designed for writing boilerplate libraries and code generators to cover up lack of language features, which even well known projects are forced to make use of (k8s). I bet a G2EE variant isn't too far away.
- grumpydba 7y agoYet in the infrastructure side, it's much more used than c#. Go figure.
- gpderetta 7y agoAs someone that is neither a C# or Go programmer, I would be very surprised if that's true.
- travisjeffery 7y agoHere's a list of prominent Go infrastructure projects and by no means a complete list: Kubernetes, Docker, Etcd, Consul (and the rest of Hashicorp's projects), CockroachDB, Prometheus, TiDB. Maybe I'm just blind to C# but I don't remember coming across a single similar project that's written in C#.
- pjmlp 7y agoAzure, Orleans, ASP.NET, Windows,SQL Server, Bing, IIS, Kestrel,... Yep, they aren't pure C#, still way more relevant to the world IT infrastructure than anything Go.
- grumpydba 7y agoSql server written in C#? Please. None of it.
- kerng 7y agoDepends on what parts, entire products of the Sql server product line are in C#, like Sql Server Reporting Services for instance. The core sql server rdbms engine is hosting the .net runtime for a few things - but there its maginal compared to C++.
- pjmlp 7y agoThen better learn how to use it properly, specially .NET stored procedures, OLAP engine and SSMS.
- grumpydba 7y agoYou also have python and R stored procedures. Is it written in python?
- pjmlp 7y agoYou again. What infrastructure, those riding the consulting and conference Docker and K8s 2019 wave fad?!?
- grumpydba 7y agoRight now I'm using prometheus and grafana to monitor around 8k database servers (sql server too BTW). We have pricing applications using influxdb. Docker. Openstack. Minio. We also have mattermost. All of this in a conservative big bank. My friends in the banking sector tell the same story. True there are lots of c# enterprisey web apps. However given the amount of boilerplate you describe, I cannot understand how such useful and reliable tools can be delivered in Go. A hint:just because a language is not to your liking, it does not mean that it is not useful, performant and reliable.
- geodel 7y agoIt is already there in some form as 'Go Cloud Development Kit' [1]. Though many claim it is not really enterprise scale until a petstore application can be created in it. And a flawless implementation of EJB 2.1 made enterprise fall in love J2EE. I am not sure Go can deliver anything remotely powerful as that. 1. https://gocloud.dev/ https://gocloud.dev/
- kerng 7y agoC# 1.0 was also boring and effective - modern versions are still effective, and I'd say they are more powerful. Golang in 15 years will likely converge and embrace many of the missing features of mature languages (its happening now already), especially if it wants to reach broader adoption. A reference like "Go is a get shit done language." very much reflects overall immaturity of the language that I see day to day.
- grumpydba 7y ago>Golang in 15 years will likely converge and embrace many of the missing features of mature languages (its happening now already), especially if it wants to reach broader adoption. Go is 10 years old already and picking new features at an extremely low rate, with no hints at a pace change. I think error management and generics should be the only major changes to expect within the next 5 years. C# is more complex by an order of magnitude... And thus its evolution was and is still way faster.
- mlindner 7y ago> It's designed to keep code complexity low even as the complexity of problems and solutions increases. Honestly I think that's pretty wrong. Go is designed to let you get coding quickly. It's not designed to make your ultimate solution well designed are easily refactorable. In a few years there's going to be a ton of Go code that becomes almost as bad as C where it becomes untouchable because people quickly threw something together and didn't think about long term design.