Mythryl is not just a bag of features like C++ or Python
This reads like programmers' dialect of a marketing speak. It's bold, flashy, presumably based on some facts that are not immediately obvious and it also trashes competitors along the way :)
Python is a really clever small(ish) language and VM that can be embedded in C other programs and serve as glue code for modules in C. It's also grown to be a good scripting language for the technical crowd. C++ started out as a way to have decent OO on top of C as a preprocessor. There are far too many features in it for my taste.
Ruby: lots of nice things, but err on the "bag of features"
side.
Lisp: syntax stripped of almost all sugar. Stripped down to the
basics. Scheme is the Ariel Atom of programming
languages.
Smalltalk: add just enough syntax sugar to lose some power of
Lisp, but retain enough to be a complete meta-language.
(Not enough syntax to please most of the non CS crowd.)
I interpret "not just a bag of features" as another way to say that there are unifying design concepts, as there are in Smalltalk and Lisp.
You might want to look at Lua, FWIW. It focuses more on being a "really clever small language for embedding in C". (It also actually has tail call optimization, non-broken lambdas, no need for a GIL, etc.)
I've never really looked much into Lua before? Does it also have some sort of unifying base underneath it all? I liked Why's Potion because it reused many of the same syntax constructs in different places, so that there were few special cases.
It does, actually. Lua uses tables as its underlying data structure in the same way that Lisp uses the list. This is where a lot of its power and simplicity comes from. In fact, the language authors have stated how Lisp was one of their inspirations for the language.
Lua is intentionally very small ("doing more with less"). It has a lot in common with Python, Scheme, and Javascript, but was designed for embedding, and where Python prioritizes "batteries included", it puts more emphasis on "small/simple/powerful". (If you're extending a C project, you've already got libraries.)
The _Programming in Lua_ book is the best place to start. The previous version is free at http://www.lua.org and will give you a good impression. (The main diff between 5.0 and 5.1 is the module system.)
"Worse is Better" is just an inaccurate way of saying it. More accurately, "It's the Culture, Stupid!"
If a language fits a group's culture better, it will be adopted more. Smalltalk lacked operator precedence for algebras -- big lose for the non CS sci/tech crowd. At first Java had some of what Smalltalk had, but fit general programming culture better in terms of C-like syntax, free (beer) tools, and static types.
Lisp is close to timeless mathematics, but a bit farther away from everything else than everything else. I don't think it's a coincidence that the AI field gravitated towards Lisp -- those guys were used to meta-abstraction.
Perl just threw every Unix tool there was into a burgeoning scripting Swiss-Army knife. As a result, everyone in the Unix camp could relate to it instantly.
Worse is not better. Better is better. But designing to fit existing cultures has a big short-term payoff for a programming language. This means a bigger user base, which means more eyeballs, more libraries, and other dynamics that also get you lots of Better.
The Best would be: a programming language that has a high fit with non-CS/programming sci/tech types and elegant design, first-rate implementation, and mathematical universality.
"Worse is Better" is just an inaccurate way of saying it. More accurately, "It's the Culture, Stupid!"
No, this is an oversimplification. Richard Gabriel's original essay[1] says it best near the end:
The lesson to be learned from this is that it is often undesirable to go for the right thing first. It is better to get half of the right thing available so that it spreads like a virus. Once people are hooked on it, take the time to improve it to 90% of the right thing.
Loathe as I am to engage in a programming language pissing-match, I think you will be surprised at how widely lua is embedded, perhaps even in products that you have used.
Pithy and sounds good, but totally discounts network effects. Programming languages are subject to network effects -- users create libraries in the language, increasing the usefulness of the language. Of course, interoperation between languages is possible to some degree, but that doesn't detract from the core statement.
It's really not hard to use C libraries from Lua, and its design for embedding / use as an off-the-shelf extension language has made interfacing easily with other languages a high priority.
There are projects that supposedly allow interoperability with Python, Perl, and several other languages (http://lua-users.org/wiki/BindingCodeToLua), though I have only used the C API thus far.
The core language is also small and simple enough that adding major language extensions, such as Erlang's concurrency model (http://concurrentlua.luaforge.net/), is feasible.
This reads like programmers' dialect of a marketing speak. It's bold, flashy, presumably based on some facts that are not immediately obvious and it also trashes competitors along the way :)