RSS

Комментарии

Распознавание эмоций в речевом канале — это одна из наиболее распространенных задач в области эмоционального ИИ. Чаще всего для построения модели применяются глубокие сети, которым на вход подаются различные представления звукового сигнала (спектрограммы, хромаграммы, последовательности наборов мел-кепстральных коэффициентов и т.п.). Такие модели решают задачу классификации или регрессии. Чтобы обучить модель, распознающую эмоциональную окраску речи, нужно подготовить обучающую выборку. А для этого нужно условиться, какое представление эмоций мы будем использовать. Возможные классификации предоставляет язык разметки EmotionML 1.0. Он содержит несколько «эмоциональных словарей», основывающихся на научных классификациях. Одна из них — это «большая шестёрка» эмоций (отвращение, печаль, гнев, страх, счастье и удивление) — предложена в 1972 году в работе американского психолога Пола Экмана (Paul Ekman). Другой эмоциональный словарь, предусмотренный EmotionML 1.0, основан на концепции соответствия эмоций тенденциям действия [action tendencies], разработанной голландским психологом Нико Фрейдой (Nico Henri Frijda). Этот словарь включает в себя 12 эмоций: безразличие, высокомерие, гнев, желание, интерес, наслаждение, отвращение, покорность, смирение, страх, удивление и шок.

Есть много разных словарей, но наивным было бы считать, что их авторы просто соревновались друг с другом в составлении бессистемных списков эмоций. В основе больших эмоциональных словарей обычно лежит анализ лингвистических данных (статистики использования слов, используемых для передачи эмоциональной информации в различных языках). При этом сами словари нередко являются лишь «побочным продуктом» исследований, цель которых — построить «эмоциональное пространство», то есть такое представление, в котором каждая эмоция будет разделена на несколько независимых друг от друга компонент. Одну из попыток построить такое
пространство предпринял Джеймс Рассел (James A. Russell) в 1980 году. Он разложил эмоции по двум шкалам: первая, «удовольствие-неудовольствие», характеризует позитивный или негативный характер эмоции, и вторая, «возбуждение-сон», характеризует активность или пассивность психического состояния. Эта работа вызвала закономерную критику: мир эмоций не сводим к двумерному пространству. Критики предложили свою модель, уже не двухмерную, а в виде сетки, под названием «GRID» [сетка, решётка].
Так как у нас есть эмоциональный континуум, вместо задачи классификации, когда у нас есть несколько классов эмоций, мы сталкиваемся с задачей регрессии. В данном случае от модели требуется не предсказание метки конкретного эмоционального класса в соответствии с выбранным эмоциональным словарём, а оценка величины каждой из выбранных компонент эмоции. Для этой цели в стандарте EmotionML 1.0 введены системы измерений эмоций. Кроме упомянутой нами системы GRID (FRSE) с четырьмя шкалами, стандартом предусмотрена возможность использования пространства «Удовольствие-Возбуждение-Доминирование» (Pleasure, Arousal, and Dominance, PAD), основанного на трёх соответствующих шкалах, а также плоской шкалы интенсивности эмоции.

Кстати, модели эмоций могут быть и мультимодальными, так как при оценке эмоциональной окраски речи люди неизбежно ориентируются не только на звуковые признаки, но и на текст сказанного. А если вы используете видеозаписи человеческой речи, то к числу признаков добавятся ещё и признаки из видеоканала — выражение лица, а возможно и движения тела говорящего. В таком случае понадобится модель, которая сможет получать на вход мультимодальную информацию. Некоторые компоненты этой информации будут довольно универсальными для разных культур (например, то, каким образом эмоции, испытываемые человеком, влияют на его голос), а некоторые будут весьма специфичны для конкретной культуры (например, тот же язык — не факт, что нейронная сеть, которая обучалась на эмоциях людей-носителей одного языка, будет применима для распознавания эмоций у носителей другого языка).

Когда мы определились со словарём, приходит очередь разметки данных, которая является проблемной задачей: разметчики не всегда сходятся в оценках эмоциональной окраски той или иной фразы. Например, кто-то может услышать в одной фразе нейтральную окраску, а кто-то — скрытую печаль. Если вы используете при оценке систему, основанную на шкалах, то в датасете значения оценок, полученные от всех оценщиков по каждой шкале, можно подвергнуть усреднению. При использовании словаря придётся либо доверять большинству оценщиков, либо отбрасывать фразы, получившие неоднозначные оценки.

К счастью, на данный момент сформировано уже некоторое количество эмоциональных датасетов, на 2009-й год их было порядка сотни. Однако таких же объёмных, как ImageNet или LibriSpeech, для эмоциональной речи в публичном доступе так и не появилось.

Вот некоторые наиболее популярные на сегодняшний день у разработчиков публичные датасеты эмоциональной речи:

1. RAVDESS состоит из записей 24 профессиональных актёров (12 мужчин и 12 женщин), озвучивающих две фразы («у двери разговаривают дети», «собаки сидят у двери») на английском языке с североамериканским акцентом в двух вариантах: речь и пение, по две озвучки на каждый вариант. В качестве эмоционального словаря разметки использована «большая шестёрка» эмоций, к которой было добавлено «спокойствие». Каждая фраза представлена в датасете двумя уровнями эмоциональной интенсивности для каждой из эмоций, а также однократно с нейтральной окраской. Каждая запись присутствует в датасете в трёх модальностях (только видео, только звук, звук вместе с видео). RAVDESS считается одним из наиболее качественных датасетов эмоциональной речи, но лексически он крайне беден.

2. SAVEE состоит из записей четырёх актёров-мужчин, говорящих на родном для них британском английском. В качестве эмоционального словаря снова выбрана «большая шестёрка», при этом фразы с нейтральной эмоциональной окраской записывались дважды. Сами фразы были выбраны из корпуса TIMIT (датасет с записями 630 дикторов), для каждой эмоции было взято 15 фраз, при этом из них три были общими для всех эмоций, десять — разными для разных эмоций, но без эмоциональной специфики, а ещё две фразы были основаны на текстах, имеющих специфическую эмоциональную окраску для данной эмоции (например, «Кто одобрил счёт с неограниченным расходным лимитом?» для эмоции «гнев»). К сожалению, объём этого датасета крайне мал, что создаёт проблемы для разработчиков.

3. SEMAINE — это аудиовизуальная база данных, ставшая одним из продуктов исследовательской программы по созданию «Чувствующего искусственного слушателя» (Sensitive Artificial Listener, SAL) — аудиовизуальной диалоговой системы, способной вовлечь человека в длительный эмоционально окрашенный разговор. По сути разговор с агентом SAL для человека напоминает обычный разговор при помощи системы видеосвязи с той лишь разницей, что собеседником является виртуальный персонаж, внешний облик которого (лицо, мимика, движения губ во время речи) в реальном времени генерируется при помощи библиотеки для трёхмерной визуализации. Данные, содержащиеся в базе SEMAINE, были получены в результате взаимодействия между пользователями и человеком-оператором, имитирующим чувствующего искушённого слушателя, а затем и ассистентом на базе нейросетевой модели. База включает записи 959 диалогов, в которых участвовало 150 человек. Длина каждой записи составляет около 5 минут. Все диалоги были расшифрованы и размечены при помощи эмоциональных меток (использовалась система с пятью шкалами и 27 эмоциональными классами). Для части записей присутствует разметка при помощи «Системы кодирования лицевых движений» (FACS). Используя FACS, можно с лёгкостью отличить, например, дежурную «улыбку Pan-Am» (называется в честь авиакомпании Pan-American Airways, стюардессы которой должны были улыбаться каждому пассажиру) от искренней «улыбки Дюшена». Один из недостатков этого датасета в том, что различные эмоции представлены в SEMAINE крайне неравномерно, также никак не был сбалансирован ни состав участников исследования, ни лексическая основа диалогов. Тем не менее, нельзя не отметить удивительную детальность разметки.

4. TESS. В 1966 году исследователи из Северо-Западного университета разработали так называемый «Слуховой тест №6», предназначенный для измерения чувствительности слуха пациентов. Набор фраз, используемых в тесте, состоит из так называемой фразы-носителя — «Скажи слово...» — и набора из 200 различных слов, которые добавляются к фразе-носителю. Исследователи из Университета Торонто использовали этот же набор текстов, при этом каждая из фраз произносилась двумя актрисами (26 и 64 лет; обе были из региона Торонто, являлись носительницами английского языка, имели высшее и высшее музыкальное образования) с семью различными типами эмоциональной окраски (использовалась всё та же «большая шестёрка» эмоций с добавлением нейтральной окраски). Таким образом, в сумме было получено 200 × 7 × 2 = 2 800 записей. Этот весьма скромный по размерам датасет, тем не менее, нередко используется исследователями и в наши дни.

5. EMO-DB — это германоязычный массив данных, впервые представленный на конференции InterSpeech-2005. На протяжении многих лет он пользовался большой популярностью у исследователей эмоциональной речи. Десять актёров (5 женщин и 5 мужчин) имитировали эмоции, произнося по 10 предложений (5 коротких и 5 более длинных), относящихся к повседневному лексикону. Помимо звука были записаны электроглоттограммы. Электроглоттография основана на измерении динамики электрического сопротивления гортани во время произнесения фраз, что достигается при помощи пары электродов, располагаемых на передней поверхности шеи по обе стороны щитовидного хряща. 10 актёров × 10 предложений × 7 эмоций (включая нейтральную) дают нам 700 записей, однако часть записей была выполнена повторно, поэтому в базе содержится на 100 записей больше. Все записи были подвергнуты оценке с привлечением 20 оценщиков. После этого в записях со средним уровнем узнавания эмоции более 80% и средней оценкой убедительности более 60% разметчики дополнительно оценили интенсивность проявления эмоции. По современным меркам этот датасет невелик и может быть использован разве что в учебных целях.

6. IEMOCAP — это массив, созданный Лабораторией анализа и интерпретации речи Университета Южной Калифорнии, включающий в себя записи диалогов (спонтанных и на основе заранее подготовленных сценариев) десяти участников. Данные состоят из аудиозаписи с расшифровкой, видео, а также подробной информации о выражении лица и движениях рук, а также эмоциональной разметки («большая шестёрка» + «другая эмоция» + нейтральная окраска, а также оценка эмоций по трём шкалам — валентность, активация и доминирование). Общий объём корпуса составляет около 12 часов.

7. RUSLANA — первая открытая русскоязычная база данных эмоциональной речи. Была создана в 2002 году. RUSLANA содержит записи 61 человека (12 мужчин и 49 женщин), которые произносили десять предложений с выражением следующих эмоциональных состояний: удивление, счастье, гнев, грусть, страх и нейтрально (без эмоциональной окраски). Таким образом, база содержит в сумме 61 × 10 × 6 = 3 660 записей. Хотя с момента появления RUSLANA свет увидели ещё несколько открытых русскоязычных эмоциональных датасетов, например, аудиовизуальный RAMAS и весьма внушительный по объёму (более 20 000 записей) набор эмоциональной детской речи EmoChildRu, открытых датасетов взрослой эмоциональной речи, превосходящих RUSLANA по объёму, до сегодняшнего дня так и не создано.

Стоит заметить, что на «игрушечных» эмоциональных датасетах, как RAVDESS, TESS, EMO-DB, IEMOCAP результаты улучшаются по несколько раз в год. Вы можете сами убедиться в этом, набрав в поисковой системе название соответствующего датасета и аббревиатуру SOTA (state-of-the-art, уровень развития, «лучший результат по какому-либо критерию»). Однако у этих улучшений иногда бывает проблема с воспроизводимостью, ввиду чего к результатам без публикации исходного кода следует относиться с осторожностью. Чтобы избежать возможных ошибок или неоднозначностей, многие исследователи предпочитают публиковать не только статьи, но и кодовую базу своих проектов. Крупнейшим каталогом таких публикаций является ресурс paperswithcode.com, позволяющий найти работы, устанавливающие SOTA для самых разных задач машинного обучения, в том числе и для задачи распознавания эмоций.
Нецелесообразно моделировать нелинейные зависимости с помощью линейных моделей и ожидать точных результатов

По этому все это — компромисс точности и объяснимости

Специалистам приходится иметь дело с компромиссом между интерпретируемостью и точностью, то есть между сложными моделями, работающими с разноплановыми данными, и менее сложными моделями, которые легче интерпретировать, но которые менее точны.

При работе с большими разноплановыми наборами данных необходимо использовать все эти переменные для построения модели и получения точных результатов. По мере использования большего числа переменных их связь с целевой переменной и взаимодействие между различными независимыми переменными делают модель все более сложной.

Так должны ли мы построить точную модель или пожертвовать точностью и построить интерпретируемую модель?

Есть сильные движущие факторы с обеих сторон. При больших объемах данных у безвредного приложения для принятия решений, типа рекомендательной системы фильмов, высокоточная модель черного ящика является жизнеспособным вариантом. Однако в критически важных системах для принятия инвестиционных решений или в медицинской диагностике объяснимость может быть важнее.

Нормативные требования также могут повлиять на ваше решение. Если модели банковского кредитования и мошенничества являются черными ящиками, то регуляторы не могут их рассмотреть или понять. Если такие алгоритмы не будут точно оценивать риски, то финансовая система может оказаться под угрозой, как мы видели во время финансового кризиса 2008 года. Неудивительно, что многие регулирующие органы настаивают на том, чтобы модели кредитования и риска поддавались интерпретации.

XAI особенно важен в областях, где чья-то жизнь может быть немедленно затронута. Например, в здравоохранении ИИ можно использовать для выявления переломов у пациентов на основе рентгеновских снимков. Врачи и медсестры могут быть не готовы к его использованию, если они не доверяют системе или не знают, как она ставит диагноз пациенту. Объяснимая система дает поставщикам медицинских услуг возможность просмотреть диагноз и использовать эту информацию для информирования их собственного прогноза.

Аналогичным образом, для военных операций Агентство перспективных оборонных исследовательских проектов (DARPA) разрабатывает XAI в своих системах искусственного интеллекта третьей волны. Эти три волны, описанные DARPA, включают AI, который может классифицировать и объяснять.

XAI обеспечивает в целом большую подотчетность и прозрачность в системах ИИ. Его преимущества включают следующее:
— Делает ИИ более надежным. Люди могут не захотеть доверять системе на основе ИИ, поскольку они не могут сказать, как она приходит к определенному выводу. XAI предназначен для понятного объяснения своих решений конечным пользователям.
— Улучшает общую систему ИИ. Благодаря дополнительной прозрачности разработчики могут легче выявлять и устранять проблемы.
— Обеспечивает понимание против атак со стороны противника. Состязательные атаки пытаются обмануть или ввести модель в заблуждение, чтобы она принимала неверные решения, используя ввод данных со злым умыслом. Враждебная атака на систему XAI показала бы неправильные объяснения своих решений, раскрывая атаку.
— Гарантии против предвзятости ИИ. Цель XAI — объяснить атрибуты и процессы принятия решений в алгоритмах ML. Это помогает выявить несправедливые результаты из-за недостаточного качества обучающих данных или предубеждений разработчиков.

XAI также имеет следующие ограничения:
— Объяснимость по сравнению с другими методами прозрачности. Система XAI может чрезмерно упростить и исказить сложную систему, что приведет к спорам о разработке систем ИИ с более интерпретируемыми моделями или моделями, которые могут более точно связывать причины со следствиями.
— Производительность модели. Системы XAI обычно имеют более низкую производительность по сравнению с моделями черного ящика.
— Сложность в обучении. Создание системы ИИ, которая также объясняет свои рассуждения, сложнее по сравнению с моделями черного ящика.
— Конфиденциальность. Если система XAI работает с конфиденциальными данными, эти данные могут быть раскрыты из-за прозрачного характера XAI.
— Понятия понимания и доверия. Хотя XAI должен привести к повышению доверия к ИИ, некоторые пользователи могут по-прежнему не доверять системе, даже при понятном объяснении ее решений.
Самостоятельно делать сайт для мед клиники — это довольно трудоемкий процесс и без определённых знаний и навыков справится будет довольно сложно.
Если вы планируете вести бизнес при помощи сайта, то лучше заказать разработку у специалистов.
Во-первых, это сэкономит ваше время и нервы. Во-вторых, ваши будущие клиенты смогут нормально пользоваться сайтом, не натыкаясь на постоянные ошибки.

Либо приобрести DST Мед Центр, установить и начать сразу работать. Мы очень быстро и качественно, на DST Мед Центр, без всяких сложностей реорганизовали свой сайт клиники
Самостоятельно делать сайт для мед клиники — это довольно трудоемкий процесс и без определённых знаний и навыков справится будет довольно сложно.
Если вы планируете вести бизнес при помощи сайта, то лучше заказать разработку у специалистов.
Во-первых, это сэкономит ваше время и нервы. Во-вторых, ваши будущие клиенты смогут нормально пользоваться сайтом, не натыкаясь на постоянные ошибки.

Либо приобрести DST Мед Центр, установить и начать сразу работать. Мы очень быстро и качественно, на DST Мед Центр, без всяких сложностей реорганизовали свой сайт клиники
Самостоятельно делать сайт для мед клиники — это довольно трудоемкий процесс и без определённых знаний и навыков справится будет довольно сложно.
Если вы планируете вести бизнес при помощи сайта, то лучше заказать разработку у специалистов.
Во-первых, это сэкономит ваше время и нервы. Во-вторых, ваши будущие клиенты смогут нормально пользоваться сайтом, не натыкаясь на постоянные ошибки.

Либо приобрести DST Мед Центр, установить и начать сразу работать. Мы очень быстро и качественно, на DST Мед Центр, без всяких сложностей реорганизовали свой сайт клиники
Самостоятельно делать сайт для мед клиники — это довольно трудоемкий процесс и без определённых знаний и навыков справится будет довольно сложно.
Если вы планируете вести бизнес при помощи сайта, то лучше заказать разработку у специалистов.
Во-первых, это сэкономит ваше время и нервы. Во-вторых, ваши будущие клиенты смогут нормально пользоваться сайтом, не натыкаясь на постоянные ошибки.

Либо приобрести DST Мед Центр, установить и начать сразу работать. Мы очень быстро и качественно, на DST Мед Центр, без всяких сложностей реорганизовали свой сайт клиники
DST Маркетплейс на базе ДСТ платформ 2 версии, мы использовали несколько лет назад, для реализации собственного, высоконагруженного маркетплейса. DST Маркетплейс оказался намного более мощной системой чем CS Cart и Битрикс, даже в доспехах Энтерпрайз они уступают по функционалу DST Маркетплейс который был у нас в обычной базовой версии. Наверное на данный момент это самое мощное решение для e-com на рынке
DST Маркетплейс на базе ДСТ платформ 2 версии, мы использовали несколько лет назад, для реализации собственного, высоконагруженного маркетплейса. DST Маркетплейс оказался намного более мощной системой чем CS Cart и Битрикс, даже в доспехах Энтерпрайз они уступают по функционалу DST Маркетплейс который был у нас в обычной базовой версии. Наверное на данный момент это самое мощное решение для e-com на рынке
DST Маркетплейс на базе ДСТ платформ 2 версии, мы использовали несколько лет назад, для реализации собственного, высоконагруженного маркетплейса. DST Маркетплейс оказался намного более мощной системой чем CS Cart и Битрикс, даже в доспехах Энтерпрайз они уступают по функционалу DST Маркетплейс который был у нас в обычной базовой версии. Наверное на данный момент это самое мощное решение для e-com на рынке
DST Маркетплейс на базе ДСТ платформ 2 версии, мы использовали несколько лет назад, для реализации собственного, высоконагруженного маркетплейса. DST Маркетплейс оказался намного более мощной системой чем CS Cart и Битрикс, даже в доспехах Энтерпрайз они уступают по функционалу DST Маркетплейс который был у нас в обычной базовой версии. Наверное на данный момент это самое мощное решение для e-com на рынке
Пробовали DST Strore пару лет назад, оказалась намного более мощная система чем Битрикс, даже в доспехах Энтерпрайз он уступает по функционалу DST Strore который в обычной базовой версии. Наверное на данный момент это самое мощное решение для Интернет-магазина на рынке
Сложности с масштабированием классических СУБД привели к тому, что люди придумали NoSQL-базы данных, в которых нет операции JOIN. Нет джойнов — нет проблем. Но нет и ACID-свойств, а об этом в маркетинговых материалах умолчали. Быстро нашлись умельцы, которые испытывают на прочность разные распределенные системы и выкладывают результаты публично. Оказалось, бывают сценарии, когда кластер Redis теряет 45% сохраненных данных, кластер RabbitMQ — 35% сообщений, MongoDB — 9% записей, Cassandra — до 5%. Причем речь идет о потере после того, как кластер сообщил клиенту об успешном сохранении. Обычно ты ожидаешь более высокий уровень надежности от выбранной технологии.

Компания Google разработала базу данных Spanner, которая работает глобально по всему миру. Spanner гарантирует ACID-свойства, Serializability и даже больше. У них в дата-центрах стоят атомные часы, которые обеспечивают точное время, и это позволяет выстраивать глобальный порядок транзакций без необходимости пересылать сетевые пакеты между континентами. Идея Spanner в том, что пусть лучше программисты разбираются с проблемами производительности, которые возникают при большом количестве транзакций, чем делают костыли вокруг отсутствия транзакций. Однако, Spanner — закрытая технология, он вам не подходит, если вы по каким-либо причинам не хотите зависеть от одного вендора.

Выходцы из Google разработали open source аналог Spanner и назвали его CockroachDB («cockroach» по-английски «таракан», что должно символизировать живучесть БД). На Хабре уже писали о неготовности продукта к production, потому что кластер терял данные. Мы решили проверить более новую версию 2.0, и пришли к аналогичному выводу. Данные мы не потеряли, но некоторые простейшие запросы выполнялись необоснованно долго.

В итоге на сегодняшний день есть реляционные БД, которые хорошо масштабируются только вертикально, а это дорого. И есть NoSQL-решения без транзакций и без гарантий ACID (хочешь ACID — пиши костыли).
Я имею опыт создания приложений как на PHP, так и Python, NodeJS, Ruby (в меньшей мере), но я на постоянной основе использую PHP. Почему я так делаю? Рынок языка является самым большим, и он занимает наибольшую долю. Его популярность обусловлена широкими возможностями, в нём возможно реализовать любой функционал.

Сегодня многие программисты постоянно меняют направления работы в поисках идеального языка, IDE или превосходной хостинг-платформы. Это глупо, так как нет одного идеального и полноценного инструмента, способного покрыть все потребности программистов. Не существует совершенного варианта, но есть просто варианты, которые ненавидеть странно.

Целая ниша людей недолюбливает PHP, но неизбежно сталкиваются с ним или постоянно работают с языком. Это в большей мере напоминает привычку, пользователи критикуют язык, причины для этого есть, но нельзя говорить о PHP слишком пренебрежительно, у него есть будущее.
Многие программисты имеют холодное отношение к PHP, а другие – вовсе ненавидят язык. Действительно ли он настолько плохой? Мы постараемся разобраться.

Есть масса причин для «ненависти», у каждого разработчика они свои. Часть из них являются реальными проблемами языка, но некоторые всего лишь результат предвзятого отношения.

Даже наличие плохих отзывов об языке не является причиной полностью сбрасывать PHP со счетов. Даже сегодня он входит в 5 самых распространённых и популярных языков (по состоянию на 2018 год). Он занимает место среди других гигантов: Java, JS, C# и Python. Многочисленные аналитические компании не замечают падения рейтингов PHP, даже порой отмечается постепенный прирост. Одной из причин притока программистов является лёгкость обучения, после знакомства с PHP многие переходят к обучению Java или других языков.

HTML файл с логикой

Неприязнь к PHP часто обуславливается помещением кода в HTML-файл и дальнейшей обработкой внутри. Да, эти файлы имеют соответствующее расширение .php, но здесь доля чистого PHP часто меньше, чем остальных языков. Внутри файла размещаются HTML, CSS, JS коды или загружаются скрипты. Подход не позволяет обеспечить полную чистоту кода, хотя при должных навыках можно структурировать файл так, чтобы все элементы были легкодоступны, аккуратно сложенные и понятны.

Явное преимущество PHP – простая работа с шаблонизаторами, их можно разрабатывать самостоятельно, или просто разбить код на отдельные файлы, отвечающие за конкретные функции. С разбивкой кода по файлам удаётся исключить из него HTML, останется всего несколько строк.

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

Качественные пакеты

Bundler, PIP, NPM, CPAN и другие – это пакеты, помогающие писать код качественно. Посредством подключения стороннего кода удаётся повысить производительность труда и расширить возможности языка. Есть одна проблема – перечисленные пакеты написаны на других языках: Ruby, Python, Node JS, Perl.

Собственного, структурированного пакета в PHP практически нет, за исключением PEAR. Имеющийся пакет используется нечасто, так как он имеет низкое качество и не соответствует требованиям современного кода.

Разработан специальный стандарт PSR-0, который помогает в работе всех пакетов при одновременном подключении. С помощью Composer удаётся получить полноценный менеджер, обеспечивающий определение зависимостей у библиотек PHP. Уже совсем скоро планируется значительное улучшение качества кода и весомое сокращение затрат времени. Проходят времена, когда приходилось разрабатывать решение и затачивать его под конкретный фреймворк.

Проблема действительно существует, но разработчики знают об её существовании и ищут способ убрать лишние сложности.

Устаревшие понятия

Только в моём кругу есть масса матёрых разработчиков на Ruby, которые по привычке используют пятую версию языка, думая и уверяя других в отсутствии каких-либо значимых изменений в PHP 7. В действительности отличия существуют, и они весомые.

Со стороны Ruby-разработчиков часто летит заявление в адрес PHP, что у него нет «method_missing», но это не совсем так, ведь в реальности альтернативой является __call (). Люди привыкли жаловаться, они часто это делают в отношении проблем, которые уже были устранены в новых версиях. Получается так, что большинство людей, высмеивающих PHP, даже не знают о разработке новых версий языка или просто не обладают достаточным уровнем навыков. Ещё часто к PHP относились пренебрежительно по причине отсутствия встроенного сервера (у Ruby он есть), но сейчас и PHP обзавёлся этим дополнением.

Незнание реальности языка, работа с устаревшим кодом, заблуждения – это частый повод бросать не лестные заявления в адрес PHP.

Предвзятое мнение

Не прибегать к PHP – это круто. Причина отказа от языка лежит в воспоминаниях, разработчик помнит, как он писал кривой код и скрипты в детстве. Никто не хочет становиться на уровне с новичками, которые усердно пишут ужасные скрипты на PHP.

Для хорошего разработчика здесь есть место, перечисленные моменты не являются проблемами. Ещё одно заблуждение – человек использующий PHP не в силах освоить какой-то другой язык. Здесь уже я ненавижу подобное предвзятое отношение.

Встречалось мнение, слышал его краем уха возле бизнес-центра: «У меня нет никакого доверия к магазинам на PHP. Почему разработчики не способны освоить хороший язык?». Это мнение многих программистам, но подобные заявления свидетельствуют о недальновидности разработчика.

Заключение

В упрёк PHP поставить больше нечего, все моменты, с которыми ранее приходилось мириться, остались в прошлом. Согласно недавней статистике, проведённой W3Techs, сегодня около 83% всех ресурсов разработаны на основании PHP. Обладая реальными данными в отношении языка, становится легче оценить его перспективы.
Многие программисты имеют холодное отношение к PHP, а другие – вовсе ненавидят язык. Действительно ли он настолько плохой? Мы постараемся разобраться.

Есть масса причин для «ненависти», у каждого разработчика они свои. Часть из них являются реальными проблемами языка, но некоторые всего лишь результат предвзятого отношения.

Даже наличие плохих отзывов об языке не является причиной полностью сбрасывать PHP со счетов. Даже сегодня он входит в 5 самых распространённых и популярных языков (по состоянию на 2018 год). Он занимает место среди других гигантов: Java, JS, C# и Python. Многочисленные аналитические компании не замечают падения рейтингов PHP, даже порой отмечается постепенный прирост. Одной из причин притока программистов является лёгкость обучения, после знакомства с PHP многие переходят к обучению Java или других языков.

HTML файл с логикой

Неприязнь к PHP часто обуславливается помещением кода в HTML-файл и дальнейшей обработкой внутри. Да, эти файлы имеют соответствующее расширение .php, но здесь доля чистого PHP часто меньше, чем остальных языков. Внутри файла размещаются HTML, CSS, JS коды или загружаются скрипты. Подход не позволяет обеспечить полную чистоту кода, хотя при должных навыках можно структурировать файл так, чтобы все элементы были легкодоступны, аккуратно сложенные и понятны.

Явное преимущество PHP – простая работа с шаблонизаторами, их можно разрабатывать самостоятельно, или просто разбить код на отдельные файлы, отвечающие за конкретные функции. С разбивкой кода по файлам удаётся исключить из него HTML, останется всего несколько строк.

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

Качественные пакеты

Bundler, PIP, NPM, CPAN и другие – это пакеты, помогающие писать код качественно. Посредством подключения стороннего кода удаётся повысить производительность труда и расширить возможности языка. Есть одна проблема – перечисленные пакеты написаны на других языках: Ruby, Python, Node JS, Perl.

Собственного, структурированного пакета в PHP практически нет, за исключением PEAR. Имеющийся пакет используется нечасто, так как он имеет низкое качество и не соответствует требованиям современного кода.

Разработан специальный стандарт PSR-0, который помогает в работе всех пакетов при одновременном подключении. С помощью Composer удаётся получить полноценный менеджер, обеспечивающий определение зависимостей у библиотек PHP. Уже совсем скоро планируется значительное улучшение качества кода и весомое сокращение затрат времени. Проходят времена, когда приходилось разрабатывать решение и затачивать его под конкретный фреймворк.

Проблема действительно существует, но разработчики знают об её существовании и ищут способ убрать лишние сложности.

Устаревшие понятия

Только в моём кругу есть масса матёрых разработчиков на Ruby, которые по привычке используют пятую версию языка, думая и уверяя других в отсутствии каких-либо значимых изменений в PHP 7. В действительности отличия существуют, и они весомые.

Со стороны Ruby-разработчиков часто летит заявление в адрес PHP, что у него нет «method_missing», но это не совсем так, ведь в реальности альтернативой является __call (). Люди привыкли жаловаться, они часто это делают в отношении проблем, которые уже были устранены в новых версиях. Получается так, что большинство людей, высмеивающих PHP, даже не знают о разработке новых версий языка или просто не обладают достаточным уровнем навыков. Ещё часто к PHP относились пренебрежительно по причине отсутствия встроенного сервера (у Ruby он есть), но сейчас и PHP обзавёлся этим дополнением.

Незнание реальности языка, работа с устаревшим кодом, заблуждения – это частый повод бросать не лестные заявления в адрес PHP.

Предвзятое мнение

Не прибегать к PHP – это круто. Причина отказа от языка лежит в воспоминаниях, разработчик помнит, как он писал кривой код и скрипты в детстве. Никто не хочет становиться на уровне с новичками, которые усердно пишут ужасные скрипты на PHP.

Для хорошего разработчика здесь есть место, перечисленные моменты не являются проблемами. Ещё одно заблуждение – человек использующий PHP не в силах освоить какой-то другой язык. Здесь уже я ненавижу подобное предвзятое отношение.

Встречалось мнение, слышал его краем уха возле бизнес-центра: «У меня нет никакого доверия к магазинам на PHP. Почему разработчики не способны освоить хороший язык?». Это мнение многих программистам, но подобные заявления свидетельствуют о недальновидности разработчика.

Заключение

В упрёк PHP поставить больше нечего, все моменты, с которыми ранее приходилось мириться, остались в прошлом. Согласно недавней статистике, проведённой W3Techs, сегодня около 83% всех ресурсов разработаны на основании PHP. Обладая реальными данными в отношении языка, становится легче оценить его перспективы.
Полностью согласен. С поиском работы у PHP разработчиков точно проблем быть не должно. Опытные PHP-программисты требуются во многие проекты, как в России, так и во всем остальном мире.
Это уже есть в некотором виде. Асинхронгость — reactphp, swoole, щеленые потоки, асинхронность в библиотеках для баз данных и curl. Дженерикс нст на уровну phpdocs.
Это уже есть в некотором виде. Асинхронгость — reactphp, swoole, щеленые потоки, асинхронность в библиотеках для баз данных и curl. Дженерикс нст на уровну phpdocs.
Половина интернета всё ещё работает на WordPress, поэтому знать PHP полезно даже с сугубо практической точки зрения: вы всегда сможете найти какую-то работу на фрилансе.

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон