Fonksiyonel geliştirme için işletim sistemi seçimi [kapalı]


9

Ben esas olarak bir .NET geliştiricisiyim, bu yüzden normalde Windows / VisualStudio kullanıyorum (yani: şımarıkım) ama boş zamanlarımda Haskell ve diğer (çoğunlukla fonksiyonel) dillerden hoşlanıyorum.

Şimdi Haskell için windows desteği tamam (Haskell-Platform'u alabilirsiniz) ama latley temel bir Clojure / Scheme ortamı kurmaya çalıştım ve bu sadece pencerelerde bir acı.

Bu yüzden daha iyi takım ve dil desteği için başka bir işletim sistemi denemeyi düşünüyorum. Tabii ki bu beni MacOS veya Linux dağıtımı ile terk ediyor.

Daha önce hiç MacOS kullanmadım ve tabii ki Linux daha ucuz (ücretsiz) olurdu ve MacOS'u normal PC Donanımınıza paralel olarak önyükleyebileceğimi sanmıyorum (yapabilir misiniz?). ARTI: O (benim için) forign işletim sistemlerinde kullanabileceğiniz araçlar hakkında bir fikrim yok.

Kısaca söylemek gerekirse: Daha fazla Haskell, Clojure, Scala, Scheme'i keşfetmek istiyorum ve elbette JavaScript / HTML5 / Css için en azından iyi araçlara ihtiyacım var. .NET / Mono / F # desteği harika olurdu, ancak bunun için hala Win7 önyüklemem olacak.

Bu yüzden bilmek istiyorum: - Tercih ettiğiniz işletim sistemi nedir, Dağıtım (Ubuntu uygulanabilir mi?) - Hangi Editör / IDE kullanıyorsunuz

Yardımın için teşekkürler!

Not: Bu soru için doğru yer olup olmadığından emin değilim ama kesinlikle umarım - eğer değilse lütfen bunu nereye taşımam gerektiğini bana bildirin (StackOverflow doğru yer IMHO gibi görünmüyor)


Cygwin'i yüklemediğiniz sürece Windows'da her şey çok acı verici. Cygwin'e sahip olduğunuzda, Windows'tan herhangi bir yere taşınmak için herhangi bir teşvik olmayacaktır.
SK-mantığı

8
@ Sk-logic: Cygwin, Windows'u kullanmayı daha az acı verici hale getirir, ancak sonunda gerçek olana sahip olmak ve Unix benzeri bir işletim sistemine geçmek isteyebilirsiniz. ;-)
Giorgio


2
@vartec: Bunun bir kopya olduğunu düşünmüyorum: bu soru özellikle işlevsel programlama dillerini kullanma hakkında sorular soruyor.
Giorgio

3
Yükünüzü bir Mac'e aktarmadan önce Fedora, Mint veya Ubuntu gibi iyi bir linux ile başlayın.
Rig

Yanıtlar:


4

Şu anda bu tür diller ve diğer şeyleri denemek için izlediğim rota, büyük bir başarı ve kullanım kolaylığı ile:

  • Debian'ı Windows ana bilgisayarında çalışan bir VirtualBox VM altına kurun
  • tüm kodumu ana bilgisayarda veya paylaşılan bir ağ sürücüsünde tut, favori düzenleyiciyi kullanarak ana bilgisayarda düzenleyin (Notepad ++ ve SublimeText arasında hala kararsız; C ++ için sadece VS kullanıyorum)
  • dizini ana bilgisayarda paylaşın, VM'ye bağlayın
  • VM'de kodu derleyin / çalıştırın (veya cygwin kullanarak ssh bile kullanabilirsiniz)

Bu şekilde her iki işletim sisteminin de avantajlarını elde edersiniz.


hmm ... ilginç - ama sanırım derin dalışı yapıyorum ve Ubunto'yu oyuncak bilgisayarımın üzerine kuruyorum (henüz iş makinemi tehlikeye atmayacak - henüz)
Carsten

1
Kişisel dizüstü bilgisayarımda ikili önyükleme Windows - Linux'u yıllardır kullanıyorum ve hiçbir zaman sorun yaşamadım. Öte yandan, masaüstümde son 10 yıldır Windows'u yüklemedim. Yalnızca Windows için kullanılabilen belirli bir yazılıma ihtiyacım olmadığı sürece (örn. Video oyunları veya cep telefonu arayüz yazılımı) Windows'u gerçekten kaçırmıyorum. Alt satır: Gerekli araçlara aşina olduktan sonra Linux'ta ihtiyacınız olan tüm (işlevsel) programlamayı yapabilirsiniz.
Giorgio

Gerçekten bunu bugün masaüstümde denedim - bir VirtualBox VM'deki Ubuntu - SSD'imde 30GB ve iki Çekirdek ile birlikte 4GB Ram verdi - denediğim birkaç şeyle birlikte smoth çalıştırıyor (ve VM, görünmeyen pencerelerin yeniden boyutlandırılması ve hepsi ile gerçekten harika o) - şimdilik bu ubuntu'yu şu an denememin yolu olacak - belki daha sonra dizüstü bilgisayarıma bir çift önyükleme takıyorum ama çift monitör ile bu harika - Teşekkürler, bunu cevap olarak çırpındı
Carsten

18

Kısa Cevap: Sorununuza basit bir çözüm var. Sanal makineyi Linux (Ubuntu) ile kurmanız yeterlidir - ücretsizdir.

Ayrıca, farklı şeyleri denemeyi veya çeşitli çerçeve ve / veya geliştirme araçlarını denemeyi seven bir .NET geliştiricisiyim. Buradaki en önemli şey, ana geliştirme ortamınızı karıştırmamaktır. Bu nedenle, yapmak istediğiniz geliştirme türü için her şeyi bir Sanal makineye (yerel işletim sistemi, çerçeveler, yapılandırmak ve ayarlamak vb.) Yüklemek en mantıklı ve en uygun yoldur.

Düzenleme: Sanal Makinenizi oluşturmak için farklı sanallaştırma çözümlerini düşünebilirsiniz. Benim kişisel tercihim VirtualBox . Windows, DOS, BSD veya Linux gibi çok çeşitli x86 işletim sistemlerinin bir Linux sisteminde çalışmasına izin veren ücretsiz bir x86 sanallaştırma çözümüdür.


2
geliştirme ortamınızın daha sonra geri dönebileceğiniz bir anlık görüntüsünü oluşturma yeteneği bu yaklaşımın en büyük avantajıdır. Ayrıca geliştirme ortamını ilgili meslektaşlarınızla paylaşabilirsiniz
Arthur Ulfeldt

hangi VM'yi önerirsiniz?
Carsten

1
Daha önce VMware kullanıyordum, şimdi VirtualBox'ı tercih ediyorum - uğraşmak için daha az güçlük.
Yusubov

12

Haskell ve Scala (ve ayrıca bazı Linux (Ubuntu) altında Scheme, Common Lisp, SML, OCaml, Erlang) kullanıyorum.

Yukarıdaki tüm diller (derleyiciler ve tercümanlar) oldukça kolay bir şekilde kurulabilir (apt-get veya başka bir paket yönetim sistemi kullanılarak kurulabilen paketler vardır).

Scala, Eclipse ile iyi bir entegrasyona sahiptir ve Scala eklentileri aktif olarak geliştirilmiştir. Daha fazla bilgi edinmek isterseniz, Scala'da şu anda Coursera'da bir kurs var Scala'da Windows, Linux ve Mac'te Scala'nın nasıl kullanılacağını açıklayan . Belki de Visual Studio'nun tüm özelliklerine ve entegrasyonuna sahip değilsiniz, ancak Eclipse'de oldukça büyük projeler geliştirdim ve gayet iyi çalışıyor.

Haskell'i (ve yukarıda listelenen diğer dilleri) düzenlemek için küçük projeler için uygun olan gvim kullanıyorum. Haskell için sözdizimi vurgulaması olması koşuluyla, başka bir düzenleyici (örneğin EMACS) kullanabilirsiniz. Aksi takdirde, haskellwiki'ye göz atabilirsiniz (öneri için Zach L'ye teşekkürler).

Kaynak kodunu yönetmek için (versiyon) Tüm bu diller için Eclipse üzerinden SVN kullanıyorum.


teşekkür ederim - Ben herhangi bir büyük ölçekli haskell proje yapmadım (henüz) ve şimdiye kadar Notepadd ++ (sic!) benim için iş yaptı - belki ben VIM / EMACS bakmak gerekir ama bu daha sonra öğrenmek daha zor beeing olabilir diğer işletim sistemi şey delik ... evet IDEs tarafından şımarık (zaten bahsedilen - değil mi?)
Carsten

HaskellWiki'de listelenen birkaç Haskell IDE var .
Zach L

2
Scala kodunu düzenlemek için Eclipse kullanabilirsiniz. Ayrıca, kod parçalarını anında düzenlemenize ve test etmenize izin veren bir Scala çalışma sayfası Eclipse eklentisi de vardır. VIM (ve EMACS) alışmak biraz zaman alıyor ama çok güçlüler. İkisinden de sadece Haskell dosyalarını düzenlemeyi öğrenmem. VIM'i genel amaçlı editör olarak öğrendim.
Giorgio

@Zach L: Bağlantı için teşekkürler. Bana izin verirsen cevaba ekleyebilirim. Birkaç ay önce Leksah'ı denedim ama hatırlayabildiğim kadarıyla henüz kullanışlı değildi. Şimdiye kadar başka Haskell araçlarını denemedim.
Giorgio

@Giorgio Tabii ki ekleyebilirsiniz!
Zach L

10

MacOS, Mac donanımı gerektirir veya VirtualBox üzerinde çalışmasını sağlayabilirsiniz, ancak en son çalışmamasını denedim. Mevcut yapılandırma / kurulum sorunlarınızı başka sorunlarla değiştirmek istemediğiniz için ya çok para harcamanızı ya da linux'u denemenizi öneririz. Eclipse, Netbeans, IntelliJ ve Emacs ile Haskell, Scala ve Lisp geliştirme için Ubuntu'yu kullandım ve bunları ayarlamakta pek sorun yaşamadım.


teşekkür ederim - Ubuntu, pencerelerin üstüne (görünüşte) kolay kurulum nedeniyle çok umut verici görünüyor ... uzun zamandır linux kullanıyorum - sanırım bir deneyeceğim - IntelliJ ticari bir ürün değil mi?
Carsten

@ CarstenKönig Evet, bu ticari bir üründür, ancak bir sınıfta kullanmayı düşünüyorsanız veya açık kaynak kodlu bir projeyi sürdürmek (ve kanıtlamak) için ücretsiz lisans alabileceğinizi düşünüyorum.
Daniel B

1
@ CarstenKönig IntelliJ'nin (ücretsiz) topluluk sürümü vardır .
yannis

IntelliJ için scala eklentisi de ücretsiz, ama yine de Eclipse'i tavsiye ederim.
Kim

Visual Studio'dan gelen IntelliJ, çalışmak için çok daha tanıdık bir ortam olacak. VS'nin kısaltılmış bir versiyonu gibi geliyor; Eclipse ve VS'nin arayüzleri / iş akışı son derece farklıdır.
Dan Is Fiddling By Firelight

5

Unix benzeri tüm işletim sistemlerinde çok iyi komut satırı araçları vardır . Kişisel olarak hem geliştirme hem de dağıtım için Ubuntu ile iyi deneyimler yaşadım, birçok arkadaşım da MacOS tarafından yemin ediyor. Birini veya diğerini tercih etmek için bariz bir neden görmedim, hepsi komut satırı çalışması için Windows'dan daha iyi.

Özellikle Clojure / Scala tarafında, uygun Clojure / Java eklentisine sahip Java IDE'lerinden birini kullanırsanız Windows'un gerçekten iyi olduğunu görebilirsiniz. Kişisel olarak Eclipse'yi Windows 7'deki ana Clojure geliştirme ortamım olarak saat yönünün tersine kullanıyorum . Ayrıca kontrol etmek için Scala IDE var . Tam özellikli IDE'leri seviyorsanız ve / veya aynı ortamda çok dilli programlama yapmak istiyorsanız bu iyi bir yaklaşımdır. Eclipse gibi bir şey kullanmanın ekstra bir artısı, git / svn / maven entegrasyonunun çok iyi olmasıdır.


3

Ben büyük bir mac ve linux hayranıyım olsa da, pencerelerden bu dillerin hiçbirini yapamazsınız. Ayrıca, pencerelerde işlevsel bir dil istiyorsanız, bir .net dili olan F # 'ı göz ardı etmeyin.


4
F # ana dillerimden biri (diğer beeing C #): D
Carsten

Henüz öğrenmedim, ama oldukça hoş bir dile benziyor. Bugünlerin çoğunu
Zachary K

2
F #, .net eko sistemindeki en iyi dil. Ocaml / C # hyprid
Carsten

Ben de öyle duydum. F #, Microsoft'un Haskell'den harika fikirler alma ve bunları .net dünyasına taşıma yolu olduğu izlenimini edindim
Zachary K

@Carsten König: F # bilmiyorum ama bildiğim kadarıyla çoğunlukla Ocaml'dan geliyor.
Giorgio

3

Haskell'i Windows, OS X ve (Ubuntu) Linux'ta kullandım, bu yüzden birkaç açıklama sunabilirim. Şimdi, Haskell Platformundan alabileceğiniz her şey muhtemelen ne olursa olsun işe yarayacak, ancak bundan sonra:

  • Nispeten az sayıda Haskell programcısı Windows kullanıyor. Hackage'da, bunu açıkça belirtmeden, unix benzeri bir ortam olduğunu düşünen şeyler bulacaksınız.

  • FFI bağlarından C kitaplıklarına birçok yararlı şey gelir ve Windows'ta bile belirsiz bir şekilde tutarlı ve güvenilir bir C derleme araç zincirinin olmaması, tecrübelerime göre, FFI bağlarının hackage'den yüklenmesinin en iyi ihtimalle bir crapshoot olduğu anlamına gelir.

  • Zorunlu olarak platformlar arası GUI kütüphanelerini içeren, platforma özgü her şeyin Linux'ta "çalışma" olasılığı daha yüksektir.

  • Cygwin düşündüğünüz kadar yardımcı olmuyor.

Özetle: Her şey Linux'ta çalışma eğilimindedir, çoğu şey OS X'te çalışır, ancak birkaç şey gariptir ve Windows'da kütüphaneleri kullanırken birçok ilginç baş ağrısıyla karşılaşmayı beklemelisiniz.

Sadece bir şeyleri denemek ve Haskell öğrenmekle eğlenmek istiyorsanız, kendinize bir iyilik yapın ve bir Ubuntu VM veya başka bir şey kullanın.

Editörler ve go-emacs ve vim kadar her zaman olduğu gibi popüler. Hiçbirini kullanmayı öğrenmedim (gerçekten yapmam gerekse ...) ve çoğu IDE'yi umursamıyorum, bu yüzden genellikle SciTE ile bağlı kalıyorum - Scintilla adlı bir editör widget'inin etrafında ince bir sarıcı. Notepad ++ kullanır.


1

Bir işletim sistemi seçmek yerine, bunu IDE açısından gelmeme izin verin. Scheme ile ilgileniyorsanız, birkaç yıl önce Scheme ormanından ortaya çıkan DrRacket'i denemenizi tavsiye ederim. IDE, Windows, OS X ve Linux'ta iyi çalışır.

Şimdi, diğer tüm işlevsel dillerinizi çalıştırmak için doğru işletim sistemini seçmeniz yeterlidir .


teşekkür ederim - Ben sadece Racket hakkında dün öğrendim - içine bakmak için çok zaman yoktu ama IDE / Lang. bana ilginç geliyor - yine de "gerçek" uygulama geliştirme için gerçekten uygun olup olmadığını söyleyemem.
Carsten

0

Haskell'in yaratıcılarından Simon Peyton-Jones, bir Windows kullanıcısı ve topladığımdan Haskell'in mükemmel pencere desteği var.

Sorunuz dürüst olmak gerekirse biraz belirsiz, işletim sistemi seçiminiz kullandığınız dil paradigmasına bağlı değil.

Şahsen, C # ve Java dünyasının (geliştirme ortamının IDE'niz tarafından dikte edildiği) dışında, bir geliştirme ortamının BSD, Linux veya OSX olsun, daima Unix'in bir lezzeti olması gerektiğine inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.