Programming Languages
Programming Language Design
Power corrupts. The more powerful a language, the harder it is to understand what the software does. Compare: C++ vs. C.
An ideal declarative programming language is one that can formulate some kind of formal specification from an informal specification. It would be able to know exactly how much state is needed, and manipulate only that state doing only the necessary control operations.
Using multiple languages that each have different restrictions can be useful. Restrictions can help frame problems of different domains in ways that would reduce complexity for those programs.
What is the Curse of Lisp?
The problem with powerful languages is that it breeds individualism. Because it’s so easy to develop a solution that fits your needs (does 60% of the whole), you don’t collaborate or contribute to a team that’s trying to solve the same problem. We end up with 100s of libraries that roughly do the same thing, but not quite. People become obsessed with bootstrapping but never take these concepts to their “final point”. No boring/mundane work is done to finish or take the project to completion. This is common in “rockstar” programming.
(I argue this is good. Not only does it create programmers knowledgable and skilled in solving more problems (reducing the division of labour that leads to abstraction layers and large frameworks and such), it reduces the need for external dependencies and eliminates the control that another entity can have over your software.)
Companies would rather have several replaceable programmers than have one skilled but important programmer who isn’t as easily replaceable.
(This is why this sort of power is good actually. Speaking from more than just a corporate standpoint, this is a useful thing to have in any community should something happen to “the rockstar”. It makes the field more resilient.)
Source: LispCast: What is the Curse of Lisp?
Type Theory
I don’t even know what “type theory” really is but every programmer and their mother is on about it these days so here’s some information I’ve collected about it: