Scale of sophistication of langauges

There are many aspects to a programming language. One way to evaluate the sophistication is to make a radar graph. Here we present the following scales, where in each category we list the scale of sophistication, where 1 is primitive, and 5 is deluxe.

Type protection

  1.       easy to make a mistake; turn a number into a string accidentally
  2.       silent incorrect conversion
  3.       some type checks
  4.       strong implicit types
  5.       Modula-2 type airtight range checks, etc.

Arithmetic safety

  1.    + operator overloaded, can't tell what operator is actually being used
  2.    overflows undetected
  3.    selective control of overflow/underflow detection (Modula-2)
  4.    improved DEC64 arithmetic  0.1 + 0.2 does equal 0.3
  5.    infinite precision (Mathematica)

Primitive data types supported

  1.    numbers, strings, Boolean
  2.    includes one dimensional arrays
  3.    includes multi-dimensional arrays
  4.    includes structured types, dates, records, sounds, etc.
  5.    includes the SuperTree

Graphical model sophistication

  1.   none, all drawing is done via library routines
  2.   console drawing built into language
  3.   2D primitives, weak structuring
  4.   2D primitives, strong structuring
  5.   3D drawing  (unity)

Database sophistication

  1.    external to language
  2.    indexed sequential or hierarchical model
  3.    relational database built in or merged into language (PHP)
  4.    entity-relation database built in
  5.    graph database built-in (Neo4J)

Automatic dependency calculation (also called lazy evaluation)

  1.    none  (C, JavaScript)
  2.    evaluation when needed of quantities
  3.    automatic derivation of proper order to evaluate (Excel)
  4.    automatic derived virtual quantities
  5.    automatic calculation of code to execute, with backtracking (PROLOG)

Automatic dependency drawing (also called auto refresh)

  1.    none (C, JavaScript)
  2.    simple redraw support (Win32)
  3.    automatic redraw using framework (React)
  4.    automatic redraw without having to use framework
  5.    automatic redraw of code that references changed quantities
 The area enclosed by the shape is a good approximation of the relative power of the language. As you can see from the diagram above, JavaScript is a fairly weak language, and Swift is more powerful. The Beads design is much more advanced than Swift. Fans of Dart, Go, Red, etc., are invited to send me their numbers for each of the categories and I will add them in. 

The area enclosed by the shape is a good approximation of the relative power of the language. As you can see from the diagram above, JavaScript is a fairly weak language, and Swift is more powerful. The Beads design is much more advanced than Swift. Fans of Dart, Go, Red, etc., are invited to send me their numbers for each of the categories and I will add them in.