Completely agree about "Generics are useful except when their syntax becomes cryptic". But reading this proposal (quickly, while doing a bunch of other stuff :), the syntax is very clean and the proposal is very well thought.
On Thu, May 30, 2019 at 10:44 AM Michal Strba <faiface2...@gmail.com> wrote: > I agree with that. What exactly do you consider cryptic, though, about > my proposal? I thought the syntax was very clean. Furthermore, > regarding relating this to C++, I quote: > > > Just to make it clear, you aren't allowed to use operators like +, -, <, > call methods, or access struct fields of a generic value > > I'm just not sure how your sentiment relates to the proposal. > > št 30. 5. 2019 o 19:41 <lgod...@gmail.com> napísal(a): > > > > Sorry again for the power failure...let me try one last time > > > > one of the annoying things you have to deal with as a team member is > being assigned an "update" of code written by someone who no longer works > for the team. > > What makes this annoying is possibility of running into code sections > that contain "crytic" statements that require lots of effort to understand. > > After looking at the link you provided, based on my history dealing > with unnecessary and avoidable 'cryptic C++, > > my input is: Generics are a great idea EXCEPT when they allow use of > cryptic syntax > > > > On Thursday, May 30, 2019 at 12:29:03 PM UTC-4, Michal Strba wrote: > >> > >> Hi Gophers! :) > >> > >> I've been thinking about generics in Go 2 ever since the original > contracts proposal and few days ago, ideas finally clicked. One of the main > things about this proposal is that it deliberately omits the ability to > restrict the set of types a function can work with. This is a limitation, > but I hope to convince you that we can still do a vast majority of the > things we were missing, when we were missing generics. > >> > >> I'd love to share my proposal with you and engage in a good faith > conversation. > >> > >> Link to the proposal. > >> > >> Here's what the proposal covers: > >> > >> 1. Syntax of a new gen keyword. > >> 2. Generic functions. > >> 3. Unnamed generic arguments (a.k.a. a way to gve a type to the > built-in new function). > >> 4. Semantics of generic values (ability to use them as map keys, ...). > >> 5. Generic array lengths. > >> 6. Reflection and interface{}. > >> 7. Generic types (with two examples: List and Matrix). > >> 8. Generic methods and their limitations due to reflection. > >> 9. Generic interfaces. > >> 10. List of things this proposal can't do. > >> > >> Thanks, > >> faiface > > > > -- > > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to golang-nuts+unsubscr...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/4e266f34-32d8-4b3d-8f45-55da5651ed9e%40googlegroups.com > . > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAO6k0usA%3D6EdH6mpTPqYnpnEBWNu8GST%2Bam-G2rQEZNPGUPC7A%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANKfuca%2B_CYJ59nSfB8n3zq8D0acXEcfHvV3HtyQEHmZ9xnAAw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.