Don Box disagrees with Jon Udell in this dynamic language discussion.
Jon writes: I think dynamic languages and interactive programming environments help make us better explorers and discoverers, and I think that's only going to matter more as time goes on.
Don counters: My confusion comes from Jon's conflation of dynamic languages and interactive programming environments... During the late 1980's, I used Sabre C[++]. Sabre was a highly interactive programming environment for C and C++... It's been almost 15 years since I've used Sabre or Smalltalk, but honestly I'm having a hard time remembering what you could do in say Digitalk's smalltalk environment that you couldn't do in Sabre.
I also used Sabre. Prior to Sabre I used Zeta C, which was a C implementation for Lisp Machines. (Get your head around that! Yes, Lisp Machines had Fortran, Ada, C, and other language compilers.) Zeta was even better than Sabre.
Language design absolutely makes a difference beyond interactive environments. This difference is what makes these languages good for exploration and discovery over more cumbersome Java-like languages.
Lisp, Smalltalk, (dynamic languages I have decades of experience with) as well as Python, Ruby, etc. have good support for not only making prototype code, they also have good support for making prototype objects and data structures.
Lists, maps, arrays, even self-referencing structures can all be entered end edited in a command loop or workspace using a very simple (i.e. few characters) syntax. There are also the mundane (now that Java brought them to the masses) aspects of these languages like garbage collection and array bounds checking.
If I had to do C or C++ programming I'd do everything in my power to use an environment like Sabre or Zeta. At a minimum I would use a conservative garbage collector (e.g. Boehm's) unless the delivery environment really could not support it.
Yes, there are languages and tools that are edging closer to the best dynamic languages. Coming from another angle we have ML, Haskell, etc. with their own advantages. But for overall programming experience, most common situations would benefit from a simple language and toolset like Lisp, Smalltalk, or Python that have been around for 10-40 years!
No comments:
Post a Comment