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: Swing UI's
The Special Purpose General Purpose Programming Language
This is my name for a programming language, like JavaFX, that has all of the constructs of a general purpose programming language, but for one reason or another, its use-cases range is extremely narrow.
0 comments:
Post a Comment