News for hackers. Stuff that matters.
Re:Replacing Python by ssadler on Sunday September 29, 2013 @04:46AM (#6464564)
I find it suspicious that Java or Scala didn't make the list. Java may not be sexy but it checks many boxes... And I suspect that Scala would have been a serious contender in brevity too.
Re:Replacing Python by alextingle on Sunday September 29, 2013 @07:22AM (#6464830)
If I need to install the JVM just to try your software, then it's going to remain untried - however many design patterns you've managed to cram into it.
Re:Replacing Python by RivieraKid on Sunday September 29, 2013 @08:05AM (#6464937)
Why, because the JVM is too big?
Re:Replacing Python by rhizome31 on Sunday September 29, 2013 @08:23AM (#6464975)
Because it's too big, it's very slow to start, it's controlled by a company that is not very lovely, it's not installed by default on our system, it's free and opensource without in fact being very libre, it has frequent security flaws that don't seem to be addressed seriously... Some of this is probably only partially true, but it gives you an idea why people don't want to use it, whether they're right or wrong.
Re:Replacing Python by rossjudson on Sunday September 29, 2013 @12:25PM (#6465580)
So it's a good thing you're propagating partial truths then, right?

The JVM isn't easy to beat for software that's more complicated than "Hello World". Sure you can beat it, but you're going to have to work very, very hard.

The security flaws exist in the area few people care about (and shouldn't even really be installed any more) -- the sandboxing and web start code.

Did you include gcc and friends in your "too big" calculations? Hard to program without them.

Re:Replacing Python by alextingle on Sunday September 29, 2013 @08:21AM (#6464972)
It's a crazy moving target that never seems to work right. Even if it does work right, pretty soon some update breaks it. And then there's the fact that most (desktop) Java applications look like arse and run like a dog.
Re:Replacing Python by mynameisme on Sunday September 29, 2013 @10:32AM (#6465255)
The JVM is a crazy moving target? Can you give an example of that please?
Re:Replacing Python by alextingle on Sunday September 29, 2013 @05:01PM (#6466501)
Java Update.
Re:Replacing Python by mercurial on Sunday September 29, 2013 @08:19AM (#6464968)
Sounds more like trolling than participating to a rational discussion
Re:Replacing Python by alextingle on Sunday September 29, 2013 @08:30AM (#6464996)
Java aficionados don't seem to realise just how obnoxious many of us find the JVM. If you live with it, and do your work with it, I guess you come to accept it as a fact of life - always there in the background. If literally nothing that you do uses it, then it's a massive extra dependency to add to a simple desktop app - a dependency that is often quite difficult to manage and keep updated.
Re:Replacing Python by mercurial on Sunday September 29, 2013 @09:15AM (#6465083)
Re dependency: you probably have a point on Windows, but it's your choice to use an OS without a package manager to keep things up to date. I don't know about Mac but on Linux it is a non issue.

That said it does not do well for desktop apps due to slow startup, high memory use and lack of native toolkit. It does much better as a server side runtime.

Re:Replacing Python by jamespo on Sunday September 29, 2013 @12:58PM (#6465708)
Although one of the best desktop RSS readers (RSSOwl) and two of the best IDEs (Eclipse & IntelliJ) are written in Java.
Re:Replacing Python by mercurial on Sunday September 29, 2013 @03:51PM (#6466264)
Of these, I have only tried Eclipse. While certainly more full-featured out of the box, its speed, especially at startup, is really nothing to boast about when compared to Visual Studio.
Re:Replacing Python by alextingle on Sunday September 29, 2013 @05:12PM (#6466540)
When I see people arguing about which is the best IDE, I think of this... http://www.youtube.com/watch?v=0d-c4INM-Wk
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.

Re:Replacing Python by virtualwhys on Sunday September 29, 2013 @09:27AM (#6465116)
Agreed, pretty large omission given that C# was included.

Not such a big fan of Java, but Scala seems to be a strong contender for Java.Next* , and is certainly a viable dynamic-to-static transition language given its terse syntax, deliciously rich collections library, and implicits support (for the MOP fans).

* Twitter being able to withstand spikes of 140K+ tweets per second without lagtime is impressive to say the least.

Re:Replacing Python by mynameisme on Sunday September 29, 2013 @10:42AM (#6465277)
Yeah, it's a joke that Rust (which I think will be a great language, but all of the syntax hasn't even been decided yet) is being considered, when Java and friends are not.

Really, this article is about "I want to rewrite my program in the newest, coolest language", not about which is the best tool for the job. And that's fine, but the author should present it that way.

Re:Replacing Python by mjhoy on Sunday September 29, 2013 @12:06PM (#6465511)
> newest, coolest language

I'm sure you meant "newest and/or coolest", or "recently become coolest", but it's worth noting that Haskell is about as old as Python, and OCaml is not much younger.

Re:Replacing Python by steveklabnik on Sunday September 29, 2013 @03:21PM (#6466189)
The syntax of Rust is 99.9% (approx) decided. There was only one (or maybe two?) syntactic change in 0.8, and it was trivial to fix: https://github.com/steveklabnik/rust_for_rubyists/commit/a18...

It's the standard library and such that are moving fast still.

Re:Replacing Python by dmytrish on Sunday September 29, 2013 @03:32PM (#6466211)
It's already been said that Java is a very heavy dependency for a simple desktop application. Rust compiles to native code, that's the advantage over Java.