CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Ranjan Sakalley


Why should I use .net

Yesterday, I was asked to train a set of freshers on what .net Fx provides, about CLR, and other things .net. About half-way through the second session, when I was delightfully talking about Garbage Collections and Finalization Queues (after a class on telling them the brokerage mechanisms, Virtual Machines, what was wrong with previous frameworks, what Java brought into picture, and now what .net has helped us with), one guy says 'Why should I use .net?'.

I took around half-an-hour to tell the guys why would one, poking into topics like drivers, winforms, html engines ( the Framework class library reuse was what I was talking about) and why shouldn't we be writing them and be worried about our program logic. Then I went over to Component Based Programming, COM, managed memory etc. Still confused.

Problem ? Yes, the guys have never ever coded commercially. They are great at writing algos in C, math, but they have never written one piece of code that somebody else has used. I cannot blame it on the education system, because I came out of it once, fortunately for me, there was some time with C at college writing GSM algos, and at work Delphi/people who had worked with it, to know what a relief Java/.net is.

But these guys dont even know what a customer would expect from their output. They wouldn't think twice before writing their own spell-checker component(would take more than a man-month) insted of reusing the one that comes with Office (would take an hour). They don't know the pains of memory management, using C to create a form etc. I just wanted to nullify the current training session, and start the whole process something like this-

1. Ask them what do they expect from a mail client. Show them Outlook, and ask them if they wanted something more from it. Before teaching them how to code, this will atleast lead to these guys knowing things from a customer's perspective.

2. Ask them to write a simple Outlook sidebar control using C (which they are good at) , after a day or two, cut-short their development, and show them how to do this with Devexpress or Infragistics in a minute or two. Mind that freshers get attracted to UI invariably. Thats the only experience that I have in this process.

3. Give them a component after this, written in VC++, and ask them to use it in VB without using COM, make them appreciate COM, and then wreck the ship after telling them how better an upgrade .Net is. (Don Box, 1st Chapter)

4. In any of these cycles, show them a menory management issue and tell them about managed environment.

 After attracting these guys to (if i am able to) I would basically move away, and let them explore, with an assignment to implement some Data Structures etc. for a week. So a two week pre-training schedule is what I was looking at. Costly, but then I dont know about a book that will make them understand "why to use .net?'. Can you point me to some, so that we can cut-short this fortnight long build-up?

Published Feb 24 2005, 02:46 AM by rsakalley
Filed under: ,

Comments

Brandon Paddock said:

Anonymous is right about one thing for sure... The only way to get a good feel for when to use one platform over another is to try them all out.

In my short years of experience I've coded in C, C++, Java, Scheme, and C# (err, and a little VB.net).

When I learned Java I went in kicking and screaming. Then after a couple weeks of working with it I forgot all about memory management. I started to notice all the cool ways that Java helped me be more productive (and write better, cleaner code, honestly).

From there, C# was a cinch. Working in Visual Studio is heaven, especially with some of the great add-in tools (ReSharper?) you can find for it. When you're doing an assignment for a class, the difference may not seem huge. Even if writing in Java/C# would cut your coding time in half, it's still only a matter of hours or even minutes usually.

And for the most part, your exercises are simple and focused. Then one day you have to write a real app. A customer (or employer) gives you a list of things they need done.

Not only do Java and C# save you development time (they do), but they let you refocus the time that you have. You can get a running, workable interface set up for a complex project with lots of backend operation, database integration, and so on super quick! Then you can spend more of your development time finding bugs, useability issues, and "fine tuning."

C# and Java also empower individual programmers. If you have an idea, you can implement (at least a basic version) way faster than you could without these platforms. No longer do you need an entire team to build simple (or even larger) applications.

Well, at least that's how I see it :)
# February 24, 2005 12:20 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!

Our Sponsors