- 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 first appeared in 2004.
9. Kotlin (TIOBE Rank #24)
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 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.
- "C is notoriously weakly typed because any pointer type is convertible to any other pointer type simply by casting. Pascal was intended to be strongly typed, but an oversight in the design (untagged variant records) introduced a loophole into the type system, so technically it is weakly typed." https://stackoverflow.com/questions/2690544/what-is-the-difference-between-a-strongly-typed-language-and-a-statically-typed#2696369