Open Subtext

Bowing to popular demand, I am releasing the source of Subtext. It can be downloaded from It can be imported as an Eclipse project.

Note that Subtext is very much an ongoing experiment. The goal so far has been to learn by coding, and to communicate through demonstration. Wherever possible, engineering issues have been deferred. In other words, Subtext is just a toy – but a toy that makes a point. Another disclaimer: Subtext has already been rewritten from scratch once, and will almost certainly be rewritten for the next version later this year, and probably future versions as well.

What needs to be done? Everything. For example, a better UI that handles larger programs. Or working on garbage collection so that execution can scale up. But what Subtext really needs is an application niche. Some place where it is better suited than conventional programming languages, despite its immaturity. I am hoping that someone out there can come up with the killer app for Subtext.

We should talk about Subtext development on the mailing list.

8 Replies to “Open Subtext”

  1. It seems that perhaps you have not created an open source project, yet. That’s good because I was going to suggest not doing so. I know a great many people (including myself) are eager to help with the implementation of Subtext but I think it’s a bit too early for that. As you have said, plenty of thinking remains to be done, so what you really need is help exploring the *idea* of Subtext not necessarily the coding of it. I also don’t think you need the overhead of coordinating the implementation of Subtext, establishing releases, etc. that an open-source project would entail.

    By all means, make the code available, as you have done. From reading the code and, especially, from using the version of Subtext you sent out earlier, I have gained a much better understanding of how Subtext could be used and even how it could be visualized. Already, ideas (half-baked, I’m sure) have sprung to mind; I plan on trying them out by experimenting with the existing code. I honestly can’t see how this type of “playing” with Subtext could be done cooperatively, but I would be happy to be told or shown differently. Of course the results of these experiments should be shared with the Subtext community.

    If those of us on the list believe in the *idea* of Subtext then we should help you expand and validate that idea first. The coding can come later.

    [Peter, that is an excellent way of putting it. Subtext is very much at the idea stage, and the code is just a way to explore and communicate the idea. Currently I am thinking about what should go into the next version of Subtext. Perhaps I should share these early thoughts to get feedback. I could also solicit alternative proposals. This might be called “open research”. –Jonathan]

  2. I had to disable assertion checking to run this under os x. Also editing of values appears to be broken. What version of eclipse/swt was used to develop this?

  3. Jon,

    I think the idea of Subtext is almost too good to be true. I’m guilty of spending (unnecessarily) a lot of time attempting to make methods, classes, routines more and more abstract, mainly because copy-and-paste has been derided and vilified to no end.

    I concurr with the poster above in that I don’t think you should even worry about next releases and whatnot. That’s the almost-trivial part of developing a new paradigm. The hard part is to be able to explore the ideas and questions that arise from using it. It’s much to early to spoil this great idea worrying about minutia such a user and developer support, patches, extensions, etc. Then the whinning crowd will come and start micro-managing this great concept and either praise or lambast it for being able to get such and such done or not.

    At any rate, I’m much enthused with Subtext. Great Job.

  4. Pingback: swissreplica2
  5. You may want to consider robotics as a niche for subtext. Perhaps the Lego Mindstorms robot. It should provide a rich problem space and good sized market. I think the users would be a good fit for subtext. Generally not professional programmers stuck in their ways.

  6. The perfect place for using copy and paste coding is in modeling biology. This is how evolution takes place and this is how biological systems could be mathematically modeled taking into account phylogenetic similarities. This being said, your project would benefit from graphical abstraction. I’m not a fan of GUIs but for a paradigm like yours it seems to be more appropriate. Good luck.

  7. For ease in setting up the Eclipse project (linking in org.eclipse), I use a “plug-in project”. In particular, in Eclipse 3.2, I did File > New > Project > Plug-in project. I’m not sure if it was necessary, but I extracted the Zip file to c:\temp, instead of importing the zip file directly into the project, and this helped get it compiling. Although I didn’t get it running.

Comments are closed.