edw on 16 Jul 2007 13:46:47 -0000 |
Andrew, I'd like to share some of my thoughts on the current state of Magic. In specific senses, I wholeheartedly agree with you that Magic is not generalized enough. It's currently for Scheme48 only, and there's nothing motivating me to make it more portable. Second, it uses SCGI to speak to web servers, making deployment straightforward only on Lighttpd AFAIK. But in other ways, Magic is too generalized. It uses an Emacs hook- procedure approach to processing requests, which makes adding features such as session support very straightforward. It's about equally easy to do just about anything, which leads me to wonder how easy it is to do anything. I'm currently doodling some code for a version 3 of Magic, with the following thoughts in mind: It should be easy to deploy Magic. Ideally it should speak HTTP natively, allowing it to service requests directly or be proxied behind another server. The downside of such an approach is my desire to avoid writing a fully compliant HTTP/1.1 server. I do not want to reinvent the wheel. It should be written in a more functional style. I've cleansed much of the imperative, cycle-shaving kludgery from the current version of Magic, but I'd like to make a clean break with the legacy Magic 2 code. I am aware of what Joel Spolsky would say about that[1], and I may to a more evolutionary approach to evolving Magic i.e. I may never do a ground up re-write. It should support the development of contemporary web-based applications. I'm interested in doing things like creating Javascript proxies for server-side Scheme procedures and data structures. I'm writing a new version of the Transmogrify Resource Repository[2] as an exercise to help me figure out what Magic needs to support to make developing ajax web apps a breeze. It shouldn't be SQL-dependent. While there's nothing in Magic that requires a database, I did write PostgreSQL glue for it, and I use it quite a bit. Talking with Toby, I've recovered memories of programming before 1998, back when the first tool everyone reached for was *not* Oracle, MySQL, or PostgreSQL. It should be i18n-friendly. I am a 7-bit ASCII guy at heart, and I have a lot of trouble embracing this Unicode stuff, but it's here to stay, so I better deal with it. Sigh. It should be porting-friendly. Because *I* do not want to port it. So there you go: my thoughts on the Magic, where it is, and where I'd like to take it. Ed [1]: <http://www.joelonsoftware.com/articles/fog0000000069.html> [2]: The original is available at <http://magic.xmog.com/ repository.html>, while the incomplete proof of concept is currently available at <http://assets.xmog.com/repository.html>. The first is completely an on-the-metal implementation of an ajax web app, while the second builds atop JQuery and the collective wisdom of the Ajax "best practices". --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Philly Lambda" group. To unsubscribe from this group, send email to philly-lambda-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/philly-lambda?hl=en -~----------~----~----~----~------~----~------~--~---
|
|