Wednesday, August 27, 2008

A Part of the Future of Developing Software

I have been running across people asking questions along the lines of "What is the future of real coding?" What with the advent of technologies like SharePoint and Google Sites, will we really need people to develop code in the future. I believe that there are two answers to that question and at their simplest, they are yes and yes. Writing code by hand will never go away entirely. But you may also need to broaden what your definition of 'real' coding is.

First, there will always be a need for developers to write the low level code. Developers that use third generation programming languages rely on the ongoing work of developers that use lower level languages for the operating systems, device drivers and embedded systems that they write their software for. This is the same as SharePoint developers that, while they can create impressive, usable applications without writing a line of ASP, C# or VB .NET, would not be doing so if a bunch of .NET and C++ developers had not written SharePoint to allow for that possibility in the first place. There may be fewer jobs writing business applications in straight ASP.NET, but there probably aren't going to be fewer jobs creating those applications. Each application may not take as many people or as much time to create, but that just allows for more and varied applications to be created.

This leads me to the second yes. Are you less of a developer because you use a third generation language to write programs than a person who still develops in assembly language? Should a developer that uses SharePoint not be considered a 'real' developer if they don't use ASP and C# or VB? Personally, I don't think so. I don't believe a good developer is defined so simply as being a person that is literate in a particular computer language. The true abilities that make a good developer are a combination of understanding to determine what problems need to be solved; organization to manage the complexity of the problem; talent to be able to think on multiple abstract levels to realize the solution; and discipline to make sure that the solution works correctly, is documented, is easy to maintain and is delivered on time.

SharePoint is not a platform that someone can just pick up and meet those goals. It takes a good amount of study, planning and energy to create a SharePoint site that won't be forgotten about in three months. And that is before you open up Visual Studio if you even need to. While I will be the last to admit that you can create an outstanding SharePoint site without any C# or VB today, that doesn't mean that you won't be able to someday. But, the advent of a truly 'code-less' platform will not mean that there will be no need for developers for that platform, it just means that one of the less important skills of being a developer, the literacy in a third generation coding laguage, will be further marginalized.