Hey everyone. Sorry, I missed December. I had good reason, though - finals, and then holidays. Here's what's new.
I've been reading a lot of research papers, textbooks, and other resources, and with the knowledge I have now, have decided to mostly sideline Manda (sad, right?), in favor of projects I believe will be far more impactful.
What I've Been Working on Recently
- https://github.com/thosakwe/stallion-prototype-1/ (An OS kernel, though this is just for hobby purposes)
- https://github.com/thosakwe/sumo-lang (I finally finished a compiler, though this as well is effectively useless and pointless to continue)
Simply put, making a new language just for the sake of it serves no purpose (to me), other than personal education. Nobody will use it. There is zero hope of creating a new language for Web backends. It's just not going to happen any time soon - people don't like change.
The sorts of questions/problems that I'm far more interested in answering:
- Functional languages, like OCaml and Haskell, typically do not see any use on bare metal platforms. These two languages are not compatible with things that are second-nature in low-level programs, like sized integers (i.e. i32, u32, i64, etc.), and direct memory access. What would a functional language for low-level look like? Is it even possible to have a pure functional language (like Haskell, not OCaml) targeting bare metal? I know that there are some kernels written in Haskell and OCaml, though I'm sure they have to have some C/Assembly runtime. Can a functional language run on bare metal, without an external runtime?
- Type theory in academia discusses features unheard of in most languages, like dependent types, intersection types, the principal typing property (not the same as principal types, confusingly), higher-kinded types, recursive polymorphism, and more. Do these have any practical purpose in a programming language? Or will they forever remain in the "ivory tower?"
- If you've ever heard of Microsoft's Singularity, it was basically a "language-based system," an operating system that verifies security and integrity through the language it uses to compile programs, rather than using hardware memory protection. What would a new attempt at that look like, especially if there were a language specifically designed for this purpose?I'll go ahead and post these on my blog now - thanks for reminding me.