Bildquelle: pixabay.com
Bevor ich hier einen Kalten Krieg beginne, möchte ich Ihnen sagen, dass ich nicht hier bin, um zu diskutieren, welche Sprache besser ist. Für mich oder einen erfahrenen Programmierer wäre beides dasselbe. Es ist nur eine Frage der Wahrscheinlichkeit, wer was bevorzugt und was für sie einfach ist.
In diesem Blog würde ich hauptsächlich darüber diskutieren, wie wichtig beide sind und wie sie sich voneinander unterscheiden. Also, wenn Sie neu in Rails und PHP sind, dann könnte dies der perfekte Blog für Sie sein, wenn Sie einen von beiden auswählen möchten. Also lasst uns anfangen. Sollen wir?
Einige grundlegende Hintergrundinformationen
Zunächst ist PHP eine Skriptsprache, während RAILS ein Webentwicklungsframework ist, das auf der Skriptsprache Ruby basiert. PHP ist eine weit verbreitete Programmiersprache für Websites wie Facebook, WordPress, Yahoo, Flickr und vieles mehr. PHP ist extrem schnell, n-mal stabiler als Rails und verfügt sogar über eine größere Community von Entwicklern, die es unterstützen.
Rails basiert vollständig auf Ruby. Es ist sehr einfach zu bedienen und loszulegen. Die Umgebung in Ruby ist sehr automatisiert. Ruby ist wirklich eine erstaunliche Sprache. Im Gegensatz zu PHP ist es von Grund auf objektorientiert. Sein Code ist sehr knapp und mächtig. Mit Gems (Erweiterungen) können Sie die benötigte Funktionalität erweitern. Nach dem Programmieren in Ruby finde ich das Programmieren in PHP ziemlich mühsam.
Der gute der böse und der Hässliche
-
PHP
Mein Rat ist PHP, weil die Verwendung von PHP auf der Basisebene sehr einfach ist. Es gibt eine Menge Leute, die wissen, wie man Template-Code kopiert / einfügt, die Konfigurationsdateien modifiziert und sie sich vielleicht sogar selbst als PHP-Programmierer bezeichnen, was PHP einen Vorteil verschafft Sehr schlechter Name, den ich nicht verdiene.
Für einen echten Programmierer spielt es keine Rolle, welche Sprache er verwendet, was er codiert und wie er codiert, worauf es ankommt. Nachdem Sie einige Programmiersprachen gelernt haben, von denen Sie wissen, dass die meisten tatsächlich sehr ähnlich sind, unterscheidet sich normalerweise die Syntax (insbesondere in Bezug auf den Kernmechanismus, auch bei unterschiedlichen Programmierparadigmen).
Das erste, was Sie lernen sollten, ist, sauberen und lesbaren Code zu schreiben und nicht zu komplizierten Code zu schreiben, da es für jemanden, der die besonderen Tricks der Sprache nicht kennt, schwieriger ist, Fehler zu beheben und zu verwirren (mit PHP können Sie alle Arten von Tricks ausführen) Sachen, nicht alle sind für andere Programmierer offensichtlich).
Im Vergleich zu PHP ist Rails auch in Bezug auf Fehler unfreundlich. Mit PHP wird es Fehler bei Ihnen in der Entwicklung ausspucken und die Fehlermeldungen tatsächlich sinnvoll. Normalerweise wird eine Seite gerendert, aber der Teil mit dem Fehler zeigt Ihnen, in welcher Zeile der Fehler aufgetreten ist und welche Meldung nützlich ist. In Rails wird normalerweise die gesamte App in die Luft gesprengt.
Es tut mir leid, einige Leute hier zu beleidigen, aber Ruby ist einfach nicht so einfach wie PHP zu lernen. Es ist in jeder Hinsicht eine äußerst mächtige Sprache. Ich habe mich für Ruby entschieden, weil ich als Entwickler der Meinung bin, dass es eine viel bessere Sprache als PHP ist. Aus Lernperspektive ist dies jedoch nicht der Fall. Ruby hat viele Funktionen, die für Anfänger nicht einfach zu verstehen sind. Ein solches Konzept sind Blöcke, Procs und Lambdas, die Rails stark nutzt.
Das klassische Ruby on Rails-Beispiel, das ich verwenden werde, dient zum Erstellen eines Formulars:
-
SCHIENEN
Ruby ist eine dynamische, zwingende objektorientierte Programmierung. Es wird dynamisch wie in PHP geschrieben, so dass Sie sich keine Sorgen machen müssen, Variablen deklarieren zu müssen. Rails ist Open Source, funktioniert auf mehreren Plattformen und kann in Hypertext Markup Language eingebettet werden. Es ist eine sehr gute Sprache. Es bietet sogar die Kapselung von Datenmethoden in Objekten.
Ruby verfügt über hochentwickelte String- und Textmanipulationstechniken, die problemlos mit DB2, MySQL, Oracle und Sybase verbunden werden können. Große Programme, die in Ruby geschrieben wurden, können problemlos gewartet werden. Es hat eine klare und einfache Syntax, mit der neue Entwickler Ruby sehr schnell und einfach erlernen können. Es kann nicht nur Multithread-Anwendungen mit einer einfachen API schreiben, sondern bietet auch erweiterte Array-Klassen und die Möglichkeit, externe Bibliotheken in Ruby oder C zu schreiben.
Ruby Ermöglicht die Verwendung eines "reservierten Wortes" als Bezeichner, solange der Parser keine Mehrdeutigkeit wahrnimmt. Im Vergleich zu PHP verfügt Ruby über viele Sicherheitsfunktionen und eine leistungsstarke Zeichenkettenverarbeitung.
Die Frage des Jahrzehnts ist also: Macht Ruby mit all diesen Funktionen eine bessere Perspektive als PHP?
Leider ist es nicht so schwarzweiß und viele Variablen spielen eine Rolle, wenn es darum geht, mit PHP oder Ruby on Rails zu entwickeln.
Beispielsweise ist Ruby on Rails eine viel komplexere Sprache zum Einrichten einer Entwicklungsumgebung. Folglich erhöht das für Ruby erforderliche implizite Wissen den Preis auf dem Programmiermarkt im Vergleich zur PHP-Entwicklung sofort. Ein PHP-Entwickler hingegen kann einfach ein herkömmliches Paket wie WAMP oder MAMP verwenden, um seine Entwicklungsumgebung in weniger als 5 Minuten einzurichten.
Als ich anfing, in Ruby zu programmieren, hat mich Gems mehr verwirrt als geholfen, weil es zu viel Magie gab. Als ich erfuhr, dass man den Quellcode für Edelsteine einfach lesen konnte (und sollte), machte alles viel mehr Sinn. Aufgrund der Steckbarkeit von Edelsteinen und der Standards der Community können Edelsteine Ihrer Anwendung sehr schnell eine enorme Menge an Funktionalität verleihen.
Einige Juwelen, auf die ich nicht verzichten kann: Entwickeln (Authentifizierung - verwaltet Benutzeranmeldungen, Anmeldung bei sozialen Netzwerken, vergisst Passwort-Arbeitsabläufe und vieles mehr), Büroklammer (Hochladen von Dateien - verwaltet sogar das Hochladen auf S3, Zuschneiden / erneutes Abtasten von Bildern), Einfach Mit Formularen können Formulare unglaublich einfach standardisiert und auf Websites gerendert werden.
PHP wurde als Hypertext-Pre-Prozessor entwickelt, was bedeutet, dass es nur ausgeführt wird, wenn eine Webanforderung vorliegt. Verglichen mit Ruby, das einen Prozess ausführt. In Rails können Sie Hintergrundjobs einfach mit Sidekiq oder Resque einrichten. Dies erhöht auch die Skalierbarkeit von Rail. In unseren Anwendungen verschieben wir eine Menge Dinge, die Anfragen verlangsamen können, wie das Versenden von E-Mails an Benutzer in Hintergrundjobs.
Jetzt kann PHP Hintergrundjobs mit Gearman ausführen, aber das ist nicht standardisiert - Sie müssen die PECL-Erweiterung installieren. In Ruby / Rails sind Hintergrundjobs kein Problem. Du machst es einfach.
Das Tauziehen
Nachdem Sie viel über PHP und Rails gelesen haben, lassen Sie sie sich im Vergleich ansehen. Lassen Sie uns prüfen, welche hinsichtlich des Ressourceneinsatzes und sogar der Leistung (Geschwindigkeit) gleichwertig sind.
Empfohlene Kurse
- Online-Zertifizierungskurs in Java Hibernate
- Programm auf Java Spring
- WordPress-Zertifizierungskurs
- Ruby-Kurs
Ressourcennutzung und Geschwindigkeit
In Bezug auf die Speichernutzung wird es im Allgemeinen Python> Ruby> PHP sein, was natürlich zu Django> Rails> PHP führt. Nicht nur das Gedächtnis, sondern auch die Rohdaten von Ruby on Rails im Vergleich zur PHP-Leistung. Bemerkenswert ist auch, dass es hier natürlich keine absoluten Zahlen gibt. Es gibt viele Anwendungsszenarien, in denen Ruby Python zweifellos schlagen wird. Ich denke, wir können uns alle einig sein, dass Ruby und Python PHP immer schlagen werden.
Meine eigene Erfahrung ist, dass die Speichernutzung in Rails sehr hoch sein kann, insbesondere auf 64-Bit-Computern (mindestens 95-100 MB bei so geringer Größe wie im Web-Front-End). PHP wird in der Regel mit unterschiedlichen Mustern verwendet, so dass ein direkter Vergleich etwas schwierig ist.
Trotzdem ist es immer noch sehr einfach, eine beschissene, langsame und ineffiziente Django-Anwendung und eine schlanke, schnelle und effiziente Rails-Anwendung zu erstellen oder umgekehrt. Kompetenz, Wissen und Fachwissen mit dem von Ihnen verwendeten System tragen wesentlich mehr zu seiner Speicher- und Leistungsbilanz bei als nur zum eigentlichen Framework.
Datenbankoptimierungen, Serveroptionen und -architekturen (Apache- oder Proxy-Setups mit nginx / lighttpd usw.) und grundlegende Entwurfsentscheidungen werden wahrscheinlich die inhärenten Merkmale des Frameworks ziemlich schnell überwältigen.
Wenn Sie typische Benchmarks zwischen Ruby und anderen Sprachen ausführen, verliert Ruby. Ruby würde Ihnen wahrscheinlich beim Schreiben einer digitalen Echtzeit-Signalverarbeitungsanwendung oder eines Echtzeit-Steuerungssystems nicht helfen. Ruby (mit heutigen VMs) würde wahrscheinlich auf einem Computer mit eingeschränkten Ressourcen wie Smartphones ersticken.
Denken Sie daran, dass ein Großteil der Verarbeitung Ihrer Webanwendungen von in C entwickelter Software ausgeführt wird. ZB Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, viele Parsing-Bibliotheken, RMagick, TCP / IP usw. werden von C-Programmen verwendet Rubin. Ruby liefert den Kleber und die Geschäftslogik.
Die Frage ist "WARUM PHP dann?"
Sprechen wir jetzt über PHP. PHP läuft auf Apache-Servern extrem langsam. Selbst wenn Sie versuchen, eine PHP-Seite auch ohne Skript, nur mit einer leeren PHP-Seite, auszuführen, dauert das Laden im Vergleich zu JSPs oder Java etwa zehnmal länger. Aber auch hier stellt sich die Frage von einer Million Jahrhunderten: Wenn dem so ist, warum hat Facebook PHP dann noch nicht abgeschafft? Der Grund, warum Facebook nicht von PHP abgewandert ist, ist, dass die Ingenieure von Facebook es geschafft haben, viele seiner Fehler durch eine Kombination von Patches auf allen Ebenen des Stacks und einer ausgezeichneten internen Disziplin durch Code-Konvention und -Stil zu umgehen.
Die schlimmsten Attribute der Sprache werden vermieden und der Codierungsstil wird durch eine ziemlich strenge Kultur der Codeüberprüfung rigoros durchgesetzt (die Nichteinhaltung des Stils und das „Gehen des Cowboys“ durch das Schreiben von schlampigem Code führen zu erbarmungslosem Spott bei Gleichaltrigen). Das Engineering-Management musste hier noch nie eine starke Hand nehmen. Dies geschah größtenteils, weil die wichtigsten internen technischen Führungskräfte alle anderen mitreißen mussten.
Und Facebook nutzt natürlich nicht nur PHP. Es enthält auch C ++ als Kern. Verwenden Sie für PHP also eine Art Opcode-Cache wie APC oder eAccelerator, andernfalls muss PHP Ihre Dateien bei jeder Anfrage analysieren. Für die allgemeine Apache-Optimierung sollten Sie ein paar Dinge wie das Deaktivieren von .htaccess-Dateien googeln, aber es sollte immer noch schneller als JSP sein.
Fazit
Am Ende denke ich, dass ich sage, wenn Sie sich durch Rails bewegen, dann sollten Sie sich durch Rails bewegen, solange Sie nicht vorhaben, ein ganz neues Projekt auf PHP-Basis zu starten und ein Unternehmen damit zu gründen.
Empfohlene Artikel
In den folgenden Artikeln erfahren Sie mehr über Rails vs. PHP. Gehen Sie einfach über den Link.
- Erstaunlicher Leitfaden für die Entwicklung von Learn Rails
- Ruby vs Ruby On Rails- Welches ist besser?
- Ruby vs PHP-Welche Technologie ist am besten?
- Top 10 der fantastischsten PHP-Interview-Fragen für erfahrene