Je connais PHP et Ruby.
En utilisant un clone PHP Rails (pas par choix), appelé Symfony, (qui est apparemment le meilleur framework PHP), je remarque que c'est un clone de Rails. Je pense que Symfony est stupide et cela (SensioLabs est une entreprise intelligente) parce que Rails existe déjà.
En dehors des projets open source qui gagnent de l'argent, je ne comprends pas pourquoi les gens font des clones Rails en PHP, alors que Rails existe déjà. Pourquoi ne pas utiliser Rails? Sûrement DHH a codé Rails avec Ruby pour une raison.
En utilisant Symfony, je remarque que quelque chose ne va pas très bien mais je ne sais pas ce que c'est. J'ai appris Rails à travers un ebook Sitepoint merde et l'ai oublié, alors maintenant je l'apprends à travers l'ebook PragProg et j'adore cet ebook. Je ne connais pas bien Rails, mais je comprends comment cela fonctionne (grâce à Symfony). J'aimerais finir de parcourir l'intégralité de l'ebook afin de pouvoir créer des applications 2 Rails. Je me souviens que Rails était plus amusant que Symfony en utilisant l'ebook Sitepoint que je ne pouvais pas terminer, et cela n'avait rien à voir avec la jolie syntaxe de Ruby.
- Pourquoi Rails est-il codé en Ruby?
- Qu'est-ce que les clones de PHP Rails ne vous semblent pas bien?
- Qu'est-ce que fait Rails, que les clones Rails ne font pas?
la source
Ruby on Rails
être implémenté en PHP.Réponses:
Rails a été à l'origine extrait du travail de DHH sur Basecamp, qui a été écrit en Ruby. Au fil du temps, les développeurs principaux de Rails ont continué d'extraire et de développer davantage de fonctionnalités dans Rails, et il est finalement devenu un cadre à part entière.
Depuis que Ruby a grandi en puissance et en expressivité au fil des ans, il a continué d'être un bon ajustement pour le cadre, donc c'est également le langage dans lequel il est écrit. (De plus, "C # on Rails" ou "Java on Rails" ne fait pas pas cette belle allitération.)
Cela ne peut pas vraiment être répondu objectivement, mais c'est probablement à cause de # 1. Le comportement et les propriétés internes de Rails tirent parti de nombreuses fonctionnalités qui existent dans Ruby et seraient difficiles à reproduire précisément ailleurs. Par exemple, PHP n'a pas de métaclasses, dont Rails dépend fortement.
Parce que tout le monde n'a pas le temps, le budget ou l'envie d'apprendre une nouvelle langue juste pour apprendre un nouveau cadre.
Par analogie, s'il s'avérait que Brainfuck avait un framework web très populaire, cela signifie-t-il que vous devriez abandonner vos clients qui n'ont pas écrit leurs applications dans Brainfuck? Ce n'est pas une façon de gérer une entreprise.
Des déclarations comme «Je connais PHP et Ruby» suggèrent que vous ne pouvez pas encore apprécier pleinement la profondeur, la richesse et les particularités de ces deux versions.
la source
Il fut une fois la décision de le programmer en rubis. Cette décision de conception dure jusqu'à aujourd'hui.
C'est un sentiment que vous avez, difficile à dire sur une wesbite comme celle-ci. Vous voudrez peut-être demander à une personne qui est plus intime avec vous et qui en sait plus sur vos sentiments ou même les partage.
Un clone exact de Rails fait par définition tout ce que fait Rails. Cela dépendra donc très probablement de la façon dont un clone a été effectué. Les différentes parties entraîneront un comportement différent. Par exemple, pour une traduction dans une autre langue, l'autre langue peut ne pas avoir de fonctionnalités linguistiques utilisées par Rails on Ruby, ce qui entraînera très probablement des différences de conception, puis de comportement.
la source
Ruby permet beaucoup de méta-programmation, et sa syntaxe permissive vous permet de créer de belles API qui ne ressemblent pas du tout aux appels de méthode.
Par exemple, ActiveRecord, le mappeur relationnel objet de Rail, fait bien ces deux choses. Premièrement, il utilise la capacité de méta-programmation de Ruby pour créer des méthodes à la volée correspondant aux noms de champs dans la base de données.
Deuxièmement, ActiveRecord vous permet de déclarer des associations à des objets: une
Person
puissancehas_many :books
. Ce has_many ressemble à une déclaration, mais c'est en fait un appel de méthode. (Ruby lit ceci commehas_many(:books)
.Ruby a également pour objectif de faciliter la vie des programmeurs expérimentés.
Ruby rend ces choses faciles, donc les gens les font. D'autres langues rendent ces choses plus difficiles, ou des choses magiques comme celle-ci ne font explicitement pas partie de la culture. Django, le méga-framework Python, a beaucoup moins de méta-magie car ce n'est pas aussi facile en Python, et Python en tant que langage penche vers "explicite vaut mieux qu'implicite". (Je ne connais pas grand-chose à la culture PHP ou aux frameworks web de ce côté.)
Je pense que ce sont quelques-unes des raisons pour lesquelles DHH est tombé amoureux de Ruby, et il utilise ces fonctionnalités de langage avec puissance dans Rails.
la source
Pourquoi ne pas utiliser des rails?
Je vais offrir une certaine perspective en tant qu'utilisateur des deux. Je passe mon temps libre en Ruby / Rails et j'utilise PHP exclusivement au travail. (Remarque: je ne rejette pas Ruby / Rails comme un environnement amateur, c'est juste comme ça que je choisis de l'utiliser.)
Beaucoup de gens considèrent Ruby / Rails comme le Saint Graal du développement de sites Web en raison de la popularité et du fait qu'il est «différent». À bien des égards, il n'est certainement pas suffisant de rejeter PHP comme quelque chose d'ancien.
Symfony ne ressemble pas à Rails parce que PHP ne manque pas du sucre syntaxique fourni par rails. PHP s'améliore à cet égard et l'ajout de fermetures de 5.3 a fait une différence dans le nombre d'entre nous qui écrivent du code.
Ne vous méprenez pas, j'aime Ruby et j'aime Rails. Mais lorsque vous ne voulez pas faire face à un hébergement de site Web complexe ou coûteux ou vous soucier des performances ou d'être à la pointe de la technologie, PHP est toujours extrêmement pertinent aujourd'hui et ses cadres sont également très bons.
Votre insinuation selon laquelle les clones de rails PHP ne se sentent pas bien est erronée, je pense, car ce ne sont pas des clones et ils ne seront pas les mêmes que Rails. Apprenez à vous prélasser dans la simplicité et la familiarité d'une solution PHP.
la source