ПредишенСледващото

Основната разлика между Perl и PHP
Самото естество на Perl и PHP са различни. Perl - език за програмиране - универсалната инструмент за решаване на много широк спектър от приложения. Perl не е разработен специално за уеб-програмиране.

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

Perl, както и всеки пълноправен език, има ядро ​​- набор от функции и правила, които не зависят от платформа, операционна система и други обстоятелства. PHP такова ядро ​​практически няма. От това идва редица PHP функции.

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

Тази разлика е много забележим. Например, ако сайтът е разработен с помощта на Smarty, а след това той ще получи далеч по всеки хостинг. И това се случва, защото Smarty устройство използва POSIX-разширение механизъм за регулярни изрази.

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

Perl в този смисъл е по-стабилна. Той е един и същ навсякъде Perl-кода много по-преносим.

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

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

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

Аз се изброят някои особено изразителни различия.

Разбира се, да предостави невероятно количество PHP функции може да бъде само за сметка на удължаването техните имена. Това не може да се отрази на синтаксиса на езика. Фактът, че в Perl, наречен поп, в PHP array_pop. Фактът, че в Perl - присъединете се, в PHP - спуквам. Разтворът на същия проблем в PHP е обикновено по-тромаво.

Добави функция, която връща три стойности (1, 2, 3).
Perl

Получава се PHP по-тежък строителството.

В допълнение, PHP и Perl не мирише-речитатив.

Замяна на всички шестнадесетични числа в текста, за да им десетични стойности.
Perl

$ Текст = preg_replace_callback ( "/ [0-9a-F] + / I ',
create_function ( '$ т "," връщане hexdec ($ т [0]); "),
$ Текст);
или #
$ Текст = preg_replace ( "/ [0-9a-F] + / т '," hexdec (' $ 0 ")", $ текст);

Една и съща дейност, но дори и за кратко PHP код е два пъти по-дълго от Perl-аналог.

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

Достатъчно е да се каже, че в PHP механизъм показалка е в начален стадий. Perl е преминал етапа на развитие преди десетилетие. ПОЗ не се настанят като структура от данни, като масив. (Фактът, че PHP е наречен "масив" в Perl, наречена "диез".) В този смисъл, PHP е на нивото на AWK.

С една дума, PHP все още ще бъде дълго време да се промени, като създава много проблеми за разработчици.

Адаптивност към уеб-развитие
Когато се прилага е уеб-развитие, PHP показва редица съществени предимства.

На първо място, PHP интерпретатор е интегриран в уеб-сървър, който от време на време се увеличава производителността. Perl в състояние да се изравнят с PHP изпълнение, само ако не подход и mod_perl CGI употреба. Повечето доставчици не ви предоставят такава възможност.

На второ място, уеб-приложения в PHP-лесни за отстраняване на грешки. Съобщения за грешки често се издават на клиента, и не са написани, за да error_log.

На трето място, PHP разполага с широка гама от вградени функции за протокола HTTP. Perl програмисти също могат да се докопат до всички тези функции чрез свързване на съответния модул, но в PHP, тези функции са интегрирани.

Въпреки това, почти всички тези предимства се превърнат в сериозни проблеми по отношение на сигурността на ресурсите.

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

PHP те имат повече свобода - PHP-скрипт може да се постави в произволна директория на сървъра. Но той също така създава допълнителни рискове. В много случаи, разработчиците невнимание, посетител на сървъра получава възможност да "запълни" сървъра не само изображения и други файлове са безвредни, но PHP скриптове, и това е много сериозна опасност.

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

С една дума, PHP «затвора" под Web-развитие е по-добре, отколкото Perl, но на този нож е много лесно да се намали от себе си.

документация
Perl има своя собствена система за документация и е оборудвана с отлична документация на английски език.

PHP е добре документирана. Предимството на документацията на PHP е, че тя е преведена на руски език. Недостатъците съм проведени й необятност.

качество код
Разбира се, в много отношения зависи от качеството на качеството на код програмист, но на езика може или да диктува на разработчика определен стил или разубеждават.

Аз няма да отида в философията, но човечеството в продължение на десетки години назад осъзнах, че кода и данните трябва да бъдат разделени. За да направите това, ние открихме много елегантни решения, от горни и конфигурационни файлове, както и шаблони за отделни хранилища за данни. В този смисъл, PHP изглежда крачка назад; някои starorozhdonnym.

Но ако ги философията и го погледнете от практическа гледна точка, няма нищо добро, ние също не виждам. Комбинирането на HTML- и PHP-код не подобри четливостта нито едното, нито другото. Съответно, поддържане, модернизация и модификация програми твърде трудно.

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

Но има и недостатъци, "вградени" в самия език.

По същия начин е с показалеца на функция връщане.

По мое мнение, това е най-голямата от тези недостатъци PHP, които не могат да бъдат заобиколени.

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

Бих ви посъветвал да го направите:

• ако ресурсът не е свързано с голямо натоварване (лична страница, на страницата на малка фирма), той е по-безопасно да се разчита на Perl и CGI протокол;
• Ако ресурсът изисква голямо присъствие, но си бюджет е много ограничен, можете да използвате ниска цена виртуален хостинг и PHP-на двигателя;
• ако ресурсът е голям и искате да се запази и да го развие за дълго време, най-добре е да се използва скъп хостинг (собствен север) и Perl под mod_perl. В този случай, вашият код ще работи в продължение на много години. Ресурсът ще расте, ще се постави по-силен сървър, по-скорошно софтуер и Perl-код не изисква големи промени и ще продължи да ви служи.

Това, разбира се, доста груби препоръки. Ако се съмнявате - консултирайте се със специалист.

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

Свързани статии

Подкрепете проекта - споделете линка, благодаря!