10

I'm mainly a .NET developer so I normaly use Windows/VisualStudio (that means: I'm spoiled) but I'm enjoying Haskell and other (mostly functional) languagues in my spare time.

Now for Haskell the windows-support is ok (you can get the Haskell-Platform) but latley I tried to get a basic Clojure/Scheme environment set up and it's just a pain on windows.

So I'm thinking about trying out another OS for better tooling and languague support. Of course that leaves me with MacOS or some Linux distribution.

I never used MacOS before and of course Linux would be cheaper (free) and I don't think I can parallel-boot MacOS on your normal PC-Hardware (can you?). PLUS: I don't have a clue about the tools you can use on those (to me) forign OSs.

To make it short: I want to explore more Haskell, Clojure, Scala, Scheme and of course need at least good tooling for JavaScript/HTML5/Css. Support for .NET/Mono/F# would be great but for this I will still have my Win7 boot.

So I like to know: - what is your prefered OS, Distribution (is Ubuntu viable?) - what Editor/IDE are you using

Thank you for your help!

PS: I'm not sure if this is the right place for this question but I surely hope so - if not please let me know where I should move this to (StackOverflow don't seem to be the right place IMHO)

9 Answers9

18

Short Answer: There is a simple solution to your problem. Just install the virtual-machine with Linux (Ubuntu) - it is free.

I am also a mainly .NET developer who loves to experiment different things, or try variety of frameworks and/or development tools. The main thing here is not to mess your main development environment. Thus, installing everything in a Virtual machine (the native OS, frameworks, configuring and setting them up, etc.) for the type of development you intended to do is the most logical and optimal way to go.

Edit: You may consider different virtualization solution to build your Virtual Machine. My personal preference go with VirtualBox. It is a free x86 virtualization solution allowing a wide range of x86 operating systems such as Windows, DOS, BSD or Linux to run on a Linux system.

Yusubov
  • 21,498
12

I use Haskell and Scala (and also doing some Scheme, Common Lisp, SML, OCaml, Erlang) all under Linux (Ubuntu).

All of the above languages (compilers and interpreters) can be installed quite easily (there are packages that can be installed using apt-get or another package management system).

Scala has a good integration with Eclipse and the Scala plugin(s) are actively developed. If you want to learn more, there is a course on Scala currently running at Coursera which explains how to use Scala on Windows, Linux, and Mac. Maybe you do not have all the features and integration of Visual Studio, but I have developed quite large projects in Eclipse and it works just fine.

For editing Haskell (and the other languages listed above) I use gvim which is OK for small projects. You can use another editor (e.g. EMACS), provided it has syntax highlighting for Haskell. Otherwise, you can take a look at haskellwiki (thanks to Zach L for the suggestion).

For managing the source code (versioning) I use SVN through Eclipse for all these languages.

Giorgio
  • 19,764
10

MacOS requires Mac hardware or you might get it to run on VirtualBox, but last time I tried that it didn't work. And since you don't want to replace your current configuration/setup problems with other problems, I suggest you either spend a lot of money or try linux. I've used Ubuntu for Haskell, Scala and Lisp development with Eclipse, Netbeans, IntelliJ and Emacs, and I haven't had much trouble setting those up.

Kim
  • 1,135
5

The route I'm currently taking for experimenting with such languages and other things, with great success and ease of use:

  • install Debian under a VirtualBox VM, running on Windows host
  • keep all my code on the host or on a shared network drive, edit on the host using favourite editor (still undecided between Notepad++ and SublimeText; for C++ I just use VS)
  • share the directory on the host, mount it in VM
  • compile/run the code in the VM (or you could even ssh to it using cygwin)

This way you get the pros of both operating systems.

stijn
  • 4,168
5

All of the Unix-like OSes have very good command line tooling. I've personally had good experiences with Ubuntu for both development and deployment, many of my friends also swear by MacOS. I've not seen an obvious reason to prefer one or the other, they are all IMO better than Windows for command line work.

On the Clojure/Scala side specifically, you may find Windows is actually pretty good if you use one of the Java IDEs with the appropriate Clojure/Java plugin. I personally use Eclipse with Counterclockwise as my main Clojure development environment in Windows 7. There's also Scala IDE to check out. This is a good approach if you like full-featured IDEs and/or want to do polyglot programming in the same environment. An extra plus of using something like Eclipse is that the git/svn/maven integration is very good.

mikera
  • 20,777
3

While I am a big mac and linux fan there is no reason you can't do any of those languages on windows. Also if you want a functional language on windows don't overlook F# which is a .net language

Zachary K
  • 10,413
3

I've used Haskell on Windows, OS X, and (Ubuntu) Linux, so I can offer a few remarks about that. Now, anything you can get from the Haskell Platform is probably going to work just fine no matter what, but after that:

  • Relatively few Haskell programmers use Windows. You will find things on Hackage that assume a unix-like environment without really stating that explicitly.

  • Lots of useful stuff comes from FFI bindings to C libraries, and the lack of an even vaguely consistent and reliable C compilation toolchain on Windows means that, in my experience, installing FFI bindings from hackage is a crapshoot at best.

  • Anything necessarily platform-specific, which amusingly enough includes cross-platform GUI libraries, is more likely to "just work" on Linux.

  • Cygwin doesn't help as much as you think.

In summary: Everything tends to work on Linux, most things work on OS X but a few things are weird, and on Windows you should expect to encounter lots of interesting headaches when using libraries.

If you just want to have fun experimenting with stuff and learning Haskell, do yourself a favor and use an Ubuntu VM or something.

As far as editors and such go--emacs and vim are popular as always. I never learned to use either (though I really should...) and don't care for most IDEs, so I generally stick with SciTE--it's a thin wrapper around an editor widget called Scintilla, which you might know as being what Notepad++ uses.

C. A. McCann
  • 2,331
1

Rather than picking an OS, let me come at this from the IDE angle. If you're interested in Scheme, I would encourage you to try out DrRacket, which emerged from the Scheme jungle a few years back. The IDE runs well on Windows, OS X, and Linux.

Now, you just have to pick the right OS to run all of your other functional languages.

John Clements
  • 351
  • 1
  • 5
0

Simon Peyton-Jones, one of the creators of Haskell is a Windows user and from what I gather, Haskell has excellent windows support.

Your question is a little vague to be honest, your choice of OS is not tied to the paradigm of the language you are using.

Personally I believe that outside of the C# and Java world (where development environment is dictated by your IDE), a development environment should always be a flavour of Unix, whether it be BSD, Linux or OSX.

djhworld
  • 121