Сравнение языков программирования и фреймворков для них

в 17:53, , рубрики: laravel5, node.js, ruby, ruby on rails, sails.js, yii2, Программирование, сравнение производительности, языки программирования

imageНаверняка многих мучил вопрос — какой язык и фреймворк для него выбрать для своей работы. Я тоже задумывался этим вопросом и результаты своего тестирования приведу в статье.

Я являюсь веб-разработчиком уже несколько лет и постоянно слежу за развитием событий в среде веб-разработки.
В ходе профессиональной деятельности мне удалось познакомиться с ворохом технологий, языков, библиотек, фреймворков и прочим.

Периодически задавая себе вопрос «так что же выбрать для постоянной работы именно для себя (какой язык, какой фреймворк)?» я начал изучать всеобъемлющий гугл на предмет сего ответа. И был, однако, удивлен, т.к. нужной мне информации не нашел. Все статьи скатываются до того, что все языки и фреймворки хороши, особенно для отдельных задач и нельзя сказать — кто победитель. Мол, хочешь знать ответ — попробуй всё и реши для себя сам.

С последним утверждением я полностью согласен, но мне не хватило бы простого субъективного ответа, я захотел цифр. Тогда придумал взять набор задач, чтобы сравнить языки программирования, а также фреймворки и их привычный функционал. Т.к. я работаю на PHP, первым делом начал с выбора фреймворков именно для этого языка. Сейчас протестированы: Yii2, Laravel5. Взяты именно они, т.к. являются самыми популярными фреймворками на PHP (да, Symfony, про тебя тоже помню).

Из других языков (и фреймворков) были взяты JS (NodeJS + SailsJS) и Ruby (Rails), т.к. с ними тоже был определенный уровень знакомства.

Сразу разъясню, почему были взяты именно эти языки/фреймворки.

Главная цель для меня — выбор технологий для разработки будущих проектов, как моих, так и компании, где я работаю. Конечно, субъективную оценку цифрами не обозначишь, поэтому в результирующих таблицах будут только количественные показатели. В целом, я пришел к выводу, что мне удобны php и ruby + обозначенные выше фреймворки примерно в одинаковой мере. А вот разработка на nodejs мне не показалась такой удобной, быстрой и клёвой.

Итак, тесты производительности определенных задач для языков:

Сравнение языков программирования и фреймворков для них - 2

Первый тест — генерация числа Пи с количеством итераций = 100000000.
Далее идет тест по генерации Множество Мандельброта.
После — генерация экспоненты с помощью самого языка, а также с помощью имеющихся у языка дополнительных библиотек.

Результаты, на самом деле, были не очень удивительны — nodeJS уверенно идёт впереди планеты всей.

Очень порадовал PHP7 — очень хорошо чувствуется поднятие производительности в 7 версии по сравнению с 5.6. А вот почему результаты тестов генерации экспоненты с либами дали такой результат — пока не совсем понял.

Далее были протестированы фреймворки:

Сравнение языков программирования и фреймворков для них - 3

Тест очень просто и типичный для простых сайтов — достать информацию из базы, отправить на рендер в представление и вывести в буфер.

В данном случае берутся 3000 строк из Mysql из 10000 строк в базе и строится пагинация.

Вот тут SailsJS, если честно, удивил. Я ожидал, что всех своих конкурентов он резво уделает. А он ни то, что не уделал, но еще и проиграл Laravel'у.

Всё тестировалось без кэширования. При включенном кэшировании данные, конечно же, несколько другие, но картины не меняют.

Вывод

Буду продолжать тестировать языки и фреймворки на предмет скорости и удобства. На данном этапе ближе всего по удобству/скорости разработки и скорости работы приложения, организации кода для меня — Laravel.

Приветствуются замечания, комментарии и pull-реквесты в мой репозиторий.

Автор: AxelPAL

Источник

Поделиться новостью

* - обязательные к заполнению поля