C was the first language I got my hands dirty with when I first got an Atari ST and I still very often fix bottle-necks in C++ with it because quite frankly, C++ STL has a lot of overheads that can be significantly reduced using straightforward ANSI C.
On both the Amiga and Atari I would mix C and assembler creating visual graphic demos as a hobby.
To me, C is a very natural language to program in.
With the extensions C++ offers with it’s Standard Template Library and the improvements (some not so) right up to C++11, the language is almost as natural to use as C. A little more understanding for newcomers is required which is why I’ve always recommended newcomers to master C first.
My use of C++ is extensive and most of my personal projects have been written in it.
This language was awkward when I very first started to learn android development as I should have started right at the beginning using Swing and AWT. My knowledge of Java has exponentially improved over the last two years, enough to say that I’m quite proficient at it now.
Java makes android development very easy although there have been a few projects that have required the JNI interface to C/C++ hand coded libraries.
More recently I have been using Google’s Web Toolkit which allows the programmer to write code for client side web interface and the server side. Client side code is basically hand-coding a web UI and using the server to provide whatever data it requires. On my own Linux system at home I’ve allowed the Apache Tomcat server permissions to a folder on my system to which it can read and write from. This allows files to be transferred to and from the client and not stored on the web server itself.
As I first mentioned, I should have started off with standard Java and Swing/AWT as with a few recent tests has shown. Even so, I was quickly able to find the references required to knock up a UI and a graphical display with ease.
I’ve also been using libGdx for a number of projects for a while which is all Java based. LibGdx is a cross-platform API allowing bare bones access to openGL for both 2D and 3D graphics. Some of these applications will appear on this website in the showcase examples.
I started learning assembler on the ZX Spectrum when I got my hands on two books all about Spectrum machine code and boy, was I impressed. On the 8 bit machine I learnt z80, 6502, 8086 and 6809 on the various computers around at the time.
When I moved on to the Atari STE and Amiga 1200, the 680×0 assembler code just blew me away and for years I wrote lots of my own libraries. Often I would rewrite my C libraries in assembler for that extra boost of speed.
Nowadays it’s rare I use assembler but x86_64 is still something I can pull out of the hat when I need something. Today’s CPU’s are extremely powerful so there’s practically no need to go any lower than using C.