Programming Languages
I'll admit it, I hate programming languages! I know what I want to write and I understand how it should work under the covers. I learned machine-language on a PDP-8 in middle-school. So when I write a line of code, I expect to have a very good idea about what the computer is going to do with it.
With the onslaught of new languages, I just find that they get in the way of what I want to do. I know what I want the computer to do and the programming language is nothing more than a tool to accomplish this task. I really don't care what I use as long as I can do what I want in it.
Of course, having type safety, classes, etc. in a language is helpful, very much so, but not when it gets in the way of the methodology I want to use. I know I am giving myself away as a dinosaur, but my favorite environment is C++ when used as "C with classes." I know *exactly* what it will do and I can verify it with the assembler output if I am surprised.
My epiphany moment happened when a friend was showing the same program implemented in Julia and then Python. I found Julia almost unreadable. Why? drum roll please:
The language did too much! That's right, the language abstracted too much. As a C guy it was not obvious to me what was happening. My colleague had to explain the syntax and what the environment was doing.
In the C programming language the syntax is very simple and to the point. Every statement is more or less one logical operation. I find, for me at least, that operators that are logically consistent are easier to conceptualize and debug. Operators that do "too much" tend to make in depth knowledge of the language more important than it need be. As a young programmer in the 1980s, we had the notion that people unfamiliar with a particular language, but at least familiar with programming, should be able to read *any* code.
This was the light over my head this afternoon. This is why I HATE perl. This is why I don't like Julia. The reason was this: you needed to know the "language" before you could understand the program. In C, the "language" was simple. People familiar with basic programming concepts could read it easily. With something like perl, obscure syntax shortcuts can make a program very difficult to read if you are not an experienced perl programmer. This is a problem with development, maintenance, and long-term value of code written for a project. Nothing will free you from having to re-write portions of code when systems change, but an easily readable and understandable syntax will make a port/rewrite much easier.