Ada Lovelace
Ada Lovelace was the very first programmer. She understood
that computers could be used for more than mere calculations
even befor there was such a thing as a functional computer!

I got a question about differences brands of C in the comments to my previous post “All work and no fun“. My answer however became quite lengthy (i’ll guess I answered to more than what was in the question)  so I post my response here instead.

HTML is a mark up language (like XHTML and XML), which means that you mark up text and don’t compile any code (=doesn’t convert it into binary machine code). You are just telling a program – the web browser in the case of HTML – how to interpret your text and your images. HTML is sometimes used with script languages, like JavaScript and VBScript.

JavaScript. Script languages doesn’t need to compile either. They need interpreters and are not as powerful as languages you have to compile. Script languages are sequential and reminds a lot of bash programming and other shell scripts in Unix and Linux. It is useful when no or very little user interactions are involved.

Assembler code is the closest to machine code you can get without only writing ones and zeros. You can get many compiler programs to rewrite code into assembler code if you want to study exactly what happens when you compile a piece of code.

C is a rather old procedure programming language where you compile the code and create a program. C code often look very cryptic and is hard to read. In its time, the new thing with C was that you could use the same programming code for different computers. Previous you had to write your code for a specific kind of machine.

C++ is an object oriented language which practically means that you can reuse code (like classes and methods). It is also more readable than procedure languages like C or Pascal. Apart from the object oriented languages below there are very interesting object oriented languages like Ruby and Small Talk which let the programmers do more, but also requires greater knowledge by the programmer.

Java and C++ is quite similar, but the compiled Java code can be used on all kind of computers with all kind of operating systems. However this also mean that you have to have a Java enviroment runtime installed on your computer, This runtime interprets your code for your different branch of OS (Mac OS X, Windows, Unix, Solaris, Linux) which makes Java kind of slow, but also the most versatile of all the programming languages.

C# (who comes up with these names???) is a rather new object oriented language which is like a crossbreed between C++ and Java. C# only works on Windows, which allow it to treat some things, like graphics more user friendly than Java.

LISP There are other types of computer languages as well, languages like LISP and Prolog, uses predicate logic to rewrite itself. It is used in AI programming for instance. It is very interesting.

SQL Then, of course, you have the query language SQL which are used to query databases to access data. Different SQL languages usually have implemented different programming like features to handle triggers and so forth. Oracles PL/SQL is an example of this.

The difference between C and C++ is that in C (and other procedure languages), if you should program lets say two balls in different colors you would have to write two very similar sets of code where you tell the program exactly how your virtual balls should be like. In C++ (and other object oriented languages) you can write just one class with all the common properties of a ball, like that it is round and it bounces. Then you just have two create instances of that class (saying that you want a new object called Ball) The only code you have to write is specifying the properties that differs, in this example the colors. The main difference is that the code will be shorter and better structured in C++ than in C.

The difference between C++ and C# is that C# got some nice additional features: Generics which further let you reuse code, property getters and setters which is an easy way to implement the most common methods, partial classes which let you write your code in the most convenient place instead of be forced to have just one file for each class etcetera. I kind of like that it is well structured and sometimes have an easier syntax…

Here is a page were you can see how to write a program that calls out “Hello World” in different programming languages.

I hope it answered your questions.

//The unfortunate programmer


Jach Nicholson from The Shining
All work and no fun makes Jack a dull boy

I’m taking a course in C#-programming but the only thing I learned so far is that this is not what I am meant to do. To me programming is like doing a puzzle: It really doesn’t leave much place for creativity, it’s no poetry in it. It’s not art or even science. It doesn’t evolve freely.

I really need room for my own thoughts and not just trying to learn what others have done so much better. I think that this in itself is a great lesson for me. I should study things that are meaningful to me.

Well, I made a bad choice in taking this course, but I still have to ride it through: Now for a week there is just hard work. Hard work and no fun. I kind of feel like Jack Torrence in the Shining: His novel consisted of a one liner repeated page after page, chapter after chapter, over and over again: All work and no fun makes Jack a dull boy. I still got a few pages like that to write.

I rather study theology

Shirt from Café press