5 ms·
Go is a popular language. A common criticism is lack of generics. Go has sought advice from the type theory community. This is the result. What alternative for
by eeh 6y ago
Go is a popular language. A common criticism is lack of generics. Go has sought advice from the type theory community. This is the result. What alternative for Go do you know of that doesn't involve going back to 2001 technology?
- enitihas 6y agoThey could have gone to 2001 technology way back. The Go FAQs say -> > " We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it." I mean if you are going to use 2001 technology, you could have found it long back.
- pjmlp 6y agoYet, they acknowledged it was a mistake not to consider them. > In three years of Go surveys, lack of generics has always been listed as one of the top three problems to fix in the language. https://blog.golang.org/why-generics https://blog.golang.org/why-generics By the way, they could have gone to 1974 (CLU), 1973 (ML), 1983 (Ada), 1986 (Eiffel), 1988 (Modula-3), 1990 (Sather & BETA), 1998 (C++), 2007 (D), 2009 (Java & Delphi). These are just the most well known examples, CS literature in SIGPLAN and IEEE has plenty more to choose from. I bet Google employees can afford the respective subscriptions. When there isn't any political willingness, there isn't anything to be found.
- throwaway34241 6y agoYou're commenting on a paper by expert programming language theorists describing a design that is both complex and (in some aspects) novel. Almost certainly an element of getting these people to work on it is Go's existing popularity, it's mentioned in the second sentence of the paper. If I understand you right, you are suggesting that instead of doing what they are doing now, they should have just used an existing design from your list, right from the beginning? Is there any specific design from your list that you think would have been good to use in Go? Or, do you think it would have been better to have a less-capable generics implementation available right away instead of a more-capable one later? For example the one you mention the most (Java) requires code duplication to work with 32 and 64 bit floats. I think even the previous proposals that have been rejected for Go have at least had that ability.
- pjmlp 6y agoYes, right from the beginning. Java isn't the only language to chose from.
- geodel 6y agoHuh, if there are so many languages to choose from then people can choose one of those. Go will die its natural death. Where is the problem?
- pjmlp 6y agoThe problem is that like with JavaScript in the browser, some of us do have to put up with Go when dealing with k8s, even if we rather not. Secondly, I also kind of like Go, just see it as lost opportunity to have been with little more than a C like type system, even C has some genericity support in the meantime. And whatever gets out of it, will be rather clunky as proven by late adoption in Java.
- throwaway34241 6y agoIt’s hard for me to believe that it is as simple as you suggest, considering the large amount of work put in by the Go team already, and the even larger amount of work put in by other programming language implementors to eventually arrive at various (different) design points. Work which often takes many years like C++ concepts. Not to mention the open invitation for concrete proposals on how to add them Go. You might find this post by one of the Go team members interesting: https://news.ycombinator.com/item?id=9622417 https://news.ycombinator.com/item?id=9622417
- pjmlp 6y agoAs proven by the lack of progress, that invitation has just political value, it allows posts like yours when these discussions take place. For example, while Valhalla has taken several years so far, OpenJDK team has experimental builds that you can go and play around with value types in Java. Where are the experimental builds for generics support in Go?
- etse 6y agoThey weren't convinced at the time. Now they feel compelled to act. How is this political?
- pjmlp 6y agoThey have been saying that for years now. Yet nothing to show other than an half finished code repository.
- hu3 6y agoSorry someone forgot to tell them that they should follow your priorities. On another note, every other Go thread has you and @pcwalton bashing Go. Makes me wonder if Go's success causes some sort of discomfort in some people. It's almost religiously guaranteed to have you both regurgitation the same crap over and over.
- bmurphy1976 6y agoJesus! They are building software for themselves that prioritize the things they want and need, not some rando commenters on social media. They have every right to go about things their own way and succeed or fail based on that. So far it seems to be working and a lot of people are quite happy with the results (myself included). You seem to be particularly upset by this. Why is it so terrible?
- deleted 6y ago[deleted]