Scelta OS per lo sviluppo funzionale [chiuso]

9

Sono principalmente uno sviluppatore .NET quindi uso normalmente Windows / VisualStudio (che significa: sono viziato) ma mi sto godendo Haskell e altri (per lo più funzionali) linguaggi nel mio tempo libero.

Ora per Haskell il supporto per Windows è ok (puoi ottenere la Haskell-Platform) ma latley ho provato a ottenere un ambiente Clojure / Scheme di base ed è solo un problema con Windows.

Quindi sto pensando di provare un altro sistema operativo per strumenti migliori e supporto languido. Ovviamente questo mi lascia con MacOS o con qualche distribuzione Linux.

Non ho mai usato MacOS prima e ovviamente Linux sarebbe più economico (gratuito) e non penso di poter avviare in parallelo MacOS sul tuo normale PC-Hardware (puoi?). IN PIÙ: non ho idea degli strumenti che puoi usare su quei (per me) sistemi operativi.

Per farla breve: voglio esplorare più Haskell, Clojure, Scala, Scheme e, naturalmente, ho bisogno almeno di un buon tooling per JavaScript / HTML5 / Css. Il supporto per .NET / Mono / F # sarebbe fantastico ma per questo avrò ancora il mio avvio per Win7.

Quindi mi piace sapere:  - Qual è il tuo OS preferito, Distribuzione (è Ubuntu praticabile?)  - quale editor / IDE stai usando

Grazie per il tuo aiuto!

PS: Non sono sicuro che questo sia il posto giusto per questa domanda, ma sicuramente lo spero - se non lo facessi, fammi sapere dove dovrei spostarlo (StackOverflow non sembra essere il posto giusto).

    
posta Carsten 20.09.2012 - 09:51
fonte

9 risposte

4

Il percorso che sto attualmente prendendo per sperimentare con tali linguaggi e altre cose, con grande successo e facilità d'uso:

  • installa Debian sotto una macchina virtuale VirtualBox, in esecuzione su host Windows
  • conserva tutto il mio codice sull'host o su un'unità di rete condivisa, modifica sull'host usando l'editor preferito (ancora indeciso tra Notepad ++ e SublimeText; per C ++ uso solo VS)
  • condividi la directory sull'host, montala nella VM
  • compila / esegui il codice nella VM (o potresti anche ssh usando cygwin)

In questo modo ottieni i vantaggi di entrambi i sistemi operativi.

    
risposta data 20.09.2012 - 11:42
fonte
18

Risposta breve: esiste una soluzione semplice al tuo problema. Basta installare macchina virtuale con Linux (Ubuntu) - è gratuito.

Sono anche uno sviluppatore prevalentemente .NET che ama sperimentare cose diverse o provare varietà di framework e / o strumenti di sviluppo. La cosa principale qui non è fare confusione nel tuo ambiente di sviluppo principale. Quindi, installando tutto in una macchina virtuale (il sistema operativo nativo, i framework, configurandoli e configurandoli, ecc.) Per il tipo di sviluppo che inteso a fare è il modo più logico e ottimale per andare.

Modifica: potresti prendere in considerazione diverse soluzioni di virtualizzazione per creare la tua macchina virtuale. La mia preferenza personale va con VirtualBox . È una soluzione di virtualizzazione x86 gratuita che consente di eseguire un'ampia gamma di sistemi operativi x86 come Windows, DOS, BSD o Linux per l'esecuzione su un sistema Linux.

    
risposta data 20.09.2012 - 13:11
fonte
12

Uso Haskell e Scala (e anche alcuni Schemi, Common Lisp, SML, OCaml, Erlang) tutti sotto Linux (Ubuntu).

Tutte le lingue sopra elencate (compilatori e interpreti) possono essere installate abbastanza facilmente (ci sono pacchetti che possono essere installati usando apt-get o un altro sistema di gestione dei pacchetti).

Scala ha una buona integrazione con Eclipse e il / i plugin / i Scala sono attivamente sviluppati. Se vuoi saperne di più, c'è un corso su Scala attualmente in esecuzione su Coursera che spiega come usare Scala su Windows, Linux e Mac . Forse non hai tutte le funzionalità e l'integrazione di Visual Studio, ma ho sviluppato progetti abbastanza grandi in Eclipse e funziona perfettamente.

Per modificare Haskell (e le altre lingue sopra elencate) uso gvim, che è OK per piccoli progetti. Puoi utilizzare un altro editor (ad esempio EMACS), a condizione che abbia l'evidenziazione della sintassi per Haskell. Altrimenti, puoi dare un'occhiata a haskellwiki (grazie a Zach L per il suggerimento).

Per la gestione del codice sorgente (versioning), utilizzo SVN tramite Eclipse per tutte queste lingue.

    
risposta data 20.09.2012 - 11:28
fonte
10

MacOS richiede l'hardware Mac o potresti farlo funzionare su VirtualBox, ma l'ultima volta ho provato che non funzionava. E dal momento che non vuoi sostituire i tuoi attuali problemi di configurazione / configurazione con altri problemi, ti suggerisco di spendere un sacco di soldi o provare Linux. Ho usato Ubuntu per lo sviluppo di Haskell, Scala e Lisp con Eclipse, Netbeans, IntelliJ ed Emacs, e non ho avuto molti problemi a configurarli.

    
risposta data 20.09.2012 - 10:21
fonte
5

Tutti i sistemi operativi Unix hanno ottimi strumenti da riga di comando . Personalmente ho avuto esperienze positive con Ubuntu sia per lo sviluppo che per l'implementazione, molti dei miei amici lo giuro anche su MacOS. Non ho visto un motivo ovvio per preferire l'uno o l'altro, sono tutti IMO meglio di Windows per il lavoro a riga di comando.

Sul lato Clojure / Scala in particolare, potresti trovare che Windows è piuttosto buono se usi uno degli IDE Java con il plugin Clojure / Java appropriato. Personalmente uso Eclipse con Antiorario come il mio ambiente di sviluppo Clojure principale in Windows 7. C'è anche Scala IDE per il check-out. Questo è un buon approccio se ti piacciono gli IDE completi e / o vuoi fare programmazione poliglotta nello stesso ambiente. Un vantaggio in più nell'usare qualcosa come Eclipse è che l'integrazione git / svn / maven è molto buona.

    
risposta data 20.09.2012 - 12:08
fonte
3

Mentre sono un grande fan di Mac e Linux, non c'è motivo per cui non si possa fare nessuno di quei linguaggi su Windows. Inoltre se vuoi una lingua funzionale su Windows non trascurare F # che è una lingua .net

    
risposta data 20.09.2012 - 10:42
fonte
3

Ho usato Haskell su Windows, OS X e (Ubuntu) Linux, quindi posso offrire alcune osservazioni a riguardo. Ora, qualsiasi cosa tu possa ottenere dalla piattaforma Haskell probabilmente funzionerà bene, non importa quale, ma dopo:

  • Relativamente pochi programmatori Haskell usano Windows. Troverete cose su Hackage che assumono un ambiente simile a unix senza specificarlo esplicitamente.

  • Un sacco di cose utili provengono dai binding FFI alle librerie C, e la mancanza di una compilation C compilation ancora vaga e affidabile su Windows significa che, nella mia esperienza, l'installazione di binding FFI da hackage è un crapshoot al meglio .

  • Qualunque cosa sia necessariamente specifica per la piattaforma, il che abbastanza divertente include le librerie della GUI multipiattaforma, è più probabile che "funzioni solo" su Linux.

  • Cygwin non aiuta tanto quanto pensi.

In sintesi: tutto tende a funzionare su Linux, molte cose funzionano su OS X ma alcune cose sono strane, e su Windows dovresti aspettarti di incontrare un sacco di grattacapi interessanti quando usi le librerie.

Se vuoi solo divertirti a sperimentare cose e imparare Haskell, fai un favore a te stesso e usa una macchina virtuale Ubuntu o qualcosa del genere.

Per quanto gli editori e simili go-emacs e vim siano popolari come sempre. Non ho mai imparato a usare entrambi (anche se dovrei davvero ...) e non mi interessa la maggior parte degli IDE, quindi in genere mi prendo cura di SciTE - è un involucro sottile attorno a un widget dell'editor chiamato Scintilla, che potresti sapere come Notepad ++ utilizza.

    
risposta data 21.09.2012 - 16:52
fonte
1

Piuttosto che scegliere un sistema operativo, lasciami venire dall'angolo dell'IDE. Se sei interessato a Scheme, ti incoraggio a provare DrRacket, che è emerso dalla giungla di Scheme alcuni anni fa. L'IDE funziona bene su Windows, OS X e Linux.

Ora, devi solo selezionare il sistema operativo corretto per eseguire tutte le tue altre lingue funzionali.

    
risposta data 20.09.2012 - 21:59
fonte
0

Simon Peyton-Jones, uno dei creatori di Haskell è un utente di Windows e da quello che ho capito, Haskell ha un eccellente supporto di Windows.

La tua domanda è un po 'vaga per essere onesta, la tua scelta del sistema operativo non è legata al paradigma della lingua che stai utilizzando.

Personalmente ritengo che al di fuori del mondo C # e Java (dove l'ambiente di sviluppo è dettato dal tuo IDE), un ambiente di sviluppo dovrebbe sempre essere un assaggio di Unix, che si tratti di BSD, Linux o OSX.

    
risposta data 22.09.2012 - 13:12
fonte

Leggi altre domande sui tag