« CRM Call Outs | Main | Jacksonville Code Camp »

August 09, 2006

Is Programming Going Away?

My blog has moved. Please go to: http://jstawski.com/archive/2006/08/09/Is-Programming-Going-Away_3F00_.aspx

I have found that I have a special interest in helping other people. Lately I have been getting more involved in the .net community by speaking at code camps, posting on the asp.net forums, and writing on my blog. I always liked to teach others and found it very rewarding to get a “thank you” or a “now I understand what’s going on” from the student, whoever that might be. This brings me to my point. I have spent a lot of time on the forums and interacted with a lot of others “programmers” (note the quotes) and I have found that a lot of times they really don’t know much about the platform they use (in my case the platform is web.) So, whose fault is it? Is Microsoft pushing “real programmers” away? How is this impacting programming?

          It started with Visual Studio 2002/2003 and then it evolved to Visual Studio 2005. Don’t get me wrong, Visual Studio is a great tool and makes work much more efficient, but one thing is efficiency and the other is doing all your work. With VS 2003 you can write a whole website with just learning how to use a tool. There is no need to know much about programming, but some basic programming is needed. Then came the 2005 era and Microsoft took the idea of efficiency to the extreme. I guess they wanted to show how fast you could build an application that they forgot we, programmers, get paid to program, and not only to know how to use a tool. If with VS 2003 you needed to know some basic of programming, with 2005 you could just go to a tool training session and have a website up and ready to deploy without a line of code (at least a basic website.)

          I remember when I was studying for my first certification for asp.net. I had decided to use a book from the source (I’m not going to mention the name of the book nor the publisher). I have to say I was very lucky I had years of experience with asp.net, because if it was for the book alone I would still be retaking the exam. The book concentrates in 2 things: how to use Visual Studio and learning asp.net. Doesn’t sound bad at all, especially if you need to pass the asp.net certification exam, but unfortunately it overlooks the fact that asp.net was built on top of an already well founded technology: html (and JavaScript). The book was something like this: you drag and drop a TextBox control and bingo, a weird looking tag <asp:textbox id=”tbText” runat=”server” /> becomes a beautiful, nice looking textbox on a web browser. Who cares how that happens and why your nice looking tag is now gone and you see something different like <input type=”text” id=”tbText” name=”tbText”>. All it matters is it works.

          Is this the programmers fault? I think not. I think this is what Microsoft has accomplished. You don’t need the basics as long as you know how to use a tool. So what is going to happen with the “real programmers”? Are they disappearing? I think not. Microsoft is not stupid at all. I bet they knew the effects of all this “everything works magically” technology was going to have on the programming community. Thanks to the “programmers” that know how to use a tool, the programmers that know what is going on behind the scenes can be considered experts and get paid like one.

          Until next time and happy Programming!

09:02 AM | Permalink

Comments

I agree with you. I found many people knowing the tool like .net IDE but not how it works on lower level such as memory and other.

wil

Posted by: wil | Aug 24, 2006 6:57:38 PM

It's called abstraction, and it's a Good Thing in most cases. The fact that "" translates into an HTML input is an implementation detail.

That abstraction allows tools such as Microsoft's Expression line to target graphic designers instead of a cross breed of web designer + programmer.

By learning the tags, you're not learning a tool - you're learning a platform. Big difference. We're all platform programmers these days.

The same way we, as .NET programmers, are (mostly) abstracted away from manual memory management and assembly instructions, ASP.NET programmers are (mostly) abstracted away from HTML and JavaScript.

Whether the abstraction is necessary, useful, or any good, of course, is still up for debate.

Posted by: Mark Brackett | Aug 27, 2006 12:16:55 PM

I don't think you got my point... I'm not debating whether a tag should display as an input or not. I'm saying people think they are developers because they know how to use a tool, but has no clue of what goes on behind the scenes. I'm also saying it's not entirely their fault...

Posted by: Jonas | Aug 27, 2006 7:47:46 PM

You sound like a factory assembly-line worker who hates the machines that are coming in to 'take his job'.

Reading this told me that what you are doing can be done faster and with less training. I don't understand how this is necessarily a bad thing, except for your job security.

I like the point that Mark Brackett brought up about program developers not having to do memory management anymore, and would like to take it a step further. First of all, not having to manage the memory means fewer applications with problems like memory leaks, taking human error out of the equation. It also reduces the program developer's workload, meaning that they can create a more solid program or add features for which they would otherwise not have had time.

I am also amused at the fact that you call yourself "a real programmer", which is a bit pretentious. There are a lot of steps in order to get HTML working in the first place. One of the things going on in the background (that you don't have to think about, even being a "real programmer") is the CPU processing machine code. I've written assembly before, I know how complex it can be. Nowadays, you don't even have to write that code by hand because of high level languages such as C or VB. Is that cheating? How about the fact that in order for your code to work, someone has to have a program written (probably using one of those high level languages) specifically for reading what you wrote, known as an internet browser. Without that, your code is only a jumble of characters without meaning.

So. We have a browser that reads the code automatically to do useful things. Why not have something that writes it automatically as well? It seems the next logical step. Speaking of steps, there have been many steps along the way to make what you do possible. If you're going to howl about technological progress, you're in the wrong business.

Posted by: Daemon | Mar 31, 2009 12:15:23 PM

Hey Daemon,
When did I call myself a "Real Programmer"? I think you should read twice before commenting false statements.
Also i'm not saying that progress is not good. Abstraction is good and thanks to abstraction we can concentrate on other thinkgs like business rules and better features, but with abstraction comes responsibility of knowing what is going on underneath the cover to see if what you're doing is right.

Posted by: Jonas Stawski | Mar 31, 2009 12:25:38 PM

The comments to this entry are closed.