As I was commuting home from work tonight I was listening to
StackOverflow #44
where Jeff Atwood and Joel Spolsky were discussing how the future of
programming languages will gradually get smaller and more precise in
their function. Jeff explains:
"I see the future of languages as a lot
of small languages that are good in specific things. And you'd switch
between them in a fluid way, to when you are like "Oh, this is a
set-based problem" or "Oh, this is a database problem" or "Oh, this is
a text manipulation problem" and you sort of drop in a language that is
good in that thing."
That statement resonated with me for a little while and I got to
thinking the future of languages that Jeff perceives is already here.
Let me share what I mean from my experiences in programming during my
career.
Let's first take a step back and look at programming languages back
when I first started in 1996. For me there was HTML and that was it.
For me PHP really hadn't taken off, classic ASP was just coming out and
so everything was HTML even the formatting was done within the HTML
*shudder*.
Move a head some to 1999 and I got into Classic ASP. Still a language
that was self contained. You could hook it up to a database either
Access or SQL Server being the popular choices but SQL statements were
done inline in the spaghetti code mess. In one ASP file you had the
dynamic code the presentation and the data integration.
Let's move now to 2003, ASP.NET 1.0 is prevalant. SQL Server 2000 is
out and you could now separate your data integration into stored
procedures with T-SQL on your SQL Server. You would use ASP.NET to
separate your busniess logic and your presentation. CSS was making
headway as the way to separate your presentation code from your markup
code.
In 2006 I feel is the start of segmenting ASP.NET out further. Why?
jQuery was released to the world. And as the world grew more and more
used to working with jQuery we were able to hand off some of the tasks
that ASP.NET would of handled dynamically, like form validation, DOM
manipulation and page interactions. So we now have CSS to handle
presentation, jQuery to handle DOM manipulation, ASP.NET to handle
business logic, HTML to handle page structure and finally T-SQL to
handle data manipulation and retrival.
Seems to me that we've made it to the future. I would hate becoming a
web developer today. You need to learn at least 5 languages to be able
to create a respectable web page. It's also my experience that
colleges aren't teaching students all these languages. They either
learn them on their own or they learn on the job.
Look at what Microsoft is doing to ASP.NET. .NET 2.0 is the core which
then 3.0 and 3.5 are loaded on top. These versions of .NET include
smaller subsets of the language that you may or may not use WFS,
Silverlight, WCF, MVC, Dynamic Data, etc. The burden on the programmer
to keep up is ridiculous.
The question I have, does the future continue to segment languages even
further as Jeff predicts or will there be a time where we start merging
languages together and come back to one super language? When does the
segmentation of languages start to hinder us instead of help us?