Salut, Lion. Im un développeur de logiciel hybride, designer, commerçant et entrepreneur. Je suis le PDG de Ballistiq. Une société de conception et de développement de logiciels web. Un peu plus sur moi gtgt Ballistiq Web Development Vous recherchez une équipe de développement web fiable et basée en Amérique du Nord qui possède un excellent dossier. Ballistiq fournit des services de conception et de développement sur mesure. Weve a construit des sites et des applications pour les meilleures entreprises, y compris Autodesk, NVIDIA, Gnomon School of Visual Effects, Allegorithmic, Luxion et plus encore. Catégories Ruby on Rails vs PHP 8211 Le bon, le mauvais Note 8211 cet article a été écrit en 2012. I8217ve ajouté un addendum pour mettre à jour l'article avec les dernières pensées le 30 mai 2014 au bas. Je développais avec PHP depuis la version 2 (il y a très longtemps). J'avais voulu entrer dans Ruby on Rails et avait joué avec lui depuis la version 1, mais je n'ai jamais eu la chance de vraiment l'utiliser en production sérieusement jusqu'à cette dernière année avec Ballistiq. Depuis lors, I8217m maintenant codage 8020 Ruby on Rails et PHP, donc I8217ll donner mes pensées sur les deux. Au moment de la rédaction, les versions I8217ll parleront sont PHP 5.3PHP 5.4 et Ruby on Rails 3.2 (en cours d'exécution sur Ruby 1.9.3). Le contexte de ce post est de comparer les deux spécifiquement pour le développement web. Aren8217t vous comparer les pommes aux oranges Rails est un cadre pour Ruby. PHP est un langage et a de nombreux cadres. Qu'est-ce I8217m la plupart du temps la comparaison est mes expériences de travail avec les deux écosystèmes: Framework PHP (il ya beaucoup) vs Ruby Rails (le cadre prédominant). Alors que certains peuvent obtenir accroché au cours de tenter de comparer les deux et peuvent contester le titre de l'article, c'est une question légitime que de nombreux développeurs demandent. Beaucoup de développeurs veulent savoir quels sont les avantages des deux écosystèmes et veulent réellement une réponse claire. De la popularité de l'article via Google, it8217s quelque chose que des dizaines de milliers de personnes demandent réellement. Isn8217t c'est juste une préférence Oui et non. Les deux écosystème PHP et Ruby sont très puissants. Dans de nombreux cas, oui, vous pouvez simplement faire bouillir vers le bas à une préférence. Cependant, il ya beaucoup de points forts pour les deux et it8217s utile de pouvoir les comparer d'une manière à tête de niveau. Je ne suis pas attaché religieusement à l'un ou à l'autre. J'ai utilisé les deux. Mon entreprise travaille avec les deux. Les deux sont ici pour rester et jouer des rôles importants dans l'industrie mondiale de développement web. PHP 8211 La bonne simplicité et la courbe d'apprentissage Ce que j'aime absolument sur PHP est sa simplicité et sa courbe d'apprentissage relativement peu profonde. Lorsque vous entrez pour la première fois en PHP, vous n'avez besoin que d'une seule page Web HTML. Changez l'extension en. php. Jetez dans un code ltphp ici gt en ligne PHP, exécutez-le sur un serveur web PHP et off you go. It8217s vraiment mort simple pour quelqu'un totalement frais pour obtenir quelque chose utilisable fait et déployé en quelques minutes. Cela a été l'une des forces de PHP et pourquoi it8217s si darn populaire 8212 concepteurs et non-codeurs peuvent être productifs tout de suite. Cette simplicité, cependant, a un coût. C'est une épée à double tranchant car elle mène à beaucoup de bâclé, unmaintainable code. Cela amène les gens à utiliser des cadres qui forcent une norme de codage particulière. L'avantage de la simplicité PHP8217s et la courbe d'apprentissage peu profonde est une chose vraiment grande pour elle et cela a des avantages commerciaux aussi: it8217s plus facile de trouver des gens qui connaissent PHP. Si vous regardez autour, les développeurs de Ruby on Rails sont plus chers et plus difficiles à trouver. Les bons développeurs qui connaissent vraiment Ruby et Rails (le L33T) ont tendance à être plus hardcore devs. La documentation pour PHP est également fantastique. Je trouve les docs pour PHP beaucoup plus utiles que ceux pour Ruby et les Guides Rails. Les commentaires des utilisateurs aident vraiment et il ya beaucoup de code d'exemple qui vous montre comment résoudre des problèmes communs. It8217s fait pour le Web Une grande chose au sujet de PHP est qu'il est vraiment concentré entièrement pour le Web. It8217s n'est pas un langage de programmation d'usage général comme Ruby (ou PythonJavaCPerletc.). Beaucoup de ses fonctions intégrées sont spécifiques à la résolution de problèmes web et cela en fait un langage très simple à programmer pour le web. Par exemple. Si vous voulez envoyer un en-tête au navigateur, il suffit d'utiliser la fonction header (). Un hash MD5 ou SHA1 est simplement md5 () et sha1 (). It8217s pas aussi simple à faire avec RubyRails que vous avez à charger dans les bibliothèques et utiliser namespacesmodules pour obtenir les mêmes fonctions. Lot8217s de ressources PHP dispose d'une tonne de ressources, de cadres, d'applications et de bibliothèques pour cela. De CMS8217 comme WordPress et Drupal à des cadres comme Symfony et des bibliothèques comme Doctrine, PHP a vraiment beaucoup de bonnes ressources disponibles. Quand il s'agit de déployer un CMS simple, par exemple, j'ai presque toujours par défaut à utiliser simplement WordPress au lieu de construire une application Rails pour elle. Je pense simplement que c'est une solution beaucoup plus simple. Dead Simple à déployer Le déploiement de PHP est mort simple. Au plus simple, il suffit de transférer les fichiers vers un serveur Web (que nous ne déployons jamais à l'aide de Git à Ballistiq). La chose est, avec PHP vous don8217t ont à connaître ou se soucient nécessairement de la pile Web. De nombreux services d'hébergement utilisent simplement un environnement LAMP (Linux, Apache, MySQL, PHP), aussi longtemps que vos fichiers sont en place, ils courent juste et that8217s. Même en utilisant un framework comme CodeIgniter est relativement simple car vous n'avez jamais besoin d'utiliser la ligne de commande 8212, vous copiez tout le répertoire cadre sur le serveur et exécutez. C'est ça. PHP 8211 Le mauvais son évolution a conduit à beaucoup de mauvais code Ce n'est pas un défaut de fonctionnalité directe de PHP, mais est le résultat d'années et d'années de construction sur un langage de script simple qui était spécifique à la résolution de problèmes Web simples. PHP n'était pas toujours orienté objet. Même quand il a pris en charge OOP, pendant des années ce n'était pas vraiment OOP (manquant des fonctionnalités importantes comme les méthodes statiques), donc les programmeurs ont eu les problèmes à travers toutes sortes de manigances comme l'utilisation de variables globales ou de définir une variable locale en utilisant un pointeur de référence globale. Par exemple. Code typique pré-PHP5 Ce ne sont là que quelques exemples, mais il y en a plus que je n'ai jamais vus ici. Il est malheureux, mais n'est que l'un des effets secondaires de travailler avec une langue qui a évolué rapidement. Une chose qui nous rend fous de Ballistiq est d'aller dans des projets où nous devons mettre à niveau ou maintenir des applications écrites avec PHP ancien. C'est le cas avec l'un de nos plus grands projets où we8217re essayer de mettre à niveau une grande application écrit en code PHP4 et il est horrible. Beaucoup de code bâclé là que nous avons à travailler avec. Meilleures normes de codification conduire à un code vraiment puriste Comme mentionné ci-dessus, le code bâclé n'est pas un défaut caractéristique inhérente de PHP. It8217s juste comment les gens ont utilisé la langue. Comme PHP est devenu plus populaire, it8217s obtenu beaucoup d'influence des développeurs d'entreprise qui prennent une approche vraiment puriste de la programmation. Lorsque vous allez à des conférences et d'écouter ces experts PHP parler des meilleures pratiques, PHP ne devient plus amusant à programmer. You8217re regardant presque un programme Java. Les classes déclarent explicitement les espaces de noms, l'importation des espaces de noms, les méthodes de getter et setter explicites, la déclaration explicite des méthodes publicprivate, etc. Le code devient extrêmement détaillé. Maintenant Si vous voulez voir un cadre qui prend une approche plus puriste des choses, consultez Symfony. It8217s un grand framework PHP that8217s prêt pour l'utilisation au niveau de l'entreprise, mais d'un point de vue du développement, je trouve cela fastidieux. Ruby on Rails 8211 Le cadre de bonne maturité Plus je développe sur Rails, plus je l'apprécie vraiment et l'aime. I8217ve a constaté qu'il nous permet de créer des produits de qualité supérieure pour les clients beaucoup plus rapidement, qui sont plus maintenables. Il est un cadre matures et stable que de nombreuses grandes entreprises sont à l'aise avec l'introduction dans leur environnement. Comparez cela avec l'écosystème PHP qui a de nombreux cadres 8212 il ya un risque de choisir un cadre et de trouver que it8217s juste pas que bien pris en charge dans plusieurs années à partir de maintenant (nous avons fait cette erreur). Speed and Development Joy J'aime absolument travailler avec Rails car, en tant que plate-forme de développement, elle est extrêmement automatisée. Tant de tâches meniales ont été automatisées de sorte que vous vous concentrez uniquement sur la résolution du problème d'affaires au lieu de piratage votre chemin autour d'un cadre. Certaines choses vont vraiment pour Rails à cet égard sont: Génératrices Andain 8211 Fournir un très bon point de départ pour le développement autour. Certains frameworks PHP fournissent maintenant des fonctionnalités d'échafaudage. GemsPlugins 8211 la communauté Rails fournit une richesse de plugins comme Ruby Gems que vous ajoutez simplement à votre projet Gemfile et installez. Cela accélère considérablement le temps de développement et de maintenance car vous ne tentez pas d'intégrer des bibliothèques disparates, il est déjà fait pour vous. Active Record ORM 8211 De tous les ORM8217s j'ai utilisé (pour PHP I8217ve utilisé DataMapper DMZ, FuelKohana, Doctrine), ActiveRecord dans Ruby on Rails est tout simplement le meilleur. Il fonctionne réellement et est remarquablement simple à utiliser. Outils de test intégrés 8211 J'aime ça hors de la porte, Rails a un cadre de test qui peut être utilisé. En PHP, de nombreux frameworks ont récemment essayé d'intégrer PHPUnit, à divers degrés de succès. En tant que langage de programmation, Ruby est vraiment une langue étonnante. Contrairement à PHP, il est vraiment orienté objet depuis le début. Son code est très concis et puissant. Gems (extensions) vous permettent de verrouiller les fonctionnalités nécessaires. Après le codage dans Ruby, je trouve le codage en PHP (ou autre chose vraiment) assez fastidieux. Ruby on Rails 8211 La mauvaise courbe d'apprentissage abrupte Mon boeuf principal avec Ruby on Rails est qu'il a en fait une courbe d'apprentissage abrupte. Ne croyez pas le battage qui dit que c'est vraiment facile. Ils vous montreront des podcasts où vous construirez une application de blog simple en utilisant l'échafaudage et le site instantané de voila. Rien ne pourrait être plus éloigné de la vérité. Rails est vu pour être facile parce qu'ils ont automatisé beaucoup de choses dans le cadre 8212 cela ne le rend pas facile à comprendre. Le développement d'une application Rails et le déploiement de celle-ci exigent que vous connaissiez la pile complète. Avec PHP, vous pouvez simplement cobble ensemble un certain code PHP inline, le FTP à un serveur et vous partez. Dans Rails, vous devez vraiment savoir ce que vous faites depuis le serveur Web (Apache ou NginX), configurer Phusion Passenger et moteur de base de données. Ensuite, vous devez traiter le processus de pipeline d'actifs pour préparer votre application à s'exécuter en mode Production. It8217s pas aussi simple que de l'exécuter en mode de production 8212, vous devez précompiler vos actifs et assurez-vous que les fichiers sont effectivement là. Si ce n'est pas le cas, Rails va simplement exploser et vous devez savoir pourquoi en accédant aux journaux Rails. Par rapport à PHP, Rails est également hostile quand il s'agit d'erreurs. Avec PHP, il va cracher des erreurs à vous en développement et les messages d'erreur font vraiment sens. En règle générale, une page est générée, mais la partie avec l'erreur vous indique la ligne d'erreur et le message est utile. Dans Rails, généralement, l'application entière souffle. Une dernière chose à jeter est que les bons développeurs de Ruby on Rails ont tendance à être polyglottes. Ils sont capables de ramasser et d'apprendre de nombreuses langues. Alors que les débutants se battent pour apprendre juste Ruby, Rails personnes utilisent CoffeeScript au lieu de Javascript, SCSS (ou LESS), et Slim ou HAML. Pour un nouveau venu à Rails, une partie de la courbe escarpée n'est pas seulement l'apprentissage de Ruby et le cadre Rails, mais toutes ces autres langues ainsi Ruby n'est pas une langue facile I8217m désolé d'offenser certaines personnes ici, mais Ruby n'est tout simplement pas aussi simple que PHP à apprendre. C'est par tous les moyens une langue extrêmement puissante. Je choisis d'utiliser Ruby tout simplement parce que comme un développeur, je pense que c'est un langage beaucoup mieux que PHP. Mais du point de vue de l'apprentissage, ce n'est pas le cas. Ruby a de nombreuses fonctionnalités qui ne sont tout simplement pas simple pour un programmeur débutant à comprendre. Un tel concept sont des blocs, procs et lambdas, que Rails utilise lourdement. Le classique Ruby on Rails exemple que je vais utiliser est pour créer un formulaire: Si vous êtes nouveau à Ruby, vous pouvez être pardonné de dire, 8220Wait une minute8230.what8217s f8221 Oui monsieur. Bienvenue sur les blocs. Here8217s un peu d'un exemple extrême: Même en tant que programmeur expérimenté, je suis allé crosseyed en voyant la ligne ci-dessus de code. It8217s très simple en fait 8211 générer une chaîne aléatoire de 8 caractères. Un autre domaine est la programmation meta. Voici un exemple: I8217ve a enseigné Ruby on Rails à des développeurs expérimentés et cela les fait toujours voyager. Qu'est-ce exactement hasone. Hasmany et hasandbelongstomany. Il ressemble à it8217s une sorte de mot-clé réservé ou déclaration car ceux-ci ne sont pas encapsulés dans une méthode. Cependant, dans Ruby, TOUT code est exécuté. Chaque ligne de code est exécutée, donc hasone. Hasmany et hasandbelongstomany ne sont que des méthodes qui s'exécutent lorsque la classe est déclarée. Enfin une autre chose qui rend Ruby difficile pour les débutants est sa syntaxe lâche. Let8217s regarder à nouveau le code ci-dessus. It8217s pas évident (à un débutant) que hasone: l'adresse invoque une méthode parce que les crochets sont manquants de l'invocation de méthode. En PHP, la syntaxe est plus stricte et cela rend plus simple pour les débutants de savoir quoi. Comme une langue, surtout si vous venez d'autres comme CJavaPHP, Ruby est un défi et il va plier votre esprit. Une fois que vous êtes en place et en cours d'exécution, il est fantastique et beaucoup de ceux qui ont pris le saut vraiment apprécier le codage avec elle. Conclusion Donc de tout cela, que dois-je conclure PHP est un point d'entrée plus amical dans le développement web que RubyRails. It8217s plus facile, il ya plus de ressources disponibles et vous pouvez obtenir des résultats rapides. Malgré cela, j'apprécie personnellement travailler avec Ruby et Rails plus que PHP. Pour beaucoup de raisons décrites dans cet article, je sens juste que l'écosystème de Ruby offre un ensemble d'outils supérieur pour développer des applications. Je respecte que les fans die-hard PHP won8217t se sentent de la même façon 8211 that8217s cool. Mon opinion a résulté du travail à la fois avec les langues et les écosystèmes dans la production. Depuis le passage à Rails, I8217ve jamais vraiment ressenti beaucoup d'une envie de revenir à développer avec PHP et donc tous mes nouveaux projets ont tendance à être RubyRails. Chez Ballistiq. Nous développons dans les deux. Si un projet de client a déjà le code PHP existant et que we8217re développe pour cela, ayant besoin d'être intégré au niveau de logiciel, nous restons en PHP. Si un client a besoin d'une nouvelle application, ou si nous construisons notre propre application, utilisez Rails. Addendum 8211 30 mai 2014 Wow it8217s été un temps depuis que j'ai écrit ceci et il continue d'être un article très bien classé sur Google, qui attire beaucoup de trafic. Parce que la technologie avance à un tel rythme vertigineux, je voulais mettre à jour cet article avec quelques nouvelles pensées. PHP a parcouru un long chemin depuis que j'ai écrit cet article Quand j'ai écrit cet article, PHP était dans un peu d'une phase transitoire que beaucoup de gens utilisaient encore PHP 4 et d'essayer de migrer vers 5. Symfony 2 n'avait pas encore été libéré, et Laravel n'était pas une grosse chose. À partir de maintenant, PHP a un peu de renaissance. Voici quelques grandes technologies qui font vraiment briller PHP: Laravel 8211 En tant que cadre, Laravel semble vraiment excellent et beaucoup de gens PHP l'ont choisi comme leur cadre de choix. Je ne peux pas en parler parce que je ne l'ai pas utilisé en production. Mais il a l'air bien. Compositeur 8211 Composer est à PHP ce RubyGems Bundler est à Ruby. Il ne la gestion des paquets qui doesn8217t sucer. Pendant des années, la communauté PHP a dû faire face à Pear, qui n'a vraiment pas beaucoup de traction. PHP web server 8211 Pendant longtemps, développer avec PHP sur votre ordinateur signifiait que vous deviez compter sur un serveur web externe comme Apache. De nombreux développeurs ont fini par installer MAMP. À partir de PHP 5.4, PHP est maintenant livré avec son propre serveur web de ligne de commande, et it8217s vraiment remarquablement facile à démarrer. Maintenant, tout ne fonctionne pas avec le serveur Web de ligne de commande (j'ai eu du mal à obtenir WordPress pour démarrer avec elle), mais si vous développez avec un cadre qui supporte cela, it8217s une façon beaucoup plus agréable et plus sain de se développer. Codieption 8211 L'un des membres de notre équipe de Ballistiq a fait un très bon discours sur un framework de test appelé Codeception, et je dois dire que ça a l'air décent, en soutenant des choses comme les tests Selenium et BDD. HHVM 8211 Opensource projet mené par Facebook, cela prend PHP et le compile à bytecode qui à son tour est traduit en code machine x64 et fonctionne très vite. C'est un projet très intéressant qui rend PHP hautement performant et évolutif. Donc PHP isn8217t s'en va de sitôt. Beaucoup de gens l'utilisent et le mettent à bon usage. Cependant, je (et de nombreux ingénieurs Web) ont évolué. En tant qu'ingénieurs, nous aurons tout ce dont nous avons besoin pour faire le travail, cependant, par choix, je n'arriverai pas à un nouveau projet en PHP. Pourquoi je pense qu'il ya des solutions plus intéressantes là-bas qui méritent d'être regardées. Pourquoi j'aime toujours Rails comme cadre et Ruby comme langue Comme je l'ai mentionné en 2012, j'ai vraiment apprécié travailler avec Ruby et Rails. En dépit d'une courbe d'apprentissage abrupte, après un certain temps, j'ai frappé un sillon et maintenant les applications que nous livrons sont si bonnes que je peux imaginer revenir en arrière. Voici quelques-unes des choses qui vont pour RubyRails que je me sens vraiment faire un choix si fort: Gemmes 8211 Lorsque j'ai commencé à coder dans Ruby, Gems m'a confondu plus qu'ils ont aidé parce qu'il y avait trop de 8216magic8217. Une fois que j'ai appris que vous pourriez (et devrait) juste lire le code source pour les pierres précieuses, tout a fait beaucoup plus de sens. En raison de la nature enfichable de pierres précieuses et les normes community8217s, pierres précieuses peuvent donner à votre application une énorme quantité de fonctionnalités très rapidement. Quelques pierres que je ne peux pas vivre sans: Devise (authentification 8211 gère les connexions utilisateur, connexion sociale, oubliez les workflows de mot de passe et bien plus encore), Paperclip (fichier télécharge 8211 même manipule le téléchargement vers S3, image croppingresampling), Simple Form rend les formes incroyablement simples À normaliser et à rendre sur les sites Web. Moteurs montables 8211 Nous avons fait un projet gigantesque pour une entreprise du classement Fortune 500 où, après avoir construit l'application initiale, il a eu tellement de succès que d'autres ministères voulaient la même application, mais avec des fonctionnalités légèrement différentes et une interface utilisateur différente. Plutôt que copypasting l'application et avoir à soutenir plusieurs codebases, nous avons été en mesure d'extraire la plupart des fonctionnalités de base dans un moteur montable Rails, et ont littéralement une base de code mais plusieurs sites Web. Le client était absolument ravi de cela et c'était une énorme victoire pour nous. Scaling 8211 Rails a le stigmate d'être incapable d'escalade et ils se réfèrent à Twitter déchargement Rails. Nous n'avons pas trouvé de problèmes d'échelle avec Rails et nous avons des applications qui fonctionnent avec des millions de pages vues et des centaines de milliers d'utilisateurs chaque mois. Le fait est, la majorité d'entre vous n'aurez jamais les problèmes d'échelle que Twitter avait. And8230en fait, nous avons trouvé plus facile à l'échelle avec Rails que avec PHP. Comment Tout d'abord, Rails prend en charge la mise en cache hors de la boîte. You8217re capable de visualiser fragment de mise en cache dans votre code d'application et d'utiliser Redis comme un magasin de cache. C'est une solution beaucoup plus simple que d'essayer d'utiliser Varnish qui met en cache tout ce qui le traverse et laisse les utilisateurs connectés sans mise en cache. L'utilisation de la mémoire cache Rails intégrée nous a permis d'augmenter facilement. Deuxièmement, Rails Capistrano Chef rend très simple à l'échelle à plusieurs environnements serveurs très rapidement. Notre infrastructure Amazon standard AWS inclut Elastic Load Balancer, plusieurs instances de serveur d'applications, un serveur redissearch, soutenu par une instance de base de données RDS. Nous avons configuré l'approvisionnement de serveurs avec Chef, ce qui nous permet de fournir une nouvelle instance prête à l'emploi en quelques minutes. Un déploiement simultané complet avec des migrations de données peut être effectué avec Capistrano à partir de la ligne de commande. Littéralement, je tape dans le déploiement de la production de la PAC: les migrations et tout est magiquement déployé à tous nos serveurs d'applications. Les utilisateurs don8217t voir tout temps d'arrêt comme nous avons Phusion Passenger Enterprise et redémarre redémarre. Travaux en arrière-plan 8211 PHP a été conçu comme un pré-processeur hypertexte, ce qui signifie qu'il s'exécute uniquement lorsqu'il existe une demande Web. Comparé à Ruby qui exécute un processus. Dans Rails, vous pouvez facilement configurer des jobs en arrière-plan en utilisant Sidekiq ou Resque. Cela ajoute également à la capacité Rails8217 à l'échelle facilement. Dans nos applications, nous déplaçons beaucoup de choses qui peuvent ralentir les demandes telles que l'envoi par courrier électronique d'utilisateurs en arrière-plan. Maintenant, PHP peut faire des travaux de fond en utilisant Gearman mais that8217s pas standardisé 8211 vous devez installer l'extension de PECL. Dans RubyRails, les travaux en arrière-plan sont un non-problème. Vous n'avez qu'à le faire. Rails est BORING 8211 Rails est maintenant à la version 4.x. Il est un cadre mature. It8217s ennuyeux maintenant. Les enfants cool vantent NodeJS de nos jours. Rails est ennuyeux car it8217s robuste et stable. We8217ve développé des applications dans Rails maintenant pour certaines des plus grandes entreprises world8217s et les gens dans leurs services informatiques don8217t bat une paupière. It8217s sait que it8217s un bon choix pour construire votre (robuste, entreprise-prêt, évolutif, performant) sur l'application. D'autres technologies que je pense sont en train de façonner le Web AngularJS 8211 Nous avons présenté AngularJS dans nos projets de client plus tôt cette année pour deux compagnies Fortune 500 et c'était une victoire énorme. AngularJS vous permet de créer des applications d'une page qui s'exécutent en Javascript. La plupart de votre logique front-end va dans AngularJS, et votre backend tout simplement parce qu'une API qui sert JSON. Pour ce faire, nous avons pu créer des applications hautement performantes. L'expérience de l'utilisateur est très bonne avec cette approche parce que les pages chargent extrêmement rapidement que le navigateur n'a pas à faire une demande de voyage aller-retour complet. NodeJS 8211 J'ai commencé à développer dans NodeJS il ya quelques mois et il a soufflé mon esprit. Ce que NodeJS est très bon pour la construction d'applications en réseau. Par exemple. Si vous construisez une application de chat en temps réel, vous pouvez utiliser NodeJS pour cela. En raison de la maturité de Rails, je ne pense pas que nous allons quitter rapidement pour construire de grandes applications, mais pour ajouter des composants en temps réel, j'utiliserais NodeJS SocketIO. Alors, que devriez-vous faire Le développement Web devient incroyablement complexe. Les jours d'un seul développeur capable d'expédier une application complète du début à la fin deviennent plus difficiles. Même front-end ne peut plus être manipulé par un seul concepteur hybride designer qui peut hack CSS HTML balisage. Si vous venez de commencer, je recommande toujours de commencer par PHP. Vous obtiendrez des résultats beaucoup plus rapides, et cela alimentera votre croissance et vos connaissances. Sauter dans RubyRails que votre langue maternelle pourrait vous laisser vraiment frustré d'essayer d'obtenir des résultats 8211 souvenez-vous, avec Rails, vous devez connaître la pile complète donc it8217s pas seulement la langue et le cadre you8217re contestée avec. Une fois que vous êtes à l'aise avec la construction des applications sur mesure en PHP, vous pouvez alors aiguiser votre appétit et commencer à utiliser d'autres technologies comme RubyRails et même NodeJSExpress, et you8217ll apprécier ce que ces technologies offrent. Beaucoup des concepts que vous apprendrez de PHP dans des frameworks tels que Symfony amp Laravel seront reportés sur d'autres langages et frameworks. Une autre raison pour laquelle je recommande PHP comme un excellent point de départ est que it8217s très utile de savoir afin que vous puissiez pirater sur des choses comme WordPress thèmes et plugins. WordPress est si largement utilisé aujourd'hui dans les entreprises (spécialement les départements de marketing) et it8217s grand à avoir des logiciels polyglots qui peuvent travailler avec de nombreux outils et plates-formes différentes. La chose que vous devez réaliser est que le Web n'est pas sur la langue que vous choisissez de développer avec 8212 it8217s sur les normes et ce qu'il faut pour obtenir des informations dans et hors du navigateur Web. Il doesn8217t importe ce qui est sur le serveur, tant qu'il crache en HTML et les données JSON droite 8211, vous pouvez utiliser C pour tous les soins. That8217s pourquoi il ya tellement de technologies web de PHP à Ruby à Python à. Net à Java et Gosh Perl est encore utilisé (j'ai rencontré un gars qui a écrit une application Shopify entièrement en Perl). Alors vous y allez. Keep on hacking Vous pouvez faire n'importe quoi en PHP que vous pouvez dans Rails et vice-versa. That8217s assez pour moi de coller avec PHP. En ce qui concerne Rails étant plus rapide à déployer, je doute vraiment. Il n'y a pas beaucoup de temps qui peut être sauvé en PHP par rapport à une autre langue avec les frameworks existants que j'utilise déjà (à moins bien sûr, nous construisons AI pour lancer le code de programmation). Bon article. Je suis totalement d'accord parce que I8217ve a eu la même expérience provenant d'un arrière-plan PHP sur RoR. I8217m juste content I8217m pas le seul qui pense que l'apprentissage Rails est difficile. J'essaie toujours d'obtenir ma tête autour de Coffeescript. Je voudrais offrir quelques conseils aux lecteurs, une très bonne façon d'apprendre Ruby et Rails est de faire le cours SaaS gratuit de Edx (edx. orgcourseuc-berkeleycs-169-1xsoftware-service993). Non seulement vous apprendrez Ruby on Rails solide, mais vous apprendrez de bons aspects de l'ingénierie et finir avec un certificat de Berkeley University ainsi Autre que cela, je peux recommander le Ruby on Rails Tutorial 2ed par Michael Hartl. Et Head First Rails (O8217 Reilly). Rappelez-vous, plus vous donnez RoR une chance, plus vous allez adorer. Grande écriture. Im plus d'un gars javascript qui utilise occasionnellement php pour le côté serveur. Depuis nœud est venu, a commencé à utiliser javasript sur le côté serveur aussi. Beaucoup d'outils cool que j'utilise comme Jekyll, Sass et la boussole sont écrits en Ruby, donc j'ai toujours été tenté d'apprendre ruby. J'ai observé beaucoup de mes collègues se déplaçant à Ruby ou Python parce qu'ils estiment qu'être un programmeur php ne reçoit pas le même respect. Grand, article équilibré Leo, merci de ne pas hyping l'un ou l'autre et restant objectif sur votre expérience. La complexité du déploiement de RoR me concerne, alors que j'aime les autres aspects. Bon article. Im à la fois PHP et Ruby on Rails programmateur. Je choisis Rails parce que contrairement à PHP, il ya trop de choses à étudier en fonction de vos besoins. Beaucoup de cadre et cms. Alors que Ruby, rails est tout ce dont vous avez besoin. Vous pouvez faire des applications d'échelle. Très utile, Leo. I8217ve été plonger mes orteils dans le développement web pour les six derniers mois et ont travaillé principalement avec PHP, cependant Ruby on Rails est le prochain sur ma liste de langues. En tant que développeur Web expérimenté, pourriez-vous suggérer que je continue avec PHP et passer à Rails après avoir une certaine expérience Ou sauter à droite dans Rails Salut Michael. Je pense qu'il est utile de connaître les deux. Certainement dans le climat actuel une connaissance de Rails vous obtiendrez un emploi très rapidement car il ya plus de demande et moins de concurrence. Si vous êtes complètement nouveau au développement web, je pense que PHP est un meilleur point de départ parce que vous obtiendrez des résultats plus rapides, ce qui vous incitera à continuer dans le développement web. Je ne peux pas assez souligner comment les petits succès se construisent les uns sur les autres. Vous pouvez construire une bonne application MVC personnalisée en utilisant rapidement quelque chose comme CakePHP ou CodeIgniter. Lorsque vous vous déplacez vers Rails, I8217d conseille de ne pas apprendre Rails en premier. Apprenez Ruby en premier et essayez d'utiliser un cadre comme Sinatra pour commencer. Mon raisonnement est que Rails a trop 8220automagic8221 ce qui rend très difficile de comprendre ce qui se passe sous le capot. Si vous ne comprenez pas ce que Rails fait sous le capot et que vous ne savez pas comment chercher le code source de Rails et le comprendre, le débogage de vos applications peut être très long et frustrant, surtout pour un débutant. Merci pour la réponse utile Leo Je suis certainement d'accord que l'apprentissage du Ruby est super important avant de sauter dans Rails. There8217s certainement beaucoup à apprendre pour moi encore, mais I8217m super excité et motivé par chaque petit succès. Cheers Couldn8217t d'accord plus. Comme un plus nouveau Ruby et RoR dev, il a été instrumental que j'ai appris Ruby premier. Alors que RoR est Ruby à sa base, il gère beaucoup de tâches rudimentaires pour you8230, donc, Rails 8220Magic8221. Si vous n'avez pas une compréhension décente sur la façon d'utiliser Ruby sans cadre web, ce qui se passe sous le capot va absolument vous frustrer, surtout quand il s'agit de débogage ou même de comprendre ce que le toolmethod droit est pour le travail. Grand article, Leo I, comme la plupart des autres, apprécient la représentation juste et équilibrée des deux langues et leurs cadres respectifs. Ou des caractères (8216a8217..8217z8217).toa Array. new (8).join La première langue que j'ai jamais appris était Turbo Pascal. Puis Java. Le premier langage de programmation web que j'ai appris était PHP. Très instructif. I8217m nouveau à la programmation et je regarde à la fois PHP et Ruby comme des langages côté serveur (I8217ll décider lequel aller avec une fois I8217m dans un peu plus). Je suis d'accord que PHP est plus facile de ramasser 8216off de la bat8217, mais il est très difficile de trouver des tutoriels de bonne qualité ou des conseils là-bas. It8217s ridicule vraiment voir comme it8217s été autour pendant si longtemps. D'autre part Ruby a une courbe d'apprentissage abrupte (bien que l'apprentissage de PHP en tandem semble m'avoir aidé à le comprendre), mais les ressources pour l'apprentissage qui sont là-bas sont à la fois plus faciles à trouver et un tas de mieux. Code de l'école, par exemple (check it out si you8217re nouveau au développement) est une ressource fantastique8230 mais doesn8217t même toucher PHP. Je vois Ruby comme la langue des SS de l'avenir. Je travaille sur Ruby sur les rails. Utilisation de Ruby sur rails pour construire des codes solides de la roche ainsi la qualité des sites Web qui seront faciles à entretenir par la suite. Ruby on Rails est également bien connu pour sa convention de codage, ses pratiques Agile et sa force de sécurité. Mais il est utile de connaître à la fois Nice article. J'ai été en train d'entrer dans le développement web avec Rails au cours des derniers mois et it8217s agréable de voir que I8217m pas seul dans ma conviction qu'il est tout simplement isn8217t très intuitive. La comparaison est en effet comme les pommes et les oranges, mais il est utile quand on considère quelle zone de se concentrer sur l'étude. I8217m actuellement ramasser expérience de l'industrie avec Rails, mais hésitent à s'engager à aller le mile complet dans cette zone parce que la courbe est si raide, et je don8217t savoir si je veux être un dev Rails. Bon article. Je me sens exactement de la même façon. Après gt10 ans php et Java, j'ai appris à aimer ruby. Et la tranquillité d'esprit que rails me donne dans un projet stressant. Blindly savoir où mettre le nouveau code, même après 12 heures de codage à 4 heures du matin. Mais je déteste vraiment la complexité que vous avez mentionnée concernant la configuration de l'infrastructure. Certaines personnes apprécient que 8211 je don8217t. Live est trop court pour de telles tâches stupides. Je me demande toujours pourquoi can8217t les gens RubyRails parviennent à créer une routine de configuration that8217s aussi facile que php Pourquoi dois-je lutter avec Ruby version gem version Mac OSX incohérences version de 2 jours avant le serveur rails sera exécuté la première fois Grmpffff8230. En fait, vous n'avez pas 8220fight avec8221 versions. 8211 Ruby versions: Généralement géré par rbenvrvm et al. (Rbenv est officiellement recommandé par Rails 8211 rubyonrails. orgdownload). Si votre Ruby natif satisfait la version Ruby requise par le projet en cours (par exemple, 1.9.3 pour Rails 4, 1.8.7 pour Rails 3.2), vous êtes bon et vous n'avez pas besoin de ces outils. But if you are doing client work, or even experiments (e. g. your main project is Rails 3, you are experimenting onplanning on switching to Rails 4) you8217ll need multiple Ruby versions running simultaneously in the same machine. You can use Vagrant et al. but that can8217t beat having it in your base OS. Rbenvrvmetc makes this possible only with a few lines of commands. You can say that one can just use the latest possible Ruby, but it doesn8217t always work like that (compatibility problems etc). Now try that with PHP. There are PHP version switching tools but they were nowhere near maturefull-fledgedeasy-to-use as rbenvrvm last time I checked. 8211 Gem versions: Seriously Show me a single languageframework with a packagedependency manager that doesn8217t involve version numbers (e. g. PHP8217s composer, Python8217s PIP, Closure8217s Leiningen, Java8217s Maven) Ever heard of DLL Hell 8211 Mac OSX: I8217m an Ubuntu user but I8217d be surprised if you can8217t get anything related to RubyRails working in MacOSX, seeing that most Rails developers are using Macs. 8211 You need to to install rbnevrvm on a machine only once. After that, you can install any version of Rubies and Gems in a matter of minutes. And with Heroku, you can see your thing in interwebs in seconds. And you have proven deployment tools like Capistrano which works for any empty Linux box. Yeah, PHP shared hosting is really ubiquitous (in most of which you still can8217t reliablysecurely run modern PHP frameworks), but here the scopes are really different. 8230from a long time PHP user who is busy switching to Laravel 4 and Rails 4 at the same time in production projects for the last 1-2 months. I8217m just finishing up a big L4 project and about to get started with ROR myself. hi leonard I am from India this article is very useful I want some suggestions on building a big eCommerce website. I have a good experience of making website in asp. net, asp. net Ajax and sql server 2008. Now I am thinking about moving from Microsoft (because of cost). Please help me choose between php(plain),php with mvc framework, django (not rails because of steep learning curve and updating the website after the host has updated the version).I have no experience on any of the above three. and I will develop alone and I want to cost to be on lower side. Any help would be useful Thanks for this article. As a programmer who8217s been out of the loop for a while (no pun), I had suddenly been preached to about RoR by kids who had never been across other languages. as if RoR was the be all and end all. Your article clarifies all the pros and cons very objectively. Much appreciated. As a would-be programmer starting out and slightly overwhelmed with all the languages and pressure with choosing one: really interesting article. Thanks Thanks for this Article. I8217m using PHP (Laravel framework) for development and Codeception for automate testing. Should I try RoR I8217ve heard that RoR have testing amp deployment tool which help us saving time a lot. Do you have any recommends for me. Thank you in advance We can not compare a programming language with a framework for a programming language. If you don8217t get this then you must start to learn again. A very well considered, helpful and well written article. Thank you Leo. Just read your article. I started my developing 8216career8217 in ASP. NET webforms, which was quite easy and then switch to MVC with scaffolding, razor, nuget, entity framework, jquery, etc. It seems to me that Microsoft8217s stack is well-build and although I found it hard to learn MVC, it all fits together. Maybe they have 8216stolen8217 all good ideas from other frameworks and languages but they combined them very well and build a great IDE. So why does no one use it these days I read a lot of articles about what framework and language is the best, but they never compare it to ASP. NET. Is it 8216just8217 because it8217s Microsoft The best article i8217ve ever read about ruby n php. Thanks for this Meanwhile, in Morocco: Hi. I loved your blog and it helped me a lot. Thank you so much I wanted to ask you one thing My first Rails app is a mobile app that will start with almost 1 million users (from another app my company is buying) and also a web application, like Facebook that you use in the browser and on your iPhone. I don8217t know how many nodes I can start with and I can8217t find a lot of information online. We have one server (16 GB RAM) I am using to test load balancer, database replication I can create as many VPS in the server as it fits in this server. I don8217t know if 16 GB will be enough for 1 million users but I created 6 nodes for staging (and learn): 8211 one with Nginx for load balancing (512MB) 8211 two with Unicorn for the Rails application (1GB each) 8211 two for MySQL (one master, one slave, but I still have to learn how to make Rails read from slave and write in the master, 2GB each) 8211 one for files (512MB shared via NFS with the load balancers and apps, where paperclip will write). The database will have a lot of writes. What architecture configuration you recommend Am I too wrong I used small RAM because I will use more for production but I don8217t know if 6 nodes is enough or if 16 GB will be enough. Can you help me Thank you 1 million users who are logged in, or 1 million users per month who are mostly just browsing the site Also, is the Rails application going to just be for an API or will it actually deliver the pages It also depends on the memory footprint of your application, if it is large or not. 1. 16GB is not likely enough for 1 million users if it is a reasonably sized application, and for that number of users I wouldn8217t put everything on a single server anyway. I8217d load balance across 2x 16GB (or 32GB) servers, quad cores minimum and scale from there. Remember, Ruby applications tend to bloat with lots of gems that you load in. The typical way to scale is to get as much memory as possible and run as many concurrent processes as you can in memory. 2. I would not use Unicorn. It is flaky and consumes a lot of memory. For that kind of scale, I would use Passenger Enterprise. If you want to be cheap and not pay for the Passenger license (which is worth it), you can use Puma. 4. Cache, cache, cache. Have one server just for Redis and cache the hell out of your application: guides. rubyonrails. orgcachingwithrails. html 5. Move slow processes into Sidekiq for background processing. Merci beaucoup. It is 1 million users registered but usually 20,000 to 300,000 concurrent connections. And it8217s HTML and JSON, depends of the extension. We want to grow, of course, so need to be ready to more. I thought Unicorn was the best. I was using memcached but I will try Redis. Thank you very much again. It was hard to find something online explaining how much memory and how many servers in the load balancer and things like this. Just think about this: if Facebook was done in PHP, which is probably the most robust and used web application in the planet, you don8217t need to be a very smart person to realize php is far from being a bad programming language. in fact, PHP in the next 5 years will become the definitive best web programming language on top of every other one by far. Why Because its syntax is more human readable. The only reason why RoR is so trendy, is because it did very cool stuff a few years ago not available in php. But php is getting better day by day, frameworks like laravest are getting tremendous attention, and even bringing back old php users who are dropping RoR and coming back like prodigal sons. Yes, RoR deserves the credit of pioneering MVC and many other things, but it lacks the beauty and simplicity of C syntax, which will reign forever and ever. There8217s a lot of hype regarding RoR, most people try RoR just because they want to feel trendy and cool, one of the reasons most hipsters use it. Don8217t be a victim of the phenomenon. PHP is not a trendy thing, PHP, without all the noise and propaganda, still dominates the web. Juan David Pasts Rivera Another alternative is Meteor, which is great, is a framework on top of node js, is the one I like the most from all that I have tried: derbyjs, deployd, sails, express, from what I remember. Even when it8217s not comparable with Angular, Meteor supersedes it since you have 2 way data binding and backend logic at the same time and written in JavaScript, also you don8217t have to learn ng attributes. PHP has Facebook as a great representative, but its syntax is not as simple as you can get with Meteor and preprocessing packages. Anyway, scaling is always another whole story, it8217s a huge work which can be done in all languagesframeworks, I am not sure in which of them is easier though. If that8217s so then why does nobody choose to write apps in COBOL or BASIC anymore Why would you choose CoffeeScript over Javascript Why has Apple created Swift when people can just as well use Objective-C Why does it take a non-speaker on average twice as long to learn Russian compared to Italian To say it8217s all about preferences and claim that somehow all languages are equal is pretty naive. I like Php spent a lot of time learning it built most projects in Php and will continue doing so. The only reason I8217m learning ROR now is because I get tons of job offers some remote. I look at it this way freelance jobs I8217m using Php. Contract long term company jobs ROR I guess. I8217m currently in between angularjs now because at my company we wanted to try this out with Ruby as the backend. So imagine the steep learning curve I8217m going through for both of these languages Ruby and AngularJS at the same time. In Pokemon Contest houses, you may enter your Pokemon into a contest for a chance to win a medal. However if you enter without any Porok level ups, you will have a very low chance of winning. The way to raise this is to go out and find the trees with berries on them, then press A. You will then receive 1 to 4 berries. If you now go to a Pokemon House, you will see small gray machines on the right. The empty one on the top is for multi-player. For now, find a house in a city that only has a man at the bottom. Go to the other side of the machine and press A. You will then be asked to pick a Porok (berry) and throw it in. The spinner will come down and start moving. The objective is to press A just when the spinner hits your arrow: Circle Within A Circle: Direct hit (much faster) Circle: Near hit (slightly faster) X: Miss (slower) The faster you (and your opponent) get the spinner moving, the better. Once the meter at the top hits the end, it is over and the results and the fastest RPM the spinner was moving will appear. You will then receive a Blended Porok. The level of it depends on how fast you got the machine going. The average appears to be 11. Next, open your Special Items Pocket and go to your Pez dispenser type item (which you must have to play the game -- it is obtained from the girl in the first contest house). You will then pick a Blended Porok and feed it to a pet, making one of his Pokemon Contest stats (viewable in the Poke-Navi) go up. Some can even raise multiple stats. The more you do this, the better chance you have of winning. Recommended starting Pokemon The best type of starting Pokemon (in order) are: Water, Grass, and Fire. Torchic proves to be the best as you get farther in the game, but proves to be difficult in the beginning. Mudkip is strong in the beginning, but weaker against the Elite Four. Mudkip is a good choice if playing Pokemon Ruby. Treeko is somewhat neutral, but is best to choose if playing Pokemon Sapphire because of Team Aqua. Recommended moves for Blaziken or Cumbusken If you have a Combusken or Blaziken, the best moves for it are Ember (can replace with Flare Kick if desired), Double Kick, and since it is able to learn a Bird type move, Steel Wing or any other powerful TM flying based move. Also give it an HM (preferably Cut). Use the following steps to capture the three mysterious Pokemon called the Regis. Go to the southeast part of Route 134 and dive into the water. It is difficult to get to due to the currents, and it is the only deep part of that route. You will find a cave. At a part of the cave, there are some Brail writing on the wall. At that point, float to the top of the water, where you will end up in a cavern. Go into the last room by going forward, use Dig, and in the next room you must do something strange. Put a Relicanth in the front of your party, and a Wailord at the last place. Walk to the top of the room and read the Brail. You will trigger an earthquake, which will unlock the Regis. You can fish up a Wailmer to evolve at level 40 at Route 122, and find a Relicanth outside Sootopolis in the underwater grass (rarely, but it is there). To find Registeel, you can access a volcano in the southwest region of Route 120. Enter it, then move towards the center of the room. Use Fly to find Registeel. To find Regirock, fly to lavaridge, bop down the mountain, and enter the desert. In the southern part of the desert, you will find a cavern. Enter it, then walk up to the center tile at the top of the room. Go three steps down and two steps right. Use strength to open the passage to Regirock. To find Regice, in Route 105, there is an island on the west side that has a mountain on it. Go there, enter, and stand in front of the tile. Press A, read it, press A again, and do not do anything else. The door will open after twenty seconds, and the last Regi is yours. You never have to use the Master Ball to catch all the legendary Pokemon. You can catch them all with about 60 Great Balls. However, you might need to use a Master Ball against the last one in the tower. Once you are able to track down Sharpedo in your Pokedex, do whatever is necessary to capture it. It is an excellent WaterDark Pokemon that already knows Crunch, Darks most powerful attack. His speed is incredible and will be of great use later in the game. In order to do this, you must Have waterfall, Surf Pokemon at least level 35. AquaMaga will steal the meteorite. However, there is more for the Meteor Falls. Go deep into the cave. Use Waterfall on the fall. Go through the cave and find TM 02. Go through the tunnel by the cable cars that lead to Mt. Chimney. Then, go right until you can go up. You will find a person looking at a sort of pine tree. Talk to him to receive TM43 or Secret Power. You can now make secret bases. After you unlock the three rare Pokemon, the Pokemon in the cave on the road after the town with the tree houses, the hidden messages is With new time Hope and love Aim to the sky in the middle. Buy at least ten Pokeballs and you will get a free Premier Ball. Press B on a bike to pop a wheelie. Without a bike you will run. Bike bunny hops Get the Acro Bike and hold B without moving the D-pad to bunny hop. Mach BikeAcro Bike abilities Once you reach Mauville City, there is a building called Rydels Cycles. Go inside and talk to Rydel. Once he learns that you have walked from Littleroot Town to Mauville City, he will give you a bike to ride. There are two bikes that you can have -- the Mach Bike and the Acro Bike. The Mach Bike can go fast, but has very bad handling. It is used for riding up sandy slopes and for speeding past crumbling floors in some caves. The Acro Bike is the one you can do tricks on. It does not go as fast as the Mach Bike, but has very good handling. You can hold B while riding to do wheelies, or stop and hold B to do little bunny hops. You can also tap B D-pad in any direction to take little jumps. This bike is used for getting across narrow, white rails that span some rivers. First, try using Kyamome or a WaterGrass starter. Then, try WaterFire starter Grass at level 20 to 25. Finally, try Sandshrew with lots of Ground attack. If you chose Torchick as your first Pokemon, you will soon find out that the first Gym Leader will be difficult without the proper Pokemon. When you reach the first beach area (next to the forest entrance), try to catch a Wingull. Then while in the forest, spend some time to level it up and your Torchick. Get the Wingull to at least level 10, and the Combuskin to about level 16 to 18. You can now take out the three Geodudes the Leader has with the Wingulls Water-Gun, and use the Combuskin as backup. Defeating your Rival When facing your rival at the start that has Treecko, use a level 6 Wurmple Mudkip use a level 7 Silccoon or Cascoon Torchic use a level 5 to 6 Wingull. Wingull can be found in Route 103. Wurmple can be found in Route103. To get Cascoon or Silccoon, evolve Wurmple at level 7. This is a useful item with multiple functions: Map: This will display a map of Houen. You can move the pointer with the D-pad and can also press A to zoom in. Poke-Info: This will display information about your Pokemon stats. These may show how much of a chance your Pokemon has of winning a Pokemon Contest. These can be raised with Poroks (the berries). Trainer-Dex: This will show information on all of the trainers you have fought. Hall Of Fame: After defeating the Elite 4, you can see your Pokemon that defeated them in the Hall of Fame. HM 01 (Cut): Cuts down small bushes. Found inside the house to the left of the Pokemon Center in Kanazumi City. HM 02 (Fly): Can fly to cities: Found in the town with the sixth Gym. HM 03 (Surf): Can Swim. Found in the house left of the fourth Gym. HM 04 (Strength): Allows you to push some rocks. Found in the town with fourth Gym. HM 05 (Flash) Lights up dark areas. Found in the cave on the island with the second Badge. HM 06 (Rock Smash): Smashes some rocks: Found in the house to the left of the third Gym. HM 07 (Waterfall) Allows you to climb waterfalls. Found in the cave with the Legendary Pokemon in Rune. HM 08 (Dive): Allows you to submerge under the ocean. Found in Tokusane City after beating the seventh Gym. Pokemon that cannot be captured The following Pokemon cannot be caught: 203. Bulbasaur 204. Ivysaur 205. Venusaur 206. Charmander 207. Charmeleon 208. Charizard 209. Squirtle 210. Wartortle 211. Blastoise 212. Caterpie 213. Metapod 214. Butterfree 215. Weedle 216. Kakuna 217. Beedrill 218. Pidgey 219. Pidgeotto 220. Pidgeot 221. Rattata 222. Raticate 223. Spearow 224. Fearow 225. Ekans 226. Arbok 227. Nidoran (F) 228. Nidorina 229. Nidoqueen 230. Nidoran (M) 231. Nidorino 232. Nidoking 233. Clefairy 234. Clefable 235. Paras 236. Parasect 237. Venonat 238. Venomoth 239. Diglett 240. Dugtrio 241. Meowth 242. Persian 243. Mankey 244. Primeape 245. Growlithe 246. Arcanine 247. Poliwag 248. Poliwhirl 249. Poliwrath 250. Bellsprout 251. Weepinbell 252. Victreebel 253. Ponyta 254. Rapidash 255. Slowpoke 256. Slowbro 257. Farfetchd 258. Seel 259. Dewgong 260. Shellder 261. Cloyster 262. Gastly 263. Haunter 264. Gengar 265. Onix 266. Drowzee 267. Hypno 268. Krabby 269. Kingler 270. Exeggcute 271. Exeggutor 272. Cubone 273. Marowak 274. Hitmonlee 275. Hitmonchan 276. Lickitung 277. Chansey 278. Tangela 279. Kangaskhan 280. Mr. Mime 281. Scyther 282. Jynx 283. Electabuzz 284. Magmar 285. Tauros 286. Lapras 287. Ditto 288. Eevee 289. Vaporeon 290. Jolteon 291. Flareon 292. Porygon 293. Omanyte 294. Omastar 295. Kabuto 296. Kabutops 297. Aerodactyl 298. Snorlax 299. Articuno 300. Zapdos 301. Moltres 302. Dratini 303. Dragonair 304. Dragonite 305. Mewtwo 306. Mew 307. Chikorita 308. Bayleef 309. Meganium 310. Cyndaquil 311. Quilava 312. Typhlosion 313. Totodile 314. Croconaw 315. Feraligatr 316. Sentret 317. Furret 318. Hoothoot 319. Noctowl 320. Ledyba 321. Ledian 322. Spinarak 323. Ariados 324. Cleffa 325. Togepi 326. Togetic 327. Mareep 328. Flaaffy 329. Ampharos 330. Sudowoodo 331. Politoed 332. Hoppip 333. Skiploom 334. Jumpluff 335. Aipom 336. Sunkern 337. Sunflora 338. Yanma 339. Wooper 340. Quagsire 341. Espeon 342. Umbreon 343. Murkrow 344. Slowking 345. Misdreavus 346. Unown 347. Pineco 348. Forretress 349. Dunsparce 350. Gligar 351. Steelix 352. Snubbull 353. Granbull 354. Qwilfish 355. Scizor 356. Shuckle 357. Sneasel 358. Teddiursa 359. Ursaring 360. Swinub 361. Piloswine 362. Remoraid 363. Octillery 364. Delibird 365. Mantine 366. Houndour 367. Houndoom 368. Porygon2 369. Stantler 370. Smeargle 371. Tyrogue 372. Hitmontop 373. Smoochum 374. Elekid 375. Magby 376. Miltank 377. Blissey 378. Raikou 379. Entei 380. Suicune 381. Larvitar 382. Pupitar 383. Tyranitar 384. Lugia 385. Ho-oh 386. Celebi
No comments:
Post a Comment