Post Ab80PD2bWxxXarNGj2 by AZR9VrKBALDGzYbmYi.hyperreal@fedi.hyperreal.coffee
 (DIR) More posts by AZR9VrKBALDGzYbmYi.hyperreal@fedi.hyperreal.coffee
 (DIR) Post #Ab80P76HcNKxAX37cu by offset___cyan@emacs.ch
       2023-10-25T10:40:51Z
       
       0 likes, 0 repeats
       
       Go is for enterprise programmers. If you enjoy expressive programming, Go is not for you
       
 (DIR) Post #Ab80PD2bWxxXarNGj2 by AZR9VrKBALDGzYbmYi.hyperreal@fedi.hyperreal.coffee
       2023-10-25T11:02:20Z
       
       0 likes, 0 repeats
       
       @offset___cyan What would you recommend in place of Go?
       
 (DIR) Post #Ab80PDlcpZyJqURDto by louis@emacs.ch
       2023-10-25T12:12:33Z
       
       0 likes, 0 repeats
       
       @offset___cyan @hyperreal @crmsnbleyd Although I'm do sometimes criticise Go for its obvious quirks, I respectfully disagree. Go does many things right. Code might not be "expressive" compared to some other languages, but it is highly readable, no matter how big or disorganised the code base might be.Also, Go might be the one language you never need Copilot because it is small, clean and features an awesome LSP server.Its strict typing makes it very easy to refactor without fear of breaking code during runtime. While that applies to all other strictly types languages, it is utterly lacking in many "expressive" languages, especially in the Lisp world, where types are assigned to values instead of variables and compile time type checking is virtually non-existent (with exception of SBCL but still very limited). Easy refactoring makes it possible to evolve your project without fear.One of the best features is its error handling. Once you get used to "errors as values", it is very hard to get back to a languages that do not have at least checked exceptions.Go programs are among the fastest and with a very small memory footprint. Having said that, yes, programming Go is boring because it "just works" and there is little to no room for creativity. No macros (thank God) and no full fledged OOP, and most of the time there is exactly one way to do something. That means "what you see is what you get" - a principle that helps beginners and experts alike to quickly find issues.Things Go could do better:Getting rid of nil for maps and slices.Introduce For, Switch and If expressions. Introduce immutable variables.Easier syntax for lambda functions with automatic type inference.I don't like that Go is driven and governed by Google, a company that I wholeheartedly despise. However, following the recent Rust drama, maybe it is not such a bad thing at all.I'm always at the look out for other programming languages but have yet to find a single one that does so many things right.#golang
       
 (DIR) Post #Ab81zlj49ONbXuESBs by AZR9VrKBALDGzYbmYi.hyperreal@fedi.hyperreal.coffee
       2023-10-25T12:30:30Z
       
       0 likes, 0 repeats
       
       @louis @offset___cyan @crmsnbleyd I'm also not 100% on what you mean by "expressive". Do you refer to the language's flexibility in having many different ways of doing things?
       
 (DIR) Post #Ab8EaPBY7M0Dnmn6YK by offset___cyan@emacs.ch
       2023-10-25T14:51:37Z
       
       0 likes, 0 repeats
       
       @louis @hyperreal @crmsnbleyd For what it's worth I agree with everything you've said here give or take (sans the point on copilot, i don't think anyone needs copilot (or everyone needs it, to the same extent))