top | item 30520368

(no title)

slx26 | 4 years ago

Programming languages are lacking because they are too stuck in the "implementation plane" while trying to deal with lots of "system design" problems. Generics, traits, interfaces, union types and others are fundamentally targeted at giving developers more expressive power to describe the systems we are designing. We know there are many parts we could swap around, using different implementations, connecting some pieces here and there... and the system should make sense and work. We can see that it must work! But these features are trying to resolve problems from a very closely-connected but still different domain, and that's why we see so much friction when trying to use them. We try to encode system-level patterns in the implementation, and there's gonna be friction. We can see that these features give us power, and that's why we like them, but we also see the problems they cause, and that's when we get cold feet and say "yeah... maybe it's not such a great idea".

I'm actually really happy to get generics in golang, and I'm happy with the team giving it as much thought as they need, but we are only gonna get so far within the current paradigm of trying to model the universe from a few text files. Generics are nice, but we shall do better in the future!

discuss

order

geodel|4 years ago

Right. Basically Go team is lacking big picture thinkers like this[1]

1. https://dilbert.com/strip/1994-12-17

zozbot234|4 years ago

Go generics were designed with plenty of cooperation from the PL research community. While some complexity to the design may be unavoidable, it's the farthest thing from just having a hacked-together feature with no "big picture" thinking underneath. Very similar to how generics were added to Java, in fact/

slx26|4 years ago

Golang is my favorite language, and I really like the approach that the team takes. A few days ago I shared here some interesting comments from Griesemer on Golang enums.

But sure, let's not give any ideas or question anything ever again, someone might get offended.

turminal|4 years ago

Some of the people behind go are the living example of how far you can get with a bunch of text files and a good model around them.

(The answer is very far)

pjmlp|4 years ago

We don't need Go for that, Oberon already made that point, we got a full graphical workstation OS out of it, in 1992.