2009-12-05 11 views
6

Quindi questo thread NON è sicuramente un thread per il motivo per cui Python è migliore di Ruby o l'inverso. Invece, questo thread è per critiche oggettive sul perché sceglieresti l'uno rispetto all'altro per scrivere un'API web RESTful che verrà utilizzata da molti client diversi (dispositivi mobili, browser Web, tablet, ecc.).Motivi oggettivi per l'utilizzo di Python o Ruby per una nuova API Web REST

Anche in questo caso, non confrontare Ruby on Rails vs Django. Questa non è un'app web dipendente da framework di alto livello come RoR o Django. Mi piacerebbe solo sapere perché qualcuno potrebbe scegliere l'uno rispetto all'altro per scrivere un'API web RESTful che hanno dovuto iniziare domani, completamente da zero e motivi per cui potrebbero passare da uno all'altro.

Per me, la sintassi e le funzionalità del linguaggio sono completamente superflue. Entrambi offrono una grande quantità di funzioni e certamente entrambi possono raggiungere gli stessi obiettivi finali. Penso che se qualcuno lancia una moneta, è una buona ragione per usarne una sopra l'altra. Mi piacerebbe solo vedere ciò che alcuni di voi esperti del web service che sono molto appassionati del loro lavoro rispondono al motivo per cui si userebbero uno sull'altro in un formato molto obiettivo.

+0

Perché non PHP? Di questi tempi è uno dei più popolari linguaggi del server web. Probabilmente eviterei Ruby principalmente perché Twitter è stato scritto in esso, e ha fatto schifo. Ma potrebbe essere più colpa di Twitter di quella di Ruby. – davr

+0

Nessuna buona ragione a parte il fatto che sono davvero annoiato di PHP e voglio imparare una nuova lingua. – randombits

+0

Onestamente, le differenze non sono tali che questa è una domanda che deve essere posta. Valutare sia dalla sintassi che dalla prospettiva della biblioteca e prendere una decisione al riguardo. I sentimenti delle persone in un modo o nell'altro non dovrebbero avere importanza. E davr, amico, sul serio? Evitare qualcosa perché qualcuno l'ha usato male? Da tutto l'opinione parziale che circonda la rete, probabilmente è la peggiore. –

risposta

5

Conosco Ruby, non conosco pitone ... puoi vedere da che parte mi sto piegando, giusto?

+1

Abbastanza corretto, ancora una volta, questo non è fuori linea. Risposte come questa si solidificano ulteriormente sul fatto che lanciare una moneta è lecito. – randombits

+0

Mi scuso, la risposta è venuta fuori un po 'sfacciata, ma non era destinata a esserlo. ...Internet. Ma quando chiedi di scegliere tra 2 lingue molto competenti, diventa più o meno un lancio di monete. E ciò che determina i volti di quella moneta sono le lingue a tua disposizione. – nowk

+0

se non si conoscono entrambi, non si dovrebbe rispondere. La risposta nel tuo caso piscia su questa ottima domanda perché per le persone che non hanno entrambe le lingue e stanno pensando di prenderne una, questa domanda è quello che si chiedono nelle loro teste e la tua risposta in realtà non aiuta – code511788465541441

4

Scegli quello con cui hai più familiarità e con più probabilità di eseguire le operazioni con la massima rapidità.

+0

giusta risposta data la domanda. Grazie! – randombits

4

Sì, lancia una moneta. La verità è che troverai quadri minimalisti in entrambe le lingue. Heroku è una buona ragione per dire Ruby ma potrebbero esserci altri host simili per Python. Ma Heroku rende semplicissimo implementare la tua API nel cloud, sia che si tratti di Rails o di qualche altro progetto Ruby che utilizza Rack. WSGI non ti offre questa opzione.

Per quanto riguarda la realtà di attuazione, però, sto cercando di indovinare che troverete che sono entrambe le lingue completamente competenti e sia una gioia per programma.

+5

Se stai cercando qualcosa di equivalente a Heroku per Python, direi che Google App Engine è una buona scommessa. – toluju

+0

Fantastico, lo controllerò. Mi ero dimenticato che gestiscono Python! Molto eccitante. –

5

direi che la cosa importante è che a prescindere di cui scegli, assicurati che la tua scelta non perda attraverso la tua API REST. Non dovrebbe essere importante per il client della tua API che hai scelto.

+0

+1: buona idea per un criterio oggettivo. Mette in discussione la decisione linguistica, che è un eccellente punto aggiuntivo. –

2

Penso che siano abbinati in modo abbastanza uniforme alle funzionalità. Preferisco Python, ma lo uso da più di un decennio, quindi ammetto che ciò che segue è totalmente parziale.

IMHO Python è più maturo - ci sono più librerie per questo (sebbene Ruby stia recuperando) e le librerie incluse penso che siano meglio progettate. Anche il processo di evoluzione del linguaggio è più maturo, con ogni funzionalità proposta discussa in pubblico tramite i PEP prima che venga presa la decisione di includerli in una versione. Ho l'impressione che lo sviluppo del linguaggio Ruby sia molto più ad-hoc.

Python è ampiamente utilizzato in molte aree diverse dallo sviluppo web: calcolo scientifico, pipeline di rendering CGI, calcolo distribuito, strumenti di interfaccia grafica di Linux ecc. Ruby ha avuto pochissima attenzione prima che arrivasse Rails, quindi ho l'impressione che la maggior parte Il lavoro di Ruby si concentra sullo sviluppo web. Questo potrebbe non essere un problema se questo è tutto ciò che si vuole fare con il linguaggio, ma significa che Python ha una base di utenti più diversificata e un insieme più diversificato di librerie.

Python è anche più veloce.

+0

"Preferisco Python, ma lo uso da più di un decennio, quindi ammetto che quello che segue è totalmente parziale." Questo tipo contraddice il titolo del post, vero? randombits vuole obiettività, cioè opinioni non distorte, e tuttavia ammetti liberamente che la tua opinione è di parte e poi continua a darla comunque. Dai. –

+0

@Srdjan Pejic: fornire un esempio di una determinazione "oggettiva" per la selezione di un linguaggio di programmazione. Chiedere "obiettivo" è bello, ma in realtà fornire una misurazione oggettiva è una cosa diversa. Forse conosci una misurazione oggettiva effettiva? Se è così, si prega di suggerire tale misurazione quando si nota che qualcosa non è "obiettivo". –

+0

TUTTE le opinioni sono influenzate dalla conoscenza e dall'esperienza dell'opponente. Tuttavia la maggior parte delle cose che ho citato potrebbero essere oggettivamente mischiate: ci sono molti benchmark che mostrano che Python è più veloce di Ruby. Che sia importante per te è una questione di opinione. Allo stesso modo il numero di librerie Python/Ruby e la loro distribuzione su vari domini problematici potrebbero essere misurate oggettivamente, anche se non l'ho fatto. Ancora una volta se ciò è importante o meno dipenderà dai bisogni dell'individuo. –

1

O faranno un ottimo lavoro e guadagnerai in altri modi dall'imparare qualcosa di nuovo. Perché non trascorrere un paio di giorni con ciascuno? Guarda fino a che punto puoi arrivare con un semplice sottoinsieme del problema, poi guarda come ti senti. Per i punti bonus riporti qui e rispondi alla tua stessa domanda!

2

Rubino + Sinatra

Molto facile da usare con/come middleware cremagliera - qualcuno ha già detto Heroku

Problemi correlati