On 28 June 2010 19:49, Mike Meyer
<mwm-keyword-googlegroups.620...@mired.org> wrote:
>> Yet another set of choices n00bs are faced with is figuring out how
>> to actually compile their source into an executable.
>
> Executable? We're talking about Java here. It doesn't do executables -
> it does jar files. There's little reason to build those as a newb, as
> it's not noticeably harder to run the source than it is to run a jar
> file - or to import them if you're building libraries.

We're not talking about Java here, we're talking about clojure!

A certain proportion of new clojure users are coming from
non-Java/non-JVM backgrounds. To them, "how do I make an executable"
is a perfectly valid question. And "clojure doesn't do executables"
isn't a particularly encouraging answer (not even if you blame Java
for it :-)) Classpaths, server vs client JVMs, ant/maven, all of these
are confusing hurdles to get over if you don't have any Java
experience.

For such people, introductory clojure material needs to (a) assume no
JVM/Java knowledge, and (b) provide some guidance for how to interpret
the inevitable Java terminology that a newcomer will encounter. For
example:

Q: How do I make an executable in clojure?
A: Clojure scripts can be executed in a similar manner to scripting
languages like Python or Perl - clj myscript.clj. [Note: a standard
clj wrapper script should be supplied with clojure!] However, even
when executed like this, clojure code is compiled (for more details
read up on JVM bytecode, and the Java "just in time" compilers). You
can compile clojure code into a "jar" file - which is a JVM executable
format which can be run using the "java" command (insert reference to
more detailed explanation here). More or less self-contained formats
(bundling dependencies, or hiding the invocation of the "java"
command) are possible, but are generally reserved for more specialised
applications.

Q: What are ant, maven?
A: JVM build systems, commonly used in the Java world. The clojure
community is beginning to standardise on Leiningen (insert reference
here) which uses a more clojure-like language for describing builds,
but which works with the existing ant/maven infrastructure (so all of
the existing libraries available via these tools are available for
free in Leiningen).

If these examples are useful, feel free to add them to a FAQ or newbie
documentation.

Paul.

-- 
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