The title is meant to be catch your attention – and even I sometimes ask that question. It bothers me because people are so much more than just a programmer – but a solutions provider and go waaaaaay beyond technical know. Soft skills learned in the leadership masters degree for example, is primarily people related and affects the bottom line even more pronounced than the technical details. Similarly, when people ask “what language do you program in” . . . the answer is waaaaay beyond a specific one – but is is the solution provided that matters. Therefore the correct answer is “whatever language gets the job done and whatever it takes to glue things together … for you!”
Below is a personal experience with each language and it also lists the familiarity with them.
My mainstays seem to be php, .net (vb and c#) and Filemaker but lately I have done so much groovy and Java development that that is now second nature!
PHP – I can’t count how many thousands of lines I have coded. All my web development mainly uses this. This is a simple language understand and there are hundreds of people deeply embedded over the past 10+ years.
.net (vb and c#) was my mainstay while contracting to Telvent (now Schneider Electric) in their screen developement. Dozens of time saving stand-alone tools were developed as well as they main job- designing .net based screens to control pipelines and high power electrical systems (those were my tasks). Other .net jobs was the parent paging tool developed to integrate a check in system which is been in use since 2004. Lately a tool to interface with a counter-top inventory tracking system was developed in .net and runs nightly to scrape data and process material consumption via .net API and another to get customer data from another database.
Groovy – it took me a little time to get my head around groovy and a friend asked “so how do you like crawling again?” Within a week of forcing myself to learn it well – I was up and running. You can do so much in a few lines of groovy – it is I think an advanced language. Using Java (which groovy runs on) was so easy to learn as it is just like C. Advice is to learn it’s terminology through this great tutorial available at Oracle.
Java. Within a week I was as fluent with this as Cocoa, or .net. It is a very structured language with little room for making mistakes. A lot of custom code as been written for the Bonita platform and Java ties directly into it since Bonita is written in Java and uses groovy scripting to complete the rest.
Bonita. This can be considered a progamming language of sorts. Most of the flow is done visually. Most of the nitty gritty is done in groovy and/or Java.
Filemaker. I hve written extensive administration systems in Filemaker – hundred of scripts integrated with dos and unix scripts for doing things like ftp, xml manipulation etc. This is beyond thinking in terms of tables. You use the scripts to drive nagivation, decisions and to automate many tasks in Filemaker. It is a database system that anyone can understand.
C and C++. I have learned this when I was 14 – grabbed a book and started to go. I had to use object oriented concepts far after they were developed in 2004. The whole idea about asynchronous clicking by the user forces good programmers to think proactively about ‘what could go wrong’.
Cocoa – iOS and Mac OS X development. Steve Jobs was a genious (he invented it). This language is basically C++ but the structure is developed so that you can design fast. It is tricky but I am now in the cool club. A project for a dashboard app, a crossword puzzle, a secutity camera viewer app, a classroom coordinator app (a multimedia player over multiple machines) and a parent page viewer have all been developed using the Cocoa language.
Applescript – the most english language version of programming I have ever done. I have automated many processes to allow files to be transferred, things to be uploaded etc. Teen agers were able to do a whole secretaries job my moving this and that process ahead with automation. Many scripting languages use applescript and it fills the gap. Put this together with Automator and you can do just about anything.
VBA – One might think this is .net – it isn’t really. It counts since I have done THOUSANDS of apps and lines of code with this. Programming in Excel was the mainstay but also in powerpoint, Excel, Access etc. have been done
Excel . I would argue that there can be many times when Excel is eerily like a progammed language or a cascading series of custom formulas just like programming. Add a hint of VBA and MANY full blown applications result.
Javascript and Actionscript Everything on the web in the old days required checking – Javascript with HTML5 now also thrives on it. I have used this extensively as well. Now with jQuery as a hybrid version of web programming – Javascript is still an active language. In the world of flash – actionscript replaces javascript and many months of actionscript are also under my belt.
Perl – This was my first language that I replaced an entire administration position with staff at home over the internet. One can do almost anything with Perl and do it in such a way that no one can understand what you have done (including yourself if you go back to it in 6 months) – this is not what I have done but it shows what a powerful language it is. This is a language that glues things together and can do complex mathematical operations
Labview. Extensive automation was done with GPIB interfaced lab equipment. This is a language that you drew wires from one part to the other. Many lines were drawn to accomplish what most people do by typing.
Mathcad and Matlab. One is graphical, the other more like progamming. This was the main stay of my early career while taking my Engineering Masters at the University of Calgary and my undergraduate degree at the University of Waterloo.
Python was used for scripting on the XMBC video player as it has a python interpreter in it. This XBMC platform works on all sorts of platforms even with jailbroken apple devices so it was a perfect choice for the project. It used Python . . . so python was learned. It has a syntactically different structure with no { } but the # of tabs determines what code belongs with what. Neat.
Unix shell scripting like awk and sed. Are those languages? Sure. I have fought tenuously with XML and XSL and understand that now as well. Add Google map points with kml, facebook apps (Javascript and php), DOS, SQL, wsh scripting and other proprietary languages and you will soon see – why I cannot and do not like to answer the question “so what language do you use?”