功能开发的操作系统选择[关闭]


9

我主要是.NET开发人员,所以我通常使用Windows / VisualStudio(这意味着:我很受宠),但是我在业余时间喜欢Haskell和其他(大多数是功能性的)语言。

现在,对于Haskell来说,Windows支持是可以的(您可以获取Haskell-Platform),但是latley我试图建立一个基本的Clojure / Scheme环境,这在Windows上很痛苦。

因此,我正在考虑尝试其他操作系统以获得更好的工具和语言支持。当然,这使我有了MacOS或某些Linux发行版。

我以前从未使用过MacOS,当然Linux会便宜(免费),而且我认为我不能在普通的PC硬件上并行引导MacOS(可以吗?)。加:我不知道可以在那些(对我)外国操作系统上使用的工具。

简而言之:我想探索更多Haskell,Clojure,Scala,Scheme,当然至少需要JavaScript / HTML5 / Css的良好工具。对.NET / Mono / F#的支持会很棒,但是为此,我仍将拥有Win7引导程序。

所以我想知道:-您首选的操作系统是什么,发行版(Ubuntu可行吗?)-您使用的是什么Editor / IDE

感谢您的帮助!

PS:我不确定这是否是解决此问题的正确地方,但我当然希望如此-如果没有,请告诉我应该将其移至何处(StackOverflow似乎不是正确的地方,恕我直言)


除非您安装Cygwin,否则在Windows中一切都会非常痛苦。一旦有了Cygwin,就不会有任何动机从Windows迁移到任何地方。
SK-logic

8
@ Sk-logic:Cygwin使使用Windows的痛苦减轻了一些,但是最终人们可能想要拥有真实的东西并转向某些类似Unix的操作系统。;-)
乔治


2
@vartec:我不认为这是重复的:这个问题专门询问有关使用函数式编程语言的问题。
乔治

3
从Fedora,Mint或Ubuntu之类的优秀Linux开始,然后再在Mac上增加负载。
钻机2012年

Answers:


4

我目前正在尝试这些语言和其他事物的方法,取得了巨大的成功,并且易于使用:

  • 在Windows主机上运行的VirtualBox VM下安装Debian
  • 将我的所有代码保留在主机或共享网络驱动器上,使用收藏夹编辑器在主机上进行编辑(在Notepad ++和SublimeText之间仍然不确定;对于C ++,我仅使用VS)
  • 共享主机上的目录,将其挂载到VM中
  • 编译/运行VM中的代码(或者甚至可以使用cygwin ssh到它)

这样,您可以同时获得两种操作系统的优点。


嗯...很有趣-但是我想深入研究一下,然后将Ubunto并行安装在我的玩弄式笔记本电脑上(不会危害我的工作机-至今)
Carsten 2012年

1
在我的个人笔记本电脑上,我使用双引导Windows-Linux已有很长时间了,从未遇到过问题。另一方面,过去十年来,我在台式机上都没有安装Windows。除非我需要一些仅适用于Windows的特定软件(例如,视频游戏或手机界面软件),否则我真的不会错过Windows。底线:一旦您熟悉适当的工具,就可以在Linux上进行所需的所有(功能性)编程。
乔治

我确实确实在今天的桌面上进行了尝试-在VirtualBox VM中使用Ubuntu-在我的SSD上提供了30GB的存储空间,在两个GB的内存上提供了4GB的内存-在我尝试过的一些东西上运行不畅(并且VM确实很棒,窗口大小可调整,并且所有那个)-现在这将是我现在尝试ubuntu的方式-也许稍后我会在笔记本电脑上安装双引导程序,但使用双显示器则很棒-谢谢,标记为答案
Carsten

18

简短答案:您的问题有一个简单的解决方案。只需在Linux(Ubuntu)上安装虚拟机 -它是免费的。

我还是主要的.NET开发人员,喜欢尝试不同的东西,或者尝试各种框架和/或开发工具。这里最主要的是不要弄乱您的主要开发环境。因此,针对您打算进行的开发类型,在虚拟机中安装所有内容(本机OS,框架,配置和设置等)是最合乎逻辑和最佳的方法。

编辑:您可以考虑使用其他虚拟化解决方案来构建您的虚拟机。我个人的偏爱是VirtualBox。它是一个免费的x86虚拟化解决方案,允许广泛的x86操作系统(例如Windows,DOS,BSD或Linux)在Linux系统上运行。


2
能够为您的开发环境制作快照,以供日后使用,这是此方法的主要优势。您也可以与感兴趣的同事分享开发环境
Arthur Ulfeldt 2012年

您建议使用什么VM?
卡斯滕

1
以前我使用的是VMware,现在我更喜欢VirtualBox-无需麻烦。
Yusubov 2012年

12

我在Linux(Ubuntu)上都使用Haskell和Scala(并且还执行了一些Scheme,Common Lisp,SML,OCaml,Erlang)。

上述所有语言(编译器和解释器)都可以很容易地安装(有些软件包可以使用apt-get或其他软件包管理系统安装)。

Scala与Eclipse集成良好,并且积极开发了Scala插件。如果您想了解更多信息,Coursera当前正在运行有关Scala的课程,其中介绍了如何在Windows,Linux和Mac上使用Scala。也许您没有Visual Studio的所有功能和集成,但是我已经在Eclipse中开发了相当大的项目,并且效果很好。

为了编辑Haskell(以及上面列出的其他语言),我使用gvim,对于小型项目来说,这是可以的。您可以使用其他编辑器(例如EMACS),只要该编辑器具有Haskell的语法突出显示功能。否则,您可以看看haskellwiki(感谢Zach L的建议)。

为了管理源代码(版本控制),我通过所有这些语言的Eclipse使用SVN。


谢谢-我还没有进行任何大规模的haskell项目,到目前为止,Notepadd ++(sic!)为我完成了工作-也许我应该研究VIM / EMACS,但这可能会使学习起来更加困难,然后挖洞其他操作系统的东西...是的,我被IDE宠坏了(已经提到了-是吗?)
Carsten 2012年

HaskellWiki上列出了一些Haskell IDE 。
Zach L

2
要编辑Scala代码,可以使用Eclipse。还有一个Scala工作表Eclipse插件,可让您即时编辑和测试代码段。VIM(和EMACS)已经习惯了一些,但是功能非常强大。我不会只编辑Haskell文件而学习它们。我已经学习了VIM作为通用编辑器。
乔治

@Zach L:感谢您的链接。如果您允许我可以将其添加到答案中。几个月前,我已经尝试过Leksah,但据我所知它尚不可用。到目前为止,我还没有尝试过任何其他Haskell工具。
Giorgio 2012年

@Giorgio当然可以添加!
Zach L

10

MacOS需要Mac硬件,否则您可能会在VirtualBox上运行它,但是上次我尝试它不起作用。并且由于您不想用其他问题代替当前的配置/设置问题,因此建议您花很多钱或尝试使用linux。我已经将Ubuntu用于Haskell,Scala和Lisp与Eclipse,Netbeans,IntelliJ和Emacs的开发,并且在设置这些方面没有很多麻烦。


谢谢-Ubuntu看起来非常有前途,因为它(似乎)可以在Windows上轻松安装...很长时间以来,我真的使用过linux-我想我会尝试一下-IntelliJ是一种商业产品,对吗?
卡斯滕

@CarstenKönig是的,它是一种商业产品,但是我相信,如果您打算在教室中使用它或将其用于维护开源项目(并可以证明它),则可以免费获得许可。
Daniel B

1
@CarstenKönigIntelliJ具有(免费)社区版本
yannis 2012年

IntelliJ的scala插件也是免费的,但我仍建议使用Eclipse。
2012年

来自Visual Studio的IntelliJ将成为一个更熟悉的工作环境。而Eclipse和VS的界面/工作流程却截然不同。
Dan摆弄Firelight 2012年

5

所有类似Unix的OS都有非常好的命令行工具。我个人在Ubuntu的开发和部署方面都有很好的经验,我的许多朋友也对MacOS发誓。我还没有看到一个明显的理由偏爱其中一个,因为它们在命令行方面都比Windows更好。

特别是在Clojure / Scala方面,如果您将Java IDE之一与适当的Clojure / Java插件一起使用,则Windows可能实际上是相当不错的。我个人使用带有逆时针方向的 Eclipse作为Windows 7中主要的Clojure开发环境。还有Scala IDE可以签出。如果您喜欢功能齐全的IDE,并且/或者想要在同一环境中进行多语言编程,那么这是一个好方法。使用Eclipse之类的东西的额外好处是git / svn / maven集成非常好。


3

虽然我是Mac和Linux的忠实拥护者,但没有理由您不能在Windows上执行任何这些语言。另外,如果您想在Windows上使用一种功能语言,请不要忽略F#(它是.net语言)


4
F#是我的主要语言之一(另一种是C#):D
Carsten 2012年

我还没有学过,但是它看起来像是一门不错的语言。这些天,我大部分时间都在埃尔朗度过
Zachary K

2
F#是IMHO在.net生态系统中最好的语言,只缺少一些工具(没有重构,几乎不存在解决方案支持(例如,没有开箱即用的子文件夹))-您可以将其视为haskell / Ocaml / C#hyprid
Carsten

这就是我所听到的。我给人的印象是F#是Microsoft从Haskell汲取创意并将其转移到.net世界的方式
Zachary K

@CarstenKönig:我不知道F#,但据我所知它主要来自Ocaml。
乔治

3

我在Windows,OS X和(Ubuntu)Linux上使用过Haskell,因此我可以提供一些说明。现在,无论如何,您可以从Haskell平台获得的任何东西都可以正常工作,但是之后:

  • Haskell程序员相对很少使用Windows。您将在Hackage上发现一些假设为类Unix环境的事情,而无需真正地明确说明。

  • FFI与C库的绑定有许多有用的东西,而Windows上甚至缺乏模糊一致且可靠的C编译工具链,以我的经验,这意味着从黑客安装FFI绑定充其量不过是笔误。

  • 任何必要的特定于平台的东西,包括跨平台的GUI库,都足够有趣,更可能在Linux上“正常工作”。

  • Cygwin并没有您想的那么多。

总结:一切都倾向于在Linux上运行,大多数事情都在OS X上运行,但有些事情很奇怪,在Windows上,使用库时您应该遇到很多有趣的麻烦。

如果您只是想体验试验和学习Haskell的乐趣,请帮个忙,并使用Ubuntu VM或其他工具。

就编辑器而言,emacs和vim一如既往地受欢迎。我从未学习过使用这两种方法(尽管我确实应该...),并且不关心大多数IDE,所以我通常坚持使用SciTE -它是名为Scintilla的编辑器小部件的薄包装,您可能会知道它是什么。 Notepad ++使用。


1

让我从IDE的角度来讨论这个问题,而不是选择一个操作系统。如果您对Scheme感兴趣,我建议您尝试一下DrRacket,它是几年前从Scheme丛林诞生的。IDE可以在Windows,OS X和Linux上良好运行。

现在,您只需要选择合适的操作系统即可运行所有其他功能语言。


谢谢-我昨天才发现有关Racket的信息-没有太多时间来研究它,但是IDE / Lang。对我来说看起来很有趣-尽管我不能说它对于“真正的”应用程序开发是否真的可行。
卡斯滕2012年

0

Haskell的创建者之一西蒙·佩顿·琼斯(Simon Peyton-Jones)是Windows用户,据我了解,Haskell具有出色的Windows支持。

老实说,您的问题有点含糊,您对操作系统的选择与所使用语言的范式无关。

我个人认为,在C#和Java世界之外(开发环境由您的IDE决定),开发环境应该始终是Unix风格,无论是BSD,Linux还是OSX。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.