Computer scientist/bikeist Dave Clarke (05 Sep 2006) says (about Ruby on Rails being taught in colleges:
I think there are many important computer science concepts to be learned from studying RoR. Typically, one should consider the language, be it Java, Ruby or C, to be the vehicle which helps one to learn concepts, rather than being an end in itself. If the courses achieve this, then they are making good steps towards training computer scientists. Otherwise, I fear, they are just will just produce under-educated programmers. Such programmers have their place too, as not everyone needs to know the details of AVL trees, formal languages, computational geometry and so forth.
Good, there is a place for us under-educateds. But, being under-educated’s a good starting point, I guess. My interest gets piqued by the above links.
Btw: Two languages I have smelled recently: Joy (works with source code files as a datatype; typically constructs and runs chunks of source, by “quoting” and unquoting it — see the Joy synopsis) and Forth (since a friend of mine is implementing it in Java).
Both of these are “stack-based”. I can’t help but wonder what that implies, what you can do with it, and whether stack-based is just for fun these days. Any Forth’ers (or over-Joy’eds) reading this?
What a pompus git!
The people being the standard argument: computer science programs ought to teach people enough foundations, rather than just how to program in one language, so that they can more easily learn new things and adapt to changing technology. Quite a lot of what we learnt at University will most likely never be used by most people. But one never knows. Formal languages, for example, underlies XML schema and so forth. One can build better DSLs with a knowledge of compiler technology.
With modern programming languages: e.g., PHP and Ruby, and the web as a software delivery platform, it seems easier to gain traction and begin programming than back in the day when people spoke C and one needed to understand many low level concepts, such as pointers.
There is a place for everyone in the spectrum of programmers. One does need to distinguish between programmers and computer scientists. The latter are a mostly useless, over-educated breed.