spilon

Is the .NET Framework making us lazier?

Blog Post created by spilon on Jul 7, 2009

When reading this discussion on the forums (where Yannick was inquiring about a PI SDK method that would perform multiple calculations at once) I realized something and I'm glad to see I'm not the only one in this boat: we, developers, are expecting more and more out of the various SDKs we are using nowadays. We expect the SDKs to expose always more "1-call" functionalities, with increased complexity, and we slowly get accustomed to fewer and fewer lines of code.

 

And I think I found why: the Microsoft .NET Framework. Let me explain:

 

In my opinion, Microsoft has significantly raised the bar in terms of SDKs with the .NET Framework, with its wide (wide? no, huge!) variety of classes and methods - and method overrides. When dealing with .NET classes (think of the various classes in System.Collection or the ADO.NET objects in System.Data, for instance), it seems to me like classes always expose a version of the method that perfectly suits my needs. The .NET designers thought of so many use cases and they expose so much functionality... good work, Microsoft!  But man, you're making us lazier...

 

We often take it for granted because it's more "infrastructural" (i.e. it's everywhere and invisible at the same time) than an actual product, but it is an actual product and it greatly simplifies (and reduces) the code we have to write. The Framework does so much behind the scene that it makes the (not-so-old) good old days look so far... manually-created and -maintained linked lists, bubble sorting, memory management and pointers, reading files or network streams, performing drawing, SQL or FTP tasks, etc.  When's the last time you wrote more than 10 lines of code to read a file?

 

I suggest you do this little exercise, just for the fun of it: open an old piece of code you wrote (say in 2000) and compare the number of loops you have with the number of loops you write in today's code - the difference is amazing. Happy .NET coding!

Outcomes