DEV Community

Discussion on: What are the best and worst things about your favorite programming language?

Collapse
 
isaacdlyman profile image
Isaac Lyman

It's a tough call between C# and Dart. But I think C# has the edge.

The good

  • Boring and predictable
  • Great support from Microsoft, with new language features on a regular basis
  • Concise, expressive syntax
  • LINQ (the built-in functional-style collection extension library) has everything you could ever want and makes you feel like a genius
  • First-party support for web APIs, no third-party framework required
  • Very fast for such a high-level language

The bad

  • Only portable in theory. In practicality you're locked into the Microsoft stack by convenience and defaults: .NET Framework, Visual Studio, SQL Server, Azure, Windows. Again, you can break out of this, but you'll be carving your own path through the forest.
  • Hot reloading is also purely theoretical. Most of the time it's a stop-and-recompile development cycle.
  • The configuration for .NET Framework apps is XML-based and it's a bit of a black box because the documentation is very spotty and frequently out of date. Messing around with config files is always a bad time. Contrast with Node.js, where everything is JavaScript and if something is configured a certain way, it's because you coded it that way. The difference is night and day.
  • Autoformatting/pretty-printing isn't a first-class feature and I haven't ever gotten it to work as well as Prettier works on the front end.
  • Occasionally you get fatal errors with no debugging information other than a hex dump (no, not even a stacktrace), and figuring them out can take days. I've never seen errors this opaque in any other runtime.
  • Visual Studio is much better than any other IDE for writing C#, but it's slow as hell even on a top-of-the-line development machine.