Scheme Editor on the NetBeans Platform
Hi Antonio, congratulations with the release of the new editor! What are its highlights?
With LambdaBeans, you can edit your Scheme source code (with syntax highlighting), store it in a source-code control system, run it, play with the Scheme REPL (read-eval-print-loop), read R5RS and SLIB manuals and, well, have fun programming with Scheme!
What's your attraction to the Scheme language?
I think Scheme is a great programming language because it's both simple and powerful. With very few concepts, you have tail recursion, continuations, closures, and the whole power of functional programming at your fingertips. You can send it through the wire easily.
It's also expressive: I can program faster in Scheme than in Java or C. It's having fun in programming again. I like Scheme because Scheme is fun!
But aren't there existing Scheme editors already? What makes yours special?
There're good Scheme development environments out there, but I miss the "integrated" part of an IDE.
With LambdaBeans, I have all I need in a single piece of software: I can do a CVS commit from within the IDE, for instance, or read the R5RS specification or the SLIB manual, or have autocompletion for R5RS keywords, or navigate through the definitions of a file, for instance.
LambdaBeans is also special in that it's open source and can be easily modified and updated with new features, because it's very young and built on a modular basis.
What made you build it on top of the NetBeans Platform?
A few years back I decided to learn about the NetBeans Platform as a basis to build spiffy Swing applications. At the same time, I decided I needed a Scheme IDE that could run my favourite Scheme implementations. And that's how LambdaBeans was started.
Since NetBeans is platform agnostic you can run LambdaBeans on most operating systems, without being tied to Eclipse's SWT, for instance. LambdaBeans runs wherever JDK 1.6 runs.
Why isn't it simply a plugin for NetBeans IDE?
I wanted to build a whole standalone application that does not require knowing Java to be used. Many Scheme programmers don't use Java on a daily basis, so using NetBeans is probably not a good choice for them.
Anyway, since LambdaBeans is based on the NetBeans Platform, I plan to provide plugins for NetBeans in the future, as soon as I decide how to best host an autoupdate center for them. This will take some time, though.
Can you show a screenshot?
Of course. Firstly, here's the main window, showing the editor and project structures in the left side of the IDE:
(Click to enlarge the above image.)
Creating a new project:
What are the NetBeans APIs you used? Did you like them? What yes/no? Any tips & tricks?
I think I used most of the NetBeans APIs out there, and even built some of my own! :-)
Since LambdaBeans is a standalone application, I had to build my own project type, handle parsing of Scheme source code, play with DataObjects and Nodes, use the help system, build menus that change dinamically, provide options for Scheme implementations, etc.
I found all the related NetBeans APIs really helpful and well documented. The NetBeans Platform allows you to build really powerful Swing applications very quickly, once you climb the learning curve. It really pays off learning it.
There're lots of tips and tricks that I'd like to share with the NetBeans Community. I'll be doing that in the coming months. It's probably easier for me to explain how certain things are done now that the LambdaBeans source code is open source.
You develop using OpenSolaris, how has your experience been with that?
I'm quite happy with OpenSolaris. It's quite fast and rock solid. I've been using Linux for years, and since KDE 4 was released I thought I needed a change. I tried OpenSolaris and I fell in love with it immediately. There're some missing software packages right now, but things are improving quite fast. The next OpenSolaris release (in June?) will be very good, I presume.
Have you already had reactions about the editor from the scheme community or from individuals?
It's too soon to know, but nobody has banged me in the head yet! :-)
The LambdaBeans project is on Kenai, how is that helpful to you?
I tried to host LambdaBeans on SourceForge and on Google. SourceForge was very slow at the time and Google was too simple for my liking (and required asking for permission to host big downloads).
Kenai is fast and has all I need: Subversion (I thought Mercurial was too big for my needs), Wiki, user mailing lists, issue tracking with Jira... a great set of features, don't you think? Here's how it looks for this project:
And, furthermore, Kenai is being tightly integrated with the latest NetBeans releases, so that I will be able to read issues from within NetBeans, for instance, so that is a big plus too.
What are the next features you're planning & how can the community help?
The next release, LambdaBeans 1.0, will be all about stabilization of the IDE.
After that, I'd like to be able to download, install and use Scheme libraries from on-line locations. I'd like to integrate with the Scheme Now! repository, for instance. There's good stuff in there.
In the mid term I'd like to add a debugger for Scheme, something like PSD (the Portable Scheme Debugger).
In the future I'd like to add support for creating web applications with SISCWeb, so you can run Scheme apps on a J2EE container. That is planned for the long term, though.
LambdaBeans would benefit from people reporting bugs and asking for new features and enhancements. There's room for improvement in LambdaBeans.
Anything else you want to share?
I'd like to thank the whole NetBeans Community for all the help I've received during the construction of LambdaBeans. People on the dedicated NetBeans Platform mailing list are great at answering. Without that help LambdaBeans wouldn't be here today!