Poll: Which programming languages have you mastered, and how many ?
According to http://www.99-bottles-of-beer.net/ there are 1304 different programming languages and variations!
I'm not going to try to find out how many options the poll system allows you to place.
DSLs have been removed, as well as duplicates.
Microcode, VHDL and Verilog are strictly on the boundary between hardware and software, but I still feel they are 'programming'.
27 comments
[ 0.38 ms ] story [ 91.6 ms ] threadThe languages above are all 'stand alone', not application specific, in other words you could conceivably program anything in them, that's a little hard to do in SQL.
Using stored procedures it is turing complete, but I still doubt anybody ever wrote an application completely in SQL.
I'd also argue that SQL isn't as much a DSL as I think you suggest, it's the de facto choice when programming on the data layer for any RDBMS (sure, the implementations may vary slightly, but if you're writing SQL that's often your only choice for a language at the DB level).
I feel your pain btw. That must be quite the mess.
I wouldn't consider someone a SQL "master" unless they had worked extensively with several dialects and could compare the differences between them.
PL/SQL and T-SQL are different, but not so different as to require a new way of thinking, for example.
Of course, I've worked with lots of dialects of SQL fairly extensively, so I may be over-simplifying.
(a) without reference to the web or your reference books.
(b) with a minimum amount of syntax errors
That's one of my main gripes with Java. Without an IDE you are essentially blind. The language itself is reasonably easy, but before you really grok those libraries takes forever.
And I really do not like IDEs, but when working in Java I almost have to.
The library and API's are just enormous.
Java is not a beautiful language! I find the language libraries quite verbose and difficult to memorize. Brevity is a virtue. If one is to master a language the first thing you should do (I know it might sound heretical!) is to start a small collection of wrappers and generic routines with shorter names that are easier to memorize.
A good example of such a 'wrapper', but from JavaScript is jQuery, which to a great extend is a wrapper around the DOM. At the expense of the code John Resig managed to minimize the API.
It does take time though!Libraries are nothing more than reading an API to get needed functionality without writing it yourself (not disparaging them, that is the point of reuse). That being said you should have picked up some basic library knowledge on your way to fully comprehending a language.
Lets take Java for example, I know guys that know every API of the JDK, JEE, Commons, et. al. They can glue together any enterprise app that you throw at them with JDBC, Struts JPA, and on and on) but they are by no means masters of Java.
As well when I did AI work for the simulation industry, I knew guys that did not know a lick of the libraries (hyperbole) but understood anonymous classes, listeners, command chains, threading and could work magic with their code. When I first moved to doing enterprise apps. I wrote my code as I did when I was doing AI and I was asked to stop writing it that manner because it was unreadable by the other developers. They had literally never seen an inline declared anonymous class used as method reference to emulate a delegate or function pointer.
Anyway long story short, one group clearly new the breadth of the libraries more thoroughly. But the other group could solve problems more efficiently. It depends where you place the concept of mastering a language. Clearly my opinion is that it is the latter.
I am not even close to mastering anything else. 16bit x86 assembly maybe, but that too is sketchy now.
http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf
Did it for a stack-based VM, then x86 and IIRC SPIM Mips.
I actually happen to love perl and have written 10's of thousands of lines of perl. I just do not always claim to know why it works :)
VB = BASIC, which is there.
There are many other structured basics besides visual basic (GFA Basic, BBC Basic and a whole slew of others).
Neat! I hacked about a bit on a sperry-univac 1100 series mainframe, similar sentiment, only twice as wide.
Do APL derivatives (J, K, APL2, A+, ..) count as APL?