In 1997, I was walking around the pond in back of our office in Marlton, NJ while my boss puffed away on his Marlboro beside me as we discussed the state of affairs on one of my projects. I asked him, incidentally, how many programming languages (including OS script languages and assembly languages) he'd used professionally. He'd lost count; by that time, I myself was up to about eight or ten and was busy learning a new one called PL/Trim (a "4GL" used at that time (and maybe still) by Boeing and three other customers, of whom we might have been the smallest). All their software was in PL/Trim except for some library routines written in C.
In 2001, I got a job to develop an interactive voice-response (IVR) application very similar to the one I'd built in 1998 in Visual Basic - only this time, I had to build it in Java, a language with which I was barely familiar, and I had to find a test platform to run it on. I did both, and had a working prototype ready in three months.
Back at the beginning of my programming career, my first permanent programming job required a C programmer, which I had become without benefit of formal training - my debugging technique in C was sufficiently sophisticated that my new boss decided I was worth the risk. So even then, I was working with languages that I was learning as I worked.
It still stuns me sometimes how many programmers out there have never, ever programmed outside of one or two languages, usually their primary development language and the script language used by their primary operating system.
It always amazes me that there are programmers who are afraid of diving in and learning a new language on the fly.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
Functional and declarative languages do pose a learning curve for the experienced programmer...and somewhat less so for the novice, who has fewer "procedural assumptions" to unlearn before understanding the paradigms expressed by these languages. Prolog sticks in my mind in this connection: early in my developer education, I had encountered Prolog and had experimented with a Prolog interpreter; when I used Prolog later in graduate schoool, after a few years of intense C coding, I found it more difficult to reacquire Prolog than I did learning it the first time, due to the mindset for expressing algorithms procedurally that I'd acquired in the meantime. You have to accept these languages on their own terms, and experiment, experiment, experiment until the light goes on and you "get" how it works.
I learn a language by writing a compiler in it - I have a language called Tyke which I first wrote the compiler and runtime for in SPL (a dialect of PL/1 on Prime computers) then wrote it in C, then C++ and now C#
At the time I was very comfortable with C, C++, Assembler, Basic, Pascal, HTML and several database support languages then they wanted me to write in Perl. It is just another language, I thought, all you need is the syntax; what I did not know at the time is that Perl is all syntax. Now that was a learning curve but huge fun. Perl of course is a write only language and now ten years later, surprise surpise, I have forgotten it all but I treasure the memory and it was an interesting project.
I'm a programming dinosaur. I learned Turbo Pascal. But since then, it's all been mostly in the C/C++/C#/Java/Obj-C/Actionscript family. I can pickup PHP or Actionscript in a weekend, and have, so no big deal. Just dive in and do a web search. On the weekend do a little reading and you are ready to roll.
I suppose there are so really obnoxious languages but even then you can prototype in your language of choice and port the code.
Agree. Sure, there are some languages with different concepts - functional programming, OO etc - that may throw you a bit if you're not used to them, but my experience is that once you learn a second language it gets very easy to learn the next ones. Programming is programming, and languages is just about syntax for the most part. It took me only a day or two to pick up the essentials and be reasonably productive in both C# and Java, and so far I've had the same with just about any other language I've tried.
That was the phrase I was trying to remember! The old language classifications of imperative vs. declarative and structured vs. unstructured. Now there's also procedural, functional, OO, etc., etc., etc.!
Last Visit: 31-Dec-99 18:00 Last Update: 2-Oct-23 12:32