4 ms·
Why do you think it obsoletes Ruby&Python? It does target Ruby developer with borrowing some syntax, but the paradigm shift needed to jump on the "functional" t
by drmrkela 14y ago
Why do you think it obsoletes Ruby&Python? It does target Ruby developer with borrowing some syntax, but the paradigm shift needed to jump on the "functional" train is quite big. It is nice language but it solves the problem that I don't have (performance&concurrency) so I am not all that eager to make a switch.
- KirinDave 14y agoEveryone has performance and concurrency problems, eventually. What's great about Clojure is it gives you a path to ease into them. Compare a Noir or even bare Compojure web service vs. a Sinatra web service. Is there really a big winner on brevity?
- drmrkela 14y agoI didn't try Compojure, but Noir seems succinct enough. It's just that functional programming doesn't blend well with my brain. For some problem it does, for some it doesn't. Since you mention performance, I am wondering and was not able to find any benchmarks in Noir vs. Sinatra for rest server for example.
- KirinDave 14y agoNoir is a series of extensions on Compojure. Anyways, I can give you bullshit benchmarks if you want. The numbers are sort of meaningless, the benchmark synthetic, the methodology poor but it's almost all against the server's favor. (GET "/hello" [] {:status 200 :body "Yo!"})) And then let's just httperf that from the same box like that is meaningful (it is not): ~ > httperf --hog --server localhost --port 9999 --uri=/hello --num-conn 5000 --num-calls 1 ... Connection rate: 4769.8 conn/s (0.2 ms/conn, <=1 concurrent connections) Connection time [ms]: min 0.2 avg 0.2 max 3.8 median 0.5 stddev 0.1 Connection time [ms]: connect 0.0 Connection length [replies/conn]: 1.000 ... Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples) Reply time [ms]: response 0.2 transfer 0.0 Reply size [B]: header 98.0 content 3.0 footer 0.0 (total 101.0) Reply status: 1xx=0 2xx=4999 3xx=0 4xx=0 5xx=0 Similar benchmarks put a static sinatra responder at 3ms on my box. Again, these numbers are not precise or useful. They're just there to put some flags in the ground for further exploration should you want to do a rigorous comparison.
- drmrkela 14y agoDid I understand you correctly? 3ms vs. 0.2ms So we might be talking about order of a magnitude here?
- swah 14y agoI agree, some algorithms didn't translate well from Python to Clojure. Also, I wouldn't want to process mp3 files in Clojure... but that is probably a good match for Java.