Current Obsessions
One really only needs a good story to tell. Gather round...
How does one learn new technologies? Of necessity, of course, so motivation is the most critical factor. But where to start? Let's assume that one is attracted to the free source software easily available given high-speed internet access, and that one would prefer not to purchase software if arguably equivalent capabilities are available at no out-of-pocket cost.
Linux (or GNU/Linux to be more politically correct), as you probably already know, is a terrific operating system despite suffering from what has been called the "Unix Disease", i.e.,
lots of pieces to address any problem, but "some assembly is required!" Linux user interfaces, whether command line shells, KDE, or Gnome, are frustratingly foreign to the non-Unix initiate, and it is quite easy to lose motivation at the start.
However, certain tools, notably web browsers and email clients, seem comfortingly familiar, even if precise syntax and format differ from one's usual environment. This simple observation, that functional familiarity serves to bridge technological crevasses, can be generalized in the computing field to provide a migration strategy
between proprietary and free source systems and applications.
Perhaps for workstation users, the "thin client" approach emphasizing browser-based applications is sufficient to blur the distinctions between underlying operating systems. Certainly embedded Linux developers assume so. But for most systems and applications developers, integrators, and maintainers such distinctions appear insurmountable.
Thus, the software professional is usually forced to choose between commercially prevalent technologies and new commercially unproven tools and techniques, where the wiser choice is often obscure.
Some of the cleverest computing gurus of the past few decades have invested incredible efforts in producing monolithic software edifices intended to be all things to all people; witness Richard Stallman's Emacs program and its symbolically masonic place in Eric Raymond's The Cathedral and the Bazaar
. Emacs enthusiasts pride themselves on how infrequently they need to leave Emacs to perform a task; some have apparently been in there for years!
And Emacs runs on Win32 platforms as well as on Linux, Unix, Vms... Ah ha! An environment to bridge computing technology gaps! Just download Emacs for Windows, fire it up, get accustomed to it, and...
But a tool that tries to be everything to everybody is a complex performance dog, and even if one manages to learn to use it effectively is of very little use for hands-on, practical integration tasks. One must bow, however insincerely, to the continued use of some commercial software; to the contrary, Emacs represents an almost monastic withdrawal from the rest of the computing world. Plus, it runs pretty slowly on a typical Windows PC...
Thanks to the very visible efforts of O'Reilly & Associates publishing, however, the right computing bridge tool recently became apparent.
The programming language Python.
Quoting from O'Reilly's Python Pocket Reference by Mark Lutz:
Python is optimized for quality, productivity, portability, and integration. Hundreds of thousands of Python developers around the world rely on Python for general-purpose tasks, Internet scripting, systems programming, user interfaces, and product customization. Python is available on all major computing platforms, including commercial versions of Unix, Linux, Windows, and Mac OS.
And it is free.
Python works great on Windows and Linux, and applications can be implemented to be ported without modification. Operating system features can be utilized platform-independently.
Linux distributions include Python; all versions, particularly WinPython and Win32 extensions, can be downloaded from www.python.org. Try it. Get used to it, and you'll have a valuable friend on any system you might want to use.
Check back for updates on Python, Twisted-Python, Knoppix, and VMware!