More about Operating Systems and Software Development


Operating Systems

We at Zandstra Systems have, in the past while, been migrating to an Open Source environment. This includes abandoning M$ Windows and all related software including servers and DBMSs. You may have noticed that the workstations allocated to you have all been preloaded with Ubuntu Linux. You will therefore be following this course in a Linux environment.

Traditionally programs that were developed on one Operating System environment will not be able to run on another OS. This relates back to the layers of software whereby for an application to work they need to be able to communicate (speak the same language) with the OS that then gives the application access to the resources available on the computer system.

With the emergence of the Internet which is accessible by any computer running any OS anywhere it became necessary for cross OS compatibility applications to be developed. That was a big challenge until companies like Sun Microsystems came out with a development language known as Java that actually depends on a virtual machine to run programs authored in that language. This idea of using a virtual machine to facilitate compatibility was first introduced by IBM in 1965 and evolved for use on Mainframes to allow many users to access the mainframe in their own way.

Microsoft also introduced the idea of a virtual machine through the implementation of their .NET framework. Python which is a relatively young programming language (introduced by Guido Van Rossum, in February 1991) also makes use of the idea of a virtual machine. Python is however making use of the Java, .NET and other virtual machines to run its programs.

So, how does this virtual machine facilitate cross OS compatibility? The compilers used by Python and Java are known as Just in Time (JIT) compilers. What this means is that when you compile a Python program it actually only gets partly compiled into JIT code. What then happens on the client’s computer (running a virtual machine) is that the JIT code gets compiled further into machine code that can be understood by the OS present on that computer.

In most cases the virtual machine runs through browsers like Mozilla Firefox or Internet Explorer (browsers in general) because that is the software through which most Internet apps are run.

Programming is hard. It's the process of telling a bunch of
transistors to do something, where that something may be very
clear to us fuzzy humans, with all our built-in pattern matching,
language processing, and existing knowledge, but really,
horrifically, tediously difficult to communicate to a bunch of
dumb transistors. Python is hard, because programming is
hard. On the other hand, Python is easier than (in my
experience) C, C++, Objective C, Pascal, Postscript, Forth, Java,
Javascript, Perl, etc. In some cases it is so much easier that it
almost appears easy in comparison. But there is a huge
difference between easier, even vastly easier, and easy.
—Dethe Elza


« Previous || Next »