« Week of September 22, 2013 »
Start: 09/23/2013 6:00 pm

Delphi, C#, Oxygene, and JavaScript

Since programming languages were invented, people have tried to use one code base to get an application to run on multiple platforms. Whether it meant building custom compilers or interpreters for each platform (BASIC, C, JavaScript, Python), or writing an API layer for each device that talks to a generic module (Java, .NET), the goal has been to reduce the time it takes to develop a product while having it work for as wide a market as possible.

So why then, would someone want to write one application in as many different programming languages and environments as possible? For exploration and learning, of course!

It's easy to find tutorials with examples of "Hello World!" in every language. The program we'll be looking at tonight is a little more involved, enough to actually be useful and learn something. It's a one-form application with some buttons, a ListBox, and some string manipulations, just enough to make it interesting, but not too much so we can't get through it in an evening. (A more involved application is slated for early next year.)

The first environment we'll explore will be Delphi, of course. This will introduce the project's concepts and give a base of expectation for the succeeding examples. The application was originally conceived in Delphi 1, but has been upgraded and a few language enhancements made so it now uses Delphi 2010.

Then we'll move into Visual Studio using C#. There we will explore two varieties, one using WinForms (the first GUI available in .NET, but now deprecated), and one using WPF (Windows Presentation Frameworks, the current recommended way to build .NET apps). Both of these variants were created in Express 2012 for Desktop version of Visual Studio.

Next we'll use Oxygene, a Pascal compiler inside Visual Studio, using WPF and compare with both the C# version and the original Delphi versions.

Finally, we'll explore a web version of this program written in HTML5/JavaScript.

Look for mobile devices (Windows, Android, and iOS) to be supporting this same application in November!