Re: Basic toolset for non-Java programmer
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
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
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
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
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