UML specification length compared with other languages

Tweet about this on TwitterShare on FacebookBuffer this pageShare on RedditShare on LinkedInShare on Google+Email this to someone

book_stack
A few days ago Jonas Elfström tweeted the page count of several language specifications (based on a quick check of the specification documents, so we could probably argue about what he is exactly counting but let’s assume these numbers are more or less correct):

  • C++ 865 (300ish without the standard libs)
  • Java 644
  • C 540
  • C# 511
  • Ruby 311
  • Smalltalk 303 (only 35 pages without stdlibs)
  • SystemVerilog 1315
  • SQL 762
  • Haskell 329
  • Forth 309
  • Erlang 31
  • F# 300
  • JavaScript 258
  • Dart 118
  • Go 109(46)
  • Scheme 90

So, how do you think UML related to these other specifications? UML is a modeling language, more abstract than those programing languages, so should be also smaller, right?

Well the page count for the UML specification is : 748+230 = 978 or what it’s the same, UML beats all other languages at least regarding the specification lenght.

This numbers is the sum of the two parts of the UML specification (the infrastructure and the superstructure). From the OMG page: “Beginning with UML 2.0, the UML Specification was split into two complementary specifications: Infrastructure and Superstructure. The UML infrastructure specification defines the foundational language constructs required for UML 2.4.1. It is complemented by UML Superstructure, which defines the user level constructs required for UML 2.4.1. The two complementary specifications constitute a complete specification for the UML 2 modeling language”

The good news is that one of the major goals of the upcoming 2.5 version is a spec simplification.

Tweet about this on TwitterShare on FacebookBuffer this pageShare on RedditShare on LinkedInShare on Google+Email this to someone
Comments
  1. Rafael Chaves
    • Ed Seidewitz
  2. Marco Brambilla
    • modelinglang
      • Marco Brambilla

Reply

Your email address will not be published. Required fields are marked *