Posted on December 31st, 2009 by Jonathan |
After promising I would restart Minnow quite a lot has happened.
During the time I was developing early versions of Minnow, I was also experimenting with Haskell and C++ and really starting to see what generic programming could be like.
Coming to understand generic programming made me frustrated with Minnow’s lack of these facilities, but I knew I didn’t have the know-how to build them in and do it well. In pursuing this, I met a professor in the generic programming field, which led to begin a PhD in programming languages.
This has left Minnow a bit stranded. It really needs proper generic programming facilities as well as more robust parallelism[1] if it hopes to be any kind of use in the coming years. I’m was never comfortable releasing 1.0 until it had both. I was not sure when that would be, nor what Minnow will look like by then (experiments with ChaiScript, Factor and others have made me rethink Minnow syntax as well).
As they say in the cult of done: If you wait more than a week to get an idea done, abandon it. This might mean that Minnow is abandoned, but (very!) likely, a new language will emerge in its place.
(1: Message passing is only useful at one level, languages like Clojure and Go really show that you need to be concurrent at different granularities)
Posted on July 17th, 2009 by Jonathan |
Sorry about that slip up earlier, that should have said alpha 4.
Quick update:
One of my side projects has been released. It’s an embedded scripting language for C++ called ChaiScript. I have some posts on the blog about why I did it, and what niche it fills.
I’m working on some syntax improvements for alpha 4, some that will break the syntax of alpha 3, but hopefully not too badly. Think of it as cleaning out parts that need to be fixed, so that when it heals, it heals stronger than before. Or something less anthropomorphic and medical
.
I’m definitely returning to heavy development on Minnow shortly, now that my plate is getting clear again, so you should see regular progress updates resuming. I’ll post on here when SVN activity resumes.
Also before I forget – a big “thank you!” to those of you who sent in encouraging remarks trying to get me to finish and put out a major release. It always feels nice to know people are interested.
Posted on July 11th, 2009 by Jonathan |
Still at work on the next Minnow update. Here’s where we are today:
- Re-work Aquarium so that local actors have fair and even performance characteristics: done. This was the first piece completed, and although we lose some performance in the Threadring benchmark, we gain it back in most other benchmarks. The end result is also much simpler and easier to maintain.
- Re-work the C++ lexer/parser for Minnow: done. The lexer and parser for Minnow from alpha 4 and earlier showed some decent ideas but was generally messy and hard to extend. The new alpha will use a parser I created for another language project, which I’ll talk about here shortly. The new parser is more modular, which will make it easier to incorporate in language checkers and editors, for example.
- Decide on a polymorphism story that covers generic programming in an easy way: in progress. I have yet to settle on just how Minnow will approach generic programming, and won’t be satisfied until the code you write in Minnow looks and feels as lightweight as possible.
Once this last piece is complete, the next alpha should finally be able to get out the door.
Posted on May 16th, 2009 by Jonathan |
No git/svn activity the last few weeks while, though I have been busy over at the blog doing some research. Still have a ways to go, but it looks like the next push might be an ambitious one (read: make a feature-complete Minnow). Regardless of the push to finish Minnow, expect to see some Aquarium news over the next few weeks, as it may get its first commercial application, which will give it a thorough workout.
In unrelated news, if you haven’t seen it yet, you should check out Microsoft’s new Axum project, which joins the ranks of Erlang, Scala, and others that are trying to find the perfect concurrency solution.