News for hackers. Stuff that matters.
Re:Replacing Python by mercurial on Sunday September 29, 2013 @05:13AM (#6464618)
C# was excluded for being too slow to start. JVM-based languages would not fare any better.
Re:Replacing Python by spongle on Sunday September 29, 2013 @08:02AM (#6464929)
I can't say I've had that problem myself. They are quite startup heavy but typical c# console apps start up on an ssd based system in ~150ms and 700ms on rust disks.

If you're calling something thousands of times, fast process startup times are good. This isn't the model windows uses though which is the primary target of c#.

Re:Replacing Python by steveklabnik on Sunday September 29, 2013 @09:44AM (#6465163)
In the tests, his OCaML implementation takes 7ms, and his Python one takes 64 or 109 ms. So even on your SSD, that's 50% to an order of magnitude too slow, just for startup.
Re:Replacing Python by spongle on Sunday September 29, 2013 @12:19PM (#6465559)
Do you really notice that though?
Re:Replacing Python by steveklabnik on Sunday September 29, 2013 @12:49PM (#6465673)
I cannot remember exactly, but in the discussions about page load times translating into revenue, 100ms was the number being tossed around, IIRC.

I certainly notice any time I boot something up that requires the JVM, I refuse to use the CLR, so I can't tell you much about my own experience with that.

Re:Replacing Python by spongle on Sunday September 29, 2013 @02:38PM (#6466068)
Once it gets going though it screams. Not sure I want to trade the miniscule difference in startup time for that.

As for page load times, this is silly. There is no startup time on a page at all. Possibly the first hit but there are warm start options for that in CLR at least which make this a complete non issue.

To give you an idea, 98% of our page hits are under 80ms processing time and we have big, heavy pages (we're old school asp.net mostly).

Re:Replacing Python by steveklabnik on Sunday September 29, 2013 @02:44PM (#6466087)
I'm not talking about page load times. A server side app is a great use-case for something that has slow startup. I was just using that as a citation for perceptions on speed and how it can negatively affect experience.

I'm talking about command-line applications, like the one in the article and in your first post. Then you get the startup every single time you run the command.

Re:Replacing Python by gfxmonk on Monday September 30, 2013 @09:05AM (#6469343)
For stuff like tab completion and for launching small command-line apps (think "grep", "sed", etc), absolutely. A penalty of hundreds of milliseconds for the _launcher_ alone can double (or more) the total execution time.

I use zeroinstall a lot (I'm a contributor), and I turned off tab completion because the lag (of the python implementation) made me wonder if my terminal had locked up, which was far more distracting than trying to remember the available arguments. I have re-enabled it in the ocaml port, because now it's effectively instant.

Re:Replacing Python by pjmlp on Sunday September 29, 2013 @12:46PM (#6465660)
> C# was excluded for being too slow to start.

This is only the case if the code is JITed.

With ngen and mono-aot it can be compiled to native code directly.

> JVM-based languages would not fare any better.

It is all a matter of which JVM is used. Some of them offer AOT compilation and on disk cache of JITted code from previous runs, thus matching the startup time of native binaries.