Over the years people have developed an unbelievable number of coding languages. They all do pretty much the same job in pretty much the same way. Personally I have coded in Mercury Autocode, COBOL, FORTRAN, PL/1, LISP, Assembler, PERL, basic, C, C++ and JavaScript plus probably some others I have forgotten. Check the list of popular coding languages and you won’t find any of these except C variants and JavaScript1. That is because I have been out of the business for a while and coding languages are items of fashion. Every couple of years a new language becomes the latest hot language. Right now that is Python for reasons that totally escape me.
To make this clear. The world only needs a couple of coding languages, one for regular applications and another (maybe) to write operating systems in. None of the languages for general coding discussed here are a significant improvement on PL/1 which was invented in the 1960s2 , except for support for object orientation, which at the time had not been invented. Had a PL/2 been developed with Objects supported we could all just get on with coding.
But we are where we are.
A few of the languages on the list I recognise from my career. PHP was an early entrant for web development. It is used by a lot of older websites , so I don’t see it going away soon, but it will fade into history as it is unlikely to be used for new projects. Java is a good language, but is it that much better than C++? SQL isn’t really a coding language, Ruby was the future once, the others I have never heard of.
If you want my guess at languages that will still be on the list in 20 years time I would say JavaScript and C++. C is used to develop Unix so that isn’t going away. JavaScript’s longevity is assured for one reason. Browsers only support JavaScript. So JavaScript is going to be with us for long haul. I can’t see this changing. You can use is on the server, on mobile phone apps and in every browser. So learn the language in college and expect to still be using it when you retire, or when the concept of coding becomes out of date because some AI is doing it for us,.
However JavaScript has a flaw.
JavaScript was developed in the late 1990’s to provide some coding capability to Web Browsers. At the time the coding ‘language du jour’ that people were getting excited about was Java, and JavaScript was a lightweight version. It was a fairly simple language to carry out simple tasks in the browser. Since them it has been developed into a rich coding language which can be used in web browsers, and in the web server. It has a shortcoming however.
Let us look at a couple of lines of code:
let name="bob";
name=100;
That is very simple but illustrates the problem. A variable can be any type, string of characters or number and switch between them at will. That doesn’t sound important. in fact on the face of it is looks quite handy. However there are much more complex examples than this, and it is very bad practice. You really want a language to be strictly typed – meaning once a variable has a type it keeps it. (Ahem – like PL/1).
So TypeScript arrives on the scene. It is JavaScript plus strict typing. So in the above, the first line specifies that name is a string because you assigned a string to it3. The second line throws an error.
You can’t run TypeScript programs however, you compile them into JavaScript which you can use in all the places you can use JavaScript.
I have started converting my lockdown hobby project (SUDSJS.com) and it has been quite successful in finding things that were not really bugs, but shall we say bits of code I would have written differently. It is also excellent for documentation. For example I never really documented the options in the schema, but this forced me to.
So all in all a Good Thing.
- The list includes SQL which isn’t really a coding language like the others. I have used that obvs.
- I learned it in the mid 1960’s as NPL = new programming language . I still miss some of its features for example mixing fixed and optional name-value pairs in functions like this myfuncton (33,44,x=4, y=5);
- You can explicitly define a type without assigning a value – even define a variable that can have more than one type at different times: let name: string | number ; Sounds bad, but because you explicitly define it, you probably know what you are doing.
Leave a comment