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
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.
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.
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.
>
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>:
>
Clojure needs to provide the same experience, even if it only matters
for first-time users.
-SS
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/
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.
> 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
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
> 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
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.
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.
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.
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.
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
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]:
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 ?
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.
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
[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>
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 :))
+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.
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
martin
-Per
--
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.
In my opinion, atleast in the GNU/Linux world, it should be left to
distributors to do this job. On Debian for instance, one just need to
do `apt-get install clojure clojure-contrib' to get clojure installed.
Of course, one can provide instructions on how to build by oneself.
--
Ramakrishnan
-Per
I also agree. The best setup experience I've had so far is using
NetBeans with the Enclojure plugin.
I think there are likely two camps: Java users seeing Clojure as a library that they can integrate with their
existing projects; and non-Java users, wanting something with an installation experience something like Python.
For Java users, I think a zip with a jar file in it is great, and they'll likely know what to do with it. I'd be a
bit startled to find a Java library bundled in a .msi installer, it would make Clojure seem foreign and invasive.
I don't think an msi would really add much at all, other than potentially making it harder to install in some
environments. A zip file with working startup scripts would be enough I think? I'd like to see the documentation
bundled too, so that you have a version of the documentation that corresponds to the version of clojure that you have
downloaded.
Perhaps the zip file could have a lib directory that the scripts pull in all jar files from, to make adding things
like database drivers and contrib to the environemnt easier?
Perhaps how Ant aranges its bin directory and lib folder is a good model to borrow from?
It's equally simple on the Mac with Homebrew [1]:
$ brew install clojure clojure-contrib
MacPorts is probably along the same lines. Then there's also my little
ClojureX [2] project, where I'd really like some more feedback by
Windows users. Maybe some of the people in this thread who are
dissatisfied with Clojure on Windows can give it a try?
Michael
[1] http://github.com/mxcl/homebrew
[2] http://github.com/citizen428/ClojureX/
http://vimeo.com/tag:install_clojure
Sorry to self-post,
Sean
On Mar 22, 7:31 am, Luc Préfontaine <lprefonta...@softaddicts.ca>
wrote:
It's kind of funny to see the range of reactions to the OP's post. This stuff really is very simple once you know how to do it, but it's not necessarily simple to people coming from different backgrounds.
-Lee
> --
> 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.
--
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/
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.
On Mar 21, 4:37 pm, Quzanti <quza...@googlemail.com> wrote:
> 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.
>
>
>
>
>
> > 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.
As someone who was a raw clojure beginner not all that long ago, a
beginner
with a lot of Java experience, I do think that we have a problem with
the
'out of the box' experience. My first bit of evidence is the fact that
the
issue seems to come up fairly often. When you have a persistent
customer
complaint, you have to ask yourself, is the problem with the
customer? In
fact, before a recent intro-to-clojure talk I went ahead and built my
own little
'get you going' project just to make it easier for the raw beginner:
http://github.com/russolsen/dejour/downloads
While dejour is just a quick and dirty thing that I put together in a
few hours,
I think that it captures what we need: a single zip/tar/jar file that
you can
download, unpack and run. No install, no git, no nothing. Just
download,
unpack and run a simple script. As someone else mentioned, JRuby does
a really good job of this. We can at least as good as JRuby.
How far can you get with just a repl and no ide? Perhaps just far
enough
to decide that this clojure thing is worth more time. Perhaps more:
There
is nothing in clojure that requires an ide any more than python or
ruby or
perl.
It's a complicated world out there, full of very smart people with
varying backgrounds.
Some of them know lisp but not java. Some know java but no lisp. Some
know
neither but are smart nevertheless and are looking for a better
language. Many of the
engineers that I work with will run screaming from the room at the
sight of
a shell/batch script I think we want them all. We want every one of
them to
use clojure.
Russ
One other beginner issue that hasn't been mentioned is the fuzzy line between Clojure and Java in the documentation, which is of course one of Clojure's strengths via interop, and therefore probably always going to be a little messy. But coming from a life in which CLtL2 was all I needed for a reference (and similar things in other languages) I was initially somewhat confused when basic-seeming things weren't in the Clojure docs, and then were or weren't in the contrib docs, and then I finally realized that I have to always look at both of those and then everything that Java provides and quite reasonably hasn't been reimplemented in Clojure. I'm not saying any of those design decisions is bad (on the contrary), but the diffuseness of some of the documentation can be confusing to newcomers, especially those not coming from Java. I could imagine a sort of meta-index to all of this that would be really helpful -- but of course it would also be a lot of work.
-Lee
> --
> 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.
--
http://hackage.haskell.org/platform/
Or this?
Sean
> lspec...@hampshire.edu,http://hampshire.edu/lspector/
I looked at these videos and they are a very good starting point.
Then do we have a communication problem getting these things known ?
Are these videos listed on the "Getting started" page ?
I mean, if it's too much to install java, unzip a file and run:
java -cp clojure.jar clojure.main
As the getting_started page suggests, what are you going to do with
sexpr syntax, immutable data structures, iteration through recursion,
concurrency etc? Clojure might at some point mature into the kind of
language that has something to offer for people that need a lot more
hand holding but clearly it's a bit of a wild west environment at the
moment.
Maybe so, but if getting into Clojure is a series of struggles with
unfamiliar concepts then dealing with a jar file is by far the least
daunting. Naturally I'm all for making the new-user experience as
pleasant and simple as possible but I'm not sure what exactly could be
done at this point to make it much easier than it is. Certainly
anybody that expects to be able to build it from source on an exotic
Linux distro should also be prepared to roll up their own sleeves a
bit.
Perhaps it would be useful to at least included a ready-to-go clj
shell/batch script in the default distribution? That's what Scala,
Groovy and Jruby do? The only obstacle I remember from my first
experiments with Clojure was getting a working clj shell script
together. Had I started with Stuart's book that wouldn't have been a
problem either.
On the other hand, if you go to the "getting started" pages of Jruby,
Groovy they're actually far more daunting (IMO) than Clojure's:
http://groovy.codehaus.org/Tutorial+1+-+Getting+started
http://kenai.com/projects/jruby/pages/GettingStarted
I've noticed there have been an increasing number of solutions to
running
Clojure over the last year or so, which does leave a lot more to go
wrong
versus the default solution of just running at the command line.
If someone asked me to recommend a way to get into Clojure, I'd
definitely
suggest just running at the command line, and editing files with
notepad
or whatever. There's no real substitute for learning at least the
basics of
the class path and how to fix things when they go wrong.
This is also the absolute simplest way to go, and in my experience,
only a
bad Java install (frequently on Windows) can mess it up.
Even running barebones like this, it's easy to copy in Jar files for
gui code,
add 3rd party jars etc., whilst not having a bunch of things happening
in the
background.
Just call me Ned Ludd!
Best,
Jonathan
The relevant bits of Groovy's page don't seem more daunting to me:
> Setting up your Groovy environment
>
> Download the Groovy installer or binaries from the downloads page and follow the installation
> instructions. (There is currently an issue where you cannot have spaces in the path where Groovy is
> installed under windows. So, instead of accepting the default installation path of "c:\Program
> Files\Groovy" you will want to change the path to something like "c:\Groovy")
One sentence and one caveat. Now, it's preceded by detailed
instructions for installing Java, but those same steps are just as
applicable to Clojure or any other JVM-hosted language, and having
them there is probably not a bad thing. (Though I would replace them
with a link - "If you don't have Java, click here and follow the
instructions.")
JRuby's installation is more manual, but includes examples.
All three install on Ubuntu with apt-get, though the latest Clojure
there is 1.0. It does come with a "clojure" shell script for starting
up a REPL, though.
--
Mark J. Reed <mark...@gmail.com>
Someone else mentioned that maybe part of the problem is that there are several different "simple" ways to get started, and this may have been part of my own problem. I installed one of the emacs clojure modes from the "getting started" page (or maybe two?) and then later tried to install slime and I think they fought with each other, with elpa saying something was already installed and quitting. It wasn't obvious how to start over because I didn't realize that things were in my .emacs and .emacs.d (if I recall correctly). And after watching one of Lau's screencasts I realized I also had to put copies of clojure.jar and clojure-contrib.jar in my .emacs.d, but that was not obvious to me previously...
-Lee
> --
> 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.
--
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/
> Someone else mentioned that maybe part of the problem is that there
> are several different "simple" ways to get started, and this may
> have been part of my own problem.
What we have currently is lots of individuals who have figured out a
good solution for their own needs and then described it for others on
a blog. What we don't have (yet) is a real community effort to provide
one very good solution (or perhaps one per platform) and put it in a
prominent spot, such as the main Clojure Web site. I think this is
partly due to the current structure of the Clojure community, which
consists largely of "early adopters" for whom this is not an important
point.
Konrad.
Thanks to some awesome work by contributors, I think the one in
ClojureX became fairly good over time:
http://github.com/citizen428/ClojureX/blob/master/clj
If anyone want to use this one or build on it feel welcome to do so!
Michael
I looked at these videos and they are a very good starting point.
Then do we have a communication problem getting these things known ?
Are these videos listed on the "Getting started" page ?
It doesn't have to be so structured I guess, but even something like
this helps (eg, see the getting started section from http://data-sorcery.org/contents/
)
# Buildng Incanter applications with Leiningen and Clojars
# Building Clojure Web applications with Incanter, Compojure, and
Leiningen
# Setting up Clojure, Incanter, Emacs, Slime, Swank, and Paredit
# Starting an Incanter Swank server with Leiningen
My own experience with installing Clojure wasn't at all friendly. I
was looking for an alternative to Matlab/Octave to learn (I'm a grad
student doing machine learning stuff). Installing Octave is one-click
easy. All I want is to write some code in emacs and run it. Why is
it so hard to get Clojure, Incanter, Emacs, Slime, Swank, and Paredit
to work together? And what are these "class path" stuff. ;) I was
persistent enough to tough out the hours (!) it took to figure out
which of all the various instructions didn't work, just to find
instructions that worked; otherwise I would've went on to Sage/SciPy/
Python.
Carson
> lspec...@hampshire.edu,http://hampshire.edu/lspector/
As an experienced java developer, these are the steps I took while
setting my environment up and running.
- downloaded the jar, launched java -jar clojure.jar. I was able to
fiddle with the repl, but when it came to code something dependent
from external libraries (clojure-contrib, for example), I found myself
forging my classpath by hand. This is definitely something java
developers are not accustomed to anymore. Every java developer that i
know is using an IDE that manages the classpath for him.
- relying on lein to manage the deps for me. It is something specific
to learn, and I understand it may not be a correct solution. Moreover,
I found it difficult to do interactive development from the repl with
lein.
- tried vimclojure with nailgun. Besides the non-trivial task of
installing vimclojure, I was back to the "manual classpath hell".
Now, i'm using maven with the clojure plugin, especially the
clojure:nailgun goal. It's by far the simplest solution I found. I
also tried CounterClockWise along the way, but was not convinced.
So, besides the JVM installation issues that I did not experienced,
since I'm used to have a JVM on every computer, there are still many
issues to set up a decent working environment.
A package containing clojure, maven and a wrapper around it designed
to create new projects easily may be way of making Clojure acceptable
for newbies coming from anywhere (java or whatever).
I'm now considering getting back to counterclockwise, especially
because I'm planning to write a tutorial covering all major aspects of
clojure, including the initial set up.
By the way, if someone has an idea about a sample application (simple,
but not trivial) which could lead the tutorial, and show different
aspects of the language, let me know !
I was thinking about a more complete and idiomatic version of Vincent
Foley's "Fetching web comics" tutorial, but something more
"enterprisey" seems more adequate.
--Ronan
You're right, videos aren't documentation. Thanks for volunteering to
fill this gap. Let me know when you're ready, and I'll give you make
time to review/beta test any installation documentation you provide.
Sean
-Per
Stu
(A) exploring Clojure (non trivially, including interesting Java
libraries)
(B) deploying Clojure into production.
I nominate the labrepl (http://github.com/relevance/labrepl) as a
solution for (A). It already includes interesting libraries (e.g.
compojure, incanter), and it has instructions for working with
different IDEs (which I hope the community will improve upon).
I don't think there is, or needs to be, a one-size-fits-all solution
for (B). That's what the Java ecosystem is for. Plus, beginners don't
need (B).
Stu
http://github.com/citizen428/ClojureX/archives/1.1.0
Sorry, really not trying to pitch my project here, but the archive
above basically contains what you are asking for.
Michael
Cool. Maybe we could link this and/or Stuart's labrepl from the
getting started page?
I'm intrigued by what I've read here about labrepl, but can someone tell me if it's possible that the lein installation step will mess up my existing setup in any way? Not knowing anything about lein, and having had a confusing time creating my setup that now works (with ClojureX + slime), I don't want to endanger it. This is part of the reason that I (and I presume others who have expressed similar sentiments) really like the idea of a "getting started" package for which the installation process is literally just "download and double click" or maybe "download, unzip, and double click". (And "if you don't like it, throw away what you downloaded and the rest of your system will be unchanged.")
For me the functionality threshold for such a package, which would not only get me started but allow me to do serious work (AI research, not application development) and teach using Clojure, is: a REPL, access to contrib, a classpath that lets "load" find my source files, and a clojure-indenting, bracket-matching editor. Anything else is gravy, but most of the existing "getting started" setups fall short of my threshold at least on the editor front.
-Lee
>> To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
>
> --
> 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.
--
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/
Is this right Phil?
Sean
> lspec...@hampshire.edu,http://hampshire.edu/lspector/
Stu
[1] from http://data-sorcery.org/2009/12/20/getting-started/
$ git clone git://github.com/liebke/incanter.git
$ cd incanter
$ mvn install
then $ bin/clj to get a repl on the terminal or $ bin/swank to start
up a swank server.
For me, if it takes more than three lines on the terminal, it's just
too much. :)
So labrepl sounds interesting from what I read here (especially as it
includes Incanter?). It'd be great if it also has Swank as part of it
so Emacs can connect to it (or does it already?).
Thanks!
Carson
> lspec...@hampshire.edu,http://hampshire.edu/lspector/
> I'm intrigued by what I've read here about labrepl, but can someone
> tell me if it's possible that the lein installation step will mess
> up my existing setup in any way?
I don't think so. Unless you have an existing script called "lein" on
your machine, installing Leiningen shouldn't interfere with anything
else. It even downloads its own copy of Clojure.
Better yet, using Leiningen inside a project directory should not
interfere with anything outside of that directory. So if you download
labrepl and let Leiningen take care of the dependencies, you will end
up with lots of files in your labrepl directory, but no other Clojure
projects (or in fact anything) are modified. Except, of course, your
local Maven repository, but I hope that this is all managed correctly
- certainly don't understand how it works, but it seems to work fine.
Konrad.
You also get this with the labrepl (http://github.com/relevance/labrepl) which is free. Plus I am attempting (with a little help from you all) to keep the labrepl working with various IDEs.
> By the way, if someone has an idea about a sample application (simple,
> but not trivial) which could lead the tutorial, and show different
> aspects of the language, let me know !
> I was thinking about a more complete and idiomatic version of Vincent
> Foley's "Fetching web comics" tutorial, but something more
> "enterprisey" seems more adequate.
I have a slightly more - a full application, it is a tool which I
wrote to save someone around one hour per week of doing "monkey
work" (nothing against monkeys, I just do not like when people waste
their time on what computer can do for them, so I "wasted" some of
mine on learning clojure better while doing something useful).
The input is an excel spreadsheet, this spread-sheet is read (using
libraries developed at apache project), checked whether it is
"valid" (i.e. user opened the right kind), parsed (nothing too
complicated), filtered (what the user needed was a subset according to
few rules), and written to a new file in which the data split in 3
pages - all (for checking), not-interesting (what user does not want)
and interesting (the stuff the user needs to make informed jugement).
The result is, that instead of manually checking 100s spread-sheet
"records" (the input spread-sheet was output from a database, btw),
one only needs to check few.
The app also reports reasonable errors and possibly exceptions (which
can be cut-and-pasted - they do not pop up as dialog boxes), so this
could be fed back to the programmer (me) to get a clue where the
problem is.
The program is not too long, reasonably structured (I wrote it twice,
the first version with focus to make it work and learn, the second to
like the code and the result), I could add more comments (to the code)
as it was not too long ago that I wrote it.
Also, I am pretty sure, someone with higher mastery of clojure-fu
could improve it (my main motivation here is
for other people not to pick up possibly bad beginners (mine) habits
if there are some in there).
Please e-mail me privately if interested.
Kind regards,
Vladimir