How to read descriptions of software libraries

There is a certain language we use when describing software libraries. I find that often times there are kernels of truth behind it that are not apparent on the surface. Here is my glossary:

Simple - the project is incomplete. It is likely a clone of a more feature rich project that the author did not figure out.

Easy to use - will break the API in the next release

Featureful - bloated beyond belief

Stable - stale. It is likely that the project was abandoned or has a single maintainer that lost faith in it.

Powerful - has a complex API that only helps you in one specific use case. Prepare to write a wrapper around it

Advanced - requires intimate understanding of the algorithms used

Cross-platform - 90% cross platform. Get ready to write your own code to address the other 10%

Small - proof of concept not ready for prime time

Weekend project - a three week effort with glaring issues

Fast - is barley usable for running benchmarks

Lightning fast - hello world

Scalable - see "fast"

Smart - has lots of magic you won't understand

Complete solution - "do as we say, or you will suffer"

Engine agnostic - there is one correct engine and a dozen half-baked unsupported ones

Does one thing well - does one thing. There is probably a command line tool that does this better.

Fast growing - will break the API and the fundamental paradigm of the project with the next release

Well documented - documentation is either out of date or the project is abandoned. See also "stable"

Promsing - no documentation

Like X but for Y - bad port of a popular solution to a domain where it is not applicable

Web scale - will lose your data when you turn away

Like MySQL only 100x faster - a memcached clone

NoSQL - a vast array of different data stores from simple key-value in-memory solutions, to complex distributed batch processing systems

Demonstrates the power of underlying technology X - first project with technology X

Industry standard - obsolete. There are likely better solutions.

Obviously this is somewhat tongue-in-cheek. There is a lot of great software out there and not all of it fits these stereotypes. However, next time you are about to describe a library as "a smart, fast scalable X for Y" do the translation in your head first and have a self-aware chuckle first.