6 ms·
I know this is heresy around here, but have you looked at F#? It's functional, has type inferencing, even in the dev environment, straight forward parallel ver
by iamelgringo 16y ago
I know this is heresy around here, but have you looked at F#? It's functional, has type inferencing, even in the dev environment, straight forward parallel versions of functions (pmap vs map), async IO, amazing dev tools, a REPL inside of Visual Studio, access to all of the .NET libraries. And, chances are, it's going to be around for a while.
You're absolutely on the right track. As startups struggle to hire, new startups should be looking to off loading more and more of their work to more productive programming languages.
- fogus 16y agoMay I ask why F# is considered heresy?
- gthank 16y agoBecause it means you're (probably) going to be running Windows on your servers, which isn't cheap.
- true_religion 16y agoThe cost for windows isn't really a pressing concern for business--even startup business. But the thing is if you go with windows, you're eventually going to have to support linux too just to get a the wealth of open-source codebases like say Redis. I mean its certainly possible to run Redis on windows via cygwin but you're 32-bit limited, and its a pain to actually install and get everything working. On Fedora it's "yum install redis", and you're done.
- kenjackson 16y agoCan't Redis run on Windows proper? I thought I've seen actual Windows builds of Redis?
- true_religion 16y agoThe last I heard Redis on windows native as a wontfix: http://code.google.com/p/redis/issues/detail?id=34 http://code.google.com/p/redis/issues/detail?id=34
- gaius 16y agoThat's simply not true, BizSpark makes the cost of Windows into a rounding error.
- dpritchett 16y agoThat may be so, but how readily can you automate server setup? I am getting pretty handy with ubuntu VMs plus apt to get from a fresh install to "entire stack installed and configured" in an afternoon. The fact that nearly all of the software is available freely online speeds things up for me.
- iamelgringo 16y agoSimply because it's Microsoft. That was partly tongue in cheek. :)
- mduerksen 16y agoYou'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...
- runevault 16y agoNot everyone wants to use the .NET ecosystem for any number of reasons. When doing purely windows development, it is my first choice, but if I want to do cross platform or web development even with Mono out there the appeal just lacks to me. I will agree though that F# is a beautiful language, and am hoping on getting everyone else at work on board so we can start using it more for our development.
- weego 16y agoIs it counter productive in an environment where hiring is difficult to go too niche though? Our entire server codebase, baring a few external libraries, is Scala (working with Lift) which has been an awesome experience but there is a nagging doubt in my mind that if/when we need to start looking to add in developers we will either need to invest in cross-training a java dev or end up paying out probably more than we could/should afford to get a seasoned java dev who trained themselves in Scala already. If over a short period of time your choice gets some major traction then it will work in your favour, but if not then you could be out in the cold or risking employing someone with no real provable history.
- jared314 16y agoYou might not want someone who can't learn a new language.
- gaius 16y agoIf a developer is so much more productive, why shouldn't you pay a premium for their skills? Remember in business there is no "cheap" or "expensive". There's only "worth the money" and "not".
- jshen 16y agoHow do you know if they are productive before hiring them?
- gaius 16y agoSomeone who is "a seasoned java dev who trained themselves in Scala already" will have a track record of Getting Stuff Done of course. Also see http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html
- jshen 16y agofar easier said than done. Have you hired a lot of people? What form does their track record come in? A list of projects on their resume?
- va_coder 16y agoI'm willing to keep my mind open. How long it takes to set up a dev environment and push to cloud service? With appengine, 1) I sign up in 5 minutes, 2) clone an app in python or Java, 3) use my favorite free ide to edit the code 4) appcfg.py update Also, if I don't have any of the tools like git I just type: sudo apt-get git-core Heroku on AWS is just as easy. Can you provide a link showing how easy it is to get started with F#?
- cschep 16y agoDefinitely check out appharbor.com, I think their goal is to be a "git push" away from deploying any .NET (F#/C#/VB.NET) app. I've not used them though.
- mattmanser 16y agoHang on, I thought the author deliberately ruled out GAE because its performance is too ropey. Also step 2 sounds like magic and a recipe for disaster. Clone an app? What, with all its settings? Random library includes you weren't expecting? Don't confuse well trod paths with new roads, closure and F# are both new roads, you'll need to do a bit of work yourself. Also visual studio has a free edition these days. Anyway, my point is don't compare apples to oranges when the author said he can't use apples.
- va_coder 16y agoYes Github is magic ;)
- va_coder 16y agoLast weekend, with no prior knowledge of JavaScript on the server, I created a full NodeJS, Express, Coffeescript, Jade, NPM stack and had it deployed to my linux VPS in less than a morning. It's my understanding it's not so easy to do that kind of learning and experimentation on Windows.
- Devilboy 16y agoI'll have you know that Windows is every bit as easy to experiment and learn on. Microsoft go out of their way to make developer and sysadmin's jobs as easy as possible. New versions of the .net framework can be installed without restarting any services, all previous versions will keep running in parallel, etc. etc. Don't dis it till you've tried it.
- gislik 16y agoTo be honest I've never given F# much of a chance. Mainly because I do most of my development on Mac OS X or Linux. But I've seen some cool introductions on F# and the integration with Visual Studio (mainly from CUFP http://cufp.org/videos/keyword/59 http://cufp.org/videos/keyword/59). I'll be keeping my I on it. Thanks.
- pmjordan 16y agoThe latest version of Mono apparently ships with F# support: http://www.mono-project.com/Release_Notes_Mono_2.10#Languages http://www.mono-project.com/Release_Notes_Mono_2.10#Language... Now I just need to find the time to try it out...
- gtani 16y agoI think the biggest impediments to F# adoption: to somebody not already a C#'er is the cost of Visual Studio: You really want that concurrency profiler, which I think is only in the Ultimate SKU (for which MS is giving away licenses in Bizspark, dreamSpark). And a fair number of Csharpers I've met recently (admittedly a small sample) will tell you FP and the parallel/concurrent libs in C# are good enough: TPL, the .NET 5 Async lib (Basically they'll tell you about all the C# stuff in Petricek's book, without looking into what F# can do for them.