Ну например, в методе "String.slice" что означает второй аргумент?
Диапазон означает. От нуля, если считать с начала строки, либо от -1, если надо с конца строки считать.
А если вернёт одно, то почему не другое, ведь оба поведения являются корректными?
Нет, когда я работаю со строкой, я ожидаю, что те символы, которые видны на экране - это и есть символы строки. Соответсвенно 👩❤️👨 - это один символ (хоть терминологически правильнее его называть графемой, но это уже как раз детали реализации). И, в целом, вы тут подловили в том плане, что составные графемы действительно рассыпаются на составляющие части, однако они всё ещё рассматриваются как единое целое и при выводе для пользователя всё получается правильно:
При этом reverse работает, судя по всему некорректно, т.к. в моём понимании реверс строки -- это реверс чаров в строке
Так это у вас неверное понимание. Если хотите работать не со строкой, а со списком байтов или даже битов, то такая возможность тоже есть. Но это уже совсем другая тема.
А equivalent вернёт true или false при сравнении Floß, floss, floſs и floſʒ?
Может, я не понял вопрос. Но это же очевидно не эквиваленты, они при выводе для пользователя выглядят совершенно по-разному.
Вот со смайликом вашим, там эквиваленты, потому что для пользователя будет одно и то же отображение:
Ну, эсцет `ß` допускает 2 варианта записи в верхнем регистре `ẞ` и `SS`. Если один из них срабатывает, то имхо норм. Хоть тут и возникает некоторая необратимость в преобразованиях регистра, но для немецкого это в норме вещей. Тем более, что эсцет выходил из широкого употребления ещё в начале нулевых.
А вот о чём, кстати, пост? По-моему он исключительно о том, почему Альберту Степанцеву нравится PHP. Причём с весьма слабыми доводами и натяжками.
На вопрос из заголовка ответа нет, нет даже доказательств, что PHP является "одним из самых востребованных". То, что в интернете есть куча home pages, которые когда-то были написаны на PHP, а так же миллионы развёрнутых CMS - это имхо не аргумент. Это только показывает, что когда-то он был востребованным.
Для начала бы определиться со скоупом. Востребованный для чего?
Чтобы вести свой блог? Когда-то да, Wordpress в 2 клика в админке хостера и погнали. Сейчас очевидно нет. Соцсети давно уже заняли эту нишу, и поднимать свой личный блог в 2025 году на Wordpress - это шиза.
Чтобы сделать сайт-визитку для компании? Когда-то да, заказали в веб-студии за 20 т.р., они подняли CMS, скин натянули и погнали наполнять. Сейчас очевидно нет. Для компании важнее хорошо оформить карточки в 2Gis и Яндексе, и вести профиль в соц.сетях.
Чтобы сделать свой интернет-магазин? Спорно, конкурентов у PHP тут хватало и 15 лет назад, но допустим. Заказали у веб-студии за 100-150 т.р. разработку и ok. Сейчас очевидно нет. Маркетплейсы полностью вытеснили мелкие интернет-магазины.
Вообще формат CMS потерял популярность, уступив место SaaS решениям. И считать, что 100 тыс доменов привязанных к Tilda == 100 тыс проектов на PHP - это тупо. Это 1 проект, сколько бы там доменов ни было.
А приводить в пример ВКонтакте, который выбрал PHP 20 лет назад и чтобы не загнуться от последствий такого выбора, был вынужден написать свой компилятор - такое себе. Имхо, выглядит как аргумент, почему выбрать PHP было для них ошибкой.
Переход от PHP 4 к PHP 5 принес полноценное ООП, сделав язык удобным для коллективной работы. Версия 5.4 подарила неймспейсы и пакетный менеджер — PHP стал платформой для больших команд. PHP 7 произвел революцию в производительности благодаря работе Дмитрия Стогова из Core team.
Тут для полноты картины не хватает рассказа о достижениях PHP 6, который собственно и породил разговоры о том, что PHP своё отыграл, т.к. они так и не осилили поддержку Unicode добавить.
Ну и неизбывная особенность PHP - это процедурная стандартная библиотека с несогласованными функциями. Напр. str_split, но strpos (почему не str_pos?), зато у обеих строка идёт первым аргументом. Вроде логично, смотрим str_replace и внезапно основная строка - третий аргумент. О том, чтобы сделать это всё методами объекта String и речи не идёт. Так что никаким полноценным ООП в PHP не пахнет до сих пор.
А так, конечно, PHP не убиваем, столько сайтов на Wordpress, Joomla и Drupal, что если только их сложить уже больше 80% всех сайтов в мире получится.
P.S. Лично я перестал писать на PHP в 2009-м и ни разу не пожалел, в мире есть гораздо более приятные ЯП (и да, тут речь уж точно не про Go), так что не стоит зашориваться на чём-то одном.
Соглашусь. Все эти ассистенты больше похожи на интерфейс к поиску, который и запрос поймёт получше гугла и результаты сразу агрегирует в читаемый вид. Попробуйте PHind. На мой вкус, он для этих юзкейсов даже получше ChatGPT.
Ну да, имхо, новость должна быть либо про что-то широко известное, либо новость и должна презентовать что-то новое. А тут минорная версия какого-то нового языка и получилось непонятно, чем именно 0.30.2 стала такой примечательной, что удостоилась новости.
не является pure dataflow, это все control-flow с элементами dataflow
Погодите. Я правильно понимаю ситуацию? Вот я говорю, что есть Elixir c GenStage и Flow, которые позволяют реализовывать любую dataflow задачу стабильно, со всеми нужными примочками, обвязками и интроспекцией.
А вы говорите, что этого недостаточно, только потому что он не принуждает вас насильно писать в dataflow-подходе абсолютно всё, включая расчёт чисел Фибоначчи и вывод в консоль? Мне кажется, тут идея идёт уже в ущерб практичности и универсальности.
Так, медианная з/п эйчаров в статье указана 100 т.р.
И причём тут все остальные, кого вы перечислили?
Спору нет, для вашего юзкейса и PHP и Perl отлично подходят.
А вот разработчики гораздо чаще работают с чужим кодом, чем со своим.
grapheme_str_splitя так понимаю новинка из PHP 8.4? Неплохо, хоть и немного костыльно. А что с примером перевода baffle в верхний регистр?Для особо ценных мыслей есть https://jekyllrb.com/ и куча его последователей, ведёте все посты прямо в Git, реплицируете сколько душе угодно.
Или вы наивно полагаете, что если платите хостеру 200 рублей в месяц, то он не снесёт ваш блог на Wordpress вместе с базой, если кто надо попросит?
Для большинства людей всё это, правда, неактуально. Никому до них дела нет.
Диапазон означает. От нуля, если считать с начала строки, либо от -1, если надо с конца строки считать.
Нет, когда я работаю со строкой, я ожидаю, что те символы, которые видны на экране - это и есть символы строки. Соответсвенно 👩❤️👨 - это один символ (хоть терминологически правильнее его называть графемой, но это уже как раз детали реализации). И, в целом, вы тут подловили в том плане, что составные графемы действительно рассыпаются на составляющие части, однако они всё ещё рассматриваются как единое целое и при выводе для пользователя всё получается правильно:
Так это у вас неверное понимание. Если хотите работать не со строкой, а со списком байтов или даже битов, то такая возможность тоже есть. Но это уже совсем другая тема.
Может, я не понял вопрос. Но это же очевидно не эквиваленты, они при выводе для пользователя выглядят совершенно по-разному.
Вот со смайликом вашим, там эквиваленты, потому что для пользователя будет одно и то же отображение:
Ну, эсцет `ß` допускает 2 варианта записи в верхнем регистре `ẞ` и `SS`. Если один из них срабатывает, то имхо норм. Хоть тут и возникает некоторая необратимость в преобразованиях регистра, но для немецкого это в норме вещей. Тем более, что эсцет выходил из широкого употребления ещё в начале нулевых.
Отчего же, например, в Elixir эти примеры спокойно работают, причём без воркэраундов, без перевода в массивы и т.п.
А функции на Си кто писал? Пушкин что-ли)
Если вы имели в виду, что это функции из С-stdlib, то нет. Там только такие: https://ru.wikipedia.org/wiki/String.h
А эти хоть и на Си, но написаны разработчиками PHP.
Не осилили было в контексте того, что полноценной поддержки Unicode так и нет до сих пор. Проверьте на примерах из этой статьи
Да, в целом, есть языки в которых есть bitstring и просто string. Если нормально всё реализовать, то это даже удобно)
Например, успешное прохождение всех проверок из этой статьи: https://mortoray.com/the-string-type-is-broken/
А вот о чём, кстати, пост? По-моему он исключительно о том, почему Альберту Степанцеву нравится PHP. Причём с весьма слабыми доводами и натяжками.
На вопрос из заголовка ответа нет, нет даже доказательств, что PHP является "одним из самых востребованных". То, что в интернете есть куча home pages, которые когда-то были написаны на PHP, а так же миллионы развёрнутых CMS - это имхо не аргумент. Это только показывает, что когда-то он был востребованным.
Для начала бы определиться со скоупом. Востребованный для чего?
Чтобы вести свой блог? Когда-то да, Wordpress в 2 клика в админке хостера и погнали. Сейчас очевидно нет. Соцсети давно уже заняли эту нишу, и поднимать свой личный блог в 2025 году на Wordpress - это шиза.
Чтобы сделать сайт-визитку для компании? Когда-то да, заказали в веб-студии за 20 т.р., они подняли CMS, скин натянули и погнали наполнять. Сейчас очевидно нет. Для компании важнее хорошо оформить карточки в 2Gis и Яндексе, и вести профиль в соц.сетях.
Чтобы сделать свой интернет-магазин? Спорно, конкурентов у PHP тут хватало и 15 лет назад, но допустим. Заказали у веб-студии за 100-150 т.р. разработку и ok. Сейчас очевидно нет. Маркетплейсы полностью вытеснили мелкие интернет-магазины.
Вообще формат CMS потерял популярность, уступив место SaaS решениям. И считать, что 100 тыс доменов привязанных к Tilda == 100 тыс проектов на PHP - это тупо. Это 1 проект, сколько бы там доменов ни было.
А приводить в пример ВКонтакте, который выбрал PHP 20 лет назад и чтобы не загнуться от последствий такого выбора, был вынужден написать свой компилятор - такое себе. Имхо, выглядит как аргумент, почему выбрать PHP было для них ошибкой.
Это всё конечно хорошо. Но для практического применения лучше изучить Elixir, во всяком случае если вас backend-разработка интересует.
https://www.erlang-solutions.com/blog/why-elixir-is-the-programming-language-you-should-learn-in-2024/
Тут для полноты картины не хватает рассказа о достижениях PHP 6, который собственно и породил разговоры о том, что PHP своё отыграл, т.к. они так и не осилили поддержку Unicode добавить.
Ну и неизбывная особенность PHP - это процедурная стандартная библиотека с несогласованными функциями. Напр. str_split, но strpos (почему не str_pos?), зато у обеих строка идёт первым аргументом. Вроде логично, смотрим str_replace и внезапно основная строка - третий аргумент. О том, чтобы сделать это всё методами объекта String и речи не идёт. Так что никаким полноценным ООП в PHP не пахнет до сих пор.
А так, конечно, PHP не убиваем, столько сайтов на Wordpress, Joomla и Drupal, что если только их сложить уже больше 80% всех сайтов в мире получится.
P.S. Лично я перестал писать на PHP в 2009-м и ни разу не пожалел, в мире есть гораздо более приятные ЯП (и да, тут речь уж точно не про Go), так что не стоит зашориваться на чём-то одном.
Соглашусь. Все эти ассистенты больше похожи на интерфейс к поиску, который и запрос поймёт получше гугла и результаты сразу агрегирует в читаемый вид. Попробуйте PHind. На мой вкус, он для этих юзкейсов даже получше ChatGPT.
Так они ещё и язык специальный придумали, где можно побольше избыточного бойлерплейта генерировать, Golang называется xD
Теперь понятно зачем он такой невыразительный. Чтоб красивые проценты по достижениям нейросетей рисовать.
Надо было вопрос точнее формулировать: Почему её не можно трогать? xD
Вы тут используете риторический приём "ложная дихотомия"
У вас просто нет фокуса на новую деятельность. Поэтому вы вместо продуктивных действий праздно жалуетесь на жизнь в комментариях.
Юзкейсы Симулинка понятны. Но мне показалось, что в случае Neva речь о том, чтобы всё в таком стиле писать.
Ну да, имхо, новость должна быть либо про что-то широко известное, либо новость и должна презентовать что-то новое. А тут минорная версия какого-то нового языка и получилось непонятно, чем именно 0.30.2 стала такой примечательной, что удостоилась новости.
Погодите. Я правильно понимаю ситуацию? Вот я говорю, что есть Elixir c GenStage и Flow, которые позволяют реализовывать любую dataflow задачу стабильно, со всеми нужными примочками, обвязками и интроспекцией.
А вы говорите, что этого недостаточно, только потому что он не принуждает вас насильно писать в dataflow-подходе абсолютно всё, включая расчёт чисел Фибоначчи и вывод в консоль? Мне кажется, тут идея идёт уже в ущерб практичности и универсальности.