Ok, so I've heard about Guile, but never really paid it any attention. The home page is interesting, but doesn't reference any newbie guides for people like me.
They seem to have a JavaScript compiler front end, does this mean that by implementing Guile in your program you could use js to enhance your app?
Next question: if you had a web based app, could you use Guile to extend the site?
I contribute to Guile (in a very small way); I'm happy to answer whatever questions I can about it.
You're right, I don't know of any newbie guides. If you already know Scheme, you'll find Guile easy, but if you don't, you'll need to learn that. You might be able to get started with the Guile manual, but that seems a little difficult, because it's really for reference. SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html) is the classic way to learn Scheme. If you're not interested in that, you can search for another introduction to Scheme. There are plenty of them around. The real issue for someone who knows how to program already is that Scheme is often used as a teaching language, so a lot of the introductions will be very basic.
There is a JavaScript frontend, but I don't think it's finished yet. Yes, if you embedded Guile in your program you could extend your program with JS, but you might need to do some work on Guile's JavaScript implementation first. Although even in its present state, it should be much, much easier to complete Guile's implementation than to build your own; plus you'd get the benefit of Guile's backend compiler work.
As for webapps, no, I don't think you could do what you're talking about. You can certainly use Guile to write the backend to a web app, and in fact it has a (web ...) series of modules for that, but you could do that with any other language too. You can't use Guile in the frontend of a web app, because that really depends on what browsers support. (Although it's possible you could use Guile to compile Scheme to JavaScript, if you want to do that.)
If you want a lisp that compiles to JS, ClojureScript is also a good option. It's ready for use, and there's a lot of smart people working on making it better. The Clojure/ClojureScript community is also very good - intelligent and friendly.
Yeah, it's fighting with "Let's reimplement Emacs in Common Lisp" for most often tried, yet ultimately unsuccessful project. I think there was a GSoC project recently, but haven't heard anything about its results.
There is Deuce [1], a project to port Emacs to Clojure. Specifically, the goal is to port the C core entirely to Clojure and replace many redundancies with JVM primitives; also, source-to-source transformation from Elisp to Clojure allows the editor to interpret Elisp on the fly.
By targeting the JVM, you are giving up on a native user experience. Makes perfect sense when the user interface of your software is programmatic; insanity when you're trying to make software to be used by humans. Clojure is a good lisp, but hardly reason enough to toss all UI convention for. C + Guile makes about a zillion times more sense.
I disagree; you are not tied to Swing or any Java UI toolkit merely by using Clojure on the JVM. You can just as easily integrate with a GTK, Cocoa, and whatever Windows uses.
You'll notice how the current Emacs is weird on all three platforms by default (at least they switched the scrollbar position). C/Guile isn't a panacea for a UI frontend, they're entirely orthogonal.
There's nothing in the LGPLv3 that prevents you from charging money, or distributing through app stores, so long as you comply with the requirements of the license.
The issue is App Stores with DRM do conflict with the license. Though I think LGPL could be appeased by posting the code on a public website, but that might actually be a conflict :)
Apple certainly has a strong policy against GPL and LGPL on their store since it the store can not be compatible.
26 comments
[ 3.1 ms ] story [ 65.3 ms ] threadhttps://github.com/languages/Scheme
http://en.wikipedia.org/wiki/Category:Scheme_implementations
They seem to have a JavaScript compiler front end, does this mean that by implementing Guile in your program you could use js to enhance your app?
Next question: if you had a web based app, could you use Guile to extend the site?
I contribute to Guile (in a very small way); I'm happy to answer whatever questions I can about it.
You're right, I don't know of any newbie guides. If you already know Scheme, you'll find Guile easy, but if you don't, you'll need to learn that. You might be able to get started with the Guile manual, but that seems a little difficult, because it's really for reference. SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html) is the classic way to learn Scheme. If you're not interested in that, you can search for another introduction to Scheme. There are plenty of them around. The real issue for someone who knows how to program already is that Scheme is often used as a teaching language, so a lot of the introductions will be very basic.
There is a JavaScript frontend, but I don't think it's finished yet. Yes, if you embedded Guile in your program you could extend your program with JS, but you might need to do some work on Guile's JavaScript implementation first. Although even in its present state, it should be much, much easier to complete Guile's implementation than to build your own; plus you'd get the benefit of Guile's backend compiler work.
As for webapps, no, I don't think you could do what you're talking about. You can certainly use Guile to write the backend to a web app, and in fact it has a (web ...) series of modules for that, but you could do that with any other language too. You can't use Guile in the frontend of a web app, because that really depends on what browsers support. (Although it's possible you could use Guile to compile Scheme to JavaScript, if you want to do that.)
Does anyone have more information about the status of that project/initiative?
[1] https://github.com/hraberg/deuce
You'll notice how the current Emacs is weird on all three platforms by default (at least they switched the scrollbar position). C/Guile isn't a panacea for a UI frontend, they're entirely orthogonal.
Apple certainly has a strong policy against GPL and LGPL on their store since it the store can not be compatible.