PHP e Ruby: come sfruttare entrambi? e ne vale la pena? [chiuso]

8

Come potresti aver notato dal titolo, questa non è una domanda "PHP o Ruby" o "PHP vs. Ruby". Questa è una domanda su come sfruttare PHP + Ruby nella stessa attività.

Io stesso sono uno sviluppatore PHP, amo il linguaggio per la sua praticità e amo particolarmente l'ecosistema di risorse che lo circondano: Joomla, Drupal, Wordpress, Symfony2, Doctrine2, ecc. Tuttavia, il linguaggio stesso può essere un Poco deludente a volte.

OTOH, Ruby sembra un linguaggio molto bello e - da uno studio superficiale in diversi aspetti - potrei dire che è più snello di Python come linguaggio in sé. Comunque, da quello che ho visto c'è praticamente solo il RoR che fa rumore, e non mi piace molto il RoR (principalmente perché il suo livello di modello).

Come Co-CEO e CTO della mia azienda, sto cercando di pensare fuori dagli schemi poiché voglio iniziare a concentrarmi sul lato umano della tecnologia e vedere se è sano di mente usare sia PHP che Ruby. Ecco alcuni pensieri casuali:

  • Le persone di Ruby sembrano essere in genere i programmatori più adatti di PHP (in termini di medie), so che la precedente dichiarazione è un po 'folle perché è possibile scrivere PHP molto buono e ben progettato, ma direi che la cultura del programmatore Ruby è meglio di PHP.
  • La cosa su Ruby è che sembra più adatto per un rapido sviluppo, non so davvero se questo è il caso di RoR, ma so che ci sono alcune pratiche (forse non così buone) come le patch delle scimmie che consente di soddisfare le esigenze aziendali più rapidamente.
  • Da un punto di vista del marketing (sì, a volte è necessario sfruttare il BS di marketing per il bene della tua azienda) Ruby sembra migliore mentre PHP porta alcuni stigmi.
  • PHP 5.4 sta portando tratti , e questo è meglio / più pulito dei mixin. Questo potrebbe davvero rendere il PHP snello come Ruby -o più- per certe cose.

Ora, concretamente, le mie domande:

  • Un programmatore PHP vorrebbe imparare Ruby? Lo so, ma al contrario, un programmatore di Ruby vorrebbe imparare PHP?
  • Quali tipi di progetti o situazioni sarebbero più adatti a Ruby che non sono adatti per PHP?.
  • Qual è l'effettivo ecosistema di Ruby ?, a parte RoR, non ho visto altre tecnologie / framework hyped (ho visto RSpec, ma confesso di essere un noob totale su cosa sia realmente il BDD e le sue implicazioni).
  • Supponendo che ci sia un certo tipo di progetti ideali per Ruby, ci sarebbe un momento in cui è meglio spostarlo in PHP ?. So che PHP può gestire un sacco di cose, ma ho letto che Ruby ha i suoi limiti durante il ridimensionamento (o è RoR ?, o è una sciocchezza per entrambi?).
  • Infine e, cosa più importante, sarebbe corretto mantenere progetti in due lingue? o è semplicemente stupido. Come ho detto, sembra che Ruby sia più snello a breve termine e che possa far sì che un progetto possa accadere e avere successo, ma non ne sono così sicuro a lungo termine.

Sto cercando intuizioni principalmente da persone che conoscono bene i punti di forza e di debolezza delle lingue, preferibilmente entrambi, e l'ecosistema di Ruby nella pratica reale, vale a dire strutture e applicazioni come quelle che ho citato dall'ecosistema di PHP.

    
posta dukeofgaming 18.06.2011 - 05:37
fonte

4 risposte

7

Tieni presente, mentre leggi le mie risposte, che la mia esperienza di PHP (> 10 anni) è molto più alta della mia esperienza con Ruby (alcune settimane di gioco con esso, nessun progetto live ancora).

Would a PHP programmer want to learn Ruby?

Personalmente, sono venuto in Ruby mentre cercavo un linguaggio più pulito per lo sviluppo web (specialmente quando si parla di consapevolezza delle stringhe multibyte) e di scripting lato server (i miei script bash OSX sembrano sempre avere un problema o due quando sono gira sul mio server FreeBSD).

Prima di provarlo, mi ero divertito con Lisp, Perl, Python e Node.js. Alla fine ho abbandonato Lisp a causa della mancanza di un editor adeguato (è emacs o niente, e odio emacs con una vendetta), la stranezza nella costruzione di un'applicazione web (ci sono strumenti, ma non sono naturali da usare) e l'eccentricità occasionale (ti sto guardando, car , cdr e cons ). Ho rapidamente liquidato Perl con la stessa puzza di PHP quando si parla di consapevolezza delle stringhe multibyte. Non mi è piaciuto molto Python (è solo una cosa di gusto, non ho assolutamente motivi validi). E mentre promettendo, accarezzo Node.js come troppo giovane e overhyped. (Ho preso in considerazione anche Erlang, ma non sono mai andato oltre un tutorial.)

Conversely, would a Ruby programmer want to learn PHP?.

(...) Finally and most importantly, would it be sane to maintain projects in two languages?

Qui posso parlare solo per me stesso, ma più gioco con Ruby, più mi sento come vomitare ogni volta che leggo o scrivo codice PHP.

What kinds of projects or situations would be better suited for Ruby that are not suited for PHP?.

Tutto ciò che riguarda la gestione delle stringhe UTF-8, per esempio - che comprende probabilmente tutto ciò che è correlato al web. È come, sì, in PHP ci sono le funzioni mb_* ; e le classi Intl ; e il modificatore /u per le funzioni preg_* ; e ... Come un junky PostgreSQL, sono venuto a prendere la gestione UTF-8 come un dato. È il tipo di cosa di cui non voglio preoccuparmi, soprattutto quando si tratta di librerie, oltre a problemi specifici delle impostazioni locali come casi e regole di confronto.

(Ruby non è assolutamente perfetto a questo proposito, a proposito. Python è un po 'meglio .Ma preferirei mixin.In 15 anni di codice, raramente ho avuto bisogno di ordinare le stringhe non ascii al di fuori di un database, o l'handle del caso oltre i bit di traslitterazione e pezzi che lo trasformano in un URI.)

Lo scripting della shell è un altro. PHP può essere usato anche per questo genere di cose, ma le incoerenze e il disordine del linguaggio lo rendono molto meno piacevole.

What is the actual ecosystem of Ruby?, aside from RoR, I have not seen other hyped technologies/frameworks (I've seen RSpec, but I confess being a total noob on what BDD really consists of and its implications).

In realtà ci sono molti altri framework rispetto a Rails: Merb, Camping, Ramaze, Sinatra, ecc. E 'solo che RoR ha subito un sacco di pubblicità.

I've read that Ruby has its limitations when scaling (or is that RoR?, or is that baloney for both?).

Quindi ha PHP. : -)

Personalmente, penso che sia sciocco per Ruby. Quando ridimensionate, in qualsiasi lingua, osservate i colli di bottiglia e lavorateli uno per uno. Da lì, ridimensiona verticalmente e orizzontalmente.

Sostituisci la lingua del tuo animale domestico quando appropriato (non eseguirò un server di chat o qualche servizio finanziario ad alte prestazioni in PHP o Ruby, per esempio). Ma nel complesso nella mia esperienza, il linguaggio non è il nocciolo del problema quando si ridimensiona, indipendentemente da quanto sia lento - l'architettura lo è. (Se il linguaggio fosse al centro del problema, i siti sarebbero scritti principalmente in C, C ++, C #, Java, Lisp, Erlang, ecc. Ognuno di questi ultimi sovraperforma PHP e Ruby di uno o due ordini di grandezza.)

Per RoR, non posso dire. L'ho solo esaminato superficialmente. Capisco perfettamente perché o come RoR avrebbe soddisfatto un grafico o uno studente CS, comunque. Ha insultato tutto ciò che sono venuto a dare per scontato come sviluppatore di database.

In seguito mi sono imbattuto in un lungo rant di Zed Shaw (un ragazzo che ha scritto un server web Ruby), però. Tra le altre cose, egli ha deriso il creatore di Rails per non essere in grado di mantenere in esecuzione i propri server di produzione per più di 4 minuti in media. (Da allora è migliorato.)

    
risposta data 18.06.2011 - 08:21
fonte
2

Francamente le tue domande non mi sembrano chiare, ma cercherò comunque di risponderle.

Would a PHP programmer want to learn Ruby?, I know I do, but conversely, would a Ruby programmer want to learn PHP?.

Senza offesa, ma questa domanda è senza risposta. Dipende davvero da troppi fattori, molti dei quali sono legati alla personalità del programmatore. Risposta facile: certo, perché no? È uno strumento in più per costruire siti web.

What kinds of projects or situations would be better suited for Ruby that are not suited for PHP?.

Per quanto riguarda i progetti, entrambi sono altrettanto adatti (se ricordo bene, Ruby funziona più lentamente, anche se questo è da prendere con un pizzico di sale da AFAIK, lo stackchange è costruito con RoR [Non ho mai leggi i benchmark effettivi]). Una situazione che si adatterebbe una più rispetto all'altra è se si intende utilizzare una struttura particolare, o se la propria squadra è composta da persone che hanno più esperienza in una delle due lingue. Non penso davvero che esista un determinato tipo di progetto che sia "ideale" per qualsiasi lingua specifica. Si riduce davvero alle specificità di ogni progetto (e anche allora le differenze sarebbero sottili).

What is the actual ecosystem of Ruby?, aside from RoR, I have not seen other hyped technologies/frameworks.

Ruby on Rails è una parte enorme del successo di Ruby. Ruby rimase una lingua sconosciuta finché RoR non uscì. Ci sono molti progetti interessanti costruiti su Ruby, ma nulla si avvicina in termini di successo e amp; accettazione da parte della comunità. Ci sono CMS costruiti su RoR che sono abbastanza conosciuti. Lovd di Less per esempio.

Supposing there are a certain type of projects ideal for Ruby, would there be a moment that its better to move it to PHP?.

L'unico caso che posso immaginare è subito dopo la prototipazione con Ruby, se ritieni che PHP possa cedere a uno sviluppo più veloce. Ma una volta avviato un progetto, come intendi "spostarlo in PHP"? Porta tutto il codice che è stato scritto?

Finally and most importantly, would it be sane to maintain projects in two languages?

Se non hai un bazooka puntato alla testa, assolutamente no.
Se intendi mantenere due progetti completamente diversi in due lingue diverse, allora assolutamente. Non penso che andrai mai per un lungo periodo di tempo con la stessa lingua. Ad esempio, salgo costantemente da una lingua all'altra. Ne capisco solo alcuni, ma conosco abbastanza degli altri per uscire da qualsiasi situazione (fino ad ora). Sono libero professionista quindi chi lavora in azienda potrebbe avere un'esperienza diversa. Ma il mio punto è che mantenere diversi progetti in diverse lingue è facile (abbastanza) e divertente.

    
risposta data 18.06.2011 - 07:53
fonte
1

Se vuoi fare lo sviluppo di applicazioni desktop e vuoi usare lo stesso linguaggio di programmazione, allora Ruby (in particolare JRuby) sarà più adatto di PHP. link

    
risposta data 20.06.2011 - 07:26
fonte
0

Durante la lettura tieni presente che sono uno sviluppatore di Ruby on Rails e che rispondo da quell'ecosistema. I miei punti di vista saranno inclinati in quella direzione.

Would a PHP programmer want to learn Ruby?, I know I do, but conversely, would a Ruby programmer want to learn PHP?

Assolutamente no, nella maggior parte dei casi. Non solo perché non mi piace PHP (non lo faccio, ma lo uso), ma perché le serie di strumenti hanno differenze ideali fondamentali. Ci sono molti strumenti come rake e rspec che aiutano con alcuni di TDD nel mondo rubino. Nella maggior parte dei rubini (e certamente i binari) vengono prima i test delle esercitazioni. Questo non vuol dire che non puoi farlo in PHP, è solo che le convenzioni sono diverse. E le differenze convenzionali tra le due lingue sono, in generale, direttamente opposte.

What kinds of projects or situations would be better suited for Ruby that are not suited for PHP?.

Applicazioni desktop, script di shell, app MVC (di nuovo rotaie) e piccole applicazioni console. Non che nessuno di questi possa essere fatto con php, Ruby ha solo un supporto migliore. Quando scrivo un'app Rails (mi dispiace) spesso scrivo uno script in ruby. Ciò consente alla mia implementazione o agli script di installazione di essere nella stessa lingua della mia applicazione, dove con PHP non avrei mai nemmeno provato a scrivere uno script di shell in PHP. Vorrei solo usare bash. Ho scritto app Ruby QT e applicazioni MVC (sia Rails che non) e ruby e le librerie circostanti funzionano "meglio" per quei casi.

What is the actual ecosystem of Ruby?, aside from RoR, I have not seen other hyped technologies/frameworks (I've seen RSpec, but I confess being a total noob on what BDD really consists of and its implications).

Questo è un tipo di equivoco. Il RoR è popolare perché fa bene il suo lavoro, ma ci sono altri strumenti / stack che usano il rubino al loro interno. Sono meno popolari perché stanno entrando in uno spazio che ha già alternative. Io per esempio mi piace scrivere applicazioni GUI rapide in ruby. Ma Python, C #, VB, LISP, etc etc possono già farlo. RoR è stato un punto di svolta. Quindi è popolare. Lo stesso si può dire per PHP, nominare un framework PHP popolare. Ce ne sono alcuni, ma rimuovi i prodotti (come wordpress) dall'elenco e il tuo non viene lasciato con molto.

Supposing there are a certain type of projects ideal for Ruby, would there be a moment that its better to move it to PHP?. I know PHP can handle lots of stuff, but I've read that Ruby has its limitations when scaling (or is that RoR?, or is that baloney for both?)

Questa è una domanda complicata e devi chiedere, quale lingua è migliore per il mio progetto? Non scriverei mai un blog su Rails. So che questo è l'esempio di tutorial standard, ma se vuoi un blog, wordpress è lo strumento adatto. Lo stesso vale qui. Se ti imbatti in un solido esempio di dover passare da una lingua all'altra del rubino, le limitazioni tecniche che dovrai affrontare precluderanno anche il PHP.

Finally and most importantly, would it be sane to maintain projects in two languages?, or is that just stupid. As I said, it looks like Ruby is leaner on the short term and that can make a project happen and succeed, but I'm not so sure about that on the long run.

Ruby è fantastico a lungo termine. Il più grande successo di successo a lungo termine non è la lingua, ma lo sviluppatore. Per quanto riguarda il mantenimento di due lingue, dipende da come si definisce un progetto. Ho alcuni progetti che hanno una pesante applicazione nei binari e un blog o un sito di vendita che usa wordpress / dupral / alcuni php. Li considero progetti separati. Dirò che più lingue finisci per supportare, più difficile è trovare un buon dev che sia valido in tutte le lingue. Ad esempio, io uso e raccomando wordpress, ma non sono affatto vicino come "buono" in PHP come lo sono in RoR. Se un cliente volesse davvero metà del suo prodotto principale in PHP e metà in RoR dovrei davvero capire il motivo, e in base alla sua risposta probabilmente abbandonerebbe il lavoro.

    
risposta data 16.06.2015 - 13:46
fonte

Leggi altre domande sui tag