Technospeak
By Andrew at 8:32 AM
Occasionally I have been asked what programming languages are good to learn for someone interested in software design. In reality, the principles behind each language are very similar, allowing people to accomplish the same things through using essentially a different vocabulary. However, there do tend to be trends with which languages are most popular, and I will make an attempt to address a few of the more common languages today along with their general uses.
Traditional languages such as COBOL, Fortran, and BASIC have tended to become less and less popular recently, due to the advent of a number of new high-level languages. For the purposes of this discussion, suffice it to say that higher-level languages are languages that tend to be less dependent upon the specific computer they are running on and therefore more flexible. While these older languages are not nearly as prevalent, software engineers with an understanding of these languages are definitely needed due to the existence of crucial legacy systems using these languages in applications such as factory machinery and nuclear reactor control.
Common languages today fall into two categories arbitrarily classified as languages used for desktop applications and languages used for web applications. “Desktop” languages prevalent today include C++, Visual Basic, Python, Objective-C, C, and to a lesser extent, Java. “Web” languages include PHP, JavaScript, CGI languages, and ASP, as well as presentational (used for displaying information, not executing a program) languages such as HTML, CSS, and SQL.
“Desktop” languages are relatively dependent upon the final system the application will run on. Objective-C is used in Apple devices, while C++, C, and Java are used on a variety of computers and mobile devices. The power of these languages is fairly broad, as the systems they run on can be scaled from a modest single system to millions of systems that are interconnected. It is good for a software developer to have a basic understanding of most of these languages, although in reality, should they develop primarily for desktop environments they would likely develop a proficiency and expertise in one language over the others merely by using a specific language on a daily basis.
“Web” languages can run across many types of systems, from desktop computers to mobile devices to web-enabled TVs. HTML is the cornerstone upon which other web languages build, languages which tell HTML elements to actually perform actions. Similarly to desktop developers, a basic understanding of each of these languages would be great for any programmer to have, and in reality, most of these languages function together to create a complete system, with very few being able to accomplish anything meaningful completely on their own.
If I were to recommend a starting point for a new programmer, I would suggest starting with HTML and progressing into CSS, JavaScript, and PHP, primarily because that is how I began, but also since web programming is the direction the industry is headed. Regardless of the language one begins with, it is quite likely that you will run into other languages along the way. For example, even though Python is commonly known as a desktop scripting language, it can be used in web development as well. The key is to choose a language to stick with as a starting point, learn about how the various elements work, then expand that knowledge later on by extending those principles to another programming language. At that point, you will find it easier to pick up additional languages and to ultimately become fluent in technospeak.