4 ms·
This is perhaps the most obvious example yet of what PG described as "taking features from Lisp and gluing them to C". That's not necessarily a bad thing -- th
by ken 8y ago
This is perhaps the most obvious example yet of what PG described as "taking features from Lisp and gluing them to C". That's not necessarily a bad thing -- this is a great and useful feature, and one I frequently miss when using C-family languages.
I wonder, though, at what point a programming language collapses on itself, from too much syntax. I haven't used C# since the 4.x days, and I recall back then it was already on the verge of being too complex for me to fully understand. Admittedly my personal threshold of complexity is lower than most programmers', but this is a really big language. Do they plan to keep adding syntax indefinitely?
At some point, it's going to have to get eclipsed by something else. The next generation will be as effective a tool, for the kinds of things most people want to make, and not too complex for most people to understand. Perhaps part of that would consist of just using expressions for everything from the start.
- ramenmeal 8y agoThis is my feeling as well. I suggested that a c# lite or a rethinking of c# would be awesome. I got downvoted to oblivion though. But I do think that there's too much mental capacity used just reading c# if the code really uses all the features of it. I like go lang cause of this, but go is a bit too far on the other side of the spectrum for me.
- yarg 8y agoHaving something more akin to typescript's strict compilation might be more reasonable. You'd mark out older syntaxes/APIs as restricted or deprecated and compilations would yield warnings or errors (when those features were used) depending on the compiler level. This would allow new projects to be developed using only the newer (standard) syntax, while allowing a transitional vector for older projects.
- xkapastel 8y ago> I suggested that a c# lite or a rethinking of c# would be awesome. "a rethinking of C#" is a good description of F#.
- zamalek 8y ago> I like go lang cause of this I'm a huge fan of C#, but the lack of features makes Go so damned pleasant to read. As an extreme example, the new C# record type really breaks the neurons I have dedicated to the language: public struct Pair(object First, object Second); As soon as I see parenthesis, it's a method. I want record types, but that syntax is foreign. I wish Anders would spend a few months back on the C# team, he has a great knack for keeping things as consistent and minimal as possible.
- apta 8y agopublic struct Pair(object First, object Second); Scala, Kotlin, Rust among others use the same or similar syntax.
- dmitriid 8y ago> I haven't used C# since the 4.x days, and I recall back then it was already on the verge of being too complex for me to fully understand. I can't say it's complex. If anything, the complexity has been reduced with local type inference and lambdas. I think you wouldn't be able to tell C# from Javascript these days :)