Wednesday, February 11th, 2009
One of the first things I did when I joined Collabora, NPAPI plugins support for QtWebKit, has been included in the Qt 4.5 release candidate. The release contains an update to the WebKit engine to the upstream version, so in addition to a lot of new features and improvements, most NPAPI plugins will work out of the box in any application that uses QtWebKit.
Tuesday, January 13th, 2009
In his History of Python: Introduction and Overview, Guido van Rossum repeats the confusion between “scripting” and “dynamic” languages:
Python is currently one of the most popular dynamic programming languages, along with Perl, Tcl, PHP, and newcomer Ruby. Although it is often viewed as a “scripting” language, it is really a general purpose programming language along the lines of Lisp or Smalltalk (as are the others, by the way).
I think there’s a big difference between the two categories, and the reason they get confused is that both are usually high level languages with dynamic typing, automatic memory management, etc.
But the two types of languages are really different when it comes to how the programmer interacts with them, and in how they are implemented:
- Scripting languages read whole programs from outside the compiler and execute them immediately, usually with a minimal amount of processing.
- Dynamic languages include the compiler in their own environment, and programming is seen as adding or modifying that environment.
For some reason, calling a language “scripting” is seen as somehow implying it’s a lower, less powerful language. That’s clearly not true. Nothing in the way Python works makes it a less-than-general purpose language. It simply doesn’t work the way Lisp or Smalltalk do.