|PC History | Internet History | Operating Systems | Languages | Language Examples|
Most Popular | Best Environment/Application - Features |
Imperative or Procedural |
Machine Language (1GL) |
Assembly Language (2GL) |
Third Generation Languages (3GL) |
Low Level 3GLs |
Compilers, Interpreters, Bytecode: |
Performance and Ease of Use |
RISC - Reduced Instruction Set Computers
Most Popular Languages (rank): See also Language Examples
Pascal (), Lisp (30) and, COBOL (42) had made the top 20 in 2013 with less than 1%|
* Apple replaced Objective-C with Swift, a language primarily for developing apps for Apple products iOS, OS X, watchOS, and tvOS.
- CL - The most searches for programmers on Craigslist in 2011 according to LangPop.com (not around now)
AI - Deep Learning
The 5 best programming languages for AI development | InfoWorld PythonJ ava LISP Prolog C+ AI + Probabilistic programing Pyro - Uber Edward - Columbia U.What do the big web sites use:
Google: C, C++, Go, Java, Python, PHP, AJAX
Facebook: PHP, C++, Java, Python, FBML, AJAX, Erlang, D, XHP
Twitter: C++, Java, Scala
Amazon: Java, J2EE, C++, Perl
Books on Amazon: Java - 10,836; C - 32,259; C++ 7,020; Python - 1,925; C# - 2,780;
Best Environment/Application - Features:
Imp - Imperative (see below)
Imperative or Procedural languages specify how to solve a problem.
Other Taxonomies of programming languages.
Types of Languages: - Imperative/procedural languages ("block-structured") Pascal, Fortran, C, Ada... - Functional languages ("expression evaluation") Scheme, LISP, Haskell... - Object-oriented (encapsulation, "message passing") Smalltalk, Java, Objective-C, C++ - Logic-programming Prolog - Scripting languages Perl, Ruby, PythonSee:
Programming Languages and Software Engineering | Texas A&M (Power Point)
programming languages - Truly understanding the difference between procedural and functional - Stack Overflow
Comparison of programming paradigms - Wikipedia
Programming languages - truly understanding the difference between procedural and functional - Stack Overflow
In 2014 Python surpassed Java as the most popular introductory language in CS departments. Quora
Other Language references:
Types of languages by Generation and level:
Examples to compute PAY = SALARY - TAXES Machine Language First Generation Languages (1GL): Computers were originally programmed in machine language with a numeric operator and operand (e.g. the memory location where data is stored).Very High-Level or Natural Languages: (Non-procedural languages) Fourth Generation (4GL)
There is no consensus about what constitutes a fourth or fifth generation language. Some say there is no consensus on any generation definition.
1GL thru 3GLs are procedural in nature i.e., They define HOW to do it. i.e., The procedures require the knowledge of HOW the problem will be solved.
Contrary to them, 4GLs are non procedural. That is only WHAT of the problem is coded.
Structured Query Language (SQL) is a variation on 4GLs.
e.g. A SQL report showing the total units sold for each product, by customer, might look like this. TABLE FILE SALES SUM UNITS BY MONTH BY CUSTOMER BY PRODUCT ON CUSTOMER SUBTOTAL PAGE BREAK ENDOther popular query languages are Query-by-Example, known as QBE, and Intellect.
Fifth Generation Language (5GL)
What is Fifth Generation Programming Language (5GL)? - Definition from Techopedia says,
Considerable research has been invested in the 1980s and 1990s, into the development of 5GLs. As larger programs were built, it became apparent that the approach of finding an algorithm given a problem description, was a very hard problem in itself.
Most of these efforts were abandoned. The term is now frequently misused.
Uses a visual or graphical development interface to create source language
that is usually compiled with a 3GL or 4GL language compiler.
Definition 2: A computer language in which a problem is presented as a series of facts or constraints instead of as a specific algorithm; the system of facts can then be queried; considered the most "natural" of languages.
- Wikipedia says Fifth-generation languages are used mainly in artificial intelligence research.
- PROLOG (acronym for PROgramming LOGic) is an example of a Logical Programming Language. It uses a form of mathematical logic (predicate calculus) to solve queries on a programmer-given database of facts and rules.
Low Level 3GLs
In the 70's Bell Labs (Dennis Ritchie) developed the C language designed to write systems software (Operating systems, device drivers, etc.). It approaches assembly language in efficiency while still offering high-level language features.
It is now considered a general-purpose language, but is harder to learn than higher level languages.
As Object Oriented languages became popular in the 80's other lower level general purpose languages followed.
Machine code is binary (1's and 0's) code that can be executed directly by the cpu.
Object code is a portion of machine code that hasn't yet been linked into a complete program. It's the machine code for one particular library or module that will make up the completed product.
In the 1980's Object-oriented programming (OOP) became popular, with languages like C++, Objective-C (now swift) & Smalltalk. Java and C# are also Object-oriented languages.
A object-oriented program is a collection of interacting objects, which can be viewed as independent "machines" with a distinct role or responsibility.
PHP, a higher level interpreted language, is the preferred language for dynamic web pages, but ruby and python are popular also.
See Web Programming
Performance and Ease of Use (Expressiveness):
Expressiveness: You will see the term "Expressiveness" applied to languages. An expressive language is easier to read and requires fewer lines of code. A less expressive language is more precise and generally results in improved performance. In the table below a 6 for Python means one statement in it would require 6 in C.
Expressiveness in "Comparison of programming languages" - Wikipedia
1. Code Complete - Steve McConnell - Google Books
2. The Computer Language Benchmarks Game | Debian
3. Programming languages ranked by expressiveness - Donnie Berkholz's Story of Data
Speed-Performance - Higher = Slower relative to C
4. fastest? (64-bit Ubuntu quad core) | Computer Language Benchmarks Game | Debian
5. Programming Languages Benchmarks | github.io
Algorithms are more important the processor speed or language efficiency.
Performance varies greatly depending on the type of problem.
The Computer Language Benchmarks Game
Summary | Computer Language Benchmarks Game
fastest? (64-bit Ubuntu quad core) | Computer Language Benchmarks Game
Shed Skin is an experimental Python compiler, that can translate pure, but implicitly statically typed Python into C++ and executes at C++ speeds.
Some of these use CPU seconds, which is not a real measure of total time. There are wait states when the program is reading files or library code.
Note: There is a big difference in speed depending on the implementation (who's version) of Python and some other interpreted languages.
At conclusions | The Computer Language Benchmarks Game they say,
RISC - Reduced Instruction Set Computers RISC is a CPU design strategy based on the insight that simplified (as opposed to complex) instructions can provide higher performance. They require more instructions per operation but each instruction takes fewer CPU (Central Processing Unit) cycles. Early computers were RISC computers. Computers in the 70's got more complex with a instructions that included two or more operands. The modern version of RISC design dates to the 1980s. In particular, two projects at Stanford University and University of California, Berkeley.
Popular versions of RISC CPUs are MIPS, Sun SPARC, PowerPC, ARM (used in smart phones and tablets)
The ARM processor has 23 op codes.
See RISC vs. CISC at Stanford.edu
When a new programming language is designed it is invariably strongly influenced by languages that preceded it. One thread of related languages is:
Algol CPL BCPL B C C++ Java
The list at Timeline of programming languages - Wikipedia shows the predecessor for each language.