Geertjan is a DZone Zone Leader and has posted 468 posts at DZone. You can read more from them at their website. View Full User Profile

Scheme Editor on the NetBeans Platform

04.13.2009
| 38309 views |
  • submit to reddit
Antonio Vieiro is a freelance software architect based in Madrid, Spain. Today he announced the release of LambdaBeans, which is an IDE for the Scheme programming language. The IDE is built on top of 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.)

Scheme output:

Creating a new project:

Options window:

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?

http://kenai.com/projects/lambdabeans

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!

 

AttachmentSize
lb-screenshot.png103.73 KB
lb-screenshot_smaller.png76.83 KB
kenai-1.png52.55 KB
kenai-2.png59.34 KB
av-photo.jpg3.8 KB
lb-screenshot-2.png57.3 KB
lb-screenshot-3.png46.27 KB
lb-screenshot-4.png13.19 KB
Published at DZone with permission of its author, Geertjan Wielenga.

Comments

Joseph Schmidt replied on Mon, 2009/04/13 - 12:50pm

Nice!

Any plans for a common-lisp support too?

Varun Nischal replied on Tue, 2009/04/14 - 12:05am

Great work.. Looking forward to learn more about NB Platform from your project.

Ahmed Gaber replied on Tue, 2009/04/14 - 1:12am

You know, you support my spirit to continue my Graduation Project.

 Althought I don't know about Schema, but I like the Idea

Antonio Vieiro replied on Fri, 2009/04/17 - 12:33pm in response to: Joseph Schmidt

Hi,

There're currently no plans to support Common Lisp. But who knows! I may end up adding that in the long term too!!

Antonio Vieiro replied on Fri, 2009/04/17 - 12:34pm in response to: Varun Nischal

Thanks Varun!!

Antonio Vieiro replied on Fri, 2009/04/17 - 12:35pm in response to: Ahmed Gaber

Good to know. Scheme is a great language and it's very easy to learn.

LambdaBean's "Help/Online Scheme Resources" menu item has lots of links to the web for learning Scheme.

 

 

Jini Suzan replied on Fri, 2010/01/29 - 5:36am

The platform gives a time tested architecture for free and so encourages sustainable development practices.

 GPS tracker

Glider Rocker replied on Mon, 2010/02/01 - 11:48am

Thank you for the update on scheme and your work with the editor.

 

Waiting to see your new developments.

 

Gliders

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.