HN user

overcyn

676 karma
Posts3
Comments173
View on HN

So really this isn’t a discussion about the design of Go (of which Ken Thompson was a part of) but just a chance to trash on someone you don’t like.

I am not Rob Pike and therefore cannot provide proof of his grasp of type theory. But I also don't understand the desire to question and debate the knowledge of someone I've never met and has no influence on my life.

I have used Go extensively and would disagree with the idea that the lack of generics in go was ill-informed (and therefore a mistake). I find that Go's limited number of features leads to simpler libraries that are much easier to comprehend and use effectively. And in situations where I previously would have reached for generics I am forced to find a different approach and the end result is often better. Yes it does have its drawbacks and is not a perfect solution, but as far as engineering decisions go, I feel it was a successful one.

No the two conflicting statements are.

1. Go doesn't have generics because the authors didn't have strong grasp of type theory.

2. Go doesn't have generics, not from a lack of knowledge, but because the authors' real world software engineering experience had shown to them it wasn't important.

Are you saying that it is a bad thing. But since it is happening it should happen to everyone? If so, it just seems like you're propagating more of bad thing.

Why not just advocate for the the corporate world to be more accepting of personal life choices? Firing Kaplan doesn't get you any closer to that.

you can be fired or suffer repercussions by your employer, for things that you do on your own personal time

Yes this happens, but should it be the case? Is this something you morally support? Should people be fired for smoking weed in their personal time? Posting on social media? Making a joke to a friend? Donating a political campaign?

People have been fired for these things but I don't think it should be lauded. I don't think its healthy for companies to monitor their employee's personal life, so they can punish them at work.

It seems presumptuous to assume that because you reuse all your plastic shopping bags the rest of the population also behaves similarly. Can you cite a study that shows plastic bag bans increasing the total use of plastic or plastic waste like you claim? Everything I find says otherwise. Maybe a little bit of inconvenience is necessary to improve the environment.

User's wouldn't be able to depend on version v1.0.0 if it doesn't exist. From what I understand the tool isn't downloading the list of all versions from GitHub and selecting the minimum. Its searching for the maximum version number (i.e. minimal required version), from your go.mod file and all your dependencies' go.mod file.

iPhone X Teardown 9 years ago

Yeah I don't know the slightest about electrical engineering but the spacer that servers as a connector struck me as super clever.

Repasting my comment from below, but Matcha is actually based on top of gomobile, albeit with a bunch changes to fit the needs of this framework. Gomobile provides language bindings and Matcha adds a usable component library on top of that. It serializes Go data structures into protobuf, passes it through to iOS/Android and creates the necessary views. Matcha also does all the layout, event handling etc.

UI is the difficult part in my opinion. iOS and Android take different approaches to building apps so even if you had a language that perfectly compiled to both Swift and Java, the code to build your views would end up diverging significantly without some sort of component library.

The bridging happens through Cgo and JNI. bridge/matchaforeign.h contains the functions that Go implements that can be called by ObjC/Java and bridge/matchago.h are the functions that Java/Objc implements that can be called by Go. Everything else is built on top of that.

You can definitely mix native and dynamic views. Theres an interface for registering custom views with the framework. It doesn't need to take over your entire app either. Matcha gives you a view controller, which displays the Go stuff, but that can be presented however you like.

This is actually based on top of gomobile. Gomobile provides language bindings and Matcha adds a usable component library on top of that. It serializes Go data structures into protobuf, passes it through to iOS/Android and creates the necessary views. Matcha also does all the layout, event handling etc.

Yeah unfortunately, those are downsides that I don't think will change unless we get Go on wasm or something similar. Go brings its own advantages though. Fast, static typing, goroutines, theres no need for JSX, etc. And personally the JS ecosystem doesn't appeal to me at all.