Blue Theme Orange Theme Green Theme Red Theme
 
Nevron Chart
Home | Forums | Videos | Advertise | Certifications | Downloads | Blogs | Interviews | Jobs | Beginners | Training
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
Team Foundation Server Hosting
Search :       Advanced Search »
Home » Articles » .NET brings the fun back to programming

.NET brings the fun back to programming

Today, we are all comfortable sitting in front of our high powered computers running graphical user interfaces and compiling code in sophisticated development environments.

Author Rank :
Page Views : 4483
Downloads : 0
Rating :
 Rate it
Level : Intermediate
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
 
Nevron Chart
Become a Sponsor
Discover the top 5 tips for understanding .NET Interop
Become a Sponsor
 Tag Cloud
 Latest Jobs
More ... 
 Latest Interview Questions
More ... 

Introduction
Let me introduce myself. I have spent the last 13 years working with P.C's on both DOS and Windows. I have written code in Assembler, Pascal, C, Microsoft Access, Office VBA, Microsoft Visual Basic, Java and now C#. I remember running Dos 3.3, Windows 286, 386 and then the excitement of loading Windows 3.0 on a 386 P.C with 4mb Ram costing roughly 6000 dollars! I also remember logging support calls with Microsoft where the answer was either to be sent an upgraded printer or video driver.

Software development 13 years ago
Today, we are all comfortable sitting in front of our high powered computers running graphical user interfaces and compiling code in sophisticated development environments. Spare a thought then for guys like me who developed on compilers such as Borland's Turbo Pascal. Imagine writing code today and having to write everything yourself. I could not just declare a class and suddenly add in printing functionality. We had to get the printer development tools and write our own code to create printouts. This author even had pleasure of designing a font specifically for faxing and did it by building his own tools.

Like everything though at the time I was sitting in front of my IBM PC XT compatible computer with a 20MB hardcard and 640k Ram thinking "wow I am really a power user now". Strangely enough I had the same thought when I finally got a 286, 386, 486 etc J

At this point in time Borland was the cool company, IBM was dull and Microsoft was the underdog. To me and my colleagues Borland produced the coolest set of tools like Turbo Pascal and Turbo C and a few more which I can't remember. The point was I could write a 20,000 line Turbo Pascal program and compile it in about two minutes. Of course it didn't matter that to write an application could take months as you spent time writing interfaces or more often than not, menu systems.

In those days of limited computing resources we spent too much time perhaps, trying to gain an extra few bytes here and there and make our code run faster. We agonized over languages like Modula-2 and wondered if switching to compilers from company's like Topspeed would speed up our code. The point was we were working very close to the core of the computer but were paying the price by producing code where every program had a different interface and almost always was written from the ground up rather than utilizing old routines etc.

From command line to Graphical User Interface (GUI)

My first real taste of Microsoft Windows was really Windows 386. Compared to today's Windows product it looked basic but had some useful functionality. Hands up all those who remember running two programs at the same time and thinking how cool it was.

Of course all the UNIX gurus out there will be thinking so what, we have been multi tasking for years. This may be true but Windows bought multitasking to the masses rather than the techies.

Enter Microsoft Windows 3.0 / 3.1
Windows 3.0 finally was the operating system that really made people go WOW this is cool. It performed well and more importantly looked awesome. All the Macintosh people out there said hey it's just like our o/s while we just got on with using it. We were proud DOS users and would never lower ourselves to using a Macintosh J 

Notice something here? Now Microsoft was being seen as being a bit cooler than before. If only they produced some good apps. Of course with the release of Microsoft Excel and Microsoft Word they did. Like it or not, Microsoft Excel was an amazing product and even had in later releases a macro language so I could write functions to produce new calculations-wow I am a windows programmer.....well not quite. 

Now I started to hear of Petzold and his C programming book. My company looked long and hard at Borland and thought when will we be able to produce applications under Windows? Time went by and for a long time nothing came out of Borland until the release of Turbo Pascal for windows. This was a great development system but in reality still meant you needed to do a lot of work to make anything happen on screen. If you were new to GUI's then the idea of writing an application for windows was almost your worst nightmare. In those days the number of PC computing books could be counted on one hand, unlike today where you could almost run a store just to cater to computer users. So more or less we started using Windows but kept on writing DOS applications as before. 

C versus Pascal 
In the old days C programmers were called the "fighter pilots" and Pascal programmers were the 'quiche eaters'. We didn't care as we coded in Turbo Pascal 4, we could produce code faster and more reliably and that's all that mattered. 

I was not a C programmer and am still not. I guess a background learning to program in Pascal means you like to code in a certain way and C programmers like to code in other ways.

 Enter Visual Basic 
 For non C programmers Visual Basic was a miracle. Here was me, a non C coder and I could not create a Windows application in a matter of minutes. Okay so the first applications didn't look good as we didn't bother to read the Microsoft Windows design guide but at last we were Windows programmers. Again not quite; with Microsoft Visual Basic we were given a number of tools like drop down boxes, radio buttons etc to drag onto our forms but of course when you looked for the tool that you needed to complete you application, Microsoft had not implemented it. In light of this a whole industry sprung up overnight around Visual Basic producing additional tools to use in your applications.

Visual Basic was and still is a strong development system but for my it got you tantalizingly close to creating a windows app but did not give you enough control when it was needed. 

Microsoft Access and Access Basic 
I was developing databases with Borland Paradox when I heard of and got a copy of Microsoft Access 1.0. Here was a powerful database development tool that used SQL as its database query language. It gave me a forms designer, a report writer and queries and it was awesome to work with. You know what, it was even fun to work with and today that is something that's missing. Programming is a creative process and should be treated like writing a book. Up until .Net that seemed to be missing.

Java 
How I thought I had finally reached my goal when I heard of Java. True it could run on many platforms and had strong development features like object orientation etc. However I wanted to produce a full featured windows application. Java would let me sort of make a Graphical User Interface but not a full blown application with all of Windows features. I walked away frustrated. 

Today's programmers
Today we have programmers of many different abilities. We have people who spend all their time writing code in Office VBA to perform mail merges, calculate spreadsheets and much more. You may laugh but they are still programming. Next up we have the hobbyist who likes writing windows applications with terrible interfaces. Chances are he's using Visual Basic and having lots of fun. 

Moving up the development ladder we have the professional Visual basic programmer who maybe works at a bank or some such company. In his hands a visual basic app can look the same as an app coded in C and I for one am amazed at what some visual basic developers can achieve in a quarter of the time of a C programmer. 

Climbing further up the software development ladder of success we reach the C++ programmer. This guy writes robust code that runs quickly and can put out a great Windows application but takes a lot longer than the visual basic guy. If your employed as a c++ programmer you probably think of yourself as a real professional. 

At the very top of the tree from a performance point of view is the C programmer. Even today you can write a complete windows app in C. In fact if your writing for machines such as a Pocket PC then C is the way to get maximum performance out of it. Using C means you will take a lot longer than both the C++ and definitely the Visual Basic guy. 

Why are we constantly chasing our tails. 
Why in todays society are programmers constantly have to switch technologies to do a job. Instead of learning one language and being able to code all development tasks in that language it now means that you have to look at your latest development task and wonder, okay which language do I have to know now?

Does my next task require me to know C++ or does it need ASP, VBscript or Jscript with a smattering of Java. Wouldn't it be great to use my existing skills or even build on top of them? 

What I want for software development.
Over the last 13 years or so I have seen many changes in software development. I have seen attempts to make program development easier and more reliable however what I have not seen is software development being fun again. I read Microsoft Systems Journal, I really did, but reading C++ code using Microsoft Foundation Classes quite honestly turned me off completely. I could more or less follow the Charles Petzold style of Windows C programming but the time taken to build an application made me walk away.

I also have a dream.....
My dream is I wake up in a perfect world where I can turn on any computer anywhere in the world at any company and be able to write code on it without have to spend weeks or months learning a new language or a new development library. 

Ahhaa your saying, learn C as that is the only true portable language. Actually to an extent this is true. You can get a C compiler for probably every computer out there. However the portability fails when you want to start writing code for a graphical user interface. Windows does it one way, Mac does it another and X does it another. 

Okay so what about Java? Well its true that Java gives you lots of graphical functionality, the reality is that java apps have to be rewritten or hacked around to get them to work because your machines JVM is not as compliant as you thought. If Sun had succeeded with Java they would not have needed a 100 percent Java certification program.

I loved java as a language as it was so close to Pascal with a touch of C but it was not quite what I needed. 

I want to be able to write programs that are as sophisticated as the guy writing Petzold style C programs using Win32 API calls. However I don't want to take years to do it. 

Enter .NET 
Imagine that perfect world. I'm an ex Pascal programmer, you're a C coder, your colleague thinks Visual Basic is cool, his friend actually is quiet old and programs in Cobol. 

Can these people ever co-exist in a development environment? They can with .NET 

The idea behind .NET is that you write in what whatever supported language you want and use the same compiler. So I could write in C++ or you could write in Visual Basic but we would run the same code and more or less output the same runtime.

This gets better. Rather than use existing languages, Microsoft has added a new language to the fold and called it C#. This language is like taking Pascal, Java and a smattering of C++ and mixing them in a huge software development pot. The result is a clean easy to use language and should be considered a next step up from Visual Basic. In fact I would say that C# should be taught in place of where Pascal used to be. 

So imagine this. The next release of Microsoft Windows you install has a new runtime called the .NET CLR or common language runtime. You write your application in either C++, Visual Basic, C#, Cobol or many others and compile to something called MSIL (Microsoft Intermediate Language) and this is fed through the CLR and produces your app. In fact you can actually look at the resulting MSIL code and see it bears more than a resemblance to assembler!! In fact you could even code an entire application for .NET in MSIL using nothing more sophisticated than Microsoft Notepad. 

Consider this, Today if I want to write an app I would write in VB, if I want to code a web page I will use asp, if I want to write a Windows NT Service server I will use C or C++. .NET gives me the ability to use the language I am most familiar with.

Good grief we can all use the same libraries and produce the same output. No longer will the C++ programmer scoff at me because his apps are more powerful. Now I am a C# programmer and nobody kicks sand in my face anymore J

The story doesn't stop here though 

Imagine Microsoft produced their runtime for other platforms.....

Imagine the CLR on Apple OSX, FreeBSD, Linux or Solaris. You're getting the picture? Maybe now we can get to a point where we really can use one language across an entire of computers. 

If your are coding in .net perhaps you too are thinking wow this is fun again. Microsoft have given me a great language and also a rich feature set. I can extract data across the web and analyse it using 10 lines of code.  

All the java people out there are probably saying, wait a minute what your talking about is Java. While its true that the promise of Java was great, the execution was lousy. Whether you like it or not Millions of programmers create Windows programs. If Sun had wanted Java to succeed they should have made it possible to use Java and all the richness of the Window O/S. What we were stuck with were very basic classes and no chance of producing a rich Windows application in Java. 

I hope that some day I can switch on an Apple Macintosh running OSX, a P.C running FreeBSD or Linux and be able to write a C# program just as easily as I can under Windows. 

Conclusions 
With .NET Microsoft has created an extremely rich programming environment however Microsoft has a larger opportunity. By now most of you will have seen that Fujitsu are bringing out COBOL for .NET. The opportunity for Microsoft is to deliver a programming platform to whoever needs to write a program, not just to the guys writing windows applications 

I firmly believe .NET and the CLR is the most exciting technology to have come out of Microsoft and I hope you'll join me in congratulating them on a job very well done. 

Programming just became fun again.  

Comment Request!
Thank you for reading this post. Please post your feedback, question, or comments about this post Here.
Login to add your contents and source code to this article
 [Top] Rate this article
 
 About the author
 
John O Donnell
John O’Donnell is a former Microsoft UK employee and is an MCSE. Currently John works in Chicago for MAS Consulting (www.mcas.com) as a Senior Technical Consultant. He is available for C# contract work across the USA .
Looking for C# Consulting?
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional consulting company, our consultants are well-known experts in .NET and many of them are MVPs, authors, and trainers. We specialize in Microsoft .NET development and utilize Agile Development and Extreme Programming practices to provide fast pace quick turnaround results. Our software development model is a mix of Agile Development, traditional SDLC, and Waterfall models.
Click here to learn more about C# Consulting.
 
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
Discover the Top 5 .NET Memory Management Fundamentals
To write the best .NET code, you need to know exactly how the .NET framework really manages memory. Ricky Leeks presents the Top 5 fundamental facts of .NET memory management. Learn more.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
ASP.NET 4 Hosting
Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites – Click Here!
 
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
 Comments
Team Foundation Server Hosting
 © 2012  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.