Hacker News new | ask | show | jobs
by fat0wl 4169 days ago
are there a lot of applications where this matters? maybe for CLI utils or something?

i mostly make web-apps or data-mining apps, never really understood this criticism of long (1 second type of long, maybe 10 for EE server) startup times for jvm since i can't imagine many apps worth putting a ton of development care into that aren't worth a 1 second wait to run.

i'm not trying to be a smart-ass (i dont believe everything should be blindly forced onto jvm), really just asking why this is such a common concern when in my mind it is an edge-case

1 comments

It matters quite a bit for CLI utils. More than a tenth of a second is not "instantaneous" - which isn't required, and of course won't always be possible, but starting with substantially more than that isn't great. And of course, if you're using that utility in a loop some pipeline, that could even wind up being a bottleneck.

For any single long-running application that doesn't spawn more processes, of course it doesn't matter - but most performance issues only matter for some set of applications.

I think it's such a common concern because 1) people often start out writing CLI utils as they learn their way around a language, 2) people would love to see Clojure be better for this use case, and 3) it's one of the few things to complain about.

Pixie https://github.com/pixie-lang/pixie looks like it should address that nicely.
It's just another lisp, right? Common lisp already fixes it (or never broke it in the first place):

    > cat test.lisp 
    (prin1 "hello, world")
    
    > time clisp test.lisp 
    "hello, world"
    
    real	0m0.019s
    user	0m0.011s
    sys	0m0.008s
    
    > cat test.clj 
    (print "hello, world\n")
    
    > time clojure test.clj
    hello, world
    
    real	0m0.929s
    user	0m1.283s
    sys	0m0.046s
thanks -- i didnt realize #1 was the case, & good point about the pipeline loop... I guess since I just use the CLI utils in different ecosystems it doesn't really occur to me how they are written, nor do I really care.

But I understand on principle, for example I work on JVM & hate when ppl bring in random code that make it hard to test across the whole system. Seamless integration of all tools & unified protocols are nice.