Poll

9 views
Skip to first unread message

Rich Hickey

unread,
Mar 24, 2008, 7:32:37 PM3/24/08
to Clojure
Just an informal poll:

What are you doing with Clojure?

What 3 features would you most like to see added next?

Thanks,

Rich

jim

unread,
Mar 24, 2008, 11:40:41 PM3/24/08
to Clojure
So far, I'm just climbing the learning curve. I'm looking forward to
implementing various kinds of network servers in it.

I don't know enough yet to push for features, but on possibility would
be something like Common Lisp's asdf.

Jim

Robin

unread,
Mar 25, 2008, 1:32:31 AM3/25/08
to Clojure
Clojure for web apps:

-heredoc
-string interpolation
-eradicate java

Robin

On Mar 24, 6:32 pm, Rich Hickey <richhic...@gmail.com> wrote:

Giacecco

unread,
Mar 25, 2008, 7:18:15 AM3/25/08
to Clojure
I am learning lisp as a hobby (programming is not my job any longer).
I want to keep my approach to the programming language modern and
critical.

My feature wishlist:
- Slime / Eclipse support (or vice versa Slime supporting clojure)
- a book on the language by Rich (not a reference guide but rather
something similar to Peter Norvig's "Paradigms of Artificial
Intelligence Programming")

G.

christop...@gmail.com

unread,
Mar 25, 2008, 8:36:18 AM3/25/08
to Clojure


On Mar 25, 12:32 am, Rich Hickey <richhic...@gmail.com> wrote:
> Just an informal poll:
>
> What are you doing with Clojure?

Learning it in order to potentially replace Rhino in some of my devs
(web dev with tomcat-comet and an agent framework -- Clojure would be
a better fit thanks to its persistent datastructures)
and playing with the scenegraph API (https://
scenegraph.dev.java.net/).

> What 3 features would you most like to see added next?

Clojure is still too green to me for any serious feature request.

Christophe

Paul Drummond

unread,
Mar 25, 2008, 9:32:26 AM3/25/08
to Clojure
For me, I'm sure I could come up with lots more given time but my
immediate wish-list would be:

- Beginners Tutorial aimed at Java developers with no up-front lisp/FP
knowledge (I'm working on one but I'm a beginner myself so it's going
to take a while!!)
- Eclipse support
- pprint

I have been trying to learn lisp for about six months now and after
trying CL and failing to get used to SLIME/Emacs (being a vim user), I
settled with PLT Scheme until I discovered Clojure and immediately
switched!

I think Clojure could be just to tool to introduce many traditional
Java OO developers to different approaches to development and along
those lines I believe IDE integration is essential.

I would love to see an Eclipse plug-in in the future and have already
considered beginning such a project myself. However, I'd like to
spend some time learning Clojure first before I consider such a large
(Java) project. Currently, I spend all my time experimenting at the
REPL and writing my tutorial.

One feature I would love to see is a pprint function primarily so I
can digest the output of macroexpand a little easier as I am currently
trying (and trying and trying) to learn macros!

Cheers,
Paul.

Marko Kocić

unread,
Mar 25, 2008, 10:59:21 AM3/25/08
to Clojure
Language features:
- Clos style oop on tom of Clojure, but I'm not sure how will that
work with immutable data structures.
Library support:
- Nice Gui library/framework on top of Swing
- Nice persistence framework on top of JDBC
Infrastructure:
- Better documentation. Site is nice, but there is no javadoc
equivalent where one can see all namespaces and function in a nice
structured way.
- Better Emacs integration. Slime is so nice. I personally prefer to
type "(laz^Tab" and get list of all possible functions matching "laz",
and having doc and parameters displayed when I type "(lazy-cons ".
It's great for learning new language API If inline doc could be
displayed for java methods/classes too, it would be awesome.
- More real examples, to serve as a list of best practices.
Politics:
- At lease one more core developer :)

Chas Emerick

unread,
Mar 25, 2008, 10:59:33 AM3/25/08
to Clojure
When I have time to pull myself from work, I've been twiddling with a
genetic programming environment and a Clojure plugin for Eclipse.

My wishlist:

1. Formalization of Clojure's Java bits, so as to simplify embedding
Clojure in existing applications (this might have happened while I
haven't been looking)

2. user-defined reader macros (yes, I know you're passing on this for
now, Rich)

3(a). "image" support, i.e. load a pile of clj, run some stuff, then
dump the resulting runtime as a single loadable file.

3(b). barring 3(a) (which is *probably* impossible on the JVM, at
least from what I gathered from image support discussions I read a
while back on the ABCL forums), a (straightforward) way to compile clj
sources into a pile of class files would be great. Not having this
precludes Clojure from being used for redistributable commercial
applications.

- Chas

MikeM

unread,
Mar 25, 2008, 11:05:06 AM3/25/08
to Clojure
I'm experimenting mostly, to learn the language and explore how I
might use it in my work.

It would be nice to have an official beta release - to minimize rework
when a breaking change is made. But I certainly don't want you to do
this if you think it's premature.

I was working on an app that uses a Reader, reading one character at a
time, and then creating a String from the chars. I made a little
utility method in Java to create a string from an array of ints or
FixNums to help with this. I couldn't see how to make an array of
chars in Clojure to feed the String constructor. It would be nice to
be able to create and manipulate primitive arrays in Clojure for
interop with existing Java.

Mark J P

unread,
Mar 25, 2008, 11:14:29 AM3/25/08
to Clojure
Trace would be nice.

On Mar 24, 7:32 pm, Rich Hickey <richhic...@gmail.com> wrote:

Christian Vest Hansen

unread,
Mar 25, 2008, 11:47:46 AM3/25/08
to clo...@googlegroups.com
I'm not really using Clojure for anything - just lurking around and
stalking the mailing list :)

I see a lot of people want an eclipse plugin, and I'm thinking;
instead of writing something new from scratch, perhaps something like
Cusp could be adapted? (It's BSD licensed, for those wondering).

http://bitfauna.com/projects/cusp/index.html

/2c


--
Venlig hilsen / Kind regards,
Christian Vest Hansen.

Mark H.

unread,
Mar 25, 2008, 11:59:21 AM3/25/08
to Clojure
On Mar 24, 4:32 pm, Rich Hickey <richhic...@gmail.com> wrote:
> What are you doing with Clojure?

I'm helping with parallel programming curriculum development. Our
undergrads here have learned Scheme and Java, so Clojure is a natural
fit.

> What 3 features would you most like to see added next?

Here are three that would be helpful for undergrads experimenting with
Clojure in a parallel programming course:

1. Slime / Eclipse support
2. More documentation, especially on how to write idiomatic parallel
Clojure (like a "best practices" document)
3. More code samples, especially for sequences and parallelism

The features I'd like to see actually don't look too hard to do
myself. For example, I was poking around Agent.java and saw the
dedicated thread pool (with 2 + nprocs threads) -- I imagine it
wouldn't be too hard for me to make my own type of agent that is
attached to a thread pool of my choice, inside of a WITH-THREAD-POOL
syntactic construct.

It's fun poking around the guts of Clojure. I found Rich's code very
readable and illuminating on how Lisps work. It reminds me also that
I should ask for his indentation settings before trying to hack his
Java code , because I'm sure Emacs would have a different opinion on
indentation ;-)

mfh

Chouser

unread,
Mar 25, 2008, 12:03:30 PM3/25/08
to Clojure
I'm at the very beginning of a large hobby project to manage many
types of online information flow (email lists, feeds (rss/atom), chat
rooms (irc/xmpp), wikis, blog comments) in a single server. This
would allow you to get RSS updates in a chat room, post comments to a
blog from your favorite email client, view email list discussions on a
wiki-like page (and have your changes mailed to the list), etc.

I'm sure I'll have this all working any day now. ;-)

Features I'd like someone else to build so I don't have to:
1. Efficient live read/write disk storage of Persistent Maps and Lists/
Vectors. These could of course be completely different classes, as
long as the API and behavior was similar to the existing data
structures.

2. FastCGI support that works. My attempts to use the official
FastCGI for Java libs have so far completely failed. I would love to
see a Clojure client implementation instead.

3. Improved vim plugins. The syntax highlighting of the existing one
is pretty good, but the indentation plugin seems a bit off.

--Chouser

Adam Jones

unread,
Mar 25, 2008, 12:34:47 PM3/25/08
to Clojure
I'm working on a 2d video game. Ideally I'd like to be able to push
out the whole thing through web start or a standard application
download. Right now I'm busy trying to instrument my game so I can
define functions in it through emacs with some sanity in error
handling. Here's my pain points:

1. Error messages:
Maybe it's a by-product of my specific way of mixing Java and Clojure,
but I end up with a lot of stack traces that are difficult to
interpret. Redefining a function also completely destroys any line
number information. There's probably nothing to be done about that but
even definition-relative line numbering would be a huge bonus. The big
selling point for Clojure to me was being able to push functions into
the running game, so shutting it down to get useful stack traces with
my new definitions kind of defeats the purpose. I've "sworn off"
Clojure probably three or four times over this one issue, with a
nights sleep and a new idea for a solution in the morning being the
only thing that stops me from going somewhere else. Granted, part of
the problem here is that my interaction is incomplete. I started
working on trying to provide myself with a little more than just a
stack trace, but at least having usable stack traces for new
definitions would help. If there's something already provided to
support this, cast another vote for #2.

2. Tutorials/Documentation:
The documentation on the site is good, but there's a few holes in it.
Extending it a bit for those of us who are too ignorant/lazy/timid to
read the source would be nice. Some tutorials aimed at people coming
to Clojure from either direction (i.e. significant Lisp experience or
significant Java experience) would also be appreciated, and probably
is a better use of your time in that they help bootstrap the community
so it can write more mundane docs.

3. Editor integration:
This one has come up a lot. So far I've had decent success using the
supplied emacs mode and a bit of ugly hacking to wedge it into my
game. Evidently some people have had success getting Slime to work
with scheme [1], which gives hope in that area, but I've seen a few
hints that the official site documentation doesn't really match up
with the project anymore. For those using Eclipse you might be able to
piggyback off of Cusp [2] to get support for Clojure, especially if
interaction with Slime does take off.

-Adam

[1] http://mumble.net/~campbell/slime48.html
[2] http://bitfauna.com/projects/cusp/index.html


On Mar 24, 4:32 pm, Rich Hickey <richhic...@gmail.com> wrote:

Patrick Logan

unread,
Mar 25, 2008, 12:57:51 PM3/25/08
to clo...@googlegroups.com
Nothing, yet. Just installed it and using the emacs.

I'm interested in web apps ("rest") and xmpp (using the smack java
client library).

I thought I'd look at the repl code that's been talked about. I
suspect an xmpp connection would be relatively easy to stick in front
of that, then a clojure app can connect to an xmpp server and any xmpp
client can connect to send it messages. (There's even an xmpp client
for emacs.) Easier than just sockets, at least, and both the client
command line as well as the closure app can go through firewalls.

Ted Neward

unread,
Mar 25, 2008, 1:19:14 PM3/25/08
to clo...@googlegroups.com
> 3(a). "image" support, i.e. load a pile of clj, run some stuff, then
> dump the resulting runtime as a single loadable file.
>
Given a JITting JVM, this is hard to do, since native thread stacks are hard
to serialize; having said that, Smalltalk VMs have been native JITting for
years, and still have managed to create imagine support, so it's not
impossible, just probably not high on Sun's list of things to do, despite my
insistence that this would be WAY COOL. :-)

Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com

> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.0/1342 - Release Date:
> 3/25/2008 10:26 AM
>

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.22.0/1342 - Release Date: 3/25/2008
10:26 AM

Vagif Verdi

unread,
Mar 25, 2008, 7:20:31 PM3/25/08
to Clojure
Most important feature for me (showstopper actually) is ability to
connect to remote clojure instances and have a REPL. (see slime.)

Also, since clojure is positioned as an erlang type of language
(immutable functional language with actors model) I'd like to know how
it fares in terms of distributed programming support. And other nice
erlang features like crashed process sends error message to all linked
processes.

Now i read suggestions on this thread, and i do not like most of them.
Language is not a kitchen sink. Most of the suggested features should
not be in a language core but rather developed by some other
enthusiasts as separate libraries or tools.
Things like IDE support, or OOP (CLOS) should not take time of core
language developers.

jonathan...@gmail.com

unread,
Mar 25, 2008, 10:26:20 PM3/25/08
to Clojure
Rich,

I'm using it to prototype a gui, and a caching layer that improves
performance when talking to ~10k db records. I'm finding that the
combined density of Lispy code, plus the massive simplification
engendered by using persistent data structures gives me a giant boost
in the amount of useful code I can crank out.

As an example, in a Swing GUI, whenever some data changes, I can
simply blow away a JTable TableModel, and replace it with a new one,
without having to worry about 'updating' grid centric data. Since the
new TableModel is layered over a Clojure data structure there's
virtually no waste, maybe a wrapper object that will be GC'd later. I
can't believe how great functional data structure are.

In terms of what I'd like to see ...

At this point, I'm just playing catchup with existing features. I'd
like more documentation and example programs on macros, object
oriented code and I'd like to try and understand the code generation
better.

The current files included with Clojure, such as boot.clj and xml.clj
and proxy.clj have been the most useful things in helping me to gets
to grips with Clojure features. More please! ;-)

I'll also make the comment that of all the languages I've ever used,
only JavaScript programmed in a functional way comes even close to how
much fun it is writing Clojure code. And JS is near useless in
comparison when the JVM libraries are taken into account, though Rhino
presumably combines both worlds.

Many Thanks,
Jonathan

Arsalan Zaidi

unread,
Mar 26, 2008, 2:37:28 AM3/26/08
to Clojure
Hi.

Working on a Hobby project to write a REST based server.

Request:

1. Better docs for people new to FP and Lisp! I can get things done,
but I know I'm just translating Java into Clojure. I'm still very
vague on what canonical Clojure code should look like.
2. Lots of small, medium and large sized code so I can figure out 1.
3. The ability to generate Javadoc like HTML docs from doc-strings for
easier reference.

--Arsalan

timmy

unread,
Mar 26, 2008, 10:48:49 AM3/26/08
to Clojure
hi,

Rich Hickey schrieb:
> What are you doing with Clojure?

building a physics engine with clojure, just for personal education &
fun and, additionally, writing a growing library of DWIM tools (hiding
the verbose java library APIs).

> What 3 features would you most like to see added next?

1. continuations
2. no featuritis in the core runtime
3. some kind of online repository for clojure libraries

timmy

Stuart Sierra

unread,
Mar 28, 2008, 2:24:05 PM3/28/08
to Clojure
I'm a bit late to the game, here, but...

I'm doing back-end document processing for a search engine
(altlaw.org). XML, RDF, regexes, a couple million documents.

Things I'd like:
1. Easier-to-understand error messages / stack traces;
2. Tutorials / examples for parallel processing.
3. Support / examples integrating Clojure w/ Java frameworks like
Hadoop;

-Stuart
Reply all
Reply to author
Forward
0 new messages