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

Reply via email to