avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Saturday June 19, 2021, 5:02 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - oldfogie [ switch to compact view ]

Pages: [1]
General Software Discussion / Re: Why the aversion to .NET Frameworks?
« on: November 16, 2010, 04:10 PM »
I don't know if I would qualify it as hate so much toward Microsoft as much as, instead, Microsoft hates me.  My beef with Microsoft is their horrible, horrible solution to DLL Hell:  Fusion - better known as Side-by-Side assemblies - that whole WinSxS directory thing.  .NET further propagated that abomination.  Manifests, etc. have made life as a Windows programmer a living hell.  At least I could deal with DLL hell.  Most people don't even know where to begin when Fusion craps out - with the only "solution" being to reinstall the OS, which is hardly a solution.

And don't get me started on MSI.  The slowest, second most bug-ridden piece of junk installer technology on the planet - second only to InstallShield.  Take a good long look at how package managers for Linux work (esp. Ubuntu) and then tell me that MSI is anywhere on par.  (Hint:  It isn't even in the ballpark let alone the parking lot of the ballpark.)  I dislike *NIX for various reasons too but the latest package managers completely blow away MSI.  Yeah, I'm still waiting for someone intelligent to come up with an OS that isn't horrible.

You mention Paint.NET.  Photoshop starts faster than Paint.NET.  Like Java's early days, .NET, overall, has serious performance problems.  The startup time for any .NET app is magnitudes slower than any equivalent native solution.  .NET is interpreted bytecode - but without the decade or so of refinement that Java has.  I dislike Java too but for different reasons.  But some really popular apps are written in Java and those years of refinement are finally paying off.  Barely - but not in time - Oracle had to buy out Sun to keep them from going completely bankrupt.  I can't name a single .NET application that is recognized by major publications that ordinary users might use beyond Paint.NET.  That's because they don't exist - even Stack Overflow can't seem to come up with a list beyond Paint.NET and Visual Studio.

I've seen a few mentions of Mono.  But who actually USES Mono?  Even among my *NIX friends I don't know anyone who actually USES it.  They've played with it but there is a significant difference between playing with something and USING something.  They'd rather write the application in C++ (yay!), Java (meh), or Flex (bleh).  Mono has an unfortunate name too - being named after the "kissing disease", IMO.  Performance is supposedly comparable to .NET but since no one uses it, it doesn't matter.  People who write for .NET are writing for Windows users.  If it HAPPENS to work elsewhere, great...but no support for you!

When it first came out, .NET was touted as having fewer (crash) bugs per application and was advertised as needing fewer try-catch/error checking blocks (because .NET would do the heavy-lifting) but about half the time I fire up .NET applications they crash on me in unexpected ways.  Applications written in Delphi, C++, and even Java seem to be more stable overall.  Then again, I don't run many .NET applications but when a .NET application crashes, it leaves a rather sour taste in my mouth.  I've seen some code in C# and while the stuff I've seen wasn't terribly well written, I didn't see ANY benefits to learning a whole new language to discover new ways to crash software.  We simply don't need a new language.

The real reason I "hate" .NET is Microsoft clearly favors the .NET languages instead of REAL programming languages like C and C++ but then turns around and hypocritically pronounces how much they cater to software developers.  Oh, you're a C++ developer who wants to use the Ribbon interface?  Yeah, you get to wait a few months to do that while .NET developers get extra loving from us.  That's my real problem:  I want to be able to write code in whatever damn language I please and don't tell me you cater to me (developers, developers, developers, developers!) if you aren't actually going to cater to me.  Ribbon was only added to MFC after enough people yelled at Microsoft for favoritism.  And, even then, Ribbon support was incomplete.  .NET was and is a slap in the face to all the C/C++ developers out there.  We knew Microsoft made a huge mistake but they keep pushing it like we will accept it.  Fortunately there are enough C/C++ developers out there to FORCE Microsoft to (grudgingly) conform to our wants and needs.  That's the sole reason Visual C++ still exists as a product that developers can use.  If Microsoft had their way, they would only offer VC++ internally.

And then there is the abomination of Fusion-based Visual C/C++ runtimes that have to be deployed with the application.  Ugh.  And, guess what?  There is NO REASON WHATSOEVER for the Fusion requirement.  In fact, the Fusion "requirement" is a complete lie.  The runtimes check for Fusion-capable OSes (2000 and later) but then never actually do anything Fusion-based whatsoever.  Removing Fusion is a one-byte change.  Fortunately, developers now have legal allowances from the U.S. Copyright Office to make small changes to binaries.  A literal two byte modification is the difference that keeps the VC++ runtimes from operating under Windows 95 and later.  That last sentence is hardly a complaint though but more of an observation that someone at Microsoft actually wrote code to intentionally cripple modern VC++ applications from running on older OSes.  It is a slap in the face of developers who WANT to target Windows 95 for whatever reason.  It isn't Microsoft's place to decide that developers can't target ridiculously outdated OSes.

Also, Microsoft deploys .NET through Windows Update but refuses to deploy the VC++ runtimes the same way so VC++ developers have to bundle the runtimes with their application but .NET developers do not have to bundle .NET.  Another slap in the face.

And it continues on:  Microsoft refuses to provide a C/C++ route on Windows Mobile 7.  Want to write programs?  You've got to use XNA Game Studio and learn C#.  {vomit}  I don't want to learn C#, Java, or any other crappy interpreted bytecode/scripting language.  Especially on mobile devices.  Got that?  Good.  The first mobile OS vendor for smartphones that provides a 100% NATIVE C/C++ interface - NOT the Android NDK, which still requires me to write Java - wins my development $$$ and time.

Here's the ironic kicker:  The important parts of .NET, Java, et al are written in...C/C++ and assembler.  In other words, even the authors of those languages admit that C/C++ is better.

I don't mind that Microsoft has .NET with one caveat:  As long as they don't treat us long-time developers who write C/C++ as second-class citizens, they can do whatever they want that they think they can make money off of.  However, this is NOT the case, so, as a C++ software developer, I feel like I've been slapped in the face a number of times and treated as a second-class citizen.  .NET is pointless.  Fusion is even more pointless.  There is no need for either technology and both should simply vanish.

Pages: [1]