Hi Saul,

Thanks for the suggestions. I should say that I was only giving you my
impression of using Clojure re: it's version number. I'm not saying any of
the things I listed are not doable, just that they feel very ad-hoc and not
quite ready for a "2.0".

I come from the Ruby world, and Ruby isn't even a 2.0, so my perspective is
definitely colored.

> - definitive, simple, integrated package management
> Leiningen and Cake?


I use leiningen and cljr for package management, depending on whether I'm
working on a discrete project or on a script/quick hack/toy program.

These tools are great, and I don't want to diminish the amount of effort
that's gone into them. However, the whole process of getting package
management working is a barrier to entry to Clojure. Getting package
management up and running requires too many steps. I think that Clojure
should come with a default executable that can take care of package
management and start a REPL (loading all global packages into the
classpath). Integrating leiningen into Clojure packages would give this
definitive experience that new users are looking for when they try to get up
and running.


> > - a better REPL experience out of the box (esp. Jline support)
> Slime/Emacs? I only use the REPL in very rare cases and aren't
> bothered by a lack of JLine.



> > - a simpler, more useful stack trace

Slime?


Three problems with the REPL:

1. The standard way Clojure tells me to get a REPL is using the java
command. This makes Clojure not feel like a first-class language.

2. Once I do get a REPL, either through the java or lein or cljr commands,
it has no indentation or Jline support. It feels messy.

3. I use Vim, so Emacs/Slime isn't really something I want to do. (And I
don't want to have to use a specific editor in order to use the language of
my choice.)

> - better commandline integration
>
> https://github.com/gar3thjon3s/clargon


I'll give this a look. In general, I think we need a way to write Clojure
scripts so that they are directly executable (perhaps via a shebang
directive at the top of our script).


> > - abstracting away Java concepts like excessive hierarchies for package
> > definitions (src/com/mycompany/wow/this/is/getting/long/my-library.clj)
>
> You don't have to use this convention. Personally I keep things
> shallow.
>

You're right, but a lot of people do (even clojure.contrib does), which
makes browsing Clojure source code feel rough.


> > - better discovery for existing, well-tested libraries.
>
> You can search on http://clojars.org/. This works well for me.
> However, the key to well tested libraries is having people give
> feedback if a library breaks or is badly documented or doesn't meet
> their needs.
>

To me, Clojars is not the most discoverable interface in the world, though I
do appreciate that it exists. It doesn't have download counts or any other
sort of quality indicator. What's more, some entries are domain-qualified
and others aren't, and it's hard to know exactly what I'm getting when I
install any package from Clojars. Side question (also relating to the
ecosystem feeling rough), what's with all the "SNAPSHOT"s on Clojars?

As I say, I really enjoy coding in Clojure, but the process surrounding
coding is not always very polished. I see too much Java and not quite enough
integration to think of it as a "2.0" yet, though I do think we can get
there.

I'm open-minded about this take, though. Maybe I just don't have a solid
enough setup on my machine yet. (But should it really take that much
effort?)

David

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to