tags:

views:

185

answers:

4

I am a .NET developer now and have come from Foxpro/VB6/COM background.

Over the time, I think we have changed to worry too much about languages/tools to do the work. If you look at what a developer in the .NET space would use, the list is ever growing.

More so, the tools itself are so complex that - days are gone where you would find a solution by yourself.
All of us has our dear friend Google (put your favorite search engine here) to rescue.

How/When can we expect to raise the abstraction so that we don't have to worry too much about the complexity with the number of tools and instead focus on problem at hand? (Look at the number of tools a .NET developer would use. Yes, there are questions on it on Stack Overflow).

How many of us can really fix some issue without looking it up? I am not saying that looking up is bad. But it wasn't the case some time back.

Your thoughts are appreciated. There is no right/wrong answer for this. I am encouraging views of smart people here.

If you think the question is flawed - please delete it :)

+2  A: 

I think it's a good question, but possibly with a rose-tinted look at the past. There have always been issues with APIs not working the way they're expected to etc. The internet certainly makes it a lot easier to find other people who've had the same problem, but I don't think it's any harder to find the solution yourself than it was before.

I would agree that there's an ever-increasing number of technologies that you have to learn in order to keep up. Again, "it was ever thus" to some extent, but in the in the last few years it seems to me to have become a lot more serious an issue. For instance, I don't believe many people have the time to achieve a "reasonable to good" understanding of all of even the main .NET peripheral APIs (by which I mean the ones outside the core: ASP.NET, WinForms, WPF, WCF, WF, ASP.NET MVC, LINQ to SQL, Entity Framework etc). You either have to specialise, or learn in a "just-in-time" fashion, pretty much always working with unfamiliar APIs. Back in the days of .NET 1 and 2, there were few enough APIs to make it feasible to have a fairly good grasp of everything. (I didn't personally have that knowledge - my WinForms and ASP.NET knowledge is pretty minimal - but others seemed to.)

Having said all of that, I wouldn't really want to put the genie back in the bottle even if I could - things like LINQ and WPF are just too good to worry overly about how long they take to learn.

Jon Skeet
+1  A: 

New Ideas -> New Tools -> New Ideas

Evolution of CS is as simple as that.

Robert Gould
A: 

Projects need people to specialize in different fields in order to share knowledge burden. Like if you have an architect, he is more experienced and specialized in tools and frameworks than common developers. The architect can come up with the tools for a solution. Then you have programmers that create most of the application with the help of the architect.

If I am in a project as a lonely developer, I might not have that much help from an architect and I have to find out lots of things myself. But if I had the architect to help me out, I could concentrate in programming the actual application functionality.

If we call ourselves developers and try to learn everything maybe because we hope to get ahead in our lives, then we still have to understand, that not everyone should be the architect. We need lots of programmers too. Also analysts, designers, lead developers, and administrators are needed.

Silvercode
A: 

Sometimes I spend more time working around a problem in a framework that I could have been able to write my own class that does the exact same thing in less time than it took to solve the framework-problem.

But I still think that the frameworks are needed, there is no way you can learn and create all these technologies yourself. Compare it to renovating your kitchen, 200 years ago you would do it all by yourself, 100 years ago you would call a carpenter, today you call a carpenter, a plumber, a electritian and maybe even a designer. Nobody can know how to do all these things properly all by himself/herself.