Re:Go 2, here we come
by closeparen on Thursday November 29, 2018 @09:39PM
(#18566164)
It’s C’s lack of complexity which makes it necessary to do dangerous things for everyday purposes. I’d much rather a novice interact with generics, where the compiler is a safety net, than with void * and interface{}.
Re:Go 2, here we come
by dullgiulio on Friday November 30, 2018 @06:34AM
(#18568347)
void * and interface{} are not going away when generics come. Try searching for "Object" or "<?>" in some Java code...
Which is why Go 1's type system was a bad decision. interface{} should have never existed in the first place.
At least it'll definitely get rarer.
>> It’s C’s lack of complexity which makes it necessary to do dangerous things for everyday purposes.
That's not the case anymore. We have C++ which has generics and "fixed" C's lack of complexity for sure...Now for some 'weird' reasons some people still use C. Wonder why ?
Compare C++ to Standard ML. Simplicity is compatible with generics.
It is not the case since 1993, when CFront was dropped.
In certain domains like UNIX like OSes, I don't see C ever going away, due to the infrastructure, symbiotic relation with the OS that gave it birth, and the culture.
> Of course you can say “just don’t do that”
This exactly. The beauty of Go is that currently you do not need a book called "Go, The Good Parts".
Yes, generics would make a lot of things easier, but almost everything more complex and footgunnish.
>I believe in the future all languages will fork into a simpler novice subset for general use and an expansive language for infrastructure. These will both be valid in the same parser, but the subset will be quarantined at the package management level.
I don't think we'll see this happen much for existing languages, but it could be a very interesting angle for a newly-designed language (or rather pair of languages).
To some extent this is already happening in languages popular for machine learning. Libraries are written in C/C++ and the users just glue things together with very accessible API's.
Re:Go 2, here we come
by erikpukinskis on Friday November 30, 2018 @02:49PM
(#18572045)
It’s already happening. For example many people code in a subset of C++.
It’s true genetics will shrink some specific APIs, where they are a good fit.
But they will also be used opportunistically by developers excited to push their boundaries.
Of course you can say “just don’t do that” which works if you have a tightly controlled codebase. But most code is not that, and will be handed off to novices over and over for fixes.
So, it’s a question of whether you cater to the advanced developer who can capably handle a vast toolset, or do you commit as a community to more rudimentary tools, in order to reap the rewards of systemic simplicity.
There is no right answer.
I believe in the future all languages will fork into a simpler novice subset for general use and an expansive language for infrastructure. These will both be valid in the same parser, but the subset will be quarantined at the package management level.
Go, EZ-Go, C, EZ-C, etc
I am writing all of my code in EZ-JS