Music is also a language, although it's normally more emotionally based. The tempo, intensity and intonation changes and the melody (rhyming and length of the words we choose) of our speech have a huge difference on how listeners react to our speech. Reaction to no variation is mostly a gentle snore <g>.
Labview II is a graphical `language' by National Instruments for manipulating and presenting data acquired through different instruments. As you'll guess, it's flow-control based i.e. `programmer' draws lines from instrument icons to data manipulation / presentation icons. Different line types represent different types of data. Icons may have several input and output `ports' into which one can connect either data flows or static values. Language supports also standard control structures like for, while, if etc. For example a conditional loop is represented with box which will contain the operations that will be done while looping, and it will have input(s) for the data that the loop will process, a (static) value input for the exit condition and output port(s). An icon on the screen is similar to a function on other languages. When an icon is double-clicked, Labview will open up a window for what the icon stands for, unless the icon is coded on a lower level language like C or C++.
I got familiar with Labview II in 1992 when I translated the Labview II beginner's manual for the Vakka-Suomen ammattikoulu (local vocational school where I spent a couple of months during job practicing time (for the technical school of Kajaani)). Back then there was only a Mac version of the program (Windows version came just after that), and the main problem with the program was that the data acquisition rate (at the best about 20kHz, greater rates seemed to generate too many interrupts and froze the machine...) was too small.
My first encounter with Basic was on a friend's Vic-20 in the beginning of 80's.
The second encounter was on Jan 1989 when I bought an Atari ST. During the couple of next years I occasionally wrote something in Gfa Basic (relatively advanced one) that illustrated or utilized something that had been on school math lessons. I also wrote a couple of simple games.
Another Basic that I used in those years was one embedded into a shareware spreadsheet named Sheet. I used it for doing some visualizations from the spreadsheet data. Nowadays I have also used the basic in Microsoft Excel. Got to admit that Excel is better. It's newer and MS got resources...
Atari ST GEM had a concept of `resources'. These were files which described the program interface: menus, dialogs etc., could be edited with a dedicated program and were understood by GEM AES. Gfa Basic had means for using these files, so that was my first encounter with interface builders. Unfortunately there was no language version which would have had an integrated interface builder.
While I was visiting the Vakka-Suomen Ammattioppilaitos I had a chance to test the Visual Basic version 1. It made no great impression, especially after Labview II... ;-) I guess that further versions are somewhat improved.
ST-News, one of the disk magazines for Atari had good articles on assembly programming. One series went through all the assembly instructions and how they are used and another concentrated on demo programming and had a very entertaining style... :)
I haven't programmed anything major with assembly, but I'm aware of how higher level languages and their constructs relate to it.
While visiting Vakka-Suomen Ammattioppilaitos I tried also Pascal as that was the only other generally available language there besides Basic. The program was something simple visualizing the data coming from an analog-digital board on one of the PCs.
I get to know little of Modula-2 when I helped my sister with her computer assignments (my sister studies math in the university of Tampere).
C is the language that I have used almost exclusively during the last two years, mainly because it and unix are so closely related and because C offers IMHO a nice virtual machine abstraction of the underlying hardware (except for bit handling) in easily usable way (lots of tools, relatively lightweight).
Best picture you got of my C activities by browsing most of my other pages.
Everybody dabbling with un*x variants has at least once programmed something simple with the shell programming language(s). I'm no exception.
Mutt is the macro language used by Craig Durland's text-editor ME (the Mutt Editor). Mutt is probably best described as simplified C with Lisp syntax. (an example)
I have dabbled with C++, but as compiler needs so much machine resources, I haven't done anything major with it yet. It not being dynamic, having some of the ballast from C and in general being more complex (cleaner syntax would make smaller compilers too...) than `necessary' make me to prefer C + Python combination, especially on platforms which support dynamic linking. The Standard Template Library should make C++ much more usable though.
Python is my favorite. It's an object oriented, dynamically bound and typed, interpreted language, which has some very advanced features and is available for about any operating system. Python is easy to extend / embed with / into C and C++ programs. The variety of libraries available for it isn't yet on par with Perl, but it's gaining...
I'm definitely going to tackle Java soon as it's getting quite popular, platform independed (in a way) and fixes a couple of C++ 'deficiencies'. Maybe I should wait until it's a bit more stabilized though?
Smalltalk seems interesting, but it would really, really need a graphical development environment with class browser etc. Unfortunately there's no such thing as freeware.
I have checked a couple of obscure special purpose OOP languages too in case someone is interested. MUD / MOOs programming / scripting languages are often object oriented and interactive fiction programming languages (e.g. Inform) are also moving into that direction.
Scheme was the language used on the TTKK's `Introduction to programming' course. It was nice and compact, but not something I would be comfortable with while doing something major. Pertti Kellomäki here is doing a micro-kernel or something similar with it though. :-)
Emacs-Lisp (text-editor) and Auto-Lisp (AutoCAD) are my only encounters with Lisps (there's also a Common Lisp extension available for Emacs Lisp). Head and tails with recursion make program listings elegant, but dynamic arrays, slices etc. with Python are so much handier...
POV, the Persistence of Vision raytracer, is the best freely available, portable raytracer. Doing POV scene descriptions with CSG (Constructive Solid Geometry) is lot of fun. However, that's not even fifth of what POV can do especially after the last v3 POV release that added lathe, extrude, True Type font support, mathematical functions, loops, halos, atmosphere and radiance effects, caustics and lots more. I haven't done anything 'serious' with POV, but see my pictures anyway!
TeX is currently my preferred method of outputting text onto paper. TeX is an oldish (last new version 1984, last patch 1989), but still good macro language (i.e. easy to use remotely too :)) for typesetting technical documents. It's `flexibility' allows it to be used (albeit not as easily) also for other typesetting purposes, even for music. It has again became popular with the success of Linux operating system and other free software. It's the second most common format where Linux SGML documents are converted to.
You probably have already noticed that I can handle the basics of HTML. I don't have any need for forms or CGI-scripts and most browsers for which I target these pages, won't support HTML 3 features like tables. I'm aware of the later additions though.