Why I have chosen not to employ clojure

734 views
Skip to first unread message

Tim Johnson

unread,
Mar 21, 2010, 2:42:12 PM3/21/10
to clo...@googlegroups.com
I have evaluated clojure for the last couple of days, and it is both my own
professional decision and my recommendation to the professional organizations
that I belong to and report to that clojure is not ready for prime time.

Before any of you think that I am a disgruntled newbie turned troll, know
the following:

1)As soon as I see the copy of this email in my "clojure mailbox", I will
unsubscribe from this mailing list, delete the clojure mailbox and I will not
be following up in any way.

2)In as much as clojure is a new programming language with a small but
enthusiastic user base and a brilliant developer I confess to a certain deja vu
here. That would be rebol 10 years ago. Brilliantly conceived, brilliantly
designed by one of the best programmers on the planet. Never went anywhere.
I've used rebol for 10 years steadily and made a lot of money with it, but
there is almost 0 demand for rebol programmers out there.

3)Although I may be a noob with it comes to clojure and even more of a noob
when it comes to java, I have been a professional analyst and programmer for 21
years and own my own company. Many seasoned programmers, analysts and system
adminstrators look at a new system as something to "employ". As a front end for
java, I do not consider clojure to be "employable".

I think that clojure is brilliantly conceived and it is clear from what I have
read of Rich Hickey's words that his vision is right in the same channel with
mine, but that is not the problem. The fact that I respect the developer and
the product is the reason that I have taken this time to write this email.

The reason I choose NOT to employ clojure can be summed up in three words.
-------------------
Install and deploy.
-------------------

I consider this to be clojure's fatal weakness. Certainly I can get clojure up
and running, but "selling" clojure to a sysadmin is going to be a problem at
this time. There was a time when PHP was NOT present on virtually all webservers.
PHP got it's "foot in the door" because it was very easy to deploy.

Consider the two threads that I started up - one is titled "Web programming in
Clojure" - there's the good stuff. Generous reponse, lots of input.

The other one is titled "Installation issues on slack 13.0 (ant?)". This where
it all falls apart.

Sadly, this is like the first impression and we all know how lasting first
impressions are. In fact as you can see, the thread ended with no resolution.
I'm sorry to pick on "steve" but his response is a case study

* Steve <stephen....@gmail.com> [100320 05:24]:
> Reading the getting started page on the website will get you further
> still : http://clojure.org/getting_started

Sadly inadequate! Check out the comparable kawa resources and instructions for
a better example.

> If you do need ant then a more modern distro will make your life much
> easier (eg. apt-get install ant).

Again, so inadequate. I also use ubuntu. Have for years. apt-get is a thing
of beauty. When it works. And bye the way, slackware is much more modern
when it comes to up-to-date build tools. So know I not only have to "sell"
clojure to the sysadmins, I have to sell them ubuntu too? Good luck with
that!

Here's how I installed the flash player on my system.
1)Downloaded install_flash_player_10_linux.tar.gz
2)Unzipped libflashplayer.so
3)Copied to /usr/lib/firefox-3.5.2/plugins/

Make clojure "install and deployment" like the example above and more of us will
EMPLOY clojure and 10 years from now there WILL be a market for clojure
programmers.

Goodby and good luck.
--
Tim
t...@johnsons-web.com
http://www.akwebsoft.com

Fogus

unread,
Mar 21, 2010, 2:47:06 PM3/21/10
to Clojure
> 1)As soon as I see the copy of this email in my "clojure mailbox", I will
> unsubscribe from this mailing list, delete the clojure mailbox and I will not
> be following up in any way.

Really? This is not c.l.l and it's not likely that this thread would
have devolved into flaming or worse. It's unfortunate he feels the
need to take such an extreme measure because I didn't read his post as
a troll and felt that a dialog about his issues might have been
enlightening.

Cosmin Stejerean

unread,
Mar 21, 2010, 4:11:57 PM3/21/10
to clojure
I don't understand the complaints about installing Clojure. As far as I know there's nothing required to 'install' Clojure beyond downloading the clojure.jar, other than I guess having a working Java installation.

Similarly, I don't understand the difficulties in deploying Clojure applications. At least as far as web applications go, I really like the one WAR file deployment of Java applications. It's certainly far easier in general than deploying Python applications for example.

--
Cosmin Stejerean
http://offbytwo.com

Quzanti

unread,
Mar 21, 2010, 4:37:42 PM3/21/10
to Clojure

Reading his post I got the impression he was a bit of an egocentric (a
bit more information about himself than was relevant), those sorts
tend to overreact.

However I can imagine the whole just bung the jar file on your
classpath thing wouldn't make much sense for a java newbie. It may
highlight the need for some special 'getting started' documentation
for Lisp programmers who have never used java, which I understand to
be one target audience of clojure.

Laurent PETIT

unread,
Mar 21, 2010, 4:39:24 PM3/21/10
to clo...@googlegroups.com
Yeah,

too bad he removed his entry, 'cause as you said, installing clojure
isn't harder than installing anything java based. I don't know of a
sysadmin nowadays which had not to deal with java stuff in a way or
another ? And ant is around the place *for years*. So more input from
him may have helped more clearly identify the root problem.

2010/3/21 Cosmin Stejerean <cstej...@gmail.com>:

> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>
> To unsubscribe from this group, send email to
> clojure+unsubscribegooglegroups.com or reply to this email with the words
> "REMOVE ME" as the subject.
>

Quzanti

unread,
Mar 21, 2010, 5:27:05 PM3/21/10
to Clojure
But if he had never been in the Java mindset it wouldn't be obvious to
him that
there is nothing to be gained by compiling your own java code.
Platform independence,
bytecode etc means that a jar file of the stable build is the optimum
solution. That is so
obvious to us we forget that its a revolution for someone new to java.
So he probably
went down some compile from source to optimise for your architecture
route that made
perfect sense to him, but led him onto a iceberg (the captain of the
titanic *knew* that a
ship could turn in time because that is what all his previous
experience
on smaller ships led him to believe)

On Mar 21, 8:39 pm, Laurent PETIT <laurent.pe...@gmail.com> wrote:
> Yeah,
>
> too bad he removed his entry, 'cause as you said, installing clojure
> isn't harder than installing anything java based. I don't know of a
> sysadmin nowadays which had not to deal with java stuff in a way or
> another ? And ant is around the place *for years*. So more input from
> him may have helped more clearly identify the root problem.
>

> 2010/3/21 Cosmin Stejerean <cstejer...@gmail.com>:
>

cageface

unread,
Mar 21, 2010, 5:56:59 PM3/21/10
to Clojure
What a strange reason to dismiss Clojure. And also strange to refuse
any further input.

Stuart Sierra

unread,
Mar 21, 2010, 6:05:06 PM3/21/10
to Clojure
I agree that the Clojure first-run experience is too rough. Both
Scala and JRuby, for example, are complete packages that you can
download, unzip, install, and run -- on any platform -- without
knowing anything about Java.

Clojure needs to provide the same experience, even if it only matters
for first-time users.

-SS

Lee Spector

unread,
Mar 21, 2010, 6:08:38 PM3/21/10
to clo...@googlegroups.com

I have some sympathy with some of what Tim wrote, although I think that I'll be working in and enjoying Clojure for some time to come (really -- I'm finding it to be fantastic in many ways -- including the community). I'm not sure I agree with or even understand all of Tim's complaints, but as a relative newcomer to the Java world I share some of his thoughts about getting started.

The last two environments I've worked/taught in have been DrScheme and Processing, and both of these have the virtue that you download/install one thing and instantly have an intuitive IDE within which you can write and run code. Same for MCL way back in the day, and for just about any other environment in which I've done much work or teaching (egads, back to Turbo Pascal and Think C). BTW Processing even has a one button "export applet" function that makes web deployment of applets trivial, and this is REALLY attractive to students with non-compsci backgrounds and other total newcomers to programming.

To many of you setting up Clojure probably seems just about as simple, and you may be thinking "Jeez -- if they can't even do that then how do they expect to be able to do anything interesting with the language anyway?" But for newcomers to Java -- even newcomers with lots of coding experience in other environments -- the issues with classpaths and putting jars in the right places can be pretty frustrating, to say nothing of the hoops one has to jump through to set up slime or the other available IDEs (even with the very nice videos that some of you have made, because there are enough steps and platform dependencies that things can go wrong in many ways). Although I now have a nice environment set up I'm still a little worried about how I'll deal with setup on all of the machines in our lab, and on the laptops of students with no previous experience...

I'm sure that this can and will be overcome, in part because I think that for my main environment (Mac OS X) and for my needs (which are more about ease of starting to write and run code than about deployment) MCLIDE/Clojure is very close already (three cheers for Terje!).

So whatever else might have been right or wrong about Tim's post, I agree that it could be a little easier for total newcomers to get going... and I think the community will grow even more quickly when it is.

-Lee

--
Lee Spector, Professor of Computer Science
School of Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
lspe...@hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438

Check out Genetic Programming and Evolvable Machines:
http://www.springer.com/10710 - http://gpemjournal.blogspot.com/

Anniepoo

unread,
Mar 21, 2010, 6:32:10 PM3/21/10
to Clojure
It certainly does seem strange coming from the Java world, where ear
files and deployment descriptors can be intimidating. The idea that
adding a couple jar files and the source tree to
the classpath is 'too hard' makes me wonder what language he was
coming from.

I was asked to give a simple 'hands on clojure' thing at a Java users
group. I wanted to spend
minimal time on environment setup, so I had these java developers put
the jars and my starter script in a directory, cd into it, and add .
to the classpath.
Out of the room of programmers I had one person have trouble getting
the starter project to come up pretty much immediately, and whatever
his issue was I fixed it in a few seconds.

For the record, I downloaded and installed Rebol - took about the same
time to get to where I was fiddling with code and not environment as
it did when I started clojure.
I was puzzled which version to download and had to figure out there
was a free version (under 15 sec)
828K download.
found a reasonable tutorial immediately, got my first language smell
when I discovered that they wanted me to use a built-in editor,
quickly got over that when they said most rebol programmers use an
external editor.

Learning curve - far fewer 'strange' concepts than clojure, I came up
pretty fast, but it definitely has a toy language feel. I'm guessing
it'd be a lot like programming in visual basic - quick til you need to
do something 'off the rails' like handle a UDP stream, then hellish.
Looks like another attempt to make an ultra-friendly language at the
expense of power - a 'solution' that usually doesn't get you too far.

deployment - ok, so rebol looks bad to deploy. You have to install a
runtime and give out the source, both probably not very enterprise-
solution oriented sysadmin friendly. And the server side example uses
CGI, which doesn't pass the smell test.

Conclusion -
rebol actually might be a reasonable solution for a project I'm
talking to the biz guy about. It'd involve a whole bunch of objects in
a virtual world that need controlled from some web other end. Rebol
has deployment problems, I'll agree, but don't see them as relevant to
Clojure.

I think our friend's off base.

Cosmin Stejerean

unread,
Mar 21, 2010, 6:40:24 PM3/21/10
to clojure
I have a project on github that I think comes pretty close. I created it so I can have separate clojure environments for different projects without having to muck with lein or maven (not to mention neither lein or clojure-mavne-plugin were available at the time AFAIK). I still find this the quickest way to get Clojure working on a new machine.I would appreciate any feedback.

 

Mark Derricutt

unread,
Mar 21, 2010, 6:56:37 PM3/21/10
to clo...@googlegroups.com
Thanks for the pointer to MCLIDE!  That looks really nice!  Any idea if a 64bit build is in the works?  For some reason I feel dirty about having to install Rosetta :)

--
Pull me down under...

e

unread,
Mar 21, 2010, 6:58:42 PM3/21/10
to clo...@googlegroups.com
there's a positive reason to say all that stuff as if to say, " and it's not that I'm a slouch.  I have been able to succeed with other technology."  I've personally had tons of trouble getting going with clojure, and I use java all the time.  I think the ideas in clojure are awesome, and I like the language, but if folks have never looked at Fan/Fantom ... as far as getting into it, *that's* about the gentlist you can get into anything.  The website was written in Fantom, it's a one stop shop for getting started ... not that I like that language better or anything, but, seriously ... that's a fun exercise.  It's very inviting and welcoming and I wish that a page could be taken from that approach -- I think he wouldn't have had any of the same opinions if it had.

And I realize I'm not being very concrete: I'd had plans to write up what I thought some specific differences were.  Now I'm just left with an impression ... an impression that Fantom wants you to LOVE that language . . . .and an impression of clojure that you have to want to love clojure (so then you have to make a lot of complicated arguments as to why that is so, which, by the way, I think are beautifully presented in Clojure In Action).

And don't get me started on trying to get emacs or vi all hooked up on my mac.  I've never succeeded.  Summary: I agree to some extent.  clojure is awesome.  I wish I could use it at work, but it's an incredibly hard thing to sell.

Marek Kubica

unread,
Mar 21, 2010, 5:08:11 PM3/21/10
to clo...@googlegroups.com
On Sun, 21 Mar 2010 10:42:12 -0800
Tim Johnson <t...@johnsons-web.com> wrote:

> Here's how I installed the flash player on my system.
> 1)Downloaded install_flash_player_10_linux.tar.gz
> 2)Unzipped libflashplayer.so
> 3)Copied to /usr/lib/firefox-3.5.2/plugins/

Here's how I installed the Clojure REPL on my system.
1) Downloaded clojure-1.1.0.zip
2) Unzipped clojure.jar
3) Ran java -jar clojure.jar

Hardly any different.

FWIW, posting on a list and declaring immediately that one will
unsubscribe afterwards, not even reading replies is near-flamebait
quality.

regards,
Marek

Mike K

unread,
Mar 21, 2010, 7:55:57 PM3/21/10
to Clojure
> I would appreciate any feedback.

According to the readme it requires bash or zsh. Any plans to support
windows (without cygwin or other unix emulation)?

I agree with Stuart that the user experience should be friendly on all
supported platforms.

Mike

Antony Blakey

unread,
Mar 21, 2010, 9:12:40 PM3/21/10
to clo...@googlegroups.com

On 22/03/2010, at 9:28 AM, e wrote:

> And don't get me started on trying to get emacs or vi all hooked up on my mac. I've never succeeded.

I'm about to use Clojure commercially, but it's been a frustrating exercise getting setup. I've ended up using LaClojure on IntelliJ, but that wasn't trivial because of a plugin versioning issue. CCW doesn't autoindent (I know that's coming) and I've been unable to get Enclojure's project REPL to work when using Clojure 1.2. I had a stretch of using almost Emacs exclusively for 15 years, but compared to any IDE thats absolutely not newbie friendly, and not as good as an IDE IMO. In any case, the package manager hangs 80% of the time trying to grab stuff from the net.

IMHO a significant sociological issue is that so many clojure devs use Emacs, are coming at this from a 'rebirth-of-lisp' POV, and seem to have adopted the cultural values of Lisp when it comes to development practices. To be successful however Clojure needs to adopt 'mainstream' values - introduce just one 'different' thing i.e. the language, rather than expecting people to adopt both the language, and a different development environment / toolchain e.g. leiningen etc (which IMO is classic NIH). You can't cross the chasm with too much baggage. Personally I don't believe this will happen unless core developers use the tools and practices that users want to use. The end-user itches and the developer itches need to be aligned.

Just my $0.02.

Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

It's amazing that the one side of the conversation that survived is "I don't know art, but I know what I like". The reply from the artist was "Madam, so does a cow".
-- Carl Kirkendall


Richard Newman

unread,
Mar 21, 2010, 9:32:34 PM3/21/10
to clo...@googlegroups.com
> To be successful however Clojure needs to adopt 'mainstream' values
> - introduce just one 'different' thing i.e. the language, rather
> than expecting people to adopt both the language, and a different
> development environment / toolchain e.g. leiningen etc (which IMO is
> classic NIH).

I think that depends on your definition of "successful".

If you think "popular with mainstream Java developers" is the
definition of success, then yes: not scaring those poor folks is
important.

I don't count that as success -- I call that popularity. I'd much
rather have Clojure make me personally productive (and that means
Swank, standalone REPLs, introspective debugging, etc.) than somehow
feel validated because lots of faceless Java folks can get past some
environment issue, only to reach the point of being scared away by the
parentheses and immutable functional programming.

Ultimately, though, it all comes down to "here are some jars". If a
Java developer can't figure that much out, they're probably not going
to get very far regardless.

David Nolen

unread,
Mar 21, 2010, 10:00:27 PM3/21/10
to clo...@googlegroups.com
On Sun, Mar 21, 2010 at 9:12 PM, Antony Blakey <antony...@gmail.com> wrote:

On 22/03/2010, at 9:28 AM, e wrote:

> And don't get me started on trying to get emacs or vi all hooked up on my mac.  I've never succeeded.

I'm about to use Clojure commercially, but it's been a frustrating exercise getting setup. I've ended up using LaClojure on IntelliJ, but that wasn't trivial because of a plugin versioning issue. CCW doesn't autoindent (I know that's coming) and I've been unable to get Enclojure's project REPL to work when using Clojure 1.2. I had a stretch of using almost Emacs exclusively for 15 years, but compared to any IDE thats absolutely not newbie friendly, and not as good as an IDE IMO. In any case, the package manager hangs 80% of the time trying to grab stuff from the net.

Many people use Emacs at this point only because it has the best Clojure support thus far. This will change in time. It's still early days. 1 year ago (when Clojure was one years (1 1/2?) old) it was impossible to even pretty-print macroexpansion!
 
IMHO a significant sociological issue is that so many clojure devs use Emacs, are coming at this from a 'rebirth-of-lisp' POV, and seem to have adopted the cultural values of Lisp when it comes to development practices. To be successful however Clojure needs to adopt 'mainstream' values - introduce just one 'different' thing i.e. the language, rather than expecting people to adopt both the language, and a different development environment / toolchain e.g. leiningen etc (which IMO is classic NIH). You can't cross the chasm with too much baggage. Personally I don't believe this will happen unless core developers use the tools and practices that users want to use. The end-user itches and the developer itches need to be aligned.
 
I don't think any of the current Clojure library maintainers believe in an Emacs or Lein only future. I think as more and more people adopt varying tool sets, libraries will evolve to support the varying kinds of dev environments.

These kinds of things don't happen overnight. Or even in a year. A lot of people have to adopt Clojure for these things to improve. And improve they have. If things improve at the pace they have been, before long most of these concerns will be thing of the distant past.

I think part of the problem is that so many things about Clojure work so well. You expect everything to magically work!

While I sympathize with the OP, I think the OP was trolling just a tad. I mean clearly noone on this list has a slackware setup, thus the less than helpful responses. But Clojure is just too young to have a large base of developers with every hardware/software configuration out there. It would have been more constructive if the OP had sludged through it and shared his insights as many of us have sludged through it so that we can spread our collective knowledge about how to make hacking on Clojure as fun as possible in many different environments.

David

Terje Norderhaug

unread,
Mar 21, 2010, 10:19:12 PM3/21/10
to clo...@googlegroups.com
On Mar 21, 2010, at 3:56 PM, Mark Derricutt wrote:
> Thanks for the pointer to MCLIDE! That looks really nice! Any
> idea if a 64bit build is in the works? For some reason I feel
> dirty about having to install Rosetta :)

MCLIDE 2.0 will have that cutting edge you're craving for and
definitely NOT require Rosetta, but please don't let that hold you
back from using MCLIDE 1.0. The first version is intended to provide
fodder for a conversation about what to include in the next
generation lisp/clojure IDE for Macintosh. I invite you to download
the upcoming release of MCLIDE for Clojure and join the dialogue
about where to go from here. Think of Rosetta as just another VM... ;-)

There are good reasons for the initial release to use Rosetta,
particularly that it allowed MCLIDE to be built rapidly on top of a
mature, proven lisp IDE. This dramatically cut down the development
time from conception to usable software, making MCLIDE available now
instead of at the time of the 2.0 release.

You get the gist: "Release early. Release often. And listen to your
customers."

When MCLIDE for Clojure is out, you will be able to download a
distribution of MCLIDE and have it work instantly as an IDE for
Clojure on Mac OSX, and with a little extra effort as a Mac IDE for
Clojure on any platform.

If you just can't wait any longer, send me an email, and I'll let you
in on how to make the current version of MCLIDE work with Clojure.

> On Mon, Mar 22, 2010 at 11:08 AM, Lee Spector
> <lspe...@hampshire.edu> wrote:
> I'm sure that this can and will be overcome, in part because I
> think that for my main environment (Mac OS X) and for my needs
> (which are more about ease of starting to write and run code than
> about deployment) MCLIDE/Clojure is very close already (three
> cheers for Terje!).

-- Terje Norderhaug
te...@in-progress.com


Cosmin Stejerean

unread,
Mar 21, 2010, 11:01:02 PM3/21/10
to clojure
I don't have a Windows machine so I can't easily add Windows support. I'm assuming that what I'm doing with Bash should be possible to accomplish in Windows, perhaps using BATCH scripts. Patches/pull requests are welcome :)
 

Seth

unread,
Mar 21, 2010, 11:07:30 PM3/21/10
to Clojure
I hate to feed trolls, but this is a solid example of passive-
aggresive behavior. Also, ignoring plausible sounding, spell-checked
diatribes is bad.

The installation of one or two jar files from a Maven repository is
par for the JVM course. Deployment? Works on any reasonable JVM out
there. Could the install/deploy behavior be improved? Sure, but try
targeting something less ubiquitous than "ant". Slackware more modern
than Ubuntu??

Contrasting Clojure with Flash on Ubuntu really takes the cake. Flash
has never had a good reputation outside of Windows. Also, either the
poster is running as root (!) or has somehow forgotten a very
important su/sudo between steps 2 and 3. Either way, no sysadmin has
to be convinced.

Wresting with pigs is bad because you get dirty and the pig likes it.

> * Steve <stephen.a.lind...@gmail.com> [100320 05:24]:

Luc Préfontaine

unread,
Mar 21, 2010, 11:20:11 PM3/21/10
to clo...@googlegroups.com

He's illiterate about Java, he's older than me and has less experience so finding how to run a jar file is probably
as remote as traveling to Alpha Centauri :))) (Don't we have something like Google to find these answers ?)

Most of his recent experience seems to be in Visual Basic and mainstream web centric languages.
I suspect he's more a by-product of using too few commercial language centric IDEs.
If it does not work out of the box without a 1-800 number to call, he's lost.

Let's not spend more time about this guy's comments.

I think we can assume a Java programmer knows about class path issues and is able to run java and add librairies to the class path.

As for non Java programmers yes it can be a bit daunting but I bet you can't do much in C# or F# if you do not have the slightest
idea on how to use VisualStudio :)))) You are far away from a three steps installation process here.

Agree, many people may already be familiar with VisualStudio, it's been around for along time. But do you like it ? :)))
Getting started with Clojure is rather simple from the command line, mastering a foreign IDE is a different story.
If you are not familiar with Eclipse, IntelliJ or Emacs and you want to use something more flexible than command line mode
then you have a learning curve investment to do.

The alternatives are documented from the "Getting started" page of the Clojure web site and it's pretty clear to follow.
The best "choice" may not be clear upfront (we all have our tastes) but there is some solid ground to help people decide
on an alternative.

Yes we could have a complete package to run Clojure from the shell command line but how far could someone go with this
to build a workable system without an IDE ? It might have some sex appeal to help learn the language but how different
is it from the three steps described by Marek ? Do we really need to release a Clojure SDK with an IDE etc ?
What other language does that ? Ruby ? Scala ? Groovy ?

>From time to time we have comments about how difficult/easy it is to get acquainted with Clojure but I wonder if we all
understand the same things about this issue. Do we need to gather requirements somehow ? (!?!?!)

Comments anyone ?

Luc P.

Cosmin Stejerean

unread,
Mar 21, 2010, 11:52:32 PM3/21/10
to clojure
On Sun, Mar 21, 2010 at 10:20 PM, Luc Préfontaine <lprefo...@softaddicts.ca> wrote:

Yes we could have a complete package to run Clojure from the shell command line but how far could someone go with this
to build a workable system without an IDE ?

[...]
 
Comments anyone ?


I can get pretty far writing an application in Python with nothing more than good command line support and syntax highlighting in any text editor. Anything extra like completions, refactoring, etc, are just nice-to-haves. I don't see why an IDE is required for writing workable Clojure apps.
 

cej38

unread,
Mar 22, 2010, 1:26:51 AM3/22/10
to Clojure
I am a physicist by training and practice, this means that I am an
expert on Fortran 95. To say my exposure to Java is minimal would be
generous. And until last year when I heard about Clojure from a
friend, I thought LISP was a speech impediment.

Setting up Clojure was a MAJOR problem for me, what with getting
path's and classpaths right. (Figuring out what a classpath is was a
challenge.) If it wasn't for the very patient help of a CS friend of
mine, I would not have figured it out.

I think the documentation assumes that the user is comfortable with
Java. I feel like I am being asked to learn Java so that I can learn
Clojure.

I am now an avid Clojure user, but there really does need to be better
descriptions of how to set Clojure up on the website.

Luc Préfontaine

unread,
Mar 22, 2010, 2:10:11 AM3/22/10
to clo...@googlegroups.com
An IDE becomes a necessity as the complexity of your software is increasing.

Now what's a complex piece of software ?

Presently we have 12 components in production some being several thousand lines covering three languages (Java, Ruby and Clojure).
4 others components are in progress. Add to this that we use Spring and a number of other frameworks for which plug ins are
available to ease the pain.

Refactoring, code searching, configuration validation, ... are significant features we need otherwise we would spend a lot of time
to keep things in sync,

We started to work with Clojure in command line mode. However at a certain moment it became clear that keeping Clojure
separate from the rest of the core was not the way to go. Today we are mixing components from different languages/frameworks
in common Jars. Deployment is much more easier this way and using a common IDE makes that possible.

If the consensus is that we need to package installers to get simple Clojure REPLs running on
Windows and Linux in a command line window then let's do it. I think that all the infrastructure is ready (maven like repo, ...).


Luc

Miron Brezuleanu

unread,
Mar 22, 2010, 2:44:29 AM3/22/10
to clo...@googlegroups.com
Hello all,

On Sun, Mar 21, 2010 at 8:42 PM, Tim Johnson <t...@johnsons-web.com> wrote:
> I have evaluated clojure for the last couple of days, and it is both my own
> professional decision and my recommendation to the professional organizations
> that I belong to and report to that clojure is not ready for prime time.
>

Since I had a pretty smooth experience with Clojure right from the
start, despite having little experience with Java, I'll try to
describe what made it easy for me - maybe this will help someone
trying to come up with improvements to the initial experience.

For me, having the "Programming Clojure" zip file available was great.
Being able to just run bin/repl.bat (or .sh) whenever I wanted to try
something out - even if it involved some of the additional libraries,
such as the database connectivity stuff - was just great. Running it
from an Emacs shell to get better history navigation etc. was also
very nice (I never got as far as using Slime, even though I should
probably try it sometimes). Well, with the minor caveat that Emacs and
jline don't always play nice, so I removed jline from the .bat after
wondering for a while why (+ 1 1) sent to the Clojure REPL inside
Emacs never returns :-)

So maybe this is a way to make friendly environments for beginners.
Maybe it's enough make more "Programming Clojure"-like environments,
targeted towards beginners, beginners interested in web/database
access, beginners with an interest in graphics, etc. Some script (or
just instructions about how to do it) to update clojure.jar and the
libs would be nice too. Care must be taken to keep things easy - the
script should not try to compile anything, just attempt to download
updated versions - trying to compile stuff would increase friction for
newbies.

The great part about the "Programming Clojure" environment is not that
it makes very hard things easy - but that it makes simple tasks very
simple (no need to download and configure Compojure, it's just there).
Just reducing friction seems to be a very good idea, things are more
likely to be tried out when they are just a few keystrokes away.

As for the original poster, it's weird that he evaluates Clojure for
just two days - and decides that although the technical principles it
is based on are sound, the whole thing should be dismissed because of
the first 'tactical' hurdle - installing. Maybe the guy is used to
evaluating things by reading marketing texts? Maybe the CLASSPATH is
really such a big problem? (this is hard to evaluate for someone used
to the command line).

Nevertheless, it would be dangerous to ignore or dismiss his troubles,
as they are probably quite common, so if anyone is thinking about how
to improve the situation, maybe my opinion above of what made me happy
with Clojure at the beginning is useful.

Oh, and "Programming Clojure" itself was great in making me see how to
use Clojure in practice (I already knew it was great in theory, but
the book made the practice-theory gap much smaller). So maybe the book
(or the coming books) should be promoted more?

Bye,

> Before any of you think that I am a disgruntled newbie turned troll, know
> the following:
>
> 1)As soon as I see the copy of this email in my "clojure mailbox", I will
> unsubscribe from this mailing list, delete the clojure mailbox and I will not
> be following up in any way.
>

--
Miron Brezuleanu

Baishampayan Ghose

unread,
Mar 22, 2010, 3:25:42 AM3/22/10
to clo...@googlegroups.com
Tim Johnson wrote:
> I have evaluated clojure for the last couple of days, and it is both my own
> professional decision and my recommendation to the professional organizations
> that I belong to and report to that clojure is not ready for prime time.

[snip]

I agree that Tim was a bit over-reacting; it's so easy to dismiss his
post as flame-bait and what not.

Nevertheless, I think getting started with Clojure is certainly not
painless at the moment; and it's no fault of Clojure at all. There are
many people who come to Clojure from non-Java backgrounds (like me) and
don't know Emacs (unlike me). Those guys face a _lot_ of problems.

Using Clojure on Windows is also a bit problematic.

How do we solve it? Clear, up to date instructions for new comers.

I propose a website which will serve as the canonical repository for
Clojure documentation.

It will have great documentation starting from getting started with
Clojure to examples of different library functions.

We could use content from the Wikibooks project to get started, but we
will need to organise and maintain the content a bit better.

What do you people think?

Regards,
BG

--
Baishampayan Ghose <b.g...@ocricket.com>

Vagif Verdi

unread,
Mar 22, 2010, 4:04:25 AM3/22/10
to Clojure
I'm happy that this guy self eliminated himself from clojure
community. But experience tells me not to be so sure. His kind tends
to come back and unfortunately is very persistent.

If downloading couple of jar files and dropping them into the
classpath is too much for him, then he is definitelly a java noob.
Imagine him advising his clients never use java :))

Joel Westerberg

unread,
Mar 22, 2010, 4:49:06 AM3/22/10
to clo...@googlegroups.com
I love clojure but I think it's unnecessary it doesn't ship with a simple clj and a clj.bat script out of the box, yeah it's easy to run it with jvm, but who want to type

java -server -Djava.ext.dirs=./lib:/opt/bin/lib -cp ~/.emacs.d/lisp-packages/swank-clojure jline.ConsoleRunner clojure.lang.Repl

every time they need a repl? sure, command completion, but come on? It's not exactly making life simple. (I know with 1.1 it's not clojure.lang.Repl any more but still lengthy and complicated, though now I use lein so I am happy).

Every time I've started up with a clojure project I've had to spend a few hours fiddling with the environment, not that I don't do that with other languages, but it would be nice with an officially sanctioned solution for setting up a sane environment.

Alyssa Kwan

unread,
Mar 21, 2010, 7:44:05 PM3/21/10
to Clojure
This is definitely flamebait. However, he has a point. Perhaps we
should make it clear on the Getting Started page that deploying Java
is a prerequisite to deploying Clojure, and include links to resources
on how to do that for the platform you are on. It's presently unclear
to anyone without a Java background. However, everyone who has
responded is right that developer experience notwithstanding, any
sysadmin worth his/her salt will know how to install a JVM.

Michael Richter

unread,
Mar 21, 2010, 10:15:47 PM3/21/10
to clo...@googlegroups.com
To add the perspective of a true newbie to this dogpile, I'm going to have to say that the OP was just plain wrong.  He made a major mistake -- wanting to compile clojure for himself on a platform that's not exactly friendly to Java development in the first place (Slackware, not Linux in general) -- and promptly blamed that on the wrong tool.

Are there some barriers to entry for a newbie?  Hell, yes.  I, for example, can't stand EMACS (insert the "great OS with crappy editor" gag here), so the EMACS-centric nature of the tools currently available is definitely a downer, as is the community assumption that anybody who'd want to use clojure is OBVIOUSLY an EMACS user.  That's OK, though.  On the Java side the assumption is that everybody uses Eclipse and I hate that more than I hate EMACS.  This hasn't stopped me from using Java when I've needed to.

Another, slightly worse, problem is that Clojure is a moving target.  I have the book Programming Clojure and have noted already that the language is changing out from underfoot.  If I'm not careful I suspect that in a years' time what I "know" about Clojure will be out of date or quite possibly even flatly wrong.  This is a more serious problem than "I don't get JAR files" like the OP had, especially since there doesn't seem to be a coherent resource anywhere describing the changes -- lots of work is being put into changes but not so much is being put into communicating those changes.  (Insert the usual round of people utterly missing the point by linking to blog X here and blog Y here and blog Z here talking about the changes.)

Again I don't think this is a major problem, though.  Clojure is a young language and at this early stage in its development it's inevitable that there will be large changes (as theory hits the real world).  Further, anybody who's been in the industry for as long as the OP has claimed to have been knows full well that documentation always lags behind development.  I think it telling that he's pointing to mature (and, in the case of Rebol, beyond end-of-life) products to show how documentation "should be done".  It indicates to me that he's not got a lot of experience with new programming environments.

TL;DR summary: this newbie thinks that yes, there are a few barriers to entry for new Clojure users but they're nowhere near as serious as the OP claims they are and are not even unusually bad for what is normal in this industry.

--
"Perhaps people don't believe this, but throughout all of the discussions of entering China our focus has really been what's best for the Chinese people. It's not been about our revenue or profit or whatnot."
--Sergey Brin, demonstrating the emptiness of the "don't be evil" mantra.

Douglas Philips

unread,
Mar 22, 2010, 12:33:40 AM3/22/10
to clo...@googlegroups.com

+1

I use a Mac with MacPorts. Pulled down clojure and clojure-contrib
ports.
Only thing I had to do (and this was -not- easy to figure out), was
create a .clojure file that pointed
to the contrib jar. But that is how the clj wrapper in the clojure
port works. I suppose I could also
muck around with my class path, or do other things...

There is a high Java tax on using clojure for those of us coming from
non-Java languages.
I'm willing to accept that I need to read the Java docs on how
strings, or, whatever, work.

But getting clojure itself set up? Please, do -not- make "pre-existing
familiarity with an IDE" a prerequisite. There are enough learning
curves as it is.

-Doug

P.S. I used Emacs back when Gosling was writing his version of it at
CMU, before Java even existed, and now I use (g)vim. It's nice that
there are other IDEs working with clojure, but not so nice to assume
non-Java users are using some VisualStudio or other heavy-weight IDE.

Martin DeMello

unread,
Mar 22, 2010, 7:18:29 AM3/22/10
to clo...@googlegroups.com
On Mon, Mar 22, 2010 at 2:19 PM, Joel Westerberg
<joel.we...@gmail.com> wrote:
>
> Every time I've started up with a clojure project I've had to spend a few
> hours fiddling with the environment, not that I don't do that with other
> languages, but it would be nice with an officially sanctioned solution for
> setting up a sane environment.

Even better, an officially sanctioned solution expressed both as
documentation, and as a collection of shell scripts for all the major
platforms.

(As another non-java-familiar clojure adoptee, classpaths were
definitely a hurdle)

martin

Luc Préfontaine

unread,
Mar 22, 2010, 7:31:25 AM3/22/10
to clo...@googlegroups.com
Is my first impression right or wrong ?

Is Clojure harder to setup from Windows for beginners ?

Would an installer (.msi) help by hiding Java related details and providing some basic scripts to run it ?

Luc P.

Martin DeMello

unread,
Mar 22, 2010, 7:36:10 AM3/22/10
to clo...@googlegroups.com
Haven't tried setting it up on windows, but an msi that hid the java
details would be a nice plus, provided hat the abstraction never
leaked (i.e. that you could do all the basic clojure operations
without having to stop and edit or bypass the scripts).

martin

Per Vognsen

unread,
Mar 22, 2010, 7:43:11 AM3/22/10
to clo...@googlegroups.com
I use OS X and had only minor trouble getting Clojure to run the first
time. But even minor trouble still has a disproportionate effect on
someone's first impression. The out-of-box experience matters for
everything and programming languages are no exception. Eclipse is a
good example of a Java developer-oriented application with a good
out-of-box experience on all platforms. Shell scripts for UNIX and
installers for Windows and OS X would go a long way towards improving
that for Clojure.

-Per