Additional profile information on Alfred Thompson at Google+
One of the questions that frequently comes up when I give career talks is “will the future provide tools that regular people can use that will mean that we will not need programming?” We see the occasional articles such as this one titled “A future without programming” that inspired this post and wonder if the need for programmers will go away. Well let’s for the minute ignore the suggestion that programmers are not regular people and look at this a bit. I kind of look at this and wonder if people asked “if books become easy to read and write will the need for writers go away?” Of course more access to and more approachable books really made everyone a reader and a writer. But it is a reasonable issue to discuss and to understand.
The big fear is that if people can create their own applications without getting tangled in programming language syntax will the need for programmers go away? I believe the answer is no in two ways. In way one, people will still be programming even if using natural languages. They still need to know concepts such as loops, parameters, and especially Boolean operations. So we will really wind up making more people programmers in a general sense. Computer science might actually be forced into the general curriculum.
And secondly these more approachable applications will still have limitations that require going back to real code. “Real programmers” by which I mean programmers as we traditionally think of them will still have to add extensions to user programming environments and they will still have to write custom code for those applications that just don’t fit the simplified view of the world that end user programming tools will support. The simple things will be done and the more complicated, challenging things will still be open to people who really like to code.
This is a path that we have travelled before BTW. In the late 70s and early 80s I worked with a database language called Datatrieve. Oh it was awesome. Really it was. You could point it at a database and in seconds be creating all sorts of wonderful reports that would take traditional programming days to create. It was essentially English and inherently self-documenting. It’s pretty much no where today. Why? I’m not sure. Perhaps it was too user friendly for people who had too much invested in traditional programming. I think it probably just got lost in the shuffle with a lot of other 4th generation languages that showed potential but never built up the audience. But the fact is that even in its prime people were using it for simple reports and prototypes. Once they experimented with it they often wanted more detailed or specialized and analytical reports that required traditional programming. I doubt any programmers lost their jobs because managers could create all the reports they wanted on their own.
And then there is spreadsheets to think about. Now there is an application that lets people create custom applications without programming. Or does it? Oh sure lots of people get a lot of use out of spreadsheets with just simple formulas. But the power users are creating their own functions, using all sorts of conditionals, and writing macros to do things the spreadsheet designers never anticipated. If that is not programming what is?
Now none of this means that we shouldn’t be creating applications that make it easy for more people to create their own applications and get more from their computers. Mashup tools like Popfly, tools to make accessing databases easier, more powerful spreadsheets and even application generators like the ones described in the article that started my thinking are all valuable and even necessary. We’re never going to have enough full-time (or even part-time) professional programmers. And we should not see that as a goal – though getting closer should be. By empowering more people to do more on their own the people who really love programming and computer science will get to spend more time and energy on the more interesting (to them) problems. Just think of the interesting problems people get to work on just because people are creating there own (exciting to them but perhaps boring to me) spreadsheets!
Frankly I became bored with writing report programs decades ago. I want to look into ways of getting deeper into the process so I can create applications for the people who care about the data itself while I work on the process. Applications that empower people to create, manipulate and otherwise maximize their use of data are opportunities for “real programmers.” And they will always exist. I think. What do you think?
By far the most read, most linked to, most popular by any measure blog post I ever wrote was called “Just add Imagination” and was written two years ago about about a 12-year old middle school student who created his own web browser. When I last checked it had over 2100 Diggs which accounts for the traffic. I still get traffic to that post from Digg and from other links on a daily basis. It’s amazing how things stick around.
I’m sure some people must wonder what’s happened to this student since then. I heard from him earlier this schools year and he’s now in high school having graduated elementary schools with top honors.
He is already taking honors algebra and geometry in high school. He’s done programming in C++ as well as C# but prefers C#. He’s excited about the Singularity OS which is a research project being developed by MS Research in C#. He’s interested in more advanced features and tools like XNA and LINQ (for data) as well as parallel computing.
I REALLY hope this kid comes to work for Microsoft some day.
There are kids like this out there. Some of them are able to jump ahead on their own. Others need a little help now and again. They all need people to stay out of their way and not tell them foolish things like “you can’t learn that in middle school” or in high school. Or because they are one other thing or another. Still others could do this sort of thing, if not in computer science than some other field, if only they were exposed to it. If only someone or some event or some other external thing would show them the excitement, the cool, the wow, the world changing possibilities that are innate in many fields of endeavor. To me that is the most exciting possibility of education – the chance to share excitement and enthusiasm. This young student is probably a lot smarter than I am. I can easily live with that as long as he has opportunities to grow to his fullest. In this week of Thanksgiving I am thankful that this young man and others like him have free resources on the Internet to learn from.
What bothers me is when young people don’t get the opportunities to grow to use their full potential. That is the worst waste of all.
I’ve really been offline most of this week. Everything posted this week until yesterday was posted in advance. So I am catching up with lots of things that have showed up in my inbox or that I think should be tied it with something else. So here now are a few odds and ends that I hope will be useful.
Mike Tholfsen announced that the webinar he did on OneNote Toolkit for Teachers is now available for on demand viewing. I posted about that here and a more complete list of upcoming webinars here.
I found out about a new community site for teachers in the United Kingdom - www.schooltogethernow.com for parents, children, teachers, schools - aiming to bring the school community together. There is also the UK Innovative Teacher network among other such communities. Are people using them? Do you find them useful?
Speaking of the UK, Mark Johnston blogs about a huge student event that Microsoft UK ran recently. There are videos online and while I haven’t had a chance to view them myself they sound interesting.
Lastly I note that there are fewer than 10 days left to nominate your favorite education blogger for the 2008 Edublogger awards. I made some nominations here.