This menu items under this heading describe the tools that I provide for free in my continuing effort to improve the state of the art for programming in different languages for different problems. It is my view that you should use the appropriate language for the job.
Here is the list of languages that I use with a brief rationale. Hopefully it will be of some use to you. Of course your list will probably very different.
Note that there are many languages like Ruby, Haskell, Algol, Fortran and Pascal that I have used for a brief period of time that are not mentioned below because I only used them briefly (Ruby) or haven’t used them for many years (Algol, Fortran). I don’t feel qualified to critique them.
Language | Frequency | Rationale |
---|---|---|
Bash | Often | I use bash for local system scripting that automates CLI tasks. When minimal output processing is needed because it is a bit easier to run applications. I don’t need to use perl system commands or backslashes or the Python subprocess module. |
C | Rarely |
ANSI C is an excellent system level, procedural language for developing kernel modules and other system tools that require it.
I use the GNU compiler almost exclusively. |
C++ | Sometimes | This is my favorite compiled language. I have used it for many years and find the static template support to be a huge boon to productivity (along with the boost library).
I use C++ when I need raw performance and strict control over memory use. Interestingly, in recent years, I tend to use it less because Python performance is adequate for the vast majority of problems that I need to solve. I use the GNU compiler almost exclusively. |
Java | Very Rarely | I used to use Java quite a lot but in recent years I switched to Python because I like it better. |
Javascript (ECMAScript) | Often | I always use javascript for web pages. It is excellent for make them come alive. |
Lisp | Rarely | I only use lisp to program Emacs these days. |
Perl | Rarely | An excellent, widely used scripting language.
I used perl for many, many years but moved on to Python because I feel that Python expresses algorithms in a cleaner way. |
PHP 5.x | Rarely | An excellent, widely used scripting language for web server code.
Like perl, I used PHP for many, many years but moved on to Python because I feel that Python expresses algorithms in a cleaner way. I also did some performance experiments on one of my servers and found that Python 2.7 with Apache mod_wsgi was faster than PHP and, finally, it was nice to be able to use the same language for internal scripting, GUI apps (wxPython) and web services. |
Python 2.7 | Often | I use python for portable command line, web and GUI applications. The 2.x series is currently my candidate for the best scripting language because I feel that it expresses algorithms in a concise readable format. In addition, I find that decorators and lambda functions provide capabilities that other languages like lack. For web applications I use the mod_wsgi Apache plugin. For GUI applications I use wxPython. |
Python 3.2 | Rarely | An excellent evolutionary step forward for Python. Unfortunately not all of the packages I need have been ported yet. |