How do you fork a language without forking the language itself? Create a new language that compiles down to the old one. The original language's limitations, typically its syntax, can be kept at arm's length from the programmer.
Subsets and supersets: Python
Subsets of Python generally exist as a way to address Python performance -- a language with fewer features is easier to optimize. RPython, the language used by the PyPy Python implementation, is "a restricted subset of Python that is amenable to static analysis" and provides stricter controls over what type a variable can be at any given time. The resulting code can be optimized far more readily by the PyPy JIT compiler than by Python itself.
Just as there are subsets, there are also supersets -- versions of a language that tack on features to broaden what can be done with it. Cython, another Python derivative, adds ways to generate C code directly from Python code, allowing a programmer to accelerate a Python program's performance by way of C.
Sign up for Computerworld eNewsletters.