«50 оттенков коричневого» или «Как мы до этого докатились»

    Дисклеймер: данный материал содержит только субъективное мнение автора, наполненное стереотипами и вымыслами. Факты в материале отображены в виде метафор, метафоры могут быть искажены, гипертрофированы, приукрашены или же и вовсе выдуманы


    image


    ASM


    До сих пор идут споры о том, кто же положил начало всему этому. Да-да, я говорю о том как люди перешли от обычного общения с людьми на человеческих языках, к общению… с животными :)


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


    Поначалу людей умеющих общаться с животными было довольно немного, и дело это было не столь популярным. Да оно и ясно — это вам не человеческий язык выучить. Тут и подход к речи совсем иной, и интеллект у нас разный, и ощущение мира. Многих вещей попросту не передать: как ты пояснишь корове что такое красный цвет, если она его не различает? Да и звуки многих животных нам не то что произнести, но даже и услышать сложновато. Ну да ничего, ради науки и прогресса многие смельчаки занялись изучением и за долгие годы овладели этим навыком. Воистину: нет ничего непосильного для человека!


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


    Так и придумали Автоматический Синтезатор Морфем, или, для простоты, АСМ. Небольшое такое устройство, можно уместить в кармане. Зато насколько полезное! Настраиваешь его для работы с конкретным видом животных, нажимаешь на кнопки правильных морфем… а оно само синтезирует по ним нужные звуки! Больше не нужно учить произношение и ломать свой язык. Конечно, понимать разницу менталитета разных животных все еще нужно. Например, не стоит при слоне упоминать мышей, это может их сильно напугать. Но в плане произношения все стало на порядки проще. А главное — умельцы со всего мира могут подключиться и добавить к этому аппарату знания о языках других животных, и дальше все могут пользоваться этим аппаратом для общения с новыми животными. Процесс обучения стал куда проще и быстрее, а число желающих овладеть данной наукой росло


    СИ


    Какое-то время спустя все уже только и пользовались новым изобретением, а про прямое произношение звуков все и позабыли почти. Новое поколение уже сразу начинало учиться общаться через АСМ. Да, они порой допускали досадные ошибки, и нажав не на ту кнопку синтезатора приводили животное в конфуз, а то и вовсе в ярость. Порой людей в ответ кусали и бодали. Но что поделать, всякое бывает.


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


    Люди поняли эту проблему, и придумали более умный синтезатор, или, как они его назвали, Синтезатор Интеллектуальный. Машинка уже была побольше, но в рюкзак все еще легко помещалась. Зато сколько возможностей новых она открывала! Ты уже мог печатать текст на человеческом языке. Ну… почти. Язык все еще был несколько неуклюж, нужно было говорить командами. Так, вместо простого "пойди принеси тапки" надо было написать "поворот назад, вперед 3 шага, если видишь тапки — бери, если нет — иди дальше..." и т.д. Зато, один раз описав — можно было назвать это "принеси тапки", и в следующий раз уже сразу писать кратко и понятно. Короче можно было назвать термины удобными вам именами, описывать процессы… да просто море возможностей! И защит тоже много: неаккуратно привести животное к смерти или просто к злобе уже было куда сложнее. Но самое важное — язык уже был понятен почти любому человеку. Т.е. не только не нужно изучать произношение, но и вообще можно не знать как там это все переводится на животный язык. Зачастую даже не нужно было знать деталей того как то или иное животное мыслит, машинка многие эти вещи уже за тебя сделает.


    Казалось что вот-вот и все дети будут учить как пользоваться СИ уже со школы и это будет универсальным инструментом для всех!


    Новый виток


    За последующие годы много разных новых машинок наплодилось, у каждого свои дополнительные возможности. Чего только Синтезатор ++ стоит, позволявший делать многие вещи разными, более удобными для тебя способами. Например, можешь напечатать еноту "принеси пиво", а можешь "тащи пиво", и все это переведется в одинаковую речь понятную для енота или лемура. Можно было пояснить связь между объектами. Например, "пиво, которое в холодильнике", или описать "сидр" как "пиво, но из яблок". Даже контекстно-зависимые значения слов могли меняться: можно написать коту "убирайся в комнате", а можно — "убирайся отсюда". Слова одинаковые, а смысл — разный.


    Возможностей больше, учить — чуть дольше, зато как выучишь — общаться становится быстро и удобно. Одна проблема — новое поколение уже крайне редко изучало как там оно все устроено и как именно идет общение с животными. Понятное дело, не до этого им, проку от этого не так много как от изучения новых устройств для общения. Зачем учить старое когда каждый день приходит что-то новое?


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


    И тут кому-то пришло в голову "а что это мы только пишем… давайте говорить!". Существующие устройства работали весьма неплохо, потому их использовали для построения новых. Т.е. попросту перед старым текстовым синтезатором, поставили микрофон и речевой анализатор. Он все время включен, слушает и… за тебя набирает нужный текст на синтезаторе. Да, работает он куда медленнее, ведь всегда надо речь на ходу распознавать, даже если работаешь с записью… зато насколько это проще! Сидишь, закинул руки за голову, да общаешься.


    Одним из таких устройств было устройство под названием Питон. Не ясно, то ли создатель обожал этих змей, то ли впервые опробовал инструмент на них, то ли фильм какой посмотрел про них на днях… Впрочем, это и не важно. Главное — Прогресс!!! Молодое поколение вновь активно изучает как пользоваться новым инструментов, напрочь отвергая "дедовские способы". Разве что там где скорость важна, там приходится работать с печатными текстами. Иначе представляете себе игру в футбол, где оппонент отбивает мяч через минуту после того, как он ударился о его голову?


    JS


    Однако прогресс не стоял на месте, и через время кто-то решил что общение должно быть совсем простым для изучения, чтобы любой желающий мог просто взять и говорить. К чему вообще напрягать мозг для обдумывания простейших вещей, типа "как разбить это на простые и понятные животному шаги", когда это время можно посвятить решению более важных насущных проблем!


    Так он и придумал устройство под названием Just Speak! (англ. "Просто Говори!"). Придумать то придумал, даже прототип сделал за 10 дней. А вот чтоб его идея заработала, как он хотел — ушли годы. Многие компании увидели в этом устройстве экономический толк: персонал по работе с животными можно обучать быстрее и дешевле! Они помогли, разработав много разных устройств работающих по принципу Just Speak.


    Устройства большие, размером с автомобиль. Зато на колесиках! И мечта сбылась — любой желающий смог общаться с любыми животными на достаточно привычном ему языке. Ты говоришь в устройство, оно анализирует, переводит это в набор текстовых команд, а потом в длиииинный набор понятных животному звуков, морфем, и т.д. Медленновато поначалу было, потому устройство улучшали, делали много версий улучшая производительность. На 8‐й версии вышло получить достаточно быстрый для большинства задач устройство. Счастью людей не было предела: каждый начинал общаться с животными, просить их что-то сделать, обучать их новым и новым вещам. Зачастую даже без конкретной цели, а просто, чтобы попробовать и поиграться.


    Компании взяли это на вооружение, и в большинстве случаев все больше и больше использовали именно это устройство для всех своих задач. Многие к этому моменту уже попросту не могли найти или обучить достаточное число требуемого персонала. А самое замечательное — теперь вообще нельзя было убить животное! Гуманно и экономично! Даже если и скажешь что не так — устройство это проигнорирует и не скажет ничего опасного животному. Да, порой это приводит к тому что вместо "принеси сраные тапки" собака сначала обсирает тапки, а потом приносит. А порой попросту по пол дня думает над сказанным. Но и что с того? Зато собака не отказалась выполнять команду, не испугалась и никого не покусала!


    Поворот не туда


    Общаться на таком языке стало проще и приятнее, особенно на ранних этапах обучения. Практически сразу ты мог увидеть как животное тебя понимает и что-то делает в ответ. Просто магия!


    Но для реальной работы неоднозначности поведения вызывали много проблем как для бизнеса так и для самих работников. Переделывать сильно устройство было нельзя, ведь на нем весь мир работает, все знают как общаться… да и зачем городить велосипеды? Потому решили просто добавлять поверх него удобные устройства-помощники. Тут тебе и устройство очищающее твою речь от матов, и устройство сигнализирующий о том что твоя речь может быть воспринята двояко, и устройство тестирующие что вы не ведете себя агрессивно по отношению в животному. Да, они массивные, размером с дом или многоэтажку. Но ведь и Just Speak то сам не маленький.


    Но самый главный толчок к прогрессу состоял в том, что почти все эти устройства делались на базе того же Just Speak. Т.е. устройство на ходу анализировало речь, передавало его другому устройству через синтез речи, то — передавало третьему… и так оно все могло работать. Да, медленно. Да, не всегда это работало исправно в связке с другими устройствами. Но для этого умельцы делали каждый свою версию, чтобы исправить ошибки предыдущих устройств. На любой случай можно найти и подобрать нужное в вашем конкретном случае устройство. Главное — все работает и экономит деньги корпорациям.


    Да и прогресс не стоит на месте: теперь можно даже добавить дополнительное устройство поверх JS и это устройство дает общаться более упорядоченным языком, по сути удобными командами. Т.е. вероятность неоднозначности высказывания уменьшилась в разы. А если что и скажешь не то — устройство пугается и останавливает процесс, выдает соответствующее предупреждение.


    Одним словом — Прогресс!!!

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 18

      +2

      Даже не сразу понял, что это метафора :D

        +1
        За то, один раз описав — можно было назвать это «принеси тапки», и в следующий раз уже сразу писать кратко и понятно.
        Это широко использовалось и до Синтезатора Интеллектуального, еще в эпоху Автоматического Синтезатора Морфем.
          0
          Знаю) Для этого вначале и шел «дисклеймер» )))

          А СИ не столь сильно повлиял на языки, как, например, тот же Фортран (просто Си на сегодня более известный и популярный)
          И Питон был далеко не первым скриптовым (хотя один из самых известных на сегодня), а JS был сделан изначально не для простоты обучения (но получил популярность во многом благодаря этому)
            +1
            Мне казалось, что JS получил распространение благодаря тому, что это почти единственный язык для универсальной платформы браузеров.
            Ну а нужда в программистах на JS породила спрос на обучение на JS.
              0
              Вообще говоря — сложно выделить единственный фактор. По-началу, конечно, за счет отсутствия альтернатив. Позже альтернативы уже были (хоть и с кучей «но»): и java applet-ы, и silverlight, да и попросту Flash.
              Однако чем позже тем больше всякого стали делать «на JS» и «под node/npm». Да что там говорить — сам node.js был явно сделан не по причине отсутствия альтернатив для разработки под backend, а именно дабы получить тех самых «full-stack разработчиков» и очередной раз удешевить разработку софта для корпораций (зачем нам два девелопера с половинной загрузкой, когда можно взять одного на полную?)

              Да и сами разработчики, осознавшие спрос на себя и постоянно прыгающие с фирмы на фирму и поднимающие себе ЗП, и обвешивающиеся позывными «Senior/Principal» через 2-3 года после начала работы программистом, создают для бизнеса потребность в поиске или обучении новых и новых кадров

              Короче, причин много, единую выделить сложновато

              главное чтобы технология WebAssembly не «свернула не туда», тогда может будет хоть какой-то просвет в этом постоянно наростающем хаосе

              Как всегда — это мое личное мнение и взгляды на вещи
                0

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

                  0
                  А можно в критику внести немного конкретики?

                  Из того что я знаю и помню о Node.JS, то его создателю не нравились часто используемые подходы к программированию серверных решений ограничивающих пропускную способность. А т.к. V8 к тому моменту стал весьма шустрым, то давнюю мечту (еще времен NetScape) писать на одном языке на фронте и на беке вышло воплотить в реальность

                  Уточните где не прав, пожалуйста
                    0

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


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


                    Так же вы не правы в том что были альтернативы JS на фронте. JS тогда был не сахар, но "альтернативы" были полнейшей помойкой — в равной мере и флеш и сильверлайт и джава апплеты. JS победил в этой войне ровно по той причине, что альтернативы были гораздо хуже. Действительно, только webAssembly похоже на потенциальную альтернативу. Спустя очень много лет.

                      0
                      Ок, согласен, пошло все от недовольства подходами к разработке. Но выбор языка, думаю (хотя доказательств и не имею), был сделан именно ввиду распространенности в web и простоты JS в изучении (ну и плюс V8 был достаточно производительным).

                      Можно ли было тоже самое реализовать на С++ и даже быстрее сделать? Можно
                      Можно ли было сделать очередной PyPy, который бы решал вопросы производительности самого Python — думаю можно. Но зачем, когда есть язык на котором уже многие пишут и под него есть движок на котором можно все уже сделать производительным?
                      Опять же, доказательств не имею, но мне кажется многие большие компании поддержали эту разработку именно по причине того что новых девелоперов получить можно больше и дешевле (новый язык учить не нужно).

                      Насчет «мечт о full-stack» — отчасти соглашусь. Лишь отчасти, но это уже другая история

                      А вот насчет «альтернатив JS на фронте» — вот тут не согласен. Да, у альтернатив было полно «но», как я и писал. Однако они активно развивались и расширялись до определенного времени. Тот же Flash поставлялся «из коробки» браузером Chrome, который долгое время держит лидирующие позиции на desktop рынке. И весьма большое число сайтов либо полноценно (сайты многих крупных автомобильных компаний), либо местячково (даже тот же gmail) использовали эту технологию на своих сайтах до поры до времени.
                      JS их победил, по большей части, потому что развивался открыто и многими компаниями, а не внутри одной корпорации (привет, Adobe!)
                        0
                        Но выбор языка, думаю (хотя доказательств и не имею), был сделан именно ввиду распространенности в web и простоты JS в изучении

                        Ну вот я и говорю — перед тем, как говорить, имеет смысл минимально изучить вопрос. Райан хотел попробовать сделать чисто асинхронный серверный движок. И ровно потому что JS отлично подходил под эту парадигму — он использовал его. Сейчас есть альтернативы в виде Rust и Go. Да и остальные подтянули асинхронную парадигму. Десять лет назад таких вариантов просто не было.
                        Да, можно было написать очередной интерпритатор питона или ещё один ReactPHP — но зачем? Райан хотел попробовать новую парадигму — и она взлетела.


                        А вы натягиваете сову на глобус ради свои убеждений. Не надо так. Мир немного сложнее, чем "все хотят тонну дешёвых фуллстек говнокодеров индусов на JS".

                          0
                          Я, конечно, извиняюсь, но… как это 10 лет назад не было асинхронной парадигмы?
                          Java, C#, C++ и куча других вариантов — что мешает сделать асинхронно?
                          Если уж на то пошло, то JS для асинхронщины вообще не особо хороший вариант. Сам JS код выполняется однопоточно, только I/O многопоточный
                          А если дело в «так проще для разработчиков» — тогда был Python с его стандартной реализацией CPython, который наиболее близко походил на JS, т.к. хоть код и выполнялся конкурентно, но не было параллельности а стало быть и проблем с параллельным использованием объектов, dead-lock-ов и прочих потенциальных блокировок

                          Так что, как мне кажется, главной причиной использования JS а не Java/C#/C++ и т.д. было именно создание движка под который проще писать особенно новичкам, чтобы не мучиться со всякими mutex-ами и потенциальными dead-lock-ами

                          К слову — делать язык/систему для уменьшения потенциальных ошибок от новичков — это еще не плохой подход. Тот же Go был сделан именно с этой мыслью. Только там это сделано путем уменьшения кол-ва возможностей в языке и применении практик приводящих в более явному и прозрачному коду (порой в ущерб краткости). Только вот в JS подход к решению этих проблем иной
                            0

                            В C# async/await появился только в 2012 студии. До этого там на каждый чих было принято создавать потоки. Про написание асинхронного кода в джаве лучше молчать. На плюсах веб сервисы практически никто не пишет. Про питон ничего не скажу — в питоне не разбираюсь, и предпочитаю не делать выводы по вещам, о которых не знаю. Но вы можете придерживаться другой точки зрения, если от этого чувствуете себя лучше других — кто ж помешает.

                              0
                              Я снова ДИЧАЙШЕ извиняюсь, но каким образом отсутствие async/await не давало писать многопоточный веб движок?

                              >Про написание асинхронного кода в джаве лучше молчать
                              А чего ж молчать то? В чем такая проблема асинхронного кода в Java? там утилит для его написания даже больше чем нужно

                              >На плюсах веб сервисы практически никто не пишет
                              Тоже не правда. То что там разработчиков толковых найти сложнее — это факт. Но есть те же TreeFrog, CppCMS и прочие
                              А если же ваш web-server требует websockets и высокую производительность — так там и вовсе С++ весьма недурной выбор

                              Тут вопрос в том в какие сферы и на потребности каких фирмы смотреть
                                0
                                Я снова ДИЧАЙШЕ извиняюсь, но каким образом отсутствие async/await не давало писать многопоточный веб движок?

                                Простите, вы в курсе про отличие асинхронности и многопоточности?

                                  0
                                  Если есть многопоточность, то асинхронности можно добиться и вручную, без синтаксической поддержки языка, просто сделав event-listener-ы
                                  Это вопрос в удобстве а не в возможности/невозможности
                                +1
                                В C# async/await появился только в 2012 студии. До этого там на каждый чих было принято создавать потоки.

                                В C# с незапамятных времен были асинхронные подходы. Равно как и в Java.

                                Семантика async/await сильно отличается от того, как это работает в JS. В C# для выполнения continuation может выделяться поток из тредпула, который не обязан совпадать с тем, в котором выполнялся пролог. Так это работает в ASP.NET, например. А может выполняться в том же потоке. Это зависит от такой штуки, как SynchronizationContext.
            +1
            Автор, пишите ещё! :)
              0
              Спасибо)

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое