Posts Tagged "программирование"

PHP – несеръезный язык программирования ?

На PHP есть достаточное количество различных Framework для разработки приложений, большинство из них позволяет ускорить разработку достаточно сложных проектов. Но для простых задач использование фреймворков не всегда оправдано – время на изучение средства и написания законченного решения может оказаться больше времени, которе мы затрачиваем на написания кода с нуля. Но при таком написании возникает риск того, что когда проект станет большим ( а требования как правило растут по мере выполнения предыдущих задач) он рискует стать неуправляемым. Особенно если он пишется на коленках, с использованием традиционного функционального подхода. Меня особенно умиляют функции на несколько сотен строк кода, со сложными управляющими структурами и наличием “мощного” оператора switch. Жалко, что разработчики его до сих пор не убрали с языка, ведь без него можно спокойно обходится, выстраивая при этом более стойкий код ( например, с ипользованием полиморфности или путем динамического вызова методов). Особенно неприятно видеть такого рода код в серьезных проектах ( например, шоппинг карт Zen Cart во всю использует такие решения ).

Не удивительно, что благодаря таким проектам Php многими людьми не воспринимается как серьезный язык программирования. Обусловлено это прежде всего тем, что для написания простейших скриптов не требуется глубокого пронимания методологий программирования, структур данных. Да и задачи часто настолько элементарны, что решаются множеством способов, большинство из которых весьма неоптимальны как с точки зрения производительности, так и с точки зрения расширяемости. Но они настолько небольшие, что работают весьма быстро. И вот после того, как такой программист берется за решение сравнительно сложной задачи, начинают возникать проблемы – программа медленно работает, содержит много ошибок и очень трудно поддается отладке. В итоге PHP обретает репутацию “игрушечного” языка. Хотя он конечно и имеет ряд ограничений ( по мощности он значительно уступает RUBY ), но на нем вполне можно решать задачи средней сложности. Конечно, если грамотно подойти – сначала спроектировать систему, выбрать правильные инструменты ( фреймворки, средства отладки, тестирования ) и отвественно подойти к делу.