Nothing ATM, not enough time. :)
>
>
> What 3 features would you most like to see added next?
1> Simple easy-to-use but powerfull instant web application framework
like rails back in 2005(?). One tarball with included web/app server,
shell scripts and default configuration.
2> Eye catching screencast intro showing fast blog/wiki/whatever
application build-up from scratch.
3> TextMate macros, maybe I'll finally buy it if it will have clojure
support. :)
I know, these are not clojure features but some framework build on
clojure, but in fact, (1) and (2) were the issues which introduced me
into ruby.
I knew there is some ruby and it's just another python/perl/etc. 10
min screencast changed my experience in programming languages, even I
didn't know the term "DSL".
And clojure is much more powerfull as ruby, IMHO.
Excuse me, if there are already such packages and screencasts for any
clojure based web framework out there.
I'm not able to read all mails in this list. :)
PS> It could be any other interesting domain, not just web framework.
Swing, data manipulation, distributed/concurrent computing, SOA
orchestration. Here especially I'm searching for lightweight ESB/BPEL
alternative instead of enterprise solutions.
It's just these web things are very popular now and easy to understand
for most people.
>
>
>
> Thanks,
>
> Rich
> >
>
request-to-all from this newbie: pretty please add even succinct notes
about those things to the wiki. somewhere consistent, so other newbies
can find them.
> 2)
> Any advances in the error handling / reporting would be greatly
> beneficial. Sometimes you see in the nasty stacktrace the actual
> 'problem' or 'clojure line of text' that is the culprit, but many
> times you do not. This can be kept in check with super-incremental
word!
sincerely.
On Wed, Sep 10, 2008 at 2:40 PM, Rich Hickey <richh...@gmail.com> wrote:
> What are you doing with Clojure?
>
Currently I'm working on writing extensions to JSF (JavaServer Faces)
that allow seamless use from Clojure.
One offshoot of this is to experiment with a browser-based Clojure IDE.
>
> What 3 features would you most like to see added next?
>
1. I'll have to echo the request for better errors. In particular it
seems there are a number of cases where we get a
clojure.lang.Compiler$CompilerException but no message about why it
was thrown.
2. Is it possible for the Clojure map types to implement
java.util.Map? Obviously the mutable parts of the interface wouldn't
work, but those are all defined as optional operations.
Beyond that it is hard for me to think of language features that are
missing. It already has a fantastic set of data structures which
provides a very solid foundation I am at a loss for specific features
to ask for.
/mike.
For now, java scripting.
I love Clojure and LFE (Lisp Flavoured Erlang) for the same reason.
Both give a Lisp front end to great VMs whose native languages are a
bit lacking.
> What 3 features would you most like to see added next?
Can't think of anything in Clojure per se.
There ought to be more examples (cookbook like snippets) though.
Tinkering. Contemplating an extensibility mechanism for my theorem
prover.
> What 3 features would you most like to see added next?
The only thing that would really help unblock me is:
1) Programmable reader macros á là Common Lisp.
> Thanks,
>
> Rich
Randall Schulz
Am 10.09.2008 um 20:40 schrieb Rich Hickey:
> What are you doing with Clojure?
At home mostly pet projects to learn different aspects of programming:
- lazy-map started as closure became a proxy and will finally end up in
Java. => Java to Clojure Interface
- parser (parser combinator library) to experiment with functional
programming. (this also goes somehow into the DSL direction)
- (planned) a simple pop3 server to work with multiple threads
At work:
- a DSL which "compiles" to Excel and Powerpoint to get rid of Office
- a GUI for previously mentioned DSL
> What 3 features would you most like to see added next?
1. More informative error messages. From .clj files it's relatively easy
to get the line of the failure and start guessing. But from the Repl
it's pretty hard to figure out sometimes, what the problem in
Compiler$AnalyzeSeq: bla blub is.
2. A compiler. :)
3. Whatever you do: Keep Clojure simple and clean.
(4. clojure.contrib.lib is already contained. :))
You do a really good job here! :) Thank you.
Also chapeau for the Clojure community! It's very helpful and newbie
friendly. It's really fun to be around here in these exciting times.
One doesn't get the chance to experience the development of such a nice
language from the very beginning that often.
Sincerely
Meikel
(read (PushbackReader. (StringReader. my-string)))
> I've noticed functions can only refer to those previously defined, so you couldnt have 2 that depend on one another
This is because symbols are looked up at compile time. So what you can do is
(def f)
(defn g [x] (+ 1 (f x)))
(defn f [x]
(if (= x 0)
0
(g (- x 1)))
(g 4) => 4
It would be fairly easy to whip up a macro that handles this more neatly:
(def-rec f g
(defn g [x] (+ 1 (f x)))
(defn f [x] (* x x)))
> What are you doing with Clojure?
Writing a scriptable notetaking app for my tablet, as all the existing
apps turn it into a very expensive pad of paper.
mzscheme has a neat module system (
http://docs.plt-scheme.org/guide/units.html ) that handles mutual and
cyclic dependencies between modules. I'm slowly porting this to
clojure, the only real difficulty being fitting it in neatly with the
namespace system.
> What 3 features would you most like to see added next?
I'll echo better compiler errors. The runtime error reporting is
pretty good but the compile time errors are useless.
I'd also like to control how my datastructures are printed, maybe by
making print a multimethod dispatching on something like (or (:type
^obj) (class obj)). I think thats fairly vital for building new
abstractions on top of the existing types.
And eventually I would like a contract library, to help me get off the
static typing crack. I may have a shot at it when I've finished my
current side project.
What are you doing with Clojure?
What 3 features would you most like to see added next?
if chances come up to speed-up the compiler (e.g. would something like
Scala's fsc be something one could create for Clojure?), i'd never say
no to such changes. :-)
As we rapidly approach 500 members on the group (!) I thought it would
be a good time to conduct another poll:
What are you doing with Clojure?
What 3 features would you most like to see added next?
Explore the difference between the "java.exe" and "javap.exe" launchers
for the Windows JVM.
And, of course, if you want a proper interactive environment on Windows,
Cygwin is scarcely optional. The rough edges between its POSIX
environment and the native Windows one are minor, mostly a matter of
the file name and PATH (-like) variable syntaxes. Those can be papered
over (even generically) with BASH or other shell scripting.
> ...
>
> --Shawn
Randall Schulz
Still learning the language in my spare time :)
> What 3 features would you most like to see added next?
1) Like most people, more specific error messages. Error messages that point out
the faulty sub-expression would be helpful.
2) Packaging infrastructure similar to ASDF.
3) Equivalent of 'format' macro. This would be really helpful in debugging.
Regards,
Apurva
----- Original Message -----
From: "Rich Hickey" <richh...@gmail.com>
To: "Clojure" <clo...@googlegroups.com>
Sent: Thursday, September 11, 2008 12:10:05 AM GMT +05:30 Chennai, Kolkata, Mumbai, New Delhi
Subject: Clojure Poll 09/2008
As we rapidly approach 500 members on the group (!) I thought it would
be a good time to conduct another poll:
What are you doing with Clojure?
What 3 features would you most like to see added next?
Thanks,
Rich
Yes, this is another great feature in ruby - gems. I'm not sure about
ASDF, just know it's something similar for CL. IMHO, it's really
important to have packaging system.
Sounds similar to clojure.set:
(doseq [n v] (ns-publics (find-ns 'clojure.set)) (print-doc v))
--Chouser
This would allow simple and standard use of Clojure in a script file.
Or perhaps a solution (other than mucking with the reader) is to have
clojure.lang.Script ignore the first line if it is the shebang?
I mean this is cool (in a really geeky way)
#^:shebang '[
exec java -cp "$HOME/src/clj/clojure/clojure.jar" clojure.lang.Script
"$0" -- "$@"
]
But its not standard, nor is it simple to remember, and if you have a
bin script that does stuff like read a Clojure rc file, or set the
classpath, or something you either lose that functionality, or you
have to basically try to duplicate the bin script at the top of every
clojure script. Additionally, if you want to hard code the path for
security like so
#^:shebang '[
exec /usr/bin/java -cp "$HOME/src/clj/clojure/clojure.jar"
clojure.lang.Script "$0" -- "$@"
]
Clojure has issues with it.
Low priority, but still useful.
Paul
One could trivially take the command-line generated by the shell
magick and put it into a simple shell script that lets you invoke
Clojure on the named script and arguments, couldn't you?
% clojure foo.clj bar baz qux
would run foo.clj and pass the arguments. Seems to me this is easier
(and cleaner) than coming up with some way of support shebang.
-tree
--
Tom Emerson
trem...@gmail.com
http://www.dreamersrealm.net/~tree
I've written a small cells module for clojure and qt.
http://paste.lisp.org/display/66688
http://paste.lisp.org/display/66689
Tested with qt jambi 4.4.1
Wont work well with swing of course, but it shouldnt be too hard to modify.
Like this?
user=> (def foo yoink)
java.lang.Exception: Unable to resolve symbol: yoink in this context
clojure.lang.Compiler$CompilerException: NO_SOURCE_FILE:97: Unable to
resolve symbol: yoink in this context
The key part being: NO_SOURCE_FILE:97
Obviously there's no source file at the repl, but this was apparently
the 97th line I've entered in this repl.
--Chouser
>
> As we rapidly approach 500 members on the group (!) I thought it would
> be a good time to conduct another poll:
>
> What are you doing with Clojure?
>
Building a system for defining and manipulating movement of rigid
limbs. That involves various geometry and algebra sorts of things.
Starting to look at options for simple 3d visualization (similar to
Matlab) from the REPL.
Also planning on using Clojure for the next version of a data
organization app involving link analysis and machine learning.
>
> What 3 features would you most like to see added next?
>
There are various tools and resources that I'd like, but the only
language feature is user-defined reader macros.
Thanks for Clojure.
>
>
> Thanks,
>
> Rich
> >
>
> What are you doing with Clojure?
Nothing at the moment. I wrote a knowledgebase engine inspired by the
Cyc project, and I also wrote part of a web application in Compojure
that lets users create web forms.
> What 3 features would you most like to see added next?
1. I love the language. Nothing to add there.
2. Like many others said, better error reporting.
3. The documentation is not well suited for the masses who are not
well-versed in Lisp dialects or functional programming. It's more like
marketing material for those who have already spent a some quality
time in that world, and are curious to see how this new kid on the
block compares. I think it does a great job at selling the language to
those people, but the newbies are left behind. To help newbies, the
documentation needs to be reorganized, more introductory text needs to
be written, many more examples need to be shown.
Moxley
There are many functions that operate on sequences which are not built
into Clojure's "for" macro. Perhaps you want partition:
user=> (partition 3 1 (range 5))
((0 1 2) (1 2 3) (2 3 4))
This could then be destructured with for if you want:
user=> (for [[a b c] (partition 3 1 (range 5))] (- c a))
(2 2 2)
> 3. The Clojure coding style sets a bad precedent wrt commenting.
> Using Clojure professionally means you need comments. The
> (comment ...) form, although theoretically elegant just doesn't look
> good. There is not a single comment in boot.clj. Is this a
> coincidence?
Besides (comment ...) there is also ; and documentation strings stored
as meta-data attached to function vars. boot.clj has all but the
first of these.
--Chouser
I'd like to add:
2) Balanced-boundary (non-EOL-terminated) comments. Whether the syntax
is #| ... |# (á là Common Lisp) or /* ... */ (C- and Java-like) or
something else, I don't much care, but I think both line-terminated and
balanced comments are called for. Likewise, whether balanced-boundary
comments nest or not is not a key concern of mine, though it might be
nice if they did, for a change.
Randall Schulz
I'd like to add:
2) Balanced-boundary (non-EOL-terminated) comments. Whether the syntax
is #| ... |# (á là Common Lisp) or /* ... */ (C- and Java-like) or
something else, I don't much care, but I think both line-terminated and
balanced comments are called for. Likewise, whether balanced-boundary
comments nest or not is not a key concern of mine, though it might be
nice if they did, for a change.
There is one weakness with the comment macro; the Reader has to be
happy with the body of the comment. Including things like # in the
comment body can upset the reader and cause your file to not compile.
There are many functions that operate on sequences which are not built
On Tue, Sep 16, 2008 at 4:49 AM, Alexander Kjeldaas
<alexander...@gmail.com> wrote:
>
> 2. Clojure states that it has good support for list comprehensions.
> Maybe I'm misunderstanding list comprehensions, but I'm not completely
> happy. I want a way to have destructuring work on the sequence, not
> on the individual element. In CL you have (loop for i in '(1 2 3) ...)
> as well as (loop for i on '(1 2 3) ...). How is the one-liner to
> create a lazy sliding window over a sequence in Clojure?
into Clojure's "for" macro. Perhaps you want partition:
user=> (partition 3 1 (range 5))
((0 1 2) (1 2 3) (2 3 4))
This could then be destructured with for if you want:
user=> (for [[a b c] (partition 3 1 (range 5))] (- c a))
(2 2 2)
Besides (comment ...) there is also ; and documentation strings stored
> 3. The Clojure coding style sets a bad precedent wrt commenting.
> Using Clojure professionally means you need comments. The
> (comment ...) form, although theoretically elegant just doesn't look
> good. There is not a single comment in boot.clj. Is this a
> coincidence?
as meta-data attached to function vars. boot.clj has all but the
first of these.
1. Using it as a prototyping language for information extraction and
NLP applications.
2. Using it to replace Python for data munging.
3. Using it to provide a REPL into a large IE system that is written in Java.
My hope is to, in the future, use it as an implementation language in
the apps we're working on, in addition to Java. Unfortunately only a
few of us speak Lisp, so wide adoption is difficult (we have enough
problems finding competent Java developers!)
> What 3 features would you most like to see added next?
Better error messages, if possible. However, I have yet to come across
a case where I could suss what was going wrong from the messages the
current release emits.
The documentation is pretty good, but I've found myself digging around
for things and trying to look things up when reading other people's
code but not having luck picking apart some of the reader shortcuts.
-tree
--
Tom Emerson
trem...@gmail.com
http://www.dreamersrealm.net/~tree