Geek-9pm...
what about Delphi? I've heard it's quite similar to pascal, but adds more modern principles, like, being able to store strings longer then 255 characters.
Pascal was a teaching language- but that's it- an academic exercise language, as you've stated. It's great and was used a lot for teaching programming, because it enforces a few things syntactically that would normally need to be enforced by the programmer, such as the structured sectioned off portions of code for declaration of variables, constants, interfaces, and finally the implementation.
Delphi... well I've never actually fired up my copy of Delphi very often. It is however the "next iteration" of Pascal- that is, it is very similar to Pascal, but adds better dealings with objects.
Java- Java is and has been used, and put on a pedestal, because of it's "superior" implementation of OOP. The main strengths being it's platform independence.
The last time I used Java, I created a COM component with J++; something I could use from Visual Basic, so I could use Visual Basic to "unit test" the component. Also, I found that the COM extensions added to the Microsoft JVM included the ability to instantiate any Java accessible object- for example, CreateObject("java.lang.String") would actually work.
Every once in a while I'll write a little C++ DLL for something. Being able to access DLL's from many other languages as well as leveraging COM and .NET components from a number of languages (any scripting language I've encountered can create ActiveX objects somehow, when run on a Windows machine), of course for obvious reasons Scripts can't usually access a DLL function directly (obvious reasons being that, they removed file access from the VBScript language for a reason). Some might say, "but... what about the FSO?" Ahh, yes, you can access files, open, save, etc with the FSO from VBScript, JScript, and other languages- but the component itself is not marked safe for scripting and therefore untrusted scripts (usually those implemented on a web-site) cannot use it. the problem though- is while almost every other language that is even usable on Win32 can interoperate (Scripting languages get this free with the Scripting Host, in fact), Java cannot, as far as I can tell. (my recent attempts to research this failed, though I may try again now that my PC can actually run NetBeans)
One more thing: something that I've found nearly indispensable to have for nearly any language- an IDE of some sort. Many languages "come with" one for free- that is- paid ones, such as Visual Studio; .NET etc. Scripting languages, by definition, don't come with one in the standard package but they all come with a free IDE, or one can be found (such as the aforementioned IDLE for python,NetBeans for Java, Microsoft Script Editor works for any WSH enabled language, too)- sometimes "better" IDE's can be found at a price, but the free ones are usually quite powerful.
So that brings us not to a choice of Language necessarily, but also a choice of IDE.
I originally thought that the old "turbo Pascal" was the last iteration of any strictly pascal IDE (that is, not Delphi) but a quick google reveals that Pascal has a free compiler as well as a free IDE (
http://www.bloodshed.net/devpascal.html).
Visual Basic 6... well, It's IDE kind of sucks, and because of it's strict coupling there haven't yet been any replacements developed as of yet. Most of the "suckiness" comes simply because it's designed for windows 9x/NT4, so it doesn't support Luna/Aero (it can be forced to with a manifest, though, just like the EXEs it creates). If I was getting started with programming today, I probably wouldn't bother with VB6 at all, except perhaps as a history lesson.
.NET: each .NET language (including IronPython) has a great IDE with a lot of features. but the .NET environment suffers from one fatal flaw- it's slow. It takes over 4 seconds on my quad core to even show the splash screen, and another 6 after that. Additionally it suffers from constant "lag" in whatever you are doing, and it has personally caused me to lose my train of thought multiple times. Maybe this is because I don't use it often, so it isn't "registered" as something SuperFetch should retrieve, so comparitively it takes longer- I don't know.
More to the point, while the "express" versions of the .NET languages are free, you are not able to create commercial applications with them- you'd need to purchase the far more expensive paid versions of Visual Studio. Alternative IDEs do exist for .NET, namely SharpDevelop, which are possibly faster.
To be fair however, Java... or more precisely, NetBeans, suffers from similar slowness; with a similar amount of power. Again, this is probably due (personally) to it simply not being cached by my OS like my oft used programs.
Scripting languages almost ALL have at least one IDE to use with them; Python has IDLE (and probably more)m Perl has RegExBuddy (HAHAHA, just kidding, I should say something like Open Perl IDE (
http://open-perl-ide.sourceforge.net/). the best thing? if you don't like the IDE, you can choose another, and if you don't like to use an IDE at all, you can always just use notepad and the command line interpreter. Also, Notepad++ has the ability to syntax colour and fold code blocks for a LOT of programming languages, and even allows the addition of a command-line to run each script type. The choices of how to develop with a script language are endless. AND- because, unlike, say, C/C++, you don't have to decide on one of a number of incompatible compilers, and rather are using the same, completely interpreter regardless of the IDE you choose, code you develop in one IDE will work with another (heh, try that with say, Borland C and Microsoft C)
Also: almost every scripting language can easily be used- on the server-side to generate page responses, used either through the scripting host on IIS or via easily obtained plugins for apache.