Re: Basic toolset for non-Java programmer

2010-06-19 Thread Alex Ott
Hello

Paul Moore  at Sat, 19 Jun 2010 00:08:54 +0100 wrote:
 PM - Build tools: There seem to be things like ant, maven, leiningen. How
 PM do they relate to each other? Is there an obvious best answer or
 PM should I be expecting to check them all out depending on my needs? In
 PM that case, are there any good comparisons around?

I use mvn or lein to build clojure code

 PM - Profilers: Same sort of question - do IDEs offer this, are there
 PM standalone tools?

I use VisualVM to profile code

 PM - Testing: I've not really got to the documentation on Clojure's own
 PM testing tools, so maybe that's all I need, but are there testing
 PM frameworks I should look at, that sort of thing?

clojure.test provides enough features to test code

 PM - Deployment: For simple standalone utilities, am I looking at bat
 PM file wrappers (I'm on Windows mainly) to set classpath and the like?
 PM Given that there are some annoying limitations with bat files (nasty
 PM nesting behaviour, ugly console windows for GUI applications), are
 PM there any commonly used better solutions? For web applications, I
 PM gather that a servlet container (all that fancy J2EE stuff :-)) and
 PM something like compojure is a good place to start. For non-web
 PM long-running services, is it still reasonable to use an application
 PM server, or should I be looking at something to wrap a Clojure app up
 PM as a Windows service (something like Java Service Wrapper
 PM (http://wrapper.tanukisoftware.org/doc/english/download.jsp) came up
 PM for me on a Google search)?

I use procrun from apache commons daemon project to run clojure app on
windows as service. All works fine, except case when you need to load
resources manually.  See ticket #379 in Clojure's Assembly for more details

To build installers I use izpack from maven

-- 
With best wishes, Alex Ott, MBA
http://alexott.blogspot.com/http://alexott.net/
http://alexott-ru.blogspot.com/
Skype: alex.ott

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


Re: Basic toolset for non-Java programmer

2010-06-19 Thread Paul Moore
Thanks to Ryan, Rob and Alex for the suggestions. I'll have a deeper
look into all of them.
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


Basic toolset for non-Java programmer

2010-06-18 Thread Paul Moore
I'm wondering, what would be a useful basic set of tools for a
newcomer to Clojure with no Java background? I'm not really talking
about IDEs (everyone has their own opinions about IDEs, and I've seen
some discussions elsewhere to give me some pointers on that one). I'm
more interested in things like build tools, testing frameworks,
debuggers, etc. Also, in terms of deployment, what should I be looking
at?

To try to clarify what I mean:

- Build tools: There seem to be things like ant, maven, leiningen. How
do they relate to each other? Is there an obvious best answer or
should I be expecting to check them all out depending on my needs? In
that case, are there any good comparisons around?
- Debuggers: Should I be assuming I use my IDE for debugging? What if
I stick to a basic text editor to develop my code? Is there a good
standalone debugger?
- Profilers: Same sort of question - do IDEs offer this, are there
standalone tools?
- Testing: I've not really got to the documentation on Clojure's own
testing tools, so maybe that's all I need, but are there testing
frameworks I should look at, that sort of thing?
- Deployment: For simple standalone utilities, am I looking at bat
file wrappers (I'm on Windows mainly) to set classpath and the like?
Given that there are some annoying limitations with bat files (nasty
nesting behaviour, ugly console windows for GUI applications), are
there any commonly used better solutions? For web applications, I
gather that a servlet container (all that fancy J2EE stuff :-)) and
something like compojure is a good place to start. For non-web
long-running services, is it still reasonable to use an application
server, or should I be looking at something to wrap a Clojure app up
as a Windows service (something like Java Service Wrapper
(http://wrapper.tanukisoftware.org/doc/english/download.jsp) came up
for me on a Google search)?

That's a lot of stuff, and I certainly don't need to dive into all of
this at once, but any pointers, comments or suggestions would be very
gratefully received.

Thanks in advance,
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


Re: Basic toolset for non-Java programmer

2010-06-18 Thread rzeze...@gmail.com
While not reflective of the entire community, here's my suggestions.


 - Build tools: There seem to be things like ant, maven, leiningen. How
 do they relate to each other? Is there an obvious best answer or
 should I be expecting to check them all out depending on my needs? In
 that case, are there any good comparisons around?

Honestly, for now, I would either go with Leiningen or Maven, with
Leiningen probably having the most gentle learning curve.  In the long
run, I don't think there is a clear best answer, yet.

 - Debuggers: Should I be assuming I use my IDE for debugging? What if
 I stick to a basic text editor to develop my code? Is there a good
 standalone debugger?

You can use standard Java debuggers with your Clojure app.  I won't
pretend to be well versed in the practice, but I've tried it a few
times with a few different debuggers with varying degrees of success.
If you like Emacs, my best experience was with this:
http://georgejahad.com/clojure/cljdb.html.  Note that this just uses
jdb under covers, jdb is java's bundled debugger.  It's primitive, but
it works.

 - Profilers: Same sort of question - do IDEs offer this, are there
 standalone tools?

You can start with the bundled profiler, jvisualvm.  I've used it a
couple of times to track down performance bottlenecks and I felt it
worked well.  You can also get a trial of YourKit, but I've read from
some that it's overpriced for what you get.

 - Testing: I've not really got to the documentation on Clojure's own
 testing tools, so maybe that's all I need, but are there testing
 frameworks I should look at, that sort of thing?

http://richhickey.github.com/clojure/clojure.test-api.html

That should have everything you need to get started.

 - Deployment: For simple standalone utilities, am I looking at bat
 file wrappers (I'm on Windows mainly) to set classpath and the like?
 Given that there are some annoying limitations with bat files (nasty
 nesting behaviour, ugly console windows for GUI applications), are
 there any commonly used better solutions? For web applications, I
 gather that a servlet container (all that fancy J2EE stuff :-)) and
 something like compojure is a good place to start. For non-web
 long-running services, is it still reasonable to use an application
 server, or should I be looking at something to wrap a Clojure app up
 as a Windows service (something like Java Service Wrapper
 (http://wrapper.tanukisoftware.org/doc/english/download.jsp) came up
 for me on a Google search)?

For a webapp built with Compojure you can build a WAR and deploy it on
any J2EE container.  Probably the most convenient model.  For a
standalone app you could build what we call an uberjar (a JAR with
all your dependencies) and write a small script to execute your main
entry point.  Once again, if you're an Emacs person you may want to
start up a swank server in your entry point to allow for remote
debugging and hot-patching.

I'm sure others will have much to add, but this should be a start.

HTH
-Ryan

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


Re: Basic toolset for non-Java programmer

2010-06-18 Thread rob
My attitude toward debugging is decidedly non-Java, but I find the
best thing to do is break your problem into small enough pieces that
you can experiment with them rapidly in the REPL.  For certain stuff
that is hard to test in the repl (such as aspects of applet
development for example and other things that depend on an environment
in which they run), use print statements.  Most debugger experiences I
have had have in the end not offered much, and I have had better luck
applying minimalist debugging techniques and critical thinking about
the logic of problems.

On Jun 19, 1:21 am, rzeze...@gmail.com rzeze...@gmail.com wrote:
 While not reflective of the entire community, here's my suggestions.



  - Build tools: There seem to be things like ant, maven, leiningen. How
  do they relate to each other? Is there an obvious best answer or
  should I be expecting to check them all out depending on my needs? In
  that case, are there any good comparisons around?

 Honestly, for now, I would either go with Leiningen or Maven, with
 Leiningen probably having the most gentle learning curve.  In the long
 run, I don't think there is a clear best answer, yet.

  - Debuggers: Should I be assuming I use my IDE for debugging? What if
  I stick to a basic text editor to develop my code? Is there a good
  standalone debugger?

 You can use standard Java debuggers with your Clojure app.  I won't
 pretend to be well versed in the practice, but I've tried it a few
 times with a few different debuggers with varying degrees of success.
 If you like Emacs, my best experience was with 
 this:http://georgejahad.com/clojure/cljdb.html.  Note that this just uses
 jdb under covers, jdb is java's bundled debugger.  It's primitive, but
 it works.

  - Profilers: Same sort of question - do IDEs offer this, are there
  standalone tools?

 You can start with the bundled profiler, jvisualvm.  I've used it a
 couple of times to track down performance bottlenecks and I felt it
 worked well.  You can also get a trial of YourKit, but I've read from
 some that it's overpriced for what you get.

  - Testing: I've not really got to the documentation on Clojure's own
  testing tools, so maybe that's all I need, but are there testing
  frameworks I should look at, that sort of thing?

 http://richhickey.github.com/clojure/clojure.test-api.html

 That should have everything you need to get started.

  - Deployment: For simple standalone utilities, am I looking at bat
  file wrappers (I'm on Windows mainly) to set classpath and the like?
  Given that there are some annoying limitations with bat files (nasty
  nesting behaviour, ugly console windows for GUI applications), are
  there any commonly used better solutions? For web applications, I
  gather that a servlet container (all that fancy J2EE stuff :-)) and
  something like compojure is a good place to start. For non-web
  long-running services, is it still reasonable to use an application
  server, or should I be looking at something to wrap a Clojure app up
  as a Windows service (something like Java Service Wrapper
  (http://wrapper.tanukisoftware.org/doc/english/download.jsp) came up
  for me on a Google search)?

 For a webapp built with Compojure you can build a WAR and deploy it on
 any J2EE container.  Probably the most convenient model.  For a
 standalone app you could build what we call an uberjar (a JAR with
 all your dependencies) and write a small script to execute your main
 entry point.  Once again, if you're an Emacs person you may want to
 start up a swank server in your entry point to allow for remote
 debugging and hot-patching.

 I'm sure others will have much to add, but this should be a start.

 HTH
 -Ryan

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