Комментарии 281
Только пару часов назад читал оригинал и так и не понял — это стёб, наброс на вентилятор или серьёзно?
Языки/технологии приходят и уходят а PHP как был востребован так и есть.
Помнится Ruby (RoR) появился в тренде, сколько проектов стали на нем разрабатывать, сколько вайна на PHP было и т.д.
Затем питон так же ворвался в нашу экосистему, занял конечно свою нишу, там и сидит.
Вот и NodeJs…
Все это на уровне интереса, тренда и т.п. Но реальные проекты, выбирают PHP или Java.
Остальное же просто тлен, за редким исключением.
P.S.
17 лет опыта разработки веб-проектов, 10 лет HL++
В общем и в целом, начиная с 5.0 по ощущениям очень многое берётся именно из Java в плане ООП, да и многие открытые PHP-проекты по архитектуре напоминают Java-аналоги, а то и явно заимствуют не просто идеи, но вплоть до названий классов, методов и т. п.
На данный момент как раз смесь из Java+PHP (у каждого своя роль). Со временем вышла очень сильная гибридизация… вплоть до JavaScript кода в java.
В мир java много лет назад пришел из мира PHP. А сейчас java-like код пишу уже на PHP. Вот такое взаимообогащение,
Со временем вышла очень сильная гибридизация… вплоть до JavaScript кода в java.
Эммм… JS разрабатывался изначально как раз как клиентский Java-подобный язык.
Пруф: https://habrahabr.ru/company/livetyping/blog/324196/
Сказать что это «Java-подобный язык» в таких условиях может только маркетолог…
Но реальные проекты, выбирают PHP или Java.
Как вы так сразу все мои проекты обозвали нереальными :-(
Но реальные проекты, выбирают PHP или Java.
Расскажите-ка об этом гуглу или яндексу, они поржут :)
как пример: https://geektimes.ru/post/287922/
А так, каждому свое)
И, да, мне удобнее использовать один общедоступный популярный фреймворк, а не городить очередной велосипед)
Я понимаю, что, скорее всего, данный пост — это какой-то жесткий троллинг. Но в каждой шутке есть доля шутки =)
& #x1 F4 A9;
> '💩'.length === 2;
< true
> echo strlen('💩');
< 4
А в PHP ещё хуже:
Потому что mb_strlen()
> echo mb_strlen('👩❤️💋👩');
< 8
Have fun!
В Ruby:
> ''.length
< 1
> ''.bytes.length
< 4
Но юзать strlen() на чем-то кроме латиницы это кощунство
-_-
В пхп для корректного юзанья чего бы то бы было если и есть функция, то она обладает крайне неочевидным названием, а если у неё более одного аргумента, то их порядок отличается от порядка в том некорректном аналоге о котором вы изначально подумали по аналогии с другими языками. Прнинцип наибольшего удивления.
Не оператор так называется, а константа токена в коде транслятора.
Если бы она еще не выводилась в сообщениях об ошибках...
А в PHP ещё хуже:
Ну вот обычно php ругают те кто в нём не разбирается…
Я действительно плохо разбираюсь в PHP, но это ни разу не нормально.
Если я когда-нибудь займусь написанием эзотерического ЯП, то обязательно постараюсь реализовать эту идею.
Вот в том-то и проблема, что функция strlen подсчитывает байты. Впрочем, конкретно эта проблема досталась PHP по наследству от языка Си.
Просто нужно прочитать, что такое строка в PHP: "A string is series of characters, where a character is the same as a byte. This means that PHP only supports a 256-character set, and hence does not offer native Unicode support. See details of the string type." (http://php.net/manual/en/language.types.string.php)
В качестве альтернативы:
$length = preg_match_all('(.)su', $text);
Если уже на то пошло, то я обнаружил там ещё grapheme_strlen(), который считает в графемах и в случае c '👩❤️💋👩' выдаёт 4, что явно ближе к истине так-как игнорирует символы zero-width joiner, используемые между частями этого emoji, и считает ❤️ одной графемой (mb_strlen и iconv_strlen считают двумя символами, хотя там один символ ❤ и модификатор красного цвета).
Т.е. как минимум две функции для подсчёта длинны строки
Я вас умоляю… В python для такого же функционала, две версии языка
Python 2.7.10 (default, Feb 6 2017, 23:53:20)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> len('💩')
4
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> len('💩')
1
P.S. Perl очень люблю, но там объективно куча особенностей, которые документированы, но охота думать о решении задач, а не вспоминать где и какие особенности могут встретиться.
Как раз наоборот, это совершенно не проблема и вовсе не странность, это изучается один раз при изучении типов данных питона.
К примеру: Американец написал либу для питона по работе с текстом где не использует unicode строки (многие из них вообще не знают о том что существуют другие раскладки). Я поставил себе на комп разработчика (там убунта и Python 3.5 из коробки), всё работает и тесты проходят. А на продакшне (там Python 2.7), ничего не работает, но тесты проходит. Странность? Странность! И знание типов новичку в данном случае не поможет (а если он начал изучать Питон с 3.5 то вообще в прострацию введёт), а вот такой же подход в PHP ошибки не создаст.
Я не одобряю подход PHP в разделении на разные функции и костыля mbstring.func_overload, мне больше нравится подход Perl — указывать в начале скрипта версию, мне кажется это проще и понятнее и можно было бы старые библиотеки не переписывать, а в новые добавлять use_version 3.5, например, и не было бы этих шуток про Питоны 2 и 3.
В пхп намного больше странностей, начиная от совершенно нелогических названий миллиона функций, число которых растет с каждой версией и кончая отладкой скриптов через var_dump()
В Питоне немало людей через print и pprint тоже отлаживают программы, я думаю.
А про консистентность, самые консистентные языки (из интерпретируемых с динамической типизацией) я думаю это LISP (там всё крайне однообразно, скобочки =))) ) и Ruby (японский перфекционизм сделал своё дело)
А если вы запустите пхп скрипт с тайпхинтингом на пхп 5.3?
Он сообщит об ошибке компиляции, скрытой логической ошибки не будет.
эти функции ничего не выводят в html, как в пхп, максимум в консоль и пользователи ничего не увидят
Сайты на пхп стали сложнее чем раньше и в плане шаблонизации тоже, а также были ужесточены параметры php по умолчанию, так что в целом ситуация, наверное, уже не такая. Плюс эта особенность опять же очень удобна новичкам и бизнесменам (людям кто так кодит платят намного меньше).
Также новичок возьмёт и из файла обработает свой текст в юникоде без указания кодировки (на stackowerflow только так и советуют), в разных питонах тоже будет разный результат и не будет ошибки компиляции.
Что он вам скажет?
Fatal error. Ни о каком прохождении тестов речи быть не может.
И знание типов новичку в данном случае не поможет (а если он начал изучать Питон с 3.5 то вообще в прострацию введёт), а вот такой же подход в PHP ошибки не создаст.Да, точно-точно, правда-правда:
$ cat test.php <?php echo htmlentities("Врун") ?> $ php5.3 --version PHP 5.3.10-1ubuntu3.26 with Suhosin-Patch (cli) (built: Feb 13 2017 20:37:53) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies $ php5.3 test.php Ð�Ñ�Ñ�н $ php5.5 --version PHP 5.5.9-1ubuntu4.21 (cli) (built: Feb 9 2017 20:54:58) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies $ php test.php Врун
Вы уж врите, да не завирайтесь, а?
2. Мы тут говорим про конкретную ситуацию про длины строк, там выше прикололись над Python (и я считаю что заслуженно именно в этом случае). Crandel стал его защищать и восхвалять, что в Питоне таких проблем вообще нет. Они есть и способ решения именно этой проблемы (работа со строками) получился у PHP однообразнее и понятнее, чем в Питоне (в разных версиях). Опять же напомню что мне этот ПХП подход не нравится.
3. ПХП крайне неконсистентный язык программирования и я обратного не заявлял, но учитывая его историю, он может рассчитывать на понимание и снисхождение. Питон в тоже время имеет тоже имеет кучу проблем и странностей (и их количество растёт, в отличии от того же ПХП где их количество стараются уменьшить), но вместо того чтобы их признать и как-то попытаться исправить, им придумываются заумные объяснения, которые приводят к тому что вместо решения задачи надо о них помнить и учитывать (это не значит что Питон плох, просто вот такая особенность коммьюнити и разработчиков).
Американец написал либу для питона по работе с текстом где не использует unicode строки (многие из них вообще не знают о том что существуют другие раскладки)Если вы считаете что американец в библиотеке только и исключительно вычисляет длину строки 100500 раз — то вы ошибаетесь. Он ещё и другие функции работы со строками использовать может.
Говорить о том, что в
способ решения именно этой проблемы (работа со строками) получился у PHP однообразнее и понятнее, чем в Питоне (в разных версиях)как бы несколько странно с учётом того, что работа со строками — это не только вычисление их длины…
Если с unicode строкой работать как с набором байт, то все функции работы со строками будут работать неверно.
В PHP же все строковые функции имеют копии с префиксом mb_.
Записали каких-то ноунеймов в сторонников ноды и Microsoft который к этому вообще не имеет отношения :\ Записали бы Uber, netflix, linkedin, paypal но тогда не получится высмеять да.
Причем тут баг хрома к серверсайд разработке? Или если бы MS сделали редактор на пхп — такого бы не было?
>В частности, Visual Studio Code является надстройкой Electron (бывшим Atom Shell), который объединяет в себе браузерный движок Chromium и Node.js
А чего вы тогда скинули ссылку на баг хрома? Или вы прочитали только заголовок и решили "уколоть"? Даже представить себе боюсь standalone редактор на пхп. Записывать MS в сторонники ноды из-за этого — хм...
Да и почему бы не уколоть за такую глупость, как написание компьютерных приложений на ХромоНоде? К слову, идея приложений на php тоже была в ходу когда-то, но, по понятным причинам, умерла.
Это так-то тонкий троллинг. Компании в списке часто ассоициируются с чистым злом.
Microsoft — пояснять не надо.
Enron — это контора которая ради спекуляций на акциях обесточила неплохую часть штата на некоторое время.
Monsanto — это создатели GMO семян и гербецидов, так же как и DDT и агента оранжа — которым травили въетнамцев
BlackWater — это наемники, которые занимаются отстрелом местного населения в странах где натуральные ресурсы плохо охраняются
Time Warner — те кто вечно всех судят за нарушения авторских прав
Comcast — один из монополистов на рынке интернета и опять же часто мараются в разборках по авторским правам.
Плюс это все толстые корпорации с бесконечными цепочками управления.
А противопоставляется все "модным и хиповым" tesla, facebook, wiki, etc. — которые как бэ в плане PR выглядят побелопушистее.
Компании не ноунеймы для США для которой был написан оригинал.
1) Microsoft не любят все подряд
2) Comcast, Time warner cable кабельные и интернет провайдеры. Сам вчера с комкастом мучился, а в поддержку не дозвониться.
3) Blackwater скандально известная военная компания.
Локализованый рисунок состоял бы из Сбербанка, Ростелекома и вашего местного ЖКХ
Люди, судя по опросам, уходят на Python и другие языки, но популярность PHP нужно раздувать дальше.
Она не сломает программу если замену производить во всему файлу, а не фрагментами.
А что хорошего вы ожидали в замене табуляции на пробелы?
Плохой python.
command <<-END_OF_TEXT
и ответьте себе на вопрос: что с ней будет если её скопировать «мышкой с экрана» (что ваш админ, как я понял, сделал).python отдыхает!
Язык, в котором логические блоки задаются знаками препинания, не может быть хорошим.
Особенно в устной речи, ага.
(почему в мобильной версии нельзя редактировать?)
Был Delphi for PHP, позволявший всю логику фронтенда реализовывать в PHP на сервере.
Со временем люди понимают с каким ужасом они имеют дела и уходят, но общее количество людей, программируюших на PHP и не думает уменьшаться.
Но всё-таки JavaScript создавали люди с некоторыми знаниями computer science, так что JavaScript — это просто «ужас», но PHP — это «ужас-ужас-ужас»…
Сейчас эту свинью, впрочем, замазали буквально килограммами «губной помады»… но оригинальный образ всё равно смутно проглядывает…
Может у меня, конечно, стокгольмский синдром, но что в нём такого ужасного? Особенно в современном.
Думаю, вам понравится этот фреймворк: https://github.com/eigenmethod/mol#quick-start
А причем Angular 2 к современному JS? Angular это штука которую надо учить отдельно, со своим синтаксисом и правилами.
Мне он, кстати, тоже совершенно не нравится, из-за того что при таком высоком пороге входа он предоставляет слишком мало удобных абстракций и структуры. Но это проблемы ангуляра, не JS. Ну, и к сожалению наши проблемы тоже, потому что толпы хомячков теперь ВНЕЗАПНО обнаружили что angular 1 плох, и ломанулись разрабатывать на angular 2.
Тем не менее, JS как язык сам по себе, начиная с ES-2015, весьма неплох, и при соблюдении минимальной гигиены (всегда использовать === вместо ==, использовать явное приведение типов, писать es-2015 классы непример) на нем можно писать очень хороший и выразительный код.
Какой JS фреймворк хороший? Конечно же тот который напишу я! Не забудьте поставить мне звездочку на гитхабе :)
И что я вижу нет там js есть неведомая мне фигня которая называется typescript
Что-то я не вижу логики в ваших действиях: захотели изучать современный javascript и выбрали typescript-фреймворк :-)
PS А проблема с импортом решается через указание "module": "amd"
или "module": "commonjs"
в файле tsconfig.json
"Бэк на божественном пхп" — слишком общее определение, под ним могут скрываться самые разные подходы.
Лично мне для всех задач пока хватает knockout + jquery + requirejs, но у меня бэк на ASP.NET MVC.
Присматриваюсь к связке mobx + react, только не знаю что использовать для сборки и как лучше грузить модули.
Так а какой современный js фреймворк стоит изучить что бы можно бэк на божественном пхп делать?
Любой.
Какая часть нововведений, начиная с 4.0 или, хотя бы, 5.0 затачивается под людей, плохо разбирающихся в программировании?
История похожа на C++ — есть куча очень «стильных, модных, молодёжных» примочек, но «изначальные» вещи, криво сделанные в C, никуда не делись и регулярно отравляют людям жизнь…
В C все сделано просто. Обертка вокруг ассемблера. Но вот когда начали делать C++ — вот тут начало повылазивать. Потом это пробовали прикрыть разными костылями.
Если сравнивать C и C++ сравните сколько в C ситуаций, которые про undefined behavior и сколько в C++
Если сравнивать C и C++ сравните сколько в C ситуаций, которые про undefined behavior и сколько в C++Ну дык вопрос не в количестве! Вопрос в качестве. То, что
interator
на массив из которого удалили элемент больше использовать нельзя — неприятно, но не смертельно.А вот то, что нет простой возможности сложить два числа и понять — произошло при этом переполнение или нет (за исключением использования компиляторно-зависимых built-in'ов) — это, согласитесь, несколько странно для «обёртки вокруг ассемблера»! Особенно с учётом того как часто эта проблема «стреляет» в реальном коде…
"Заточен" в моём понимании значит, что подавляющее большинство фич языка под это сделано. А это давно уже не так. Более того, многие фичи версий 5- выпиливаются постоянно. Большинство реального кода, написанного под 3.0, в 7.0 просто не заработает.
Какая сейчас заточенность под тех, кто не разбирается в программировании? Лично мне в голову приходит только неявное приведение типов с не очень очевидными правилами в очень многих случаях и "киллер-фича" — вывод текста не обрамленного тегами в stdout. Всё по сути. Не хватает чего-то привычного по другим языкам — есть такое. Но заточенность-то в чём?
Инкремент (++) NULL'а выдаёт 1.
<?php
echo 1? 2: 3? 4: 5;
Автор статьи по вашей ссылке, видимо, очень хорошо разбирался в программировании.
Я не спорю — последние версии уже потихоньку начинают напоминать язык программирования. Но сколько «добра» ещё осталось…
«Добра», конечно, много, кто ж с этим спорит. Но все это по максимуму стараются оставить в прошлом для всякого легаси. Современные проекты стараются обходиться без эксплуатации сомнительных особенностей, благо современный PHP это позволяет и поощряет.
К слову, в том же JS с оператором сравнения так же весело, если не веселее. По моим впечатлениям, ранний JS выглядит гораздо уродливее PHP (того же времени) в плане дизайна языка. Но JS — это уже совсем другая история :)
Я другое хотел сказать: программисты на PHP стали писать код, логически понятный для людей, а не лапшеобразную мешанину всего подряд. Появились стандарты, инструменты, код стайл, композер, вот это вот всё. Уровень вырос, сейчас за всякую лапшу в стиле двухтысячных в нормальном сообществе PHP-программистов просто закидают
Действительно ли так хороши фреймворки, которые устаревают к моменту завершения чтения раздела Getting Started в официальной документации?
apt-cache search ^php-|wc -l
540
apt-cache search ^python-|wc -l
3898
apt-cache search ^ruby-|wc -l
1174
apt-cache search ^node-|wc -l
782
apt-cache search ^lib|wc -l # mostly C/C++
24620
Мне как админу с php-софтом работать некомфортно и я постоянно опасаюсь, что он будет от рута исполнять код из каталога с правами 777 (созданного в генераторе превьюшек). Я понимаю, что это не вина языка программирования, но, так сказать, его карма.
Ну, у PHP, Ruby и NodeJS число пакетов одного порядка. Думаю, не в последнюю очередь потому, что у всех трёх есть свои "нативные" менеджеры пакетов.
Што. Какое отношение ЯП имеет к CI/CD?
У проблемы системных зависимостей нет лёгкого решения. Есть непротиворечивое и работающее — это системные пакетные менеджеры. Интеграция с ними — это сложно.
Но ладно, composer. Вот, скажите, как у нас с composer сочетается установка нескольких известных php-приложений, допустим: mediawiki, wordpress, phpbb. Они composer'ом устанавливаются в систему?
Подождите, но libssl — это внешняя относительно PHP сущность. Критика как бы не совсем по адресу.
>Но ладно, composer. Вот, скажите, как у нас с composer сочетается установка нескольких известных php-приложений, допустим: mediawiki, wordpress, phpbb. Они composer'ом устанавливаются в систему?
Почему бы и нет? К примеру:
https://www.mediawiki.org/wiki/Composer/ru
Смотрите, вы накидываете примеры из совершенно разных уровней управления.
Если вам нужно одноразово приложение — установите его файлами.
Если нужно поддерживать приложение up-to-date со всеми его внутренними зависимостями — используйте composer.
Если хочется также возможности фиксации внешних зависимостей — соберите образ или используйте docker.
Если нужна оркестрация всего этого счастья — используйте менеджер оркестрации.
Поймите, если чего-то «из коробки» нету в apt — это не значит, что нет красивого способа этим управлять ;)
Когда вы делаете полноценный CI/CD, то у вас «внешняя сущность» прописана в зависимостях и будет установлена системным менеджером пакетов.
Притаскивать докер как решение проблемы зависимостей — это круто. Настолько круто, что у меня слов нет. Вот вышла у нас очереная CVE'шка для openssl. Пробежался у нас по хостам apt-get, эту libssl обновил. А что у вас докеры делают? Ах, они же иммутабельные…
Потрясающий апгрейд производительности сотрудников.
Ещё больше мне нравится ваша категоричность о том, что вы не видите проблем. Я понимаю, что вы их не видите. Это не значит, что их нет.
Идеально сишка развита только в линуксе, и то за счет того что это дефолтный язык. Причем как только речь заходит о написании не системных приложений, а прикладных — все сразу же становится наоборот: нода оказывается развита отлично, а сишка страдает...
Это просто библиотеки, соответствующие соглашению Си о вызове функций. Не только Си поддерживает эти соглашения. Тот же Ди поддерживает и Си соглашение, и Паскаль, и СиИнкремент, и даже ОбъективныйСи.
Будет правильно говорить, что и паскаль, и другие языки, всего лишь «поддерживают сишные модули» (особенно это заметно для паскаля, который добавляет специальные кейворды для поддержки сишных модулей).
Надо осознать, что Си — это основа всех современых ОС, и его методы подгрузки модулей стали стандартом для ОС на уровне, когда не поддерживая эти стандарты (тем или иным образом) эту ОС использовать просто нельзя. Более того, по сравнению с остальными языками, у Сишного динамического линкера (который по задаче запуска приложения мало отличается от любого «интерпретатора» или vm) особое, привилегированное положение в системе. Например, я могу поставить suid на ELF, но не могу поставить suid на jar.
Ну, это вы про одну конкретную кривую ОС говорите. В других ОС другие тараканы :-)
COM, .NET — ни разу не "сишные интерфейсы".
Для начала, для сишного линкера каждый символ идентифицируется только своим именем, а для системного загрузчика dll символ характеризуется именем и модулем, причем начиная, если не путаю, с XP при поиске модулей помимо имени файла могут учитываться версия и хеш-сумма.
А управляемые dll имеют и вовсе свой механизм поиска зависимостей, учитывающий публичный ключ подписи файла.
Так что dll — это совершенно не часть экосистемы Си.
Теперь про COM. COM — это, на нижнем уровне, общий стандарт на формат публикации таблицы виртуальных функций, который позволяет передавать указатели на объекты между модулями, скомпилированными разными компиляторами.
При этом методы объектов не экспортируются из библиотек обычным образом, а остаются внутренними для модулей — и участие загрузчика модулей остается минимальным. Фактически, одной из целей COM является как раз преодоление ограничений си-подобного связывания функций.
Кстати, стандартным соглашением о вызовах что в WinAPI, что в COM является stdcall, которое ничуть не похоже не сишное cdecl.
Так что попрошу не обобщать опыт линукса в плане засилия Си на другие ОС.
Я понимаю, что это не вина языка программирования, но, так сказать, его карма.Нет, это его вина. Весь язык от начала до конца был создан под лозунгом «как-нибудь лучше, чем никак». Малог того, что это приводит к ужасному дизайну — это привлекает кучу разработчиков, которые порождают творения, которые «будут от рута исполнять код из каталога с правами 777 (созданного в генераторе превьюшек)»
Достаточно полных прав процессу интерпретатора и прав на чтение вебсерверу.Достаточно. Но так как сделать права 777 проще — то так зачастую и делали.
Ситауация с PHP постепенно, очень постепенно, исправляется — но посмотрим чем всё закончится. Когда Visual Basic решили «исправить» одним резким движением и создали Visual Fred — то потеряли почти всех разработчиков. PHP6 свернули и, может быть, со временем PHP и «доведут до ума» — но надежды мало. Уж очень много в нём разных болячек изначально было…
Кто, как, зачем? С чего это chmod(777) стал проще, чем chmod(640)?Дык эта. Первое — работает, а второе — нет. Тут беда в том, что скрипты зачастую заливались пользователем
ftp
, а исполнялись под пользователем http
. Чем разбираться во всяких тонкостях — проще сделать «chmod 777» — и всё будет работать.Этим не только PHP грешил, впрочем. Драйвера, которые давали OpenOffice.org (sic!) видели? Вот это — из той же оперы.
Понятно что это было лет так 10 назад, но код так просто и быстро не умирает, увы…
С середины 90х всё хоронят Windows в пользу Lunix.
С распространением Интернета всё хоронили ТВ.
Думайте своей, а не чей-то, головой
Нужно больше "осмысленных" комментариев к стебному посту, больше!
© Сарказм.
Узнал себя. Мне даже как-то непосебе стало. )
На PHP каждый считал своим долгом написать свой правильный шаблонизатор. JS пошёл чуть дальше — каждый пишет свой фреймворк. Это вы ещё LISP не видели — там вообще каждый считает своим долгом написать свой язык :-D
К слову, недавно нашумела статья «Electron — это новый Flash». Ее прекрасно дополнила бы: «Javascript — это новый PHP».
Вещи, которые вы не сможете сделать являясь PHP-разработчиком:
Признаться людям, что вы — PHP-разработчик.
Эм… я PHP-разработчик :)
И юзаю Laravel в работе, как и многие другие.
rabota.ua:
PHP — 795 вакансий
Python — 151 вакансий
Node.js — 183 вакансий
hh.ru
PHP — 1141 вакансий
Python — 1021 вакансий
Node.js — 173 вакансий
python: Jobs 1 to 10 of 44,996
php: Jobs 1 to 10 of 17,894
При этом много работы на PHP связано с drupal/wordpress/… или «full stack web developer» где надо все тот же javascript + css пилить и при этом оплачивается хуже чем более интересные (в среднем) и сложные задачи, которые обычно решают на python.
Держите нас в курсе ваших дальнейших исследований! :-)
А как же конверторы, простите транслитераторы из пхп в джиэс?
Если начали изучать какой то язык программирования, то сразу считаете, что он самый лучший и только он завоюет весь мир. Еще смешнее, когда выбор языка производится не на основании холодного расчета, ознакомления с бэкграундом, а строится на базе «модно, стильно, молодежно». При сравнении любых двух произвольных языков обычно есть плюсы перед соперником у обоих языков. В последние 15 лет «убийц php» типа Ruby, Питона было несколько. Вчерашние выпускники взяли смузи, отрастили бороды, подвернули брючки и помчались добивать php на том языке, который выбрали из-за его новомодности. А php развивается, не собираясь умирать. Почему?
Огромное количество CMS, форумных движков написано на php и их надо развивать, поддерживать.
Чем мониторят оборудование и операционки в компаниях всех размеров? Zabbix-ом. На чем он написан? На php.
Чтобы компания жила, нужны продажи. От лида до готовой продажи лиды надо обрабатывать, отстраивать рабочие процессы. Для этого используют различные CRM типа AmoCRM, Bitrix24 и т.д. Bitrix24 — это серьезный продукт, который только начал свое восхождение и количество интеграций у него планируется не меньше, чем на 3 порядка больше, чем сейчас. Хороший программист Bitrix24 может получать 1000-3000р/ч. На чем написан Bitrix24? На PHP. Напомните мне CRM корпоративного уровня на Node, Ruby, питоне?
Node основан на JS. JS — убогий, нормальный код на нем писать сложнее, куча странных и неочевидных багов, его развитие отстало от php на много-много лет. Node — это узкоспециализированный продукт. Крупный продукт типа того же Bitrix24 в разы сложнее/дороже написать и нагрузка на сервер будет в разы больше. А серверные мощности стоят дорого. Начиная разрабатывать крупный продукт на ноде можно дойти до этапа, когда его части начнут переписываться на другом языке. В определенный момент десятки тысяч часов программистов будут перечеркнуты и будет произведен глобальный рефакторинг проекта на других языках. Я не хочу сказать, что Node — это мертворожденный язык. Но сейчас говорить о том, что Node убил php или о недостатке работы у программеров на php, или об отсутствии перспектив у программеров на php не просто смешно, а даже глупо. Разработчиков на Node гораздо меньше, на порядки меньше. Качественных — еще меньше. Если разрабатывается серьезный долгосрочный продукт, считаются все риски и в первую очередь рассматриваются варианты замены программистов со временем в результате естественной текучки. Набрать команду из 100-200 программистов на ноде уровня миддл и выше — это квест сильно на любителя. То же самое на пхп будет сделано спокойно, в рабочем порядке.
JS — убогий, нормальный код на нем писать сложнее, куча странных и неочевидных багов, его развитие отстало от php на много-много лет.Вот тут вы делаете ту же ошибку, в которой обвиняете всех остальных. JS и PHP — два полуинвалида, но оба развиваются достаточно быстро, чего такого важного есть в PHP, чего нет в JS современном?
А что касается всего остального… Легаси — оно Легаси и есть. И Fortran и Cobol до сих пор не умерли по этой причине. Особенно нравится рассказ про Bitrix24 и 100500 планируемых установок… Запланировать что угодно можно. А вот сделать…
А серверные мощности стоят дорого.Если серверные мощности стоят дорого, то вам нужна многопоточность и persistency (чтобы на каждый запрос не делать кучу работы) — то есть Java или C#. PHP как раз под нагрузкой жрёт как не в себя, почему и появляются всякие извращения как в Facebook.
В определенный момент десятки тысяч часов программистов будут перечеркнуты и будет произведен глобальный рефакторинг проекта на других языках.И как часто этим «другим языком» оказывается PHP? Извините, но отказов от PHP я видел много. А вот перехода на PHP — никогда. Не могу сказать, что их не бывает — но это какие-то исключительные случаи. Иначе кривая популярности выглядела бы не так, как она выглядит, а чуток иначе.
Набрать команду из 100-200 программистов на ноде уровня миддл и выше — это квест сильно на любителя. То же самое на пхп будет сделано спокойно, в рабочем порядке.А не подскажите хоть один проект на 100-200 программистов на PHP… Страшно интересно как они выглядят, всё же. Потому что даже в глобальных проектах типа Wikipedia программистов на PHP — с десяток, примерно. По моему опыту ситуация другая: если ваш проект требует 100-200 программистов (и это один проект, а не 1000 CMSок для разных заказчиков), то делать его на PHP даже начинать не стоит. Он рухнет под собственной тяжестью задолго до релиза.
PS. Ожидаємо начался холивар)
$PHP не нужен*