Independent Variation Principle
Home
IVP
Software
Patterns & Constructs
Reference
Blog
About
Languages
Emerging and Specialty
Overview
Architecture
Architecture Styles
Cohesion
Core Conclusions
Knowledge Embodiment
Metrics Survey
Why Cohesion Has No Scalar Metric
Why Two Metrics Are Necessary
Coupling
Languages
Scoreboard
Scoring Model
Criteria
Type System Powerhouses
F# (9)
Haskell (GHC 9.12)
PureScript (0.15)
Scala (3.8 / 3.3 LTS)
Unison (M5b)
Modern Mainstream
C# (13)
Eiffel (ECMA-367 / ISO/IEC 25436:2006)
Go (1.26)
Java (Java 26)
Kotlin (2.4)
Rust (1.96 / 2024 edition)
Swift (6.2)
TypeScript (6.0)
Systems and Performance
C (C23)
C++ (C++23)
Nim (2.2)
Zig (0.16)
Dynamic and Scripting
D (2.112)
Groovy (5.x)
JavaScript (ES2025)
Perl (5.42)
PHP (8.5)
Python (3.14)
Ruby (4.0)
Shells and Automation
Bash (5.3)
C shell (csh 8.2 / tcsh)
Fish (4.0)
Ksh (kSH 93u+)
PowerShell (7.6)
Sh (POSIX.1-2024)
Zsh (5.9)
Functional, Declarative, Legacy
Ada (2022 / 2012)
Clojure (1.12)
COBOL (ISO/IEC 1989:2023)
Common Lisp (ANSI X3.226-1994)
Delphi (12.3 Athens)
Fortran (2023)
Lean 4 (4.31)
Lua (5.5)
Objective-C (2.0)
OCaml (5.4)
Prolog (SWI 9.4)
Racket (8.17)
Rocq (9.0)
Scheme (R7RS)
Smalltalk (ANSI Smalltalk)
SPARK (Pro 25)
Tcl (9.0)
Turbo Pascal (7.0)
VBScript (6.0)
Visual Basic 16 (.NET)
Domain-Specific Languages
MATLAB (R2026a)
PL/SQL (Oracle)
R (4.5)
SAS (9.4 / Viya)
SQL (ANSI SQL:2023)
Transact-SQL (SQL Server)
Educational and Special
Assembly (x86-64, System V AMD64 ABI)
Scratch (3.0)
Emerging and Specialty
Crystal (1.15)
Dart (3.12)
Elixir (1.20)
Erlang (OTP 29)
Julia (1.12)
Solidity (0.8.x)
Verdicts
Hexagonal
Onion
Clean
Layered
Vertical slice
SOLID
CUPID
Languages
Emerging and Specialty
Emerging and Specialty
The language pages in this group, scored against the dimensions defined in the
scoring model
.
Crystal (1.15)
Dart (3.12)
Elixir (1.20)
Erlang (OTP 29)
Julia (1.12)
Solidity (0.8.x)