On Thu, 9 Sep 2010 14:11:44 -0700 (PDT) Luke Renn <luke.r...@gmail.com> wrote:
> On Sep 9, 2:46 pm, Mike Meyer <mwm-keyword-googlegroups. > 620...@mired.org> wrote: > > I have to compile and link it first. Not a problem. My 3/0/1 solution > > could just as well have been: > > > > $ cat - > hello.c > > main() { > > puts("Content-type: text/plain\n\nHello world!\n") ; > > } > > ^D > > $ cc hello.c > > $ cp a.out /usr/local/apache22/cgi-bin/helloworld > > > > Anything even close to that for Tomcat and clj? > > Again, I'll just say, why is this relevant to a serious evaluation? > How simple is it for you to add a dependency to 10 3rd party libraries > and link against them? What if you want it to run on linux, windows, > and OSX? Well, the original version *would* work on all three of those systems. And I can do that in something more suitable to large-scale programming as well - like I said, pretty much any language that plays well on Unix, whether it's interpreted, compiled or both. And if I needed to link in extra dependencies, I'd use a make file, or CPAN, or whatever was appropriate. The thing is, the software tool/unix philosophy of "simple things should be simple" means that I don't *have* to have a make file (or whatever) for simple things. The Java philosophy is apparently "we'll make sure there are no simple things". > What you call "boilerplate" isn't boilerplate. It's there > to make things that actually matter simple. Doesn't matter - it keeps simple things from being simple, which is what I'm asking about. Of course, you're only half right - a lot of it *is* boilerplate, in two different senses of the word. Look at just *one* example of the *four* files I have to create to create a war file: web.xml. Six lines right off the top that are going to be the same in *every* application. That's boilerplate, as surely as "main() {" in my example is. It's just that there's twice as much text there as there is in the *entire system* above. I have to repeat the app name in three places in the file: more boilerplate, of a more insidious nature. Yeah, if you want to get fancy, those may wind up being different. I don't want to get fancy, I want something simple, so why not provide a default that works for the simple cases? The way it is now is like C++ requiring that I type variable types twice to create a variable. I'm sure people who are used to that kind of crap consider it simple too. Pretty much everything else in the deployment process is equally bad: I have to tell the system things that should be the obvious defaults, many of those defaults being things I've already told the system. Sure, there may eventually be a leningen module to deal with all this. And yeah, compared to what it shelters you from, leningen is a great tool, and makes life a lot easier. But the fact that you *need* something like leningen is as much an indication of the failure of the underlying system as the fact that someone wrote cdecl is an indication of the failure of C's type declaration syntax. <mike -- Mike Meyer <m...@mired.org> http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org -- 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