Strong Static Typed Languages

An overview of programming languages with strong type safety and static type checking.

Strong Static Typed Languages
  • Type safety and type soundness are the extent to which a programming language discourages or prevents type errors.
  • Type checking is the process of verifying and enforcing the constraints of types. (Type checking may occur at compile time, as a static check, or at run-time.)
  • All of the languages listed below are compiled languages.

Here are the Top 10 "Strong Static Typed Languages", sorted by TIOBE Index Rank, a measure of the popularity of programming languages. (The ratings are based on the number of skilled engineers world-wide, courses and third party vendors.)

Top 10 Strong Static Typed Languages

1. Java (TIOBE Rank #3)

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere, meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them.

Java first appeared in 1995.

2. Go (TIOBE Rank #12)

Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name, golang.org, but its proper name is Go.

Go first appeared in 2009.

3. Fortran (TIOBE Rank #15)

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing. It was originally developed by IBM for scientific and engineering applications. It is often used in computationally-intensive areas such as numerical weather prediction, finite element analysis, computational fluid dynamics, geophysics, computational physics, crystallography and computational chemistry. It is a popular language for high-performance computing and is used for programs that benchmark and rank the world's fastest supercomputers.

Fortran first appeared in 1957.

4. Swift (TIOBE Rank #16)

Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. and the open-source community. It was built with support for dynamic dispatch, late binding, extensible programming and similar features. Swift has features addressing some common programming errors like null pointer dereferencing and provides syntactic sugar to help avoid the 'pyramid of doom' (nesting/indentation issues).

Swift first appeared in 2014.

5. COBOL (TIOBE Rank #25)

COBOL is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and object-oriented language. COBOL is primarily used in business, finance, and administrative systems for companies and governments. COBOL is still widely used in applications deployed on mainframe computers, such as large-scale batch and transaction processing jobs. However, due to its declining popularity and the retirement of experienced COBOL programmers, programs are being migrated to new platforms, rewritten in modern languages or replaced with software packages.

COBOL first appeared in 1959.

6. Rust (TIOBE Rank #26)

Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency. Rust enforces memory safety -- that is, that all references point to valid memory -- without requiring the use of a garbage collector or reference counting present in other memory-safe languages. To simultaneously enforce memory safety and prevent concurrent data races, Rust's borrow checker tracks the object lifetime and variable scope of all references in a program during compilation. Rust is popular for systems programming but also offers high-level features including functional programming constructs.

Rust first appeared in 2010.

7. Ada (TIOBE Rank #28)

Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, extended from Pascal and other languages. It has built-in language support for design by contract (DbC), extremely strong typing, explicit concurrency, tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada was named after Ada Lovelace (1815–1852), who has been credited as the first computer programmer.

Ada first appeared in 1980.

8. Scala (TIOBE Rank #33)

Scala is a strong statically typed general-purpose programming language which supports both object-oriented programming and functional programming. Designed to be concise, many of Scala's design decisions are aimed to address criticisms of Java. Scala source code can be compiled to Java bytecode and run on a Java virtual machine (JVM). Scala can also be compiled to JavaScript to run in a browser, or directly to a native executable. On the JVM Scala provides language interoperability with Java. Unlike Java, Scala has many features of functional programming languages, including currying, immutability, lazy evaluation, and pattern matching.

Scala first appeared in 2004.

9. Kotlin (TIOBE Rank #24)

Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM, but also compiles to JavaScript. In 2019, Google announced that the Kotlin programming language is now its preferred language for Android app developers.

Kotlin first appeared in 2011.

10. Haskell (TIOBE Rank #43)

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry. Haskell's semantics are historically based on those of the Miranda programming language.

Haskell first appeared in 2010.


Notable Mentions: OCaml, Nim and F#

- OCaml (TIOBE Rank: #50-100 range)

OCaml is a general-purpose, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. The OCaml toolchain includes an interactive top-level interpreter, a bytecode compiler, an optimizing native code compiler, a reversible debugger, and a package manager (OPAM). OCaml was initially developed in the context of automated theorem proving, and has an outsize presence in static analysis and formal methods software. Beyond these areas, it has found serious use in systems programming, web development, and financial engineering.

OCaml first appeared in 1996.

- Nim (TIOBE Rank: #50-100 range)

Nim is a general-purpose, multi-paradigm, statically typed, compiled systems programming language. Nim is designed to be "efficient, expressive, and elegant". It supports metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages.

Nim first appeared in 2008.

- F# (TIOBE Rank: Not in top 100)

F# is a functional, general-purpose, strongly-typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods. F# is developed by the F# Software Foundation, Microsoft and open contributors. F# is a member of the ML language family and originated as a .NET Framework implementation of a core of the OCaml programming language. It has also been influenced by C#, Python, Haskell, Scala and Erlang.

F# first appeared in 2005.


References