These are the programming languages I am using or that I have used in the past. For the languages I can speak, please refer to this article.
There are hundreds of languages in the computer world. I have been practicing quite a few and I develop a sense of software development. Languages just became a tool to me and now, I am just using those tools with higher goals in mind. Whatever the language I use, my developments are now driven by maintainability, readability and reusability. At some point the code I write will have to be tested and retested, I am trying to make sure that, whatever the language I use, the code I am creating will survive the evolutions of the product... unless, unless it is planned to be used once.
Assembly
Like probably many people from my generation, I wrote machine code for 6809 using a hex keyboard to insert instructions. At some point you get a feel for it and type in directly the hex value of the instruction without having to search for it in the list of mnemonics. I have wrote and debug applications at assembly level for various microprocessors: MC68000, i80186, arm7 and more that I have forget the name.
Ada
Ada used to be my favorite language as it is the only language was that developed to the readable by a human and to be an ISO standard. It was the result of a quest for the best language I should learn above all.
I had developed small parsers for my own usage using Ada 95. When I was a freelance, I have been contracted to review some Ada code for space probes or embedded devices in commercial aircrafts.
I also used IBM Rational TestRealtime on Ada code. And I wrote an Ada TDP for IBM Rational TestRealtime.
Knowing Ada made it simple for me when I encountered some VHDL code.
C
Many years of practice in C language. I used C in several circumstances:
- development
- testing
- review
C is the language I encounter the most when dealing with embedded devices or when doing multitasking (POSIX).
I have worked on project where I had to integrate assembly code with object code from C, hence I am totally familiar with building C applications.
C++
I trained myself on C++ but got less usage than C language.
- development
- testing
- trained people
Pascal
I never really trained on Pascal language. But was not very surprised by the language, it came naturally. I had to do maintenance on application written in Pascal for the aeronautic industry.
SGML/XML
Electronic documentation used to be a center of interest for me and I naturally encounter SGML (Standard Generalized Markup Language). A language to describe languages. It was difficult to find parsers and I had to write some but when I was a freelance, I created SGML instances for my documents: my accounting documents and the trainings I wrote.
My website was created using another instance of SGML: Docbook.
A few years ago, a simplified instance became popular: XML.
HTML
Of course, for writing some websites. From HTML 2.0 until HTML 5. But I am happy to have found CMS to do most of the job. I can focus on customizations now.
Javascript
I used to do some Javascript to add some features to website but I am using it daily since my job lead me to ServiceNow.
Python
I am using Python on my personal project of 'Internet of Building'. Python is used on a Raspberry pi running Linux and FreeBSD. Those devices are performing monitoring activities and I use Python in combination with Shell scripts to treat the data.
I also use Python to script Blender (a 3D creation application I use for video editing).
Perl
Before PHP became popular, the logic in the backend of my web servers were written in Perl. I did a lot of scripting for online clients.
I also wrote and gave a training on Perl using the Perl/Tk toolkit.
PHP
I came to PHP when I started to use CMS like Wordpress and Joomla. The site you are browsing on in running Joomla, a combination of HTML, Javascript and PHP. I am using a commercial template in which I had to customize the HTML and the PHP.
Grafcet (EN 60848)
This is a graphical language similar to Petri network. It is used in industry to program PLC used to automate productions plants.