Agnostic Programming

OK, I’m moving in a new direction here – and then again, I’m not. When teaching programming to my students, I am often trying to communicate the the general aspects of programming, the similarities with normal written languages, and the concept of treating the different languages as dialects rather than a complete new language. We all know, that there is variables and functions. We know about loops and conditions, but somehow a lot of students fail to elevate that to a level, where the concept behind is independent to the implementation of the concept.

If the have learned how to declare a variable in ActionScript, they sigh, when they have to do it in Java. If the are rotating and use trigonometry in Processing, it’s a drag to make the do the same in ActionScript. Sometimes you have to write more (or less), but in a lot of the situations, you just have to write it different to make it work.

I have started a book writing over at Help me now called Agnostic Programming. The title don’t refer to the “I don’t know if God exists”-thought, but rather the fact, that my knowledge about how to program, in many ways, don’t have to be tied up to a single language, but the ideas behind syntax and how to construct sentences can be used to model a sentence to a different dialect – for the most part, not even a different language, as it is the same keywords there is widely used. Sometimes a statement in one language is called something else, but in other cases, it’s just a matter of constructing the sentences.

I have started with languages that I use myself, as a starting point, and that is ActionScript, JavaScript, Processing and Java. While I know that they fundamentally pairs down to ECMA and Java, it is something I can relate to. I may introduce other languages, if someone will help transcribing to them. I might just take my own medicine and see, if I can dig it up myself. I’m actually already doing that with Java, which I’m not that familiar with.

This is an open write in progress, and in the beginning it’s probably most text. Later on the diagrams may show up. I do not make beautiful sentences in english, so this is also a way of practicing my english skills, so please comment on grammar and typos too – “my english is Willy bath!” :-)

My intention is to gather enough relevant material to publish it in some form, and nail down some teaching concepts along the way. My students will then learn how to program in a way that makes them less independent of the platform they are programming on.

Ideas are highly appreciated.