exercism / csharp

Exercism exercises in C#.
https://exercism.org/tracks/csharp
MIT License
344 stars 346 forks source link

Update about information to make it more detailed #367

Closed ErikSchierboom closed 6 years ago

ErikSchierboom commented 7 years ago

With Exercism V2, a language track's about page can be quite detailed. With the help of markdown, the resulting page can look beautiful and have quite a bit of information. Our about page currently renders as follows on the V2 website: https://v2.exercism.io/tracks/csharp

It's not bad, but consider the Haskell track's page: https://v2.exercism.io/tracks/haskell Much better IMHO! I think we should follow Haskell's lead here and be more verbose on what makes C# great, by showcasing a couple of C#'s best features (tooling, LINQ, async/await, cross-platform, etc.)

The about information can be found in docs/ABOUT.md.

robkeim commented 7 years ago

I just checked out v2 of the site for the first time... it's looking awesome!

ErikSchierboom commented 7 years ago

It is, isn't it? If you decide to check it out and find any issues, you can post them here.

Warlaan commented 6 years ago

The about page seriously needs an update. There are a lot of good things to be said about C#, but half of the things currently on the about page I strongly disagree with.

"The learning curve is small, reduced even if the developer has experience with other 'C-style' languages." I have no idea how C# managed to pull off that popular misconception, but it's just plain wrong.

I would say: "C# is designed to resemble other 'C-style' languages, allowing you to be productive very soon.". Saying that the learning curve was small is just plain wrong. Just try to explain the difference between classes and structs, or list and explain the different access modifiers. There's just more to learn in C# than in almost any other language. Which is actually the one thing that is so great about that language - if there is a feature that could be implemented it probably already is. First class functions? Check. Writing unmanaged code in a managed language? Check. Language interoperability? Check.

So if there are so many good things to be said there's no need for false advertising. And there certainly are better features to be listed than C#'s "type inference" (try F# as a comparison - what C# has is not type inference, it's just 'not typing the type name twice on the same line'). And async/await is technically not a feature but a pair of keywords.

Also if you mention .Net Core you should also mention that the Mono project has made C# available cross platform for several years now.

I don't have time right now, but I'll come back later and post a suggestion for new version of the text.

ErikSchierboom commented 6 years ago

@Warlaan Thanks for the feedback! Looking forward to your suggested changes.

Warlaan commented 6 years ago

I created a PR with my suggested text: https://github.com/exercism/csharp/pull/509

martinfreedman commented 6 years ago

My PR follows the format of the Haskell page, borrowing from the C# wikipedia entry with my own additions and incorporating items from @Warlaan

ErikSchierboom commented 6 years ago

Closed by #512.