Originally posted by squash
View Post
Announcement
Collapse
No announcement yet.
Go 1.18 Released With Generics, Fully Integrated Fuzzing, ~20% Performance Improvements
Collapse
X
-
The "up to 20% performance improvement" due to the calling convention change (using registers instead of the stack) is for non-amd64 platforms like ARM64. That change was already implemented for amd64 in Go 1.17:
- Likes 4
Comment
-
Originally posted by squash View PostGuys, if Go was "more like java" or "more like rust" then what would be the point of Go?
Go programmers don't care that you prefer how Java's exceptions work vs checking and handling errors immediately, in fact most of us think Java's exceptions (and classes!) are a glaring example of how not to do it. If we liked the way Java did things, we'd use Java.
If it's not your thing, if you really just want to create Factory Factories all day and throw exceptions for things that aren't exceptional, your needs are well covered and keep on keeping on.
I want alternatives, not copies. Go is a great alternative. So is Rust. So is Haskell. They all serve their purposes.
- Likes 5
Comment
-
Also when it comes to Generics in modern actively developed languages: Those who fail to implement Generics from the start of a language are doomed to implement it poorly in the future
- Likes 2
Comment
-
Originally posted by Luke_Wolf View Post
Rust and other similar ML derived languages' Result<T> and Option<T> are just the right way to do it vs Exceptions or the C or Go way of error handling. It expresses to the caller that an Error may occur or that a result may not exist (which is different from an error) and forces you to handle the case when it comes up. No weird excessive handling, no jumping around in code.
Also when it comes to Generics in modern actively developed languages: Those who fail to implement Generics from the start of a language are doomed to implement it poorly in the future
Somehow Go manages to be a successful and popular language despite vocal objections from people who have their own favorite languages.
- Likes 1
Comment
-
I'm not saying every language should be the same and all that and I get the point of being different.
But discussing things and criticizing what you don't like about a given thing is never something bad if done for the right reasons and in a civil and constructive manner.
That's what forums are for, not just flame wars :-)
- Likes 2
Comment
-
As someone who learned programming concepts with Go as the first language I've got to say I really like the error handling. I thought it made sense to read the documentation, or more realistically look at the intellisense tooltips, for every function that could return an error. Then you read the description of the error possibilities and decide how to handle it immediately after calling the function.
It's also why I had a vscode snippet where all I had to do was type "terr" and tab, short for terror, to get
Code:if err != nil { }
When I learned about Try/Catch as the standard for error handling my first thought was "I don't think I'd be able to trust anyone not to screw this up".
Going to try my hand at learning some C# since my current workplace is a Windows shop and they're trying to use powershell as a programming language there and coming from Go I feel like it's missing the powerful intellisense features I was spoiled on. Using Rider with C# is a big step up from trying to work with powershell in vscode.
- Likes 2
Comment
-
Originally posted by squash View Post
Honestly these sorts of posts are like.. "Hey look at those guys over there having fun. I'm not having fun which means they shouldn't either! I'll tell them what they're doing is wrong."
Somehow Go manages to be a successful and popular language despite vocal objections from people who have their own favorite languages.
So, no, it's not a matter of taste, it's a matter of wasting time, money and, most importantly, energy.
Go is a plight on the world just like Java and Python are, bogging down systems and wasting energy while people rush to get funding and resources to invent ways out of the hole they dug themselves in by making the mistake of naively choosing those technologies.
You want to write a toy as a hobbyist, go ahead, use whatever esoteric language you want. But don't think it's just a matter of personal taste if you're talking about creating actual business software. Simply assuming people are just "bitter" or "not having fun" is extremely ignorant.
Comment
-
Originally posted by Luke_Wolf View PostAlso when it comes to Generics in modern actively developed languages: Those who fail to implement Generics from the start of a language are doomed to implement it poorly in the future
Comment
-
Originally posted by Luke_Wolf View Post
Rust and other similar ML derived languages' Result<T> and Option<T> are just the right way to do it vs Exceptions or the C or Go way of error handling. It expresses to the caller that an Error may occur or that a result may not exist (which is different from an error) and forces you to handle the case when it comes up. No weird excessive handling, no jumping around in code.
Also when it comes to Generics in modern actively developed languages: Those who fail to implement Generics from the start of a language are doomed to implement it poorly in the future
Comment
Comment