5 ms·
You'll have to restrict your servers to run Windows. That's something not everyone wants to do.
by mduerksen 16y ago
You'll have to restrict your servers to run Windows. That's something not everyone wants to do.
- icey 16y agoF# runs on mono, which runs pretty well everywhere Clojure will run. The F# mono implementation is somewhat slower than the .Net implementation though, so there is that caveat.
- Turing_Machine 16y agoF# on Mono seems to be a lot slower than Java 6, at least in the Shootout (2x to 12x). I don't know how that stacks up to Clojure, though I understand that Clojure can be much more performant with tricks like type hinting. On the other hand, F# does use less memory. http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=java&lang2=fsharp http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...
- icey 16y agoI really dislike the shootout, but F# on mono and Clojure (which is slower than plain Java) look pretty similar: http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=clojure&lang2=fsharp http://shootout.alioth.debian.org/u32/benchmark.php?test=all... For whatever it's worth, if you like Clojure, use Clojure. If you like F# use that. If you like Perl, Java, PHP, use those. But, if you're going to consider other options hopefully the FUD doesn't get in the way ;).
- igouy 16y agoIf you really dislike the benchmarks game, don't look at the benchmarks game and don't show it to other people :-)
- gtani 16y agoOK, igouy, somebody has to defend the Benchmarks game (!?) Most FP communities (incl clojure) have devote non-negligible blocks of time to code review and benchmarking to make sure that at the very least poorly written code isnt' submitted (and the right hotspot knobs are on). http://groups.google.com/group/clojure/browse_frm/thread/d27630c0fb21dc20/ http://groups.google.com/group/clojure/browse_frm/thread/d27...
- igouy 16y agoI did not "defend the Benchmarks game". I pointed out how comical it is for someone to declare they dislike (who knows why?) the benchmarks game, and then present the benchmarks game to others as a reliable source of information.
- icey 16y agoI didn't present it as a reliable anything. I pointed out that the parent had linked to the wrong comparison, and linked to the correct one.
- igouy 16y agoI'm happy to be corrected about what you intended us to understand by your comment. (However, although you provided a different URL you did not point out that you thought the parent had linked to the wrong comparison.)
- icey 16y agoI thought placing emphasis on the correct one was enough; evidently I was mistaken.
- igouy 16y agoThe parent was correct about what their link showed - "F# on Mono seems to be a lot slower than Java 6". You didn't just "correct" the link to show F# and Clojure. You changed the link from quad-core to single core and that reduced the difference shown between F# on Mono and Clojure.
- mduerksen 16y agoClojure can utilize all libraries available for Java, and all invocations of those libraries will have the exact same speed any java application would have (Clojure itself isn't slow either, but that's a different topic). I never attemped to actually use Mono, so please correct me if I'm wrong, but if I understood correctly, Mono has to duplicate all .NET frameworks, libraries and tools, which means Mono a) is not complete (e.g. Silverlight, VisualStudio) b) will hardly ever keep the pace of development of Microsofts implementation (simply due to resources). Mono may be viable if you are happy with a subset of the .NET ecosystem, but I'd really feel more comfortable if I have access to all of Java with Clojure. Chances are you do need that library...
- icey 16y agoMono can utilize all the libraries available for .Net, with a few exceptions (which are well known and documented on Mono's site here: http://www.mono-project.com/Compatibility http://www.mono-project.com/Compatibility). Mono is a complete implementation of the C# specification, additionally, the Mono project has ported many .Net libraries. Moonlight is the Mono version of Silverlight. Visual Studio is an IDE, and doesn't have anything to do with Mono vs .Net (in the same way IntelliJ IDEA has nothing to do with Java portability). You can write code in Visual Studio and compile it with Mono with no problems. You can also use MonoDevelop on OSX and Linux. The time between Microsoft releasing new versions of .Net / C# and the Mono implementation is very small, usually weeks but sometimes only days. Unless you need to work on the bleeding edge right now, I don't think that it really makes much of a difference. Yes, you can write C# in a way that isn't portable, especially if you use libraries that are OS specific. You can do that in Java as well (or any other language). Just look at all the libraries that require epoll or kqueue - those won't run on Windows no matter what language they were written in. It's unfair to say that Mono requires you use a subset of the .Net ecosystem. If you want to write cross-platform code, you will always be constrained to a subset of the libraries. C# is a nice language, especially with Linq (which is in Mono). You should spend a weekend with it sometime to form an opinion :D. MonoDevelop works fine on the mac and is free.
- seanx 16y ago