11 ms·
I'm an F# coder in a company of C# "dark matter developers". (Thanks for that term!) There's no ecosystem I'd prefer to be working in than .NET.
by brianberns 8y ago
I'm an F# coder in a company of C# "dark matter developers". (Thanks for that term!) There's no ecosystem I'd prefer to be working in than .NET.
- samblr 8y agoCould you elaborate on what are missing parts in other ecosystems than .net/c#
- brianberns 8y agoI don't have a lot of recent experience with other ecosystems, so take what I say with a grain of salt. With that disclaimer in mind: * Visual Studio is the best IDE, bar none. It's a pleasure to use and Microsoft keeps it up to date so it's usually bug free for normal use. I don't even know what its serious competitors are. Eclipse? VIM? Forgive me for not knowing. :) * C# is the best OO programming language (if you don't need the raw speed of C++ or, I guess, Rust). Java is a disappointing mess controlled by, yes, Oracle. Python and other dynamically typed languages are fine for scripting, but not for developing complex professional software. * F# is the best functional programming language for getting stuff done. In fact, it's the best language for getting stuff done, period. Haskell is amazing for its mathematical purity, and I've learned so much about FP and category theory from the Haskell community, but F# gives you immediate access to the zillions of packages created for the .NET ecosystem and is totally compatible with C#. You can also use F# for imperative OO programming when you need to (which is almost never). * SQL Server is the best RDBMS. Oracle is painful. The open source databases (PostgreSQL, MySQL, etc.) have come a long way, but still don't have SQL Server's combination of power and ease of use. NoSQL databases are interesting, but seriously lacking in important features. I've yet to come across a use case where I would actually want to use one. (Special demerit to MongoDB for using JSON as a query language. Good lord.) * Windows is fine. It's not Unix/Linux, but it lacks for nothing. If I had the time to investigate other ecosystems, I'd like to pick up Rust and Haskell. I'm afraid that Python and JavaScript will eat the entire world, before then, though. :) All of the above is massively IMHO, obviously.
- wbl 8y agoDoes C# have multiple dispatch ala CLOS?
- brianberns 8y agoNo, it has single dispatch virtual methods, a la C++.
- amluto 8y agoHaving switched from the Windows ecosystem to Linux a while back, I have a few comments: I don’t know how bug-free VS is now, but VS 2005 and 2008 were buggy in problematic ways. Support was friendly, but the bugs didn’t get fixed quickly. IntelliType (for C++) was nifty bug extremely buggy. Switching to emacs was a major step back in usability, but it was enormously faster and it tended to just work. C# has a top notch compiler. Sadly, MS’s C++ compiler was, and mostly still is, pretty bad. Getting off of Windows was a big win. Managing a Linux machine is much nicer, and, when something doesn’t work, you have a better chance of figuring out why. I have no experience with SQL Server. MySQL and PostgreSQL both sucked back then.
- brianberns 8y agoHonestly, C# has replaced C++ for the large majority of Windows application developers. Developing C# apps in Visual Studio is basically frictionless in a way that C++ will never be. C++ as a language (regardless of IDE) is a major pain in the butt.
- amluto 8y agoMy big Windows program wasn’t a Windows “application”. It was high performance software that happened to run on Windows. C# was not even close to being in the running. If we were starting from scratch, Rust would be a credible contender.
- platz 8y agoI think Haskell is a very nice general purpose language. I think of it as a better Java. There's no need to think of it as a scary academic thing, unless one focuses on the wrong kind of blog posts. https://patrickmn.com/software/the-haskell-pyramid/ https://patrickmn.com/software/the-haskell-pyramid/