Skip to content
This repository has been archived by the owner on Jun 28, 2022. It is now read-only.

Latest commit

 

History

History
26 lines (18 loc) · 4.2 KB

File metadata and controls

26 lines (18 loc) · 4.2 KB

An Overview of Languages

Link to the webcast

What is a Programming Language?

Let's actually scale back a bit and first talk about the more general family of computer languages. These are constructed languages (which means they were invented by people rather than forming naturally over time) which are read and understood by computers (sometimes through several additional steps).

A programming language is a little bit more specific. Computer programming languages relay instructions to a computer which are then executed in some order. What are these instructions? At the most basic level, every computer is just a bunch of electrical circuits wired in such a way that logical operations (like basic arithmetic and the evaluation of Boolean expressions) can be executed. An instruction is a series of binary signals (0 for off and 1 for on) that control the flow of electricity in these circuits. When you write a program in Python for example, it is translated by the computer into instructions (this is why you must have Python installed to run it, the computer has to know how to interpret the code).

There are some computer languages that are not programming languages. Two examples are HTML and CSS. These languages do not give a computer a set of instructions to execute and instead provide meaning to a structured document. HTML is called a markup language and CSS is a style language.

Important Languages

The following are some of the most important languages ever created. While it is not necessary to be fluent in all of them, familiarity with their existence and (either modern or historical) use can help you stand out amongst peers.

  • HTML: HTML is a markup language, which really means its a fancy way of making a document rather than an actual programming language (it lacks necessary logical features such as conditional statements, loops, and expression evaluation). As you've probably seen already, most of the Internet is comprised of linked HTML documents.
  • CSS: CSS is a style language, which is another kind of non-programming computer language. Style languages, as the name implies, provide style to structured documents. This is what programmers use to make their HTML documents colorful and more lively.
  • Python: A favorite programming language for numerous applications, including web programming and data analysis. Syntactically, it is considered one of the simplest languages which makes it a great choice when working collaboratively.
  • C, C++, and C#: C is arguably the most important programming language ever created. It is the backbone of numerous systems including most operating systems, notably Linux. Writing C code is quite demanding, and forces the programmer to be immensely detailed with the instructions they give the computer. C++ and C# are based on C syntax but are less "hands on"
  • Java: A descendant of C, Java is well known as a "write once, run anywhere" language which means that translated Java code can run on any computer (differences in hardware requires re-translation in many languages). Java is the primary language for Android applications.
  • JavaScript: Many assume JavaScript to be based on Java, but the two are really more like cousins with C as a common ancestor. JavaScript is sometimes called the "language of the web" as it is the language that enables websites to become interactive.
  • Ruby: Ruby programmers are often stereotyped for their obsessive love of the language, and its true that Ruby programmers are part of a very involved community. As a language, Ruby is very similar in syntax and use to Python.
  • Swift and Objective-C: For many years, Objective-C (another direct descendant of C) was the primary language for Mac OS X and iOS development. Apple replaced Objective-C with their own language, Swift, in 2014. Swift is intended to be more concise and less error prone than Objective-C.
  • Other Popular Languages: Scala, Go, Perl, PHP (PHP: Hypertext Preprocessor), MATLAB, Mathematica
  • Historical Languages: FORTRAN (Formula Translating System), APL (A Programming Language), BASIC (Beginner's All-purpose Symbolic Instruction Code), ALGOL (Algorithmic Language), Lisp