Източник на изображението: pixabay.com

И така, преди да започна тук студена война, между хората, използващи Rails (Ruby) и PHP, да ви кажа, че не съм тук, за да обсъждам кой език е по-добър. За мен, или за всеки опитен програмист, или би било същото. Това е просто въпрос на желание кой предпочита какво и какво е лесно за тях.

В този блог най-вече бих обсъждал значението на двамата и как се различават един от друг. Така че, ако сте нови за Rails и PHP и двете, тогава това може да е идеалният блог за вас, ако искате да изберете един от двата. Така че нека да започнем. Защо не?

Основна информация

Като начало PHP е скриптов език, докато RAILS е рамка за уеб разработка, която се основава на скриптовия език Ruby. PHP е широко използван език за програмиране за уебсайтове като Facebook, WordPress, Yahoo, Flickr и дори повече. PHP е изключително бърз, n пъти по-стабилен от Rails и дори има по-голяма общност от разработчици, които да го поддържат.

Релсите са изцяло базирани на Ruby. Той е изключително лесен за използване и започнете с него. Околната среда в Ruby е много автоматизирана. Руби е наистина доста невероятен език. За разлика от PHP, той наистина е обектно ориентиран от горе. Кодът му е много сбит и мощен. Скъпоценните камъни (разширения) ви позволяват да задействате необходимата функционалност. След кодирането в Ruby, намирам кодирането в PHP доста уморително.

Добрият, лошият и грозният

  1. PHP

Моят съвет е PHP, тъй като използването на PHP на основното ниво е много лесно, там има много хора, които знаят да копират / поставят някакъв шаблон на код, да променят конфигурационните файлове и дори могат да ги наричат ​​себе си PHP програмисти, което дава PHP много лошо име, което не мисля, че заслужава.

За истинския програмист всъщност няма значение какъв език използва, това е какво кодира и начинът, по който кодира, е от значение. След като научите няколко езика за програмиране, разбирате, че повечето от тях всъщност са много сходни, обикновено синтаксисът е различен (особено в техния основен механизъм, дори и за различни парадигми за програмиране).

Първо нещата, които трябва да научите, е да пишете чист и четим код и да не пишете прекалено сложен код, тъй като е по-трудно да отстраните грешки и да объркате за някой, който не знае специалните трикове на езика (с PHP можете да правите всякакъв вид трудни неща, не всички са очевидни за другите програмисти).

В сравнение с PHP, Rails също е неприятен, когато става дума за грешки. С PHP той ще ви изплюе грешки в развитието и съобщенията за грешки всъщност имат смисъл. Обикновено страницата ще се изобразява, но частта с грешката ще ви покаже, в кой ред е възникнала грешката и съобщението е полезно. В Rails обикновено цялото приложение взривява.

Съжалявам, че обидих някои хора тук, но Ruby просто не е толкова просто, колкото PHP да се научи. Той по всякакъв начин е изключително мощен език. Избирам да използвам Ruby просто защото като програмист чувствам, че е много по-добър език от PHP. Но от гледна точка на обучението не е така. Ruby има много функции, които просто не са лесни за начинаещ програмист да разбере. Една такава концепция са блокове, прокси и ламбда, които Rails използва много.

Класическият пример Ruby on Rails, който ще използвам е за създаване на форма:

  1. релси

Ruby е динамично, наложително обектно-ориентирано програмиране. Той е динамично въведен, като в PHP, така че няма нужда да се притеснявате, че трябва да декларирате променливи. Rails е с отворен източник, работи на множество платформи и може да бъде вграден в Hypertext Markup Language. Това е език на много високо ниво. Той дори предлага капсулиране на методи за данни в обектите.

Ruby има супер напреднали техники за обработка на низове и текст, които могат лесно да бъдат свързани към DB2, MySQL, Oracle и Sybase. Големите програми, написани на Ruby, са лесно поддържани. Той има чист и лесен синтаксис, който позволява на новите разработчици да научат Ruby много бързо и лесно. Той не само има възможност за писане на многонишкови приложения с прост API, но също така предлага разширен клас масив и възможност за писане на външни библиотеки в Ruby или C.

Ruby Позволява „запазена дума“ да се използва като идентификатор, стига анализаторът да не усети неяснота. В сравнение с PHP, Ruby има много функции за защита и мощна работа с низове.

И така, въпросът на десетилетието е … С всички тези характеристики прави ли Ruby по-добра перспектива в сравнение с PHP?

За съжаление, не е толкова черно-бяло и много променливи влизат в игра при определяне дали PHP или рубин върху релси трябва да се използват за разработване.

Например, Ruby on Rails е много по-сложен език за създаване на среда за развитие. Следователно, мълчаливите знания, необходими за Ruby, веднага повишават цената на пазара на програмиране в сравнение с PHP разработката. PHP разработчик, от друга страна, може просто да използва конвенционален пакет, като WAMP, MAMP, за да получи настройката си за разработка за по-малко от 5 минути.

Когато започнах да кодирам в Ruby, Gems ме обърка повече, отколкото помогнаха, защото имаше твърде много магия. След като научих, че можете (и трябва) просто да прочетете изходния код за скъпоценни камъни, всичко имаше много по-голям смисъл. Поради подвижния характер на скъпоценните камъни и стандартите на общността, скъпоценните камъни могат да дадат на вашето приложение огромно количество функционалност много бързо.

Някои скъпоценни камъни, без които не мога да живея: Разработване (удостоверяване - обработва потребителски влизания, социална регистрация, забравяне на работа с парола и много други), Хартиена скоба (качване на файлове - дори дръжки качване в S3, изрязване / повторно вземане на образ), Просто Формата прави формулярите невероятно прости за стандартизиране и изобразяване на уебсайтове.

PHP е проектиран като хипертекстов предпроцесор, което означава, че той се изпълнява само когато има уеб заявка. В сравнение с Ruby, който управлява процес. В Rails можете лесно да настроите фонови задания, като използвате Sidekiq или Resque. Това също добавя способността на Rail да се мащабира лесно. В нашите приложения преместваме много неща, които могат да забавят заявките като изпращане на имейл на потребители във фонови задания.

Сега PHP може да върши фонови задачи с помощта на Gearman, но това не е стандартизирано - трябва да инсталирате разширението PECL. В Ruby / Rails фоновите задачи не са проблем. Просто го правите.

Влекачът на войната

Сега, когато сте чели много за PHP и Rails, нека ги погледнете сравнително. Нека да проверим кой е равен по отношение на използването на ресурси и дори по отношение на производителността (скоростта).

Препоръчителни курсове

  • Онлайн курс за сертифициране в хибернация на Java
  • Програма на Java Spring
  • Курс за сертифициране на WordPress
  • Курс Руби

Използване на ресурса и скорост

По отношение на използването на паметта обикновено това ще бъде Python> Ruby> PHP, което разбира се води до Django> Rails> PHP. Не само памет, но това също има тенденция да се задържи за суров рубин на релси срещу php изпълнение. Тук също трябва да се отбележи, че тук, разбира се, няма абсолюти. Има много сценарии за използване, в които Ruby ще бие Python, с ръце надолу. Мисля, че всички можем да се съгласим, че Ruby и Python винаги ще бият PHP.

Моят собствен опит е, че използването на Rails памет може да бъде високо, особено на 64-битови машини (минимум е около 95-100 MB с тънък като уеб фронт-енд). PHP има тенденция да се използва с различни модели, така че е малко трудно да се сравнява директно.

Като се има предвид, все още е много лесно да се направи шантаво, бавно и неефективно приложение на Django и стройно, бързо и ефективно приложение Rails или обратно. Умение, знания и опит със системата, която използвате, ще направи много повече за отпечатъка на паметта и производителността й, отколкото само самата рамка.

Оптимизации на базата данни, избор на сървър и архитектури (Apache срещу прокси настройки с помощта на nginx / lighttpd и др.) И фундаментални дизайнерски решения вероятно ще надхвърлят присъщите характеристики на рамката доста бързо.

Ако стартирате типични показатели между Ruby и други езици, Ruby губи. Ruby вероятно няма да ви служи добре при писането на заявление за цифрова обработка на сигнали в реално време или каквато и да е система за контрол в реално време. Ruby (с днешните виртуални машини) вероятно ще се задави на компютър с ограничени ресурси, като смартфони.

Не забравяйте, че голяма част от обработката на вашите уеб приложения всъщност се извършва от софтуер, разработен в C. напр. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, много библиотеки за разбор, RMagick, TCP / IP и др. Са C програми, използвани от Ruby. Ruby осигурява лепилото и бизнес логиката.

Въпросът е „ЗАЩО PHP тогава?“

Сега нека говорим за PHP. PHP работи изключително бавно на апаш сървър. Дори и да се опитате да стартирате PHP страница дори без никакъв скрипт, а само празна php страница, все пак ще ви отнеме 10 пъти повече време за зареждане в сравнение с JSP или Java. Но отново въпросът на милион век е, че ако това е така, защо тогава Facebook още не е изхвърлил PHP? Причината Facebook да не е мигрирал далеч от PHP е, защото инженерите на Facebook успяха да преодолеят много от своите недостатъци чрез комбинация от кръпки на всички нива на стека и отлична вътрешна дисциплина чрез кодова конвенция и стил.

Избягват се най-лошите атрибути на езика и стилът на кодиране се налага твърдо чрез доста строга култура на преглед на кода (неспазването на стила и „преминаването към каубой“ чрез писане на помия код води до безмилостни подигравки от страна на нечии колеги). Тук инженерният мениджмънт никога не е трябвало да полага силна ръка; това се дължеше до голяма степен на ключовите вътрешни технически лидери, които просто подтикваха всички останали заедно.

И Facebook не използва просто PHP, разбира се. Той също така включва C ++ като свое ядро. Така че, за PHP използвайте някакъв кеш на кодове като APC или eAccelerator, в противен случай PHP трябва да анализира вашите файлове при всяка заявка. За обща настройка на апаш трябва да направите някои googling, няколко неща като деактивиране на .htaccess файлове идва на ум, но все пак трябва да е по-бърз от JSP.

заключение

Така че в крайна сметка предполагам това, което казвам, ако си проправяш път през Rails, отколкото трябва да се придържаш през Rails, стига да не планираш да стартираш изцяло нов проект, базиран на PHP, и да създадеш компания заедно с него.

Препоръчителни статии

Ето няколко статии, които ще ви помогнат да получите повече подробности за Rails vs PHP, така че просто преминете през линка.

  1. Невероятно ръководство за развитие на научните релси
  2. Ruby vs Ruby On Rails - кой е по-добър?
  3. Ruby vs PHP-Коя технология е най-добра?
  4. Топ 10 най-страхотни въпроси за интервю за PHP за опитни