3 ms·
I would say C# dev time is rather fast. I stood up a medium size project recently without ever having used C# in a serious project before and it was pretty fast
by opportune 7y ago
I would say C# dev time is rather fast. I stood up a medium size project recently without ever having used C# in a serious project before and it was pretty fast to set up.
I'd say the main thing hindering dev time would be if you have people you're working with who need things to be done the "enterprise" way (i.e. needlessly extensible and abstracted). But if you don't have those people, it can be much faster to write than Java due to the better tooling and standard libraries.
Also less popular languages might be missing very nice features that make the quality of life of deploying/testing/etc. better, which is really important if you are just setting up a small-medium sized project where you yourself are responsible for the devops. I found C#/.NET (still not exactly sure where one ends and one begins...) very easy to work with in this regard, and I'm sure Java and Go are also probably pretty good here. But I expect C and Rust are not so good.
- giancarlostoro 7y agoC# is the language and syntax while .NET is the runtime and libraries (or Framework). Compared to Java, Java is the language, the JVM is the runtime, and the JDK are the libraries.
- nicoburns 7y agoYou might be surprised how good Rust is ops-wise. Unit testing sipport comes out of the box, and it's hard to beat a static binary for deployment (compile times are a pain for CI though). Rwgarding C#, that language and core tooling is indeed pretty nice. But I was surprised to find the library ecosystem quite lacking in some places. Basic things like JSON (de)serialization seemed pretty clunky, and the long tail of libraries I expect coming from the JS/PHP ecosystems seemed to be pretty non-existent.
- Const-me 7y ago> Basic things like JSON (de)serialization seemed pretty clunky The built-in one is.. strange. Newtonsoft.JSON is _the_ most downloaded third-party library for .NET: https://www.nuget.org/stats/packages https://www.nuget.org/stats/packages I like it, very flexible, in a good way.
- tomschwiha 7y agoThere will be a new JSON API in .NET Core 3.0: https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-apis/ https://devblogs.microsoft.com/dotnet/try-the-new-system-tex...
- nicoburns 7y agoI found it not very flexible compared to Rust's Serde (https://serde.rs/ https://serde.rs/), which is my only comparison in statically typed languages. Customising things like mapping camel case to snake case required creating whole classes.
- Const-me 7y ago> Customising things like mapping camel case to snake case required creating whole classes. The class for that is built-in: https://www.newtonsoft.com/json/help/html/NamingStrategySnakeCase.htm https://www.newtonsoft.com/json/help/html/NamingStrategySnak... The implementation only overrides a single virtual method, ResolvePropertyName https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Serialization/SnakeCaseNamingStrategy.cs#L82-L85 https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/N... so if you want some other convention, it’s very easy to create a custom class for that. Looks easy enough to me. I never actually used that part. I prefer to use names from JSON. Or if the JSON schema is really bad, specify JSON names manually with attributes, like this: [JsonProperty( "json_property_09123" )] public string MagicProperty; This way searching source code for a JSON name finds C# class serializing that property. Makes working on the code much easier, IMO.