Learn more

LOOP/Iterate/mapcar/dolist etc replacement

🛈

loop is not great, iterate is a bit better but shares its monolithic nature, and the alternatives like mapcar are not really powerful and flexible enough.

🗲

This library will implement a revolutionary new paradigm for iteration and mapping. It is extremely simple, intuitive, modular, flexible, powerful and optimizable, and easily scales from trivial use-cases to very complex, so you can just use it always. It will basically obsolete every iteration and mapping construct you know of, and then some.

This is a spiritual successor to my various Loopless projects that I worked on for years and deleted relatively recently, and other related work such as multiple-value mapping. I completely stopped using loop eons ago and now make heavy use of mapcar and friends, but this is not enough and after several iterations of failed attempts at LOOP replacement, I finally came up with a truly revolutionary paradigm shift in computer science (or at least, a very big evolutionary leap). This is actually just a different arrangement of already existing concepts such as iterators, but designed and integrated in a much more flexible and powerful way without sacrificing performance (and in fact, improving it).

I already know what the project will be called, but I'm keeping it a secret until a first release.

I already know exactly what the high-level syntax and semantics will be. I could trivially tell you what it is, but I want to keep all the glory for myself on this one. ;P (It took me quite a bit of really hard work to reach that point, and if I immediately revealed the fruits of my labor then someone could implement a crude version and reap all the glory before I have perfected the entirety of the design at all layers of abstraction.) The high-level syntax and semantics is actually just an embarrassingly simple variation on one of the standard Common Lisp constructs.

As for the mid-level and low-level semantics, I have some good ideas about it, but much work yet remains to be done. I recently became an expert in an area of the MOP that I believe will be absolutely crucial to the mid-level and low-level semantics.

I have already spent several months designing this on graph paper. I am now ready to try actually implementing this (once I'm done with the above work items).

Second web framework

🛈

All existing web frameworks suck.
(No, I don't need to review them to know it's true.)

My first web framework was pretty nice in some ways, but I ultimately had to scrap it. I've been writing my websites in raw HTML5, CSS3 and JavaScript ever since while waiting to finally write my second web framework.

🗲

My second web framework will make it easy to manage hundreds of (heterogeneous) subdomains, and will feature full semantic tracing as a core feature.

I have several awesome ideas for this, which I mostly forgot because I haven't revisited this stuff in a while, but they are sure to come back when I finally get back to this...

I'm already a pretty advanced expert in Common Lisp, HTML5 and CSS3, and I'm building on the experience of my first fairly advanced web framework, so I have a very solid base to start.

I already single-handedly wrote and am successfully managing 100+ mobile-optimized HTML pages written in raw HTML5 and CSS3, spread across 25+ subdomains in 4 main websites, so clearly I am VERY motivated to finally make a great web framework, and it had better make it super easy to manage several dozens of subdomains because my web presence is only going to expand...

Public domain spiritual successor to the CLHS

🛈

The CLHS cannot be updated and exhibits terrible usability on mobile. This is an extremely sad state of affairs for our most important resource.

🗲

I'm going to make a public domain spiritual successor to the CLHS based on dpANS3, unless someone beats me to it.

I think my modern public domain CLOS MOP specification proves that I am entirely capable of tackling this project and doing a really great job.

I should clearly do this once my second web framework is up and running, because doing it by hand, although technically possible, would be just too insane.

I already know what this will be called, but I'm keeping the name under wraps until a first release.