Hacker News new | ask | show | jobs
by dzderic 4859 days ago
Does anyone have any experience with F# (and Mono in general) under Linux? How's the library support?

It seems like it should be a good fit for the stuff we normally do (log processing/munging), but I don't know how well it'll work outside of Windows.

3 comments

I've used F# for some little .NET school projects using Mono.

It's quite well supported as everything related to F# developed by Microsoft is open-sourced (compiler, libraries, PowerPack).

Moreover Mono fully supports F#, as the compiler is sometimes bundled in some releases.

Also, F# is really a pretty sweet language (as for an heavy Haskell user with a little C# background). French love inside.

I have been hoping to pick up some F# with Mono, but I'm having a hard time getting started - not with the language itself, but with the development environment. For instance, MonoDevelop seems very flakey on the Mac. I'd love to try out FsharpX, but I can't find instructions for how to build or install it on Mono.

Can you make any suggestions as to places to read up on this stuff? The language seems so well put together!

well, personally i use monodevelop(xamarinstudio) 4.0 and mono 3.0.3 in archlinux.

you need a fork of the fsharpbindings project https://github.com/xamarin/fsharpbinding

have you tried using fsharpx from nuget? monodevelop has nuget support as of now. https://github.com/squidge/monodevelop-nuget-addin/tree/xs-n...

I also just built fsharpx.core and fsharpx.http with monodevelop(right now) and it built fine for me.

MonoDevelop 4? I'm using 3.0.3, which seems to be what their website advertises as the latest version. Maybe I'm missing it. Should I be building from source?
up to you really they released 4.0

http://monodevelop.com/Download

it looks a little prettier, but besides that nothing has really caught my attention. it also seems to throw exceptions more frequently(throwing exceptions, not crashing)

I've spent about 3hrs trying to get the fsharp binding working in xamarin studio but no luck. How did you get it working?
Regarding MonoDevelop, it never worked for me on Linux, it just flaked out completely.

If you don't need .Net, OCaml is practically the same language and has lots of vim/emacs support.

When was the last time you tried MonoDevelop? Xamarin has put in a lot of work on MonoDevelop over the past year or so -- in fact, they just released a major new version (4.0) and even contributed a bunch of improvements to the F# bindings:

https://github.com/mono/monodevelop https://github.com/xamarin/fsharpbinding

BTW, F# also has emacs support, and from what I hear vim support is on the way:

https://github.com/fsharp/fsharpbinding

It would have been over a year ago. I am not interested in using it, I was just curious about it at the time. (I don't really get along well with anything that expects me to use a mouse.)

I sorta doubt that the emacs/vim support is anything near what there is for OCaml, but knowing Xamarin it will get there... eventually. But really, I don't see a big reason to pick F# over OCaml unless you're already doing .Net or something.

I've had production daemons running for a few years on Mono. (SQL stuff, RabbitMQ)

In general, Mono (with or without F#) just works. I do all the development on Windows and VS, and then copy the binaries over to deploy. Downside is that stack traces don't read the pdbs so I don't get line number information.

F# Interactive has had some readline and other weird errors on Mono/Linux.

You can add a post build task to your csproj to run Mono's pdb2mdb, you'll have a .mdb debug symbol file that Mono can use, and you'll get line numbers in stack traces.
deIcaza mentioned here that it's a priority for Xamarin

http://news.ycombinator.com/item?id=5251413