I've been reading about Ruby on Rails, and feel like writing an
article Railing about Ruby, to express my dismay with this notion that
higher level programming abstractions somehow get you away from the
notion that we have to learn how to program!
At no point in my experience of programming,
teaching progrmaming, or teaching any part
of CS that involved programming (all:),
or working with people in industry,
have I ever detected evidence of the idea that
as the community develop higher level tools
(whether languages, software development environments or methodologies),
we reduce the need for design, thought, and skills.
What newer tools do achieve is the
ability for a given team to tackle a
larger problem. Not a problem of
ineherently more complexity, but a
problem where many simple (possibly heterogeneous)
pieces have been tackled before. Or
the ability to tackle a problem with
less errors in a given amount of time
with given people resources.
I'd like to christen this the God Delusion
(sorry, again R D)
(as we might term some sort of
panglossian view that one day you will be able
to google for the solution to a problem in
a code base - GOogle Do instead of Exec() :-)
In this new language, GoD,
one can program one's house with expressions such as
"Lux Fiat"
and through some sort of babel search,
this will be translated into:
"turn on the light"
but in one's garage,
it cleans ones Italian Car.
Of course, in the physics lab,
it might cause a tiny nuclear explosion,
and in the bio lab
, the emergence of life from a
primeval swamp in a testube.
In GoD,
Fiat = generic constructor
Lux = light, soap, enlightenment, etc
Other constructs, native inline functions, include
Ecco Homo
which on the screen, prints what men type, but not women.
but in the bathroom, strips off the clothes and uts them in the
laundry basket for women, but drops them on the floor for men,
and in the artists studio, knocks out a quick portrait with
fine chiaruscuro...
As david lodge once famously asked,
How far will you go?
No comments:
Post a Comment