Sunday, February 05, 2012

Surface Area to Functionality Ratio

The Surface Area to Functionality Ratio is my formula for evaluating APIs and computer languages - both general purpose programming languages and special purpose languages (AKA DSLs), where:

Surface Area = how many new concepts, syntax, keywords, etc. to learn. IOW, what is the learning curve.

Functionality = how many cool things can you do with the language. How general is it. How many problems does it solve.

The best way to illustrate this concept is with a few counter examples. The two all time losers based on this principal are XSLT and JavaFX.

XSLT:
  • Surface area: about the same as Haskell or C++. I read a 1300 page book in order to learn XSLT.
  • Functionality: transform one xml document into another
JavaFX:
  • Surface area: about 30% greater than Java. JavaFX is mostly a superset of Java.
  • Functionality: Build Swing UI's

No comments: