4 ms·
Not quite. It has extra things too, like generics. But things that exist in Go are there too, mostly unchanged.
by wowoc 10y ago
Not quite. It has extra things too, like generics. But things that exist in Go are there too, mostly unchanged.
- jerf 10y agoFirst, generic disclaimer: To the extent that you just want to have fun and learn things, please be my guest. The rest of this post is suggestions from the point of view of whether you might want others to adopt it in the future. That "mostly" in "mostly unchanged" is a problem. Have should probably be either significantly radically different from Go, so that when I use it I'm not confused, or it should be as similar to Go as possible except that it adds some features, so that it seems like a nice add on. Rewriting syntax that ends up really just being a gloss on the existing syntax (i.e., not really allowing much new expressiveness) is just a hurdle to the language; it's a hurdle to your implementation, a hurdle to anyone picking it up and using it, and a long-term burden of trying to explain the slight differences to everybody. See, for instance, the Python 2 vs. Python 3 pain. Since it seems to me the major feature of Have is giving Go generics, I suggest comparing with some other things already out there: https://github.com/sasha-s/go-inline https://github.com/sasha-s/go-inline , and I also reference the projects mentioned in the FAQ. I am not saying these things solve the problem, but you may want to compare notes and steal (in the "good artists borrow, great artists steal" sense) the good things if you can. You might also find it helpful to contact the authors or users of those projects and ask about pain points.
- witty_username 10y agoThe differences between Python 2 and 3 are not just syntax. Fixing syntax is easy; 2to3 can do that.
- jerf 10y agoConsidered from the point of view of the entire language landscape, the point is that they were minor little changes. Python 3 is not anything like the way Perl 6 should never have been named "Perl" at all... it's the same language with some minor fixes that did not bring benefits anywhere near commensurate with the costs. (It was one of the great learning experiences of my software career, because I was full-throatedly in favor of Python 3 back when it was proposed. My support counted for nothing, so I'm not "responsible" for it in any way, but I still was very wrong.)
- witty_username 10y agoIf they were minor changes then 2to3 should work perfectly. But it doesn't; for example 2to3 can't always fix the shift to Unicode by default.