Domanda

è meglio sviluppare ruby ??su binari in a) windows b) linux oc) mac. perché?

modificato:

il motivo per cui lo sto chiedendo è che ho sentito che lo sviluppo di ruby ??su rotaie in Windows non è così stabile / buono rispetto a quando hai usato ruby ??su rotaie in mac. (non so se sia vero o no).

oltre al fatto che David Heinemeier Hansson (creatore di Ruby on Rails) sembra usare il Mac, quindi le impressioni iniziali sembrano essere le applicazioni di Ruby on Rails e il Mac va bene insieme.

È stato utile?

Soluzione

Consiglio vivamente di non sviluppare su Windows. Perché? Innanzitutto, ci sono molte cose che si rompono su Windows ad ogni aggiornamento e la maggior parte dei creatori di gemme o plug-in non usano Windows quindi non si preoccupano di Windows e non eseguono test su di esso (ci sono molti grandi nomi le persone che hanno appiattito hanno detto che Windows NON è il loro problema, è tuo). Scoprirai che i problemi di * nix vs Windows ti morderanno ancora e ancora. Barra dei nomi dei percorsi, differenze minori nelle implementazioni di ssh, problemi di console e caratteri, rubygem, capistrano, ecc ...

Quello che succederà dopo un po 'è che avrai sempre questa voce nella parte posteriore della testa ogni volta che devi eseguire il debug di qualcosa che dice "Questo è un problema solo su Windows?" e quella vocina è un costo per te ... consumare un po 'della batteria ogni singolo giorno.

I Mac sono più costosi in termini di dollari iniziali (cosa che purtroppo non ho) e le piattaforme Linux sono termini più costosi di passare un giorno o due a cercare di far funzionare il tuo wireless ma quelli sono costi iniziali una volta. La fastidiosa insicurezza nell'uso di Windows for Rails è un costo costante. Almeno fino a quando la community non inizierà a rifiutare cose che non sono realmente multipiattaforma.

Ad esempio guarda il cetriolo. Per qualche motivo un framework di test dipende da una particolare configurazione della console non disponibile in Windows. Quindi per usarlo in Windows devi cambiare il carattere nella tua console e cambiare la tabella codici nella tua console. Altrimenti la lettera "a" scompare da tutto l'output. Perché? Perché funziona bene con i sistemi * nix e ti dà dei bei colori (penso che questo sia un enorme difetto e una scelta di design molto molto scarsa anche se ignori Windows).

Ti sentirai anche il tipo che ha scoreggiato nell'ascensore ogni volta che si presenta un problema con Windows.

Dico tutto questo come qualcuno che deve usare Windows per la sua piattaforma di sviluppo al momento. Ehi, che profumo ha?

[modifica tardiva: Ruby è anche circa 3 volte più lento su Windows. Ciò avrà un impatto sulla tua volontà di eseguire i test continuamente e comprometterebbe il tuo ciclo di feedback TDD]

Altri suggerimenti

Non dovrebbe importare, qualunque cosa tu sia più a tuo agio. Ho fatto tutti e tre.

Suppongo che Windows sia un po 'scomodo a causa del fatto che non è basato su unix, la CLI è un po' più ingombrante.

(Ma se usi uno strumento come NetBeans, non hai nemmeno molto bisogno della CLI)

Mi sconsiglio di utilizzare Windows durante lo sviluppo di un'app che verrà successivamente distribuita su un sistema Linux. Se stai sviluppando un'app per fare pratica, Windows va bene.

Il problema è che se stai puntando su Linux, allora vorrai avere uno stack completo sulla tua macchina di sviluppo: un web server, un dbms, forse memcached, ecc. Mentre è possibile caricare tutti che su Windows (l'ho fatto), ci vorrà più tempo che su una macchina linux, sarà più lento e avrai più difficoltà a trovare assistenza quando qualcosa non funziona.

Inoltre, puoi imbatterti in gem e problemi di supporto plug-in su Windows. Ad esempio \ invece di / per percorsi di directory e altre stranezze. Mentre i rubyists cercheranno di essere utili, il supporto di Windows è talvolta limitato poiché la maggior parte del lavoro RoR viene eseguito su macchine Mac o Linux. Ad esempio Capistrano ha avuto problemi con Windows (potrebbero essere corretti ora).

In alternativa , puoi utilizzare Windows come computer desktop, ma puoi utilizzare un computer Linux come server di sviluppo per eseguire l'app. Qualsiasi vecchio PC eseguirà Linux bene. Usa samba per accedere in remoto e modificare i file dal tuo computer Windows. La macchina linux non ha bisogno di un display, lo userai solo da remoto.

Cambia semplicemente config / environment / development.rb della tua app per includere

config.action_controller.consider_all_requests_local = true

in modo da poter vedere le tracce dello stack dal tuo browser in esecuzione sul tuo computer Windows.

Saluti,

Larry

Ruby on Rails funziona bene su tutte le piattaforme, ma il supporto degli strumenti varia. Ad esempio, TextMate è un editor preferito tra Rubyists ed è solo per Mac. Sarai in grado di trovare molti strumenti utili per lavorare con RoR in TextMate, quindi potrebbe essere meglio fare lo sviluppo RoR su un Mac.

Uso Mac e Linux da solo.

Un sistema basato su Unix ti offrirà un percorso di minima resistenza poiché tutte le gemme sono disponibili / compilabili su questi sistemi, il che non è così facile su un computer Windows. Non è impossibile su Windows, ma passerai più tempo a farlo funzionare piuttosto in alcuni casi piuttosto che a fare un lavoro.

Di quei sistemi Unix che preferisco è un Mac, ha tutta la potenza di Unix e tutte le funzionalità dell'interfaccia che possono mancare dal tuo sistema Linux, e ovviamente non potrei vivere senza la mia dose giornaliera di TextMate, così è Mac.

Ho iniziato la mia vita come programmatore nel 1981 sui primi sistemi Unix. Sono rimasta una pura persona Unix fino al 1995. Poi sono successe "cose" (proprietà commerciale) e Windows è entrato nella mia vita.

Quindi, nel 2007, inizio a studiare il RoR, puro Windows. Mi sono schierato su Joyent, che è Solaris. Ho sviluppato con successo due grandi app, sviluppate su Windows e distribuite su Solaris / Apache / Mongrel, senza incidenti rilevanti.

L'unico problema di Windows che abbia mai ricordato è che dovevo forzare le letture e le scritture del filesystem in modalità binaria per risolvere un problema di "sviluppo" vs. "distribuzione".

Onestamente non vedo alcun problema con lo sviluppo su Windows e la distribuzione su Unix. Ma avevo una vasta esperienza in Unix, non sono sicuro che la storia sarebbe stata la stessa se non avessi conosciuto Unix.

Inoltre, lavorerò sempre e solo sulle app RoR che creo per la mia azienda. Non avrò mai bisogno di creare altre app RoR, non svilupperò mai alcun plug-in, non dovrò mai prendere in consegna un altro progetto, non ho mai nessuno INSISO che includo qualcosa disponibile solo in qualcosa che non funziona bene con il mio ambiente di sviluppo di Windows , ecc ...

Direi questo:

Se sei responsabile dello sviluppo di un'app Web per il tuo datore di lavoro e tale datore di lavoro è basato su Windows, NON DOVREBBE impedirti di considerare RoR come piattaforma. L'app dovrebbe essere distribuita da una terza parte, a meno che il tuo datore di lavoro non sia abbastanza grande e il progetto abbastanza importante da garantire sistemi Unix interni.

Quindi, se conosci SQUAT su Unix, potresti aver bisogno di un piccolo aiuto lungo la strada. Se vai con un host Rails di terze parti, dai un'occhiata ai loro forum di supporto, assicurati che ci siano persone disposte e in grado di parlare con una persona non Unix attraverso problemi di distribuzione / configurazione e manutenzione.

Ti darò un esempio, su Joyent, se voglio eseguire una migrazione, devo passare attraverso la loro GUI del database, accedere al database, quindi 'eseguire' un comando. OK, quindi ottengo un semplice campo di testo in cui inserisco input destinato a una shell Unix, che è:

cd / user / myhome / sites / mysite & amp; & amp; rake db: migra RAILS_ENV = produzione

Non sarebbe stato così facile da capire se non avessi avuto lo sfondo Unix.

A partire da Ruby 1.9.2 e Rails 3.2, Windows è molto più lento per l'autotest e lo spork (un ciclo completo ha richiesto in media ~ 15 secondi rispetto ai pochi secondi su Linux per lo stesso progetto), ma mi piace una guida migliore strumenti e funzionalità centric git (TortoiseGit, WinSCP) tra le altre cose da quando ho molta più familiarità con Windows. Ho verificato che le funzionalità essenziali di cui ho bisogno funzionano su entrambe le piattaforme, quindi trovo che la rottura sia un problema minore rispetto alla velocità.

Non importa, se sei un purista, il tuo ambiente di sviluppo dovrebbe corrispondere il più possibile al tuo ambiente di produzione per quanto riguarda il sistema operativo e la versione di Ruby and Rails. Ma davvero non importa molto.

Alcune gemme funzionano su Mac ma non alcune versioni di Linux (come gitjour quando l'ho provato l'ultima volta).

L'uso di un Mac potrebbe essere positivo o negativo, a seconda che tu voglia sapere che qualunque cosa tu sviluppi sarà in grado di funzionare su qualsiasi altro sistema operativo.

Ho fatto lo sviluppo di light rail su OSX e Linux (Ubuntu) e ho trovato le differenze quasi impercettibili (in termini di ruby ??e rails ... ovviamente gli ambienti desktop sono molto diversi tra i due sistemi operativi ).

Come altri hanno già detto, la maggior parte dei tutorial su ruby ??/ rails, gemme, plugin, ecc. sono orientati verso i sistemi di tipo Unix, quindi suppongo che potrebbero esserci dei fastidiosi singhiozzi che provano a fare lo sviluppo di ruby ??/ rails in Windows, a meno che ovviamente stai usando IronRuby. : -)

Un'alternativa semplice per configurare un ambiente Unix per lo sviluppo di Rails è quella di eseguire una delle distribuzioni Linux più facili da usare, come Ubuntu o Fedora con software di virtualizzazione come VMWare, VirtualBox, VirtualPC, ecc.

Sono d'accordo con molti dei post precedenti che Rails su Windows può essere un problema. È semplicemente il caso che molte persone che sviluppano per Rails si trovino su Mac o Linux e di conseguenza non vengano rilevati bug di Windows, questo è particolarmente un problema con i plugin.

Un problema con Rails è l'IDE. TextMate su Mac sembra essere una scelta popolare, tuttavia le opzioni di Linux e Windows sono piuttosto frammentate. Normalmente non mi preoccuperei di questo, ma ho scoperto che Rails diventa molto più gestibile quando hai il supporto IDE. In generale ci sono molti file situati in una struttura di directory ragionevolmente complessa, quindi avere un IDE che ti permette di trovare facilmente i file che stai cercando è un fantastico aumento della produttività.

Un'altra cosa che potresti prendere in considerazione è l'aspetto del tuo ambiente di distribuzione. Ad esempio, è possibile che le persone distribuiscano lì app Rails su server Linux. In tal caso, potresti essere in grado di aggirare i bug sviluppandoti su OS X, ma sfortunatamente quei bug si ripresenteranno quando vai a distribuire il tuo nuovo software. Questo è l'ultimo posto in cui vuoi essere il codice di debug. Ovviamente dovresti prima provare il tuo codice in un ambiente di gestione temporanea, ma troppo spesso le persone saltano questo passaggio.

Mentre cerco la risposta a questa domanda a causa del fatto che devo sempre spostarmi su Windows per far funzionare le cose durante lo sviluppo in Ruby, posso dire che se hai l'opzione, usa Linux o Mac. Ho ufficialmente iniziato a utilizzare Ubuntu 9.04 da oggi e qui ci sono i motivi per cui:

1) Non puoi fare cose ssh come usare Capistrano, vlad, creare gemme per rubyforge, ecc. Puoi fare queste cose usando Cygwin, ma è un tale dolore nel culo usare Cygwin e Windows che funzionano per tutto.

2) L'ultima goccia è stata quando si è cercato di dare il via alle attività in background in un'app di rotaie solo per rendersi conto che Windows non è in grado di fork i processi .... non si è nemmeno preoccupato di Cygwin per questo, è appena passato a Ubuntu quindi Non devo continuare a risolvere questi problemi.

Ubuntu 9.0.4 è piuttosto caldo, abbastanza impressionato, quindi potrebbe non essere così male.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top