it-swarm.it

Ruby o Python?

Questa domanda è estremamente soggettiva e aperta. Potrebbe anche sembrare qualcosa che dovrei solo cercare da solo e prendere la mia decisione. Ma mi piacerebbe metterlo là fuori e ottenere alcuni pensieri dagli altri.

Per farla breve: mi sono esaurito con la corsa dei topi e quest'anno sono un anno sabbatico autofinanziato. Gran parte di esso è quello di prendersi una pausa dal Grind aziendale e viaggiare, ma voglio anche giocare con le nuove tecnologie e fare alcuni progetti di autoapprendimento, rimanere al passo con la programmazione e bene - Adoro armeggiare con programmazione, quando non c'è pressione!

Ecco la cosa: sono un programmatore C/C++/Java a vita. Sono un po 'snob snob da quando ho lavorato con questa famiglia di lingue per tutta la mia carriera di programmatore. Quindi mi piacerebbe imparare una lingua che non è così strettamente sintatticamente correlata a questo gruppo. Quello che sto sostanzialmente cercando è un linguaggio che è relativamente generico, divertente da imparare, ha alcuni nuovi concetti che sono diversi da C++/Java e ha una buona comunità. Una considerazione secondaria è che ha buoni framework di sviluppo web. Una considerazione terziaria è che non è totalmente accademico (leggi: ci sono lavori nel mondo reale che lo usano).

L'ho ridotto a Ruby o Python. La mia impressione di Ruby è che è estremamente orientato al web - che l'unica vera applicazione di esso è come un linguaggio di scripting lato server per fare cose sul web (principalmente Ruby su Rails). Non ho molta impressione di Python affatto, tranne che sembra avere una base di fan appassionati e sembra essere un linguaggio abbastanza versatile.

TL; DR e per dirla nel modo più sintetico possibile: quale di questi sarebbe meglio per un ragazzo C++/Java imparare a ottenere alcune nuove prospettive sulla programmazione? E qual è lo scopo più aperto e generale e applicabile a un più ampio set di applicazioni? Mi sto orientando verso Ruby al momento, ma mi preoccupo al punto che sembra che sia usato solo come un linguaggio web lato server.

24
Bobby Tables

Non lasciare che il fatto che il Ruby sia cresciuto nel linguaggio comune in gran parte a causa di Rails (il framework dell'applicazione web) ti ingannano. È uno scopo generale linguaggio di programmazione e puoi usarlo per tutto ciò per cui puoi usare qualsiasi altro linguaggio.

Gioca con Ruby e vedi se te ne innamori. O lo farai o non lo farai. È un po 'come la musica dei Grateful Dead; o lo ami o non puoi sopportalo.

Ruby allungherà il tuo cervello. Per molti aspetti, è il più lontano possibile da C++/Java. Vengo da uno sfondo C e C # e ho trovato la dinamicità e il potere di meta-programmazione di Ruby abbastanza inebrianti.

Detto questo, Python è un linguaggio assolutamente eccezionale, e ti farà uscire dalla tua fragilità.

Perché non imparare entrambi? Uso entrambi su base regolare: Ruby per la programmazione con Rails e Python per lavorare con Google AppEngine.

35
Adam Crossland

Non ho quasi mai usato Ruby, ma ecco le mie impressioni su Python:

  • quando scrivo pseudocodice per disegnare una funzione, trovo che ciò che scrivo praticamente è Python, e talvolta è necessaria una riscrittura notevolmente piccola per renderlo codice reale. Potresti anche saltare lo pseudocodice tutti insieme ed esprimere i tuoi pensieri direttamente in Python
  • quando devo fare qualcosa che sembra un compito comune, Python tende ad avere le funzioni necessarie (di alto livello) integrate nella sua libreria standard. Ad esempio, all'inizio quando volevo apri un file ed esegui la scansione riga per riga, la risposta era semplice come "per le righe in myFile: dostuff (righe)". Questo credo che chiamino l'approccio "batterie incluse" e differisce da alcune altre lingue che ho usato dove le operazioni quotidiane sono molto più complicate

Queste due cose si distinguono per me.

17
Andrew M

Se stai prendendo un anno sabbatico per intero, allora suggerirei di passare una settimana o due a imparare ciascuno e poi decidere da solo quale ti piace di più. Ho esperienza con entrambi e secondo me sono entrambi così capaci che devi solo decidere quale preferisci.

9
Jason Webb

IMO, dovresti andare con Python. Il motivo è che è più versatile, puoi usarlo per quasi tutto. Ruby è, come hai notato, più usato nello sviluppo web grazie ai suoi framework Web. A differenza di Python, Ruby non è così buono per lo sviluppo di applicazioni desktop gui , programmi numerici, statistici o di elaborazione delle immagini.

7
Marcin

Ruby è stato in giro molto più a lungo di Rails ha, quindi lasciami mettere là fuori nel mondo che Ruby != web, anche se lo fa molto bene. C'è una miriade di cose relative ai sistemi che può e fa. Sembra proprio che l'intero Rails framework abbia ingoiato il resto del Ruby. E sì, io sono un Ruby = fan.

Python d'altra parte ha molto da fare ed è stato integrato con quasi tutto su Linux. Questo mi dice che probabilmente è abbastanza facile da integrare in programmi più grandi (rispetto a Ruby, Java, ecc.). C'è una buona quantità di infrastruttura Ubuntu Linux scritta con Python, che mi dice che Python ha un'applicazione nella programmazione dei sistemi. Sento che il suo framework web è davvero bello, non ci ho ancora giocato.

Detto questo, entrambi Ruby e Python sono linguaggi altrettanto capaci, e li troverai rendere la tua vita molto più semplice. Ruby ha molti più web head nella sua comunità, ma questa non è la totalità della comunità. L'ho usato anche su una serie di progetti infrastrutturali.

6
Berin Loritsch

Questo è un caso speciale di " Ideal Programming Language Learning Sequence" e domande simili . Ciò di cui hai bisogno non è "l'unica lingua perfetta", hai bisogno di più paradigmi linguistici e molteplici esperienze di apprendimento per aprire la tua mente.

So che hai detto che l'hai ridotto a Ruby e Python, ma ti suggerisco di iniziare con Racket (uno schema popolare). È costruito per l'apprendimento e allungherà il tuo cervello verso la programmazione funzionale, programmazione interattiva e digitazione dinamica. Non ci sono lavori (letteralmente zero), una comunità molto piccola e frammentata e nessun framework web importante, motivo per cui non rimarrai bloccato su di esso; friggi il cervello per un po 'e poi vai avanti .

Secondo, vuoi imparare Ruby o Python per possibili lavori. Ti suggerisco di imparare entrambi. Imparare il secondo di quei due sarà molto più facile del prima nonostante le loro differenze. Per quanto riguarda i possibili lavori, la mia sensazione è che ci sia più Ruby funziona a causa di Rails, ma so che c'è anche del lavoro di Zope in quest'area. Investi almeno in uno di loro, ma controlla anche l'altro almeno abbastanza a lungo per costruire qualcosa di piccolo.

Onestamente, probabilmente imparerai di più la tua prima settimana di lavoro con uno di loro di quanto tu abbia mai imparato da solo; entrambi hanno grandi ecosistemi con molti strumenti, cultura e modi di dire.

tl; dr: Both e Scheme.

5
Jesse Millikan

Anch'io vengo da Java/C++ in background e ho programmato in Python con il Django framework negli ultimi 4 mesi ed è davvero fantastico. Ogni volta che ho un problema o una domanda, posso trovare spiegazioni sui post esistenti. Non posso garantire per Ruby poiché non l'ho ancora usato, ma lo proverò sicuramente quando avrò tempo .

Personalmente mi piace come puoi fare le cose molto velocemente con Python in quanto ha molte funzioni utili integrate.

1
chiurox

Ho votato per Ruby. Vengo da .Net e C # background, provato Python prima, ma Ruby mi ha appena incantato =)
Sto scrivendo un sacco di roba di sistema in esso, e alcuni Rails dev a. È capace come Python nella programmazione del sistema, ed è fantastico sul Web. E mi sembra più raffinato ...

1