Source de l'image: pixabay.com

Donc, avant de commencer une guerre froide ici, entre les personnes utilisant Rails (Ruby) et PHP, permettez-moi de vous dire que je ne suis pas ici pour débattre de la meilleure langue. Pour moi, ou pour tout programmeur expérimenté, ce serait la même chose. C'est juste une question de probabilité quant à savoir qui préfère quoi et ce qui est facile pour eux.

Dans ce blog, je parlerais principalement de l'importance des deux et de la façon dont ils diffèrent l'un de l'autre. Donc, si vous êtes nouveau dans Rails et PHP, cela pourrait être le blog parfait pour vous, si vous souhaitez en sélectionner un parmi les deux. Alors, commençons. On y va?

Quelques informations de base

Pour commencer, PHP est un langage de script, tandis que RAILS est un framework de développement web, basé sur le langage de script Ruby. PHP est un langage de programmation largement utilisé pour des sites Web comme Facebook, WordPress, Yahoo, Flickr et bien plus encore. PHP est extrêmement rapide, n fois plus stable que Rails et a même une plus grande communauté de développeurs pour le supporter.

Rails est entièrement basé sur Ruby. Il est extrêmement facile à utiliser et à démarrer. L'environnement dans Ruby est très automatisé. Ruby est vraiment une langue assez incroyable. Contrairement à PHP, il est vraiment orienté objet à partir de zéro. Son code est très concis et puissant. Les gemmes (extensions) vous permettent d'intégrer les fonctionnalités nécessaires. Après avoir codé en Ruby, je trouve le codage en PHP assez fastidieux.

Le bon le mauvais et le laid

  1. PHP

Mon conseil est PHP, parce que l'utilisation de PHP au niveau de base est très facile, il y a beaucoup de gens qui savent copier / coller du code de modèle, modifier les fichiers de configuration et ils pourraient même les appeler eux-mêmes programmeurs PHP, ce qui donne à PHP une très mauvaise réputation que je ne pense pas qu'elle mérite.

Pour un vrai programmeur, peu importe le langage qu'il utilise, c'est ce qu'il code et la façon dont il code qui compte. Après avoir appris quelques langages de programmation, vous comprenez que la plupart d'entre eux sont en fait très similaires, c'est généralement la syntaxe qui est différente (en particulier dans leur mécanisme de base, même pour différents paradigmes de programmation).

La première chose que vous devez apprendre est d'écrire du code propre et lisible et de ne pas écrire de code trop sophistiqué, car il est plus difficile à déboguer et à dérouter pour quelqu'un qui ne connaît pas les astuces spéciales du langage (avec PHP, vous pouvez faire toutes sortes de ruses tout n'est pas évident pour les autres programmeurs).

Par rapport à PHP, Rails est également hostile en ce qui concerne les erreurs. Avec PHP, cela vous crachera des erreurs lors du développement et les messages d'erreur auront un sens. En règle générale, une page s'affiche, mais la partie contenant l'erreur affiche la ligne sur laquelle l'erreur s'est produite et le message est utile. Dans Rails, en général, l'application entière explose.

Je suis désolé d'offenser certaines personnes ici, mais Ruby n'est tout simplement pas aussi simple que PHP pour apprendre. C'est à tous égards une langue extrêmement puissante. J'ai choisi d'utiliser Ruby simplement parce qu'en tant que développeur, je pense que c'est un langage bien meilleur que PHP. Mais d'un point de vue d'apprentissage, ce n'est pas le cas. Ruby possède de nombreuses fonctionnalités qui ne sont tout simplement pas simples à comprendre pour un programmeur débutant. Un de ces concepts sont les blocs, les procs et les lambdas, que Rails utilise beaucoup.

L'exemple classique de Ruby on Rails que j'utiliserai est pour créer un formulaire:

  1. RAILS

Ruby est une programmation orientée objet dynamique et impérative. Il est typé dynamiquement, comme en PHP, vous n'avez donc pas à vous soucier de devoir déclarer des variables. Rails est open source, fonctionne sur plusieurs plateformes et peut être intégré dans Hypertext Markup Language. C'est une langue de très haut niveau. Il offre même l'encapsulation de méthodes de données dans des objets.

Ruby a des techniques de manipulation de chaînes et de texte super avancées qui peuvent être facilement connectées à DB2, MySQL, Oracle et Sybase. Les gros programmes écrits en Ruby sont facilement maintenables. Il a une syntaxe propre et facile qui permet aux nouveaux développeurs d'apprendre Ruby très rapidement et facilement. Il a non seulement la capacité d'écrire des applications multithread avec une API simple mais offre également une classe de tableau avancée et la possibilité d'écrire des bibliothèques externes en Ruby ou C.

Ruby Permet à un «mot réservé» d'être utilisé comme identifiant tant que l'analyseur ne perçoit pas d'ambiguïté. Comparé à PHP, Ruby a de nombreuses fonctionnalités de sécurité et une gestion puissante des chaînes.

Donc, la question de la décennie est… Avec toutes ces fonctionnalités, Ruby offre-t-il une meilleure perspective par rapport à PHP?

Malheureusement, ce n'est pas si noir et blanc, et de nombreuses variables entrent en jeu pour déterminer si PHP ou ruby ​​on rails doit être utilisé pour se développer avec.

Par exemple, Ruby on Rails est un langage beaucoup plus complexe pour configurer un environnement de développement. Par conséquent, les connaissances tacites requises pour Ruby augmentent immédiatement le prix sur le marché de la programmation par rapport au développement PHP. En revanche, un développeur PHP peut simplement utiliser un package conventionnel tel que WAMP, MAMP pour obtenir la configuration de son environnement de développement en moins de 5 minutes.

Quand j'ai commencé à coder en Ruby, les gemmes m'ont plus troublé qu'elles n'ont aidé parce qu'il y avait trop de magie. Une fois que j'ai appris que vous pouviez (et deviez) simplement lire le code source des gemmes, tout avait tellement plus de sens. En raison de la nature enfichable des gemmes et des normes de la communauté, les gemmes peuvent donner à votre application une quantité énorme de fonctionnalités très rapidement.

Quelques joyaux sans lesquels je ne peux pas vivre: Conception (authentification - gère les connexions des utilisateurs, connexion sociale, oublie les flux de travail de mot de passe et bien plus encore), Paperclip (téléchargements de fichiers - gère même le téléchargement vers S3, recadrage / rééchantillonnage d'image), Simple Form rend les formulaires incroyablement simples à standardiser et à rendre sur les sites Web.

PHP a été conçu comme un pré-processeur hypertexte, ce qui signifie qu'il s'exécute uniquement en cas de demande Web. Par rapport à Ruby, qui exécute un processus. Dans Rails, vous pouvez facilement configurer des tâches d'arrière-plan à l'aide de Sidekiq ou Resque. Cela ajoute également à la capacité de Rail à évoluer facilement. Dans nos applications, nous déplaçons beaucoup de choses qui peuvent ralentir les demandes comme envoyer des e-mails aux utilisateurs dans des tâches en arrière-plan.

Maintenant, PHP peut effectuer des tâches d'arrière-plan à l'aide de Gearman, mais ce n'est pas standardisé - vous devez installer l'extension PECL. Dans Ruby / Rails, les tâches d'arrière-plan ne posent aucun problème. Faites-le.

Le remorqueur de la guerre

Maintenant que vous avez lu beaucoup de choses sur PHP et Rails, jetons un œil à la comparaison. Vérifions lequel est au pair en termes d'utilisation des ressources et même en termes de performances (vitesse).

Cours recommandés

  • Cours de certification en ligne en Java Hibernate
  • Programme sur Java Spring
  • Cours de certification WordPress
  • Cours de rubis

Utilisation des ressources et vitesse

En termes d'utilisation de la mémoire, ce sera généralement Python> Ruby> PHP, ce qui conduit bien sûr à Django> Rails> PHP. Pas seulement la mémoire, mais cela a également tendance à tenir pour le rubis brut sur les rails par rapport aux performances php. Il convient également de noter ici que, bien sûr, il n'y a pas d'absolu ici. Il existe de nombreux scénarios d'utilisation dans lesquels Ruby battra Python, haut la main. Je pense que nous pouvons tous convenir que Ruby et Python battront toujours PHP, cependant.

Ma propre expérience est que l'utilisation de la mémoire de Rails peut être élevée, en particulier sur les machines 64 bits (le minimum est d'environ 95 à 100 Mo avec une interface Web aussi fine que fine). PHP a tendance à être utilisé avec différents modèles, il est donc un peu difficile de comparer directement.

Cela étant dit, il est toujours très facile de créer une application Django merdique, lente et inefficace et une application Rails allégée, rapide et efficace, ou vice versa. La compétence, les connaissances et l'expertise du système que vous utilisez feront beaucoup plus pour sa mémoire et son empreinte de performance que le cadre lui-même.

Les optimisations de base de données, les choix de serveur et les architectures (configurations Apache vs proxy utilisant nginx / lighttpd, etc.), et les décisions de conception fondamentales vont probablement submerger assez rapidement les caractéristiques inhérentes au cadre.

Si vous exécutez des benchmarks typiques entre Ruby et d'autres langages, Ruby perd. Ruby ne vous servirait probablement pas bien pour écrire une application de traitement de signal numérique en temps réel ou tout autre système de contrôle en temps réel. Ruby (avec les machines virtuelles d'aujourd'hui) s'étoufferait probablement sur un ordinateur à ressources limitées tel que les smartphones.

N'oubliez pas qu'une grande partie du traitement de vos applications Web est en fait effectuée par un logiciel développé en C. Par exemple Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, de nombreuses bibliothèques d'analyse, RMagick, TCP / IP, etc. sont des programmes C utilisés par Rubis. Ruby fournit la colle et la logique métier.

La question est "POURQUOI PHP alors?"

Parlons maintenant de PHP. PHP fonctionne extrêmement lentement sur le serveur apache. Même si vous essayez d'exécuter une page PHP même sans script, juste une page php vide, le chargement prendra 10 fois plus de temps que les JSP ou Java. Mais encore une fois, la question d'un million de siècle est que si c'est le cas, alors pourquoi Facebook n'a-t-il pas encore abandonné PHP? La raison pour laquelle Facebook n'a pas migré de PHP est que les ingénieurs de Facebook ont ​​réussi à contourner bon nombre de ses défauts grâce à une combinaison de correctifs à tous les niveaux de la pile et à une excellente discipline interne via la convention et le style du code.

Les pires attributs du langage sont évités et le style de codage est rigoureusement appliqué grâce à une culture assez stricte de révision du code (ne pas adhérer au style et «devenir cowboy» en écrivant du code bâclé entraîne des moqueries impitoyables de la part de ses pairs). La direction de l'ingénierie n'a jamais eu à prendre une main forte ici; cela est dû en grande partie aux principaux dirigeants techniques internes qui ont en quelque sorte attiré tout le monde.

Et Facebook n'utilise pas seulement PHP bien sûr. Il inclut également C ++ comme noyau. Donc, pour PHP, utilisez une sorte de cache d'opcode comme APC ou eAccelerator, sinon PHP doit analyser vos fichiers à chaque demande. Pour le réglage général d'Apache, vous devriez faire une recherche sur Google, quelques choses comme la désactivation des fichiers .htaccess viennent à l'esprit mais cela devrait toujours être plus rapide que JSP.

Conclusion

Donc, à la fin, je suppose que ce que je dis, c'est que si vous vous frayez un chemin à travers Rails, vous devriez rester à travers Rails tant que vous ne prévoyez pas de démarrer un tout nouveau projet basé sur PHP et de démarrer une entreprise avec lui.

Articles recommandés

Voici quelques articles qui vous aideront à obtenir plus de détails sur Rails vs PHP, alors passez simplement par le lien.

  1. Guide étonnant sur le développement de Learn Rails
  2. Ruby vs Ruby On Rails - Quel est le meilleur?
  3. Ruby vs PHP-Quelle technologie est la meilleure?
  4. Top 10 des questions d'entrevue PHP les plus impressionnantes pour les expérimentés