Component vs Interconnect language
Insightful quotes from an article by Marcel Weiher on Mojo, a new language designed by Chris Lattner (the author of LLVM and Swift).
To those who don’t know: Mojo is a fun new language that extends Python with features usually reserved for “systems programming”: static type system, algebraic types and memory ownership. The language is so fun, the file extension is the fire emoji, literally: filename.🔥.
So here is the quote:
The scripted component pattern itself is a (common) solution to the problem, first identified in the 70s that programming-in-the-large is not the same as programming-in-the-small, that module implementation languages are not necessarily suitable as module interconnection languages.
The reason [Swift’s and ObjC’s made a] mistake is that it turns out that the connection language is actually the more general one, the component language is a specialisation of the connection language.
With this realisation, Mojo’s approach of making the connection language the base language make sense.