After I have search the internet and I have reviewed several computer languages to find the most useful languages. In next video I will present top 12 most useful programming languages you could learn to become a software developer.

Top 12 computer languages

Language features

To describe a computer language you can describe language features. These are characteristics or attributes that can be compared. Some languages looks like each other and create a family. Here are the most significant features.

Syntax styleDifferent syntax styles can create a so called language family.C, Algol, Python
Programming paradigmIs the programming style or concept.Procedural, Declarative, Object Oriented, Logical, Functional
Execution modeThe way final program worksInterpreted, Virtual machine or Compiled
Type systemData types can be defined during design time or run-timeDynamic / Static
ParametersThe way we can use parameters in procedures and functionsOptional parameters, Variadic parameter, default values etc.
DispatchThe way we identify a functionFunction overloading/ Signature
ExceptionsThe way we deal with errorsException handling (try) or not
Memory managementThe way we allocate and free memory during executionManual / Garbage Collector / Reference counting
Character setThe characters we can use for keywords operators and constantsASCII / Unicode

Ada computer language

http://www.adacore.com/

For example: Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language. It is from Algol family similar to Pascal. Ada is a mature, feature reach computer language. His only problem it has many keywords and is difficult to learn. However Ada is a mature and establish programming language that is going to be used for many more years.

Notable features of Ada include:

Next I analyze 12 other most significant computer languages you can consider to learn as your first computer language or second computer language.  I will use some of  the languages features to explain very briefly the capability and career you can hope to have using a particular computer language. For every languages described here we will have a programming class.

1. HTML+CSS

HTML is “hypertext markup language” and is a descriptive language used for  internet static web pages. It is not a “Turing complete” language and does not have all features of a computer language. For example you can’t have variables, decision statements or loops.

CSS is a complementary descriptive language for HTML that help to change display aspect of a document. So the HTML will contain the text and CSS will contain the “cascade style sheet” for the document. Multiple HTML pages can use same style sheet. This is also not a “Turing complete” language.

2. JavaScript

http://www.w3schools.com/js/
JavaScript is the default programming language for dynamic web pages. This language is very fast for a dynamic language. It is a small little devil that can run in a browser and is a Java killer. It is easy to learn and is the most interesting curly language. The popularity of JavaScript has grown due to a simple fact: It can run in a browser. So you can create a dynamic website that is responding to user interaction like a program. JavaScript is multi-paradigm functional and object oriented.

3. Python

https://www.python.org/

Python language is a scripting language. It has grown in popularity due to it’s usage in Google as primary language. In my opinion will be used for many years to come. Python is a glue language for C, C++ and FORTRAN programs. To have performance many developers are creating Python extensions using different languages and glue them together using Python.

Why is not the first language in the top?

  • Python is relative slow because is an interpreted language;
  • It has GIL (Global Interpreter Lock) that prevent concurrency;
  • Do not have end of block (the code block is identified by indent only);
  • I do not like “def” and “__init__(self)” this makes code difficult to read.
  • I do not like you have to use “nonlocal” keyword;
  • You can use any kind of expressions not only logical for conditions;
  • Variables can change type and meaning on the fly;
  • Everything can become None, including a Boolean variable!

4. Java

Java is a general-purpose computer programming language that is object-oriented, concurrent computer language. It runs programs into a Java virtual machine called JVM.  That makes Java slow relative to C++ and FORTRAN.  Java will CONTINUE to be a top language due to it’s institutionalization.

It is not my favorite language because …

  • The syntax is hard to read;
  • It is not a native language;
  • It uses curly brackets to separate blocks of code;
  • It is pure Object Oriented language;
  • It is difficult to write parallel, concurrent and asynchronous programs;

5. PL/SQL

This is a very useful language designed for handling large data collections. SQL stands for Selection Query Language. It is the default computer language for relational databases. This language is a descriptive language and is a little bit different than all other languages. The PL/SQL is a procedural language used by Oracle that can have embedded native SQL.

6. Julia

http://julialang.org/

This is a language you probably do not know about. It is a dynamic fast and potent computer language. This is the reason It is in 1st place in my top 12 computer languages.  It is not a curly language but more like Python. For it’s simplicity and power we recommend this language for beginners. The most significant feature of this language is it’s ability to support Unicode operators.

7. Go

https://golang.org/

Initially Go programming language was created as a system language. However after the language has become mature it was used as server side service oriented language. This language has very nice features for parallel programming and concurrency. It has a small footprint and is an excellent language for high performance services.

It is a curly language and uses a garbage collector to eliminate unused references. This do not makes the language slow but game developers opted out and can’t use this language. So it failed to deliver the promised initial goal. However Go is a strong, graduated language, very robust and stable. It is a direct competitor for Java language and Python language.

8. Rust

https://www.rust-lang.org/

Rust is inspired from C but is much more then C. This language has a very established goal to make a fast language without C problems. Rust is a system programming language that runs blazing fast, prevents segfaults, and guarantees thread safety.While other languages make a promise and fail, Rust has managed to implement a trade safe language.

9. C/C++

These two languages can be learn together. You start with C then you learn C++. The C language is an Imperative language, very simple to learn but very difficult to use. The C language is the first curly language. It uses {… } parenthesis to mark start and end of a block of code. C++ is Object Oriented C. It is a multi-paradigm language. Now you can write classes and functions so it is a kind of hybrid language. C++ is more safe then C but it can include same fragile programming style.

Beginner C and C++ programmers can create very unstable programs without realizing. This is due to numerous syntax ambiguities and traps that C developers must to understand and avoid. Latest revision:  ISO/IEC 14882:2014 / 15 December 2014. Include many innovations and influence from other languages: Ada 95, C# D, Java, Rust and Python.

10.  C#

https://www.microsoft.com/net

I was not able to find C# official homepage. Instead here is the programming guide. What language do not have a home page? Also good resource for language syntax on Wikipedia. The C# language is intended to be a simple, modern, general-purpose, object-oriented programming language. However in my view C# IS NOT SIMPLE and is not multi-platform programming language.

11. Swift

https://swift.org/
Swift is created by Apple to replace Objective-C. It is more difficult then C++ and Java combined. It is the default native language for Apple devices.  Swift is winning due to Apple determination to make best mobile devices. This is a multi-paradigm computer language. The best feature of Swift is it’s native performance for Apple platform.

12. Kotlin

https://kotlinlang.org

Kotlin is a multi-paradigm, statically typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure. As of Android Studio 3.0 (released in October 2017), Kotlin is fully supported by Google for use with their Android operating system.

This language is very pragmatic and modern. It is a serious competition to Scala and Java itself. Once Kotlin becomes mature I’m positive it will be used by numerous companies for it’s productivity and versatility. And this is good for the language since you can find a job and use it in production for money making projects.