Hacker News new | past | comments | ask | show | jobs | submit login

You are obviously free to dislike C#, but it seems silly to say they should stop adding features or should remove features.

> Did we really need all those features?

If you don't need them, don't use them. I've found the new features to be great. nameof, string interpolation, property initializers, exception filters, static imports, null propagator. And if you haven't used the language in awhile going back to 5.0 the async await features are fantastic. 7.1 introduced async Main which we've started using in console apps. I use all of these features every day.

> I would love it if I saw a new version of a language come out and it removes language features

Why, exactly?




1. Some people dislike languages with a large instruction set

2. I will propose that programming languages are like anything else created by humans - some parts great, some parts not that great. Furthermore some parts of a language are used more than other parts, it should be hoped that the parts least used in any particular language are parts of that language that are not that great. Given these things it might be reasonable that some time you saw a new version of a language in which they said Feature X really sort of didn't make sense and anyway hardly anyone ever used it so we are removing Feature X. Adjust code accordingly. (probably there should be deprecation stage of a year or so with warnings)


Even human languages aren't not fully used.

There are multiple levels of understanding, regionalisms and specialized technical terms that few get to use.


And that works in language -- its terrible when you are trying to make computers do very specific things in specific scenarios. It leads to hiring nightmares as well. "Oh I write language X in this style, not familiar with your style"


My simple go-to example is tuples. They are on the third attempt to introduce that feature. First was generic Tuple.Create. Did not support naming individual fields. Then came anonymous classes. Those could only be used where type is inferred. The latest are using braces... most powerful, but also syntactically quite different from what came before.

I like C# adding new features, and understand some try-and-see-what-sticks is unavoidable. But I don't understand them not deprecating the old versions. And still wonder if improving an earlier version would have been possible/better.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: