Ruby o Python? [chiuso]

24

Questa domanda è estremamente soggettiva e aperta. Potrebbe anche sembrare qualcosa che dovrei semplicemente ricercare per me stesso e prendere la mia decisione. Ma mi piacerebbe metterlo là fuori e ottenere alcuni pensieri dagli altri.

Per farla breve - ho bruciato con la corsa al successo e sono in un anno sabbatico autofinanziato quest'anno. Gran parte di ciò è prendere una pausa dalla routine aziendale e viaggiare, ma voglio anche giocare con le nuove tecnologie e fare alcuni progetti di autoapprendimento, per rimanere aggiornato sulla programmazione e, beh, mi piace armeggiare con programmazione, quando non c'è pressione!

Ecco la cosa: sono un programmatore C / C ++ / Java a vita. Sono un po 'snob staffetta sin da quando ho lavorato con questa famiglia di lingue per tutta la mia carriera di programmazione. Quindi mi piacerebbe imparare una lingua che non è così strettamente sintatticamente legata a questo gruppo. Quello che sto cercando fondamentalmente è 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 posti di lavoro nel mondo reale che lo usano).

L'ho ristretto a Ruby o Python. La mia impressione di Ruby è che è estremamente orientato al web - che l'unica vera applicazione è come un linguaggio di scripting lato server per fare roba web (principalmente Ruby on Rails). Non ho alcuna impressione di Python, a parte il fatto che sembra avere una fan base appassionata e sembra essere un linguaggio abbastanza versatile.

TL; DR e metterlo il più sinteticamente possibile: quale di questi sarebbe meglio per un ragazzo C ++ / Java imparare a ottenere nuove prospettive sulla programmazione? E quale è lo scopo più aperto e generale e applicabile a un più ampio insieme di applicazioni? Al momento mi sto appoggiando a Ruby, ma mi preoccupo fino a un certo punto che sembra che sia usato come nient'altro che un linguaggio web lato server.

    
posta Bobby Tables 02.02.2011 - 00:32
fonte

8 risposte

35

Non lasciare che il fatto che il Ruby sia entrato nel linguaggio comune principalmente a causa di Rails (il framework dell'applicazione web) ti inganna. È un linguaggio di programmazione generico e puoi usarlo per qualsiasi cosa tu possa usare qualsiasi altra lingua per.

Gioca con Ruby e vedi se ti innamori di esso. O lo farai o non lo farai. È un po 'come la musica dei Grateful Dead; lo ami o non lo sopporti.

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 potenza dinamica e meta-programmazione di Ruby essere abbastanza inebriante.

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

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

    
risposta data 02.02.2011 - 00:55
fonte
17

Ho usato raramente Ruby, devo ammetterlo, ma qui ci sono le mie impressioni su Python:

  • quando scrivo lo pseudocodice per estrapolare una funzione, trovo che quello che scrivo praticamente è Python, ea volte è notevolmente necessaria la riscrittura per renderlo codice reale. Potresti anche saltare lo pseudocodice tutti insieme e solo esprimere i tuoi pensieri direttamente in Python
  • quando ho bisogno di fare qualcosa che sembra un compito comune, Python tende ad avere le funzioni necessarie (ad alto livello) integrate nella sua libreria standard. Ad esempio, all'inizio, quando volevo aprire un file e scansionarlo 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 di tutti i giorni sono molto più laboriose

Queste due cose mi distinguono.

    
risposta data 02.02.2011 - 03:06
fonte
9

Se hai un anno intero sabbatico, ti suggerisco di passare una settimana o due imparando ciascuno e poi decidere tu stesso quale ti piace di più. Ho esperienza con entrambi e, a mio parere, sono entrambi così capaci che hai davvero bisogno di decidere quale preferisci.

    
risposta data 02.02.2011 - 01:05
fonte
7

IMO, dovresti usare Python. Il motivo è che è più versatile, puoi usarlo per quasi tutto. Come hai notato, Ruby è più utilizzato nello sviluppo web grazie ai suoi framework web. A differenza di Python, Ruby non è adatto allo sviluppo di applicazioni desktop gui, programmi di elaborazione numerica, statistica o di immagini.

    
risposta data 02.02.2011 - 00:55
fonte
6

Ruby è stato molto più a lungo di quanto lo siano le rotaie, quindi lascia che nel mondo ci sia del Ruby != web , anche se lo fa molto bene. C'è una miriade di cose relative ai sistemi che può e fa. Sembra che l'intera struttura di Rails abbia inghiottito il resto del mondo Ruby. E sì, sono un fan di Ruby.

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

Detto questo, sia Ruby che Python sono lingue ugualmente capaci, e scoprirai che ti rendono la vita molto più facile. Ruby ha molti più web head nella sua community, ma non è la totalità della community. L'ho usato anche su numerosi progetti di infrastrutture.

    
risposta data 02.02.2011 - 00:57
fonte
5

Questo è un caso speciale di " Sequenza di apprendimento della lingua di programmazione ideale" 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 mente.

So che hai detto di averlo ristretto a Ruby e Python, ma ti suggerisco di iniziare con Racket (uno schema popolare). È progettato per l'apprendimento e stimolerà il tuo cervello verso la programmazione funzionale, la programmazione interattiva e la digitazione dinamica. Non ci sono posti di lavoro (letteralmente zero), una comunità molto piccola e frammentata, e nessuna struttura web principale, che è esattamente il motivo per cui non vi rimarrete bloccati; friggere il tuo cervello per un po 'e poi andare avanti.

In secondo luogo, vuoi imparare Ruby o Python per possibili lavori. Ti suggerisco di imparare entrambi. Imparare la seconda di queste due sarà molto più facile della prima, nonostante le loro differenze. Per quanto riguarda i possibili lavori, il mio intuito è che c'è più lavoro Ruby a causa di Rails, ma so che c'è anche del lavoro con Zope in quest'area. Investire in almeno uno di essi, ma anche controllare l'altro almeno abbastanza a lungo per costruire qualcosa di piccolo.

Onestamente, probabilmente imparerai di più la tua prima settimana sul 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.

    
risposta data 02.02.2011 - 03:50
fonte
1

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

Personalmente mi piace come puoi fare cose molto veloci con Python dato che ha un sacco di utili funzioni integrate.

    
risposta data 02.02.2011 - 03:24
fonte
1

Id voto per Ruby. Sono venuto da .Net e C # di sfondo, ho provato prima Python, ma Ruby mi ha appena incantato =)
Sto scrivendo un sacco di materiale di sistema in esso, e alcuni deviazioni Rails. È capace come Python nella programmazione di sistema ed è fantastico sul web. E mi sembra più lucido ...

    
risposta data 02.02.2011 - 09:41
fonte

Leggi altre domande sui tag