LINUX.ORG.RU

История изменений

Исправление vitalif, (текущая версия) :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов <?php ?>. И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - в смысле это ~10 файлов - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Из остального меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие ключа - есть array_key_exists

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности, а по удобству js/es6 норм. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов <?php ?>. И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - в смысле это ~10 файлов - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Из остального меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие ключа - есть array_key_exists

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов <?php ?>. И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Из остального меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие ключа - есть array_key_exists

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов <?php ?>. И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие ключа - есть array_key_exists

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов <?php ?>. И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов . И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь (хотя наверно и лучше, чем жаба). И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов . И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных веб писать тоже в принципе не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь. И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исправление vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов . И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных в принципе писать веб не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь. И ещё { с новой строки запрещает писать. - что тоже бесит…

О, ни хрена себе я накатал…

Исходная версия vitalif, :

Да ну. Не согласен. Это популярное мнение, но то что оно популярное - не значит, что оно правильное.

Функции в глобальном неймспейсе? И что? Мне например нравится, что функции для строк начинаются со str. Это кратко и удобно.

Сравнение нетранзитивное? И что? В 99.99% случаев оно работает именно так, как ты хочешь, т.к. действительно сплошь и рядом в вебе - в параметрах, в работе с БД и т.п. - всё передаётся как строка. Ну есть нюансы, и что? Нюансы везде есть.

Ну и т.д. и т.п. - так можно сказать про каждый пункт претензий практически.

Зато:

  1. БИНАРНЫЕ и бинарно-безопасные строки. Как меня бесит например в питоне «ascii codec can not decode…» - блин, я не просил тебя ничего decode - высри как есть и ВСЁ!!!

И не нужен никакой отдельный класс Buffer для работы с бинарными данными, двоичный буфер - это та же строка.

И строки COW-ятся, т.е. работа с ними довольно оптимальна. Ну два набора функций - strlen и mb_strlen. И что? Что в этом страшного-то?

  1. Суперудобные массивы, являющиеся value типом, тоже с COW и всегда сохраняющие порядок. Да, понятно, что оверхед и всё такое - но извините, интерпретатор пхп быстрее питона примерно раз в 30. В смысле обычного, не пипи. Так что оверхед видимо вполне приемлемый. Это, кстати, тоже аргумент - пхп сейчас один из самых быстрых из всей скриптоты.

  2. Полностью и насмерть решена проблема утечек памяти - самым радикальным образом - интерпретатор просто сбрасывается при каждом запросе. Это же приводит и к интересному принципу написания быстрого кода - важно обеспечить быстрый кодовый путь при каждой инициализации. А не инициализироваться 5 минут, как в яве какой-нить.

  3. Суперпростой деплой. Пхп это можно сказать почти serverless. Точнее можно сказать, что «новое изобретение» под названием serverless - это блин аналог шаред хостинга на пхп - просто в языках, для которых шаред хостинг невозможен из-за неприспособенности языка.

  4. Практически ВСЕ базовые вещи, нужные для веба, уже встроены в язык в виде базовых расширений. Загрузки файлов-сессии-куки-картинки-драйвера БД-json-zip-xml-iconv-bigdecimal (bcmath)-SOAP и т.д и т.п. Даже «шаблонизатор» в примитивном виде встроен - можно писать шаблоны с помощью выхода из тегов . И это реально удобно - я например могу взять ~10 собственных простеньких обёрток/утилит - не брать вообще ни одной внешней зависимости - и успешно кодить.

И нефиг в пхп пускать явистов, рожающих идиотские клоны говённого Hibernate (Doctrine) и говённого Spring (Zend).

Единственный реальный минус - это отсутствие встроенного eventloop-а и нормальной поддержки вебсокетов. Это да - реальный минус - вот его бы пофиксили и было бы отлично.

Меня, наверное, единственное, что несколько раздражает - это то, что доступ к несуществующему элементу массива генерирует notice. Имхо надо просто возвращать null и мозг не е**ть, как в js. Для тех случаев, когда нужно именно проверить наличие

Нода пожалуй получше пхп - т.к. эвентлуп, да и v8 реально делает ВСЕХ по производительности. Но в то же время для простейшей задачи «уменьшить картинку» в npm штук 10 разных библиотек, самая популярная из которых - это вызов консольного gm. В php это всё давным-давно решено и оформлено в виде стандартного экстенжена.

Яву и прочие толстожопые языки я даже рассматривать не хочу. На типизированных в принципе писать веб не хочу. Могу, но не хочу. Ceph писать на C++ понятно, зачем. А зачем веб писать на типизированном языке - я ХЗ. Это геморрой только лишний без профита. Питон - тормоз и значащие пробелы пипец как бесят (но для ML от него никуда не денешься, это понятно). Руби - вообще недоразумение, кривая вариация на тему питона. Перл - в принципе не самый плохой язык, но уже не развивается. С тем, что он «write-only» - я тоже не согласен. А что там ещё-то осталось? ) ну Игого ещё (Go), но он всё-таки типизированный, опять-таки, и много скриптовых удобных фишек на нём не сделаешь. И ещё { с новой строки запрещает писать. - что тоже бесит…