Ho fatto tornare a Python nel 2003-5, quando ero un consulente Plone / Zope. Poi
nel 2006 ho iniziato a raccogliere Ruby. Non ho mai guardato indietro. credo
persone diverse si sentono più a loro agio con diverse programmazioni
lingue e culture, ma per me, Ruby si sente molto meglio di Python.
Personalmente ritengo che, rispetto a Ruby, Python sia affidabile
cavallo di battaglia che capita anche di essere un po 'sereno e insipido. Rubino è molto
Più divertimento. È una lingua più carina e può essere fatta per fare molto
di cose divertenti e funky che continuano a stupire i suoi praticanti. Ho sentito
I Python attaccano Ruby perché è troppo pericoloso, dicendo che è troppo
classi facili da riaprire e fare cose selvagge e irresponsabili del genere.
Ma questo fa parte di ciò che fa sembrare Ruby una commedia d'azione
romanticismo per me. Python, al contrario, è più simile ai mobili Ikea: lo è
piacevole, constrongvole e affidabile, ma non ti sorprenderà mai e togli il fiato.
Le due cose migliori di Ruby, dal mio punto di vista, sono le due cose
che lo distinguono nettamente da Python. Primo, il Ruby è influenzato molto
di Perl. Python sembra essere orgoglioso di essere l'anti-Perl. Ma il
roba Il rubino preso in prestito da Perl ha un grande valore pratico. Prendi regolarmente
espressioni, per esempio. In Ruby puoi scrivere espressioni regolari
naturalmente, ad es. %codice%. In Python, no
così tanto, perché Python è così anale nel far sì che tutto segua a
sintassi uniformemente prevedibile. In Ruby, puoi ottenere immediatamente STDIN
con if mystring =~ /^\s+hello word!/ ...
. In Python, devi input = STDIN.read
e poi
%codice%. Questi sono solo due esempi in cui lo sforzo di Python
la distanza stessa da Perl ed essere così prevedibilmente regolari viene troncata da
La volontà di Ruby di fare ciò che sembra giusto in ogni caso.
L'altra cosa che distingue Ruby da Python è che Ruby è molto
più vicino a Lisp mentre Python è praticamente una programmazione imperativa
linguaggio. Penso che questo sia un grande vantaggio a favore di Ruby.
Ci sono molte caratteristiche simili a Lisp di Ruby che rendono possibile fare di più
con meno codice in Ruby che in Python. Ad esempio, ogni affermazione e
la struttura di controllo in Ruby restituisce un valore: puoi farla franca in Ruby con
mai usando l'istruzione import sys
. Anche le dichiarazioni sys.stdin.read()
valgono su a
valore, quindi puoi scrivere cose come questa
result = if output == 'hello'
[some code here]
"world"
else
[some other code here]
"there"
end
In Python dovresti scrivere
if output == "hello":
[some code here]
result = "world"
else:
[some other code here]
result = "there"
Python ti fa digitare return
due volte. Non è molto ASCIUTTO (no
Ripeti te stesso). Ci sono molte istanze come questa dove Ruby lo farà
essere più ASCIUTTO di Python per le sue qualità simili a Lisp. Matz, il
creatore di Ruby, proveniva da uno sfondo Lisp.
Alcuni dicono che Ruby dica anche il culo a Python in metaprogrammazione
(aka programmazione dinamica). La gente di Python risponde o dicendo questo
metaprogramming è troppo pericoloso, o dicendo che, teoricamente, tu
in grado di eseguire tutte le cose metaprogramming Ruby può in Python, solo
in modo diverso. Ma una cosa su cui tutti sono d'accordo è che la metaprogrammazione è molto meno
comune in Python che in Ruby. E questo è un peccato, perché è la metaprogrammazione
un viaggio.
Penso che sia probabilmente vero che alla fine della giornata Ruby e Python
può entrambi portare a termine il lavoro. Rispetto a C e Java, Ruby e Python lo sono
praticamente la stessa cosa Sono espressivi, produttivi, di alto livello
le lingue.
Quindi si riduce alla tua personalità.
Ti piace che le cose siano prevedibili, regolari e sicure? Ti piace il
stile imperativo di programmazione? Vuoi forse lavorare un giorno per
Google? Pensi che Perl sia una generazione caotica dell'inferno? Attenersi
Python.
Sei molto contento di trovare il modo più conciso di farlo
realizzare qualche risultato di programmazione? Ti annoi per regolarità e
uniformità? Ti piace avere la libertà di scrivere codice in uno stile
questo è tutto tuo, e avere un sacco di spazio per inventare il tuo
bei trucchi? Ti senti più affine a Lisp che a C? Fare
provi una grande ammirazione per il contributo epocale di Perl al software
programmazione, ma vorrei solo che potesse essere solo un po 'meno criptico
e brutto? Pensi al codice come gli altri pensano alla poesia? Prova Ruby.