Никто не хочет учиться играть на XYZ / Левенчук А.

Никто не хочет учиться играть на XYZ / Левенчук А.

от Евгений Волков -
Количество ответов: 0
Пишет Anatoly Levenchuk (ailev
2015-01-10 22:21:00
http://ailev.livejournal.com/1158826.html

Никто не хочет учиться играть на XYZ

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


1. Doug Engelbart считал делом своей жизни усиление/дополнение/приращение/пополнение (augment) человеческого интеллекта, и вычислительная техника подходила для этого наилучшим образом. Под "усилением человеческого интеллекта" он понимал усиление возможностей человека взаимодейстовать со сложной проблемной ситуацией, понимать её для удовлетворения собственных потребностей, а также получать в рассуждении решение проблемы. "Усилить" -- это быстрее по времени и лучше по качеству (http://www.dougengelbart.org/pubs/augment-3906.html).
В его лаборатории было придумано много всякого, чем мы пользуемся до сих пор (мышка, гипертекст и т.д., а демонстрация всего этого в далёком 1968 году называется ни больше ни меньше как The Mother of All Demos -- вполне заслуженно, http://en.wikipedia.org/wiki/The_Mother_of_All_Demoshttp://web.stanford.edu/dept/SUL/library/extra4/sloan/mousesite/1968Demo.html). Он создавал инструмент для пытливого ума, желающего учиться и критерием была максимальная производительность профессионала. Его метафора была -- бульдозер/экскаватор, в кабине которого было много-много органов управления, позволяющих лихо этим инструментом управляться и подчинять его власти человека () против метафоры тепловоза, где человеку предоставлялось поучаствовать в настройке параметров того, что происходит и без него (http://www.contemporary-home-computing.org/car-metaphors/douglas-engelbart-the-automobile-and-other-analogies/). 
Невзирая на огромный потенциал всех его новинок и изобретение им основ современного компьютерного интерфейса ещё в конце 60-х, в целом дело Doug Engelbart провалилось. Например, аккордовая клавиатура (вместо клавиатуры пишущей машинки). Alan Kay сказал об этом просто "Энгельбарт, к лучшему или худшему, пытался сделать скрипку, но большинство людей не хотят учиться играть на скрипке" (http://com2710.dedalon.net/S_11_files/BARDINI1995_Social_Constr_User.rtf). Какой критерий вместо "инструмент повышает производительность профессионала" приводил к успеху? Критерий "даже дурак сможет этим инструментом овладеть".

Наиболее красочный и известный рассказ о провале аккордовой клавиатуры в Сети, со множеством ссылок и фотографий, так и называется -- "Скрипка Энгельбарта" Станислава Дацковского: http://www.loper-os.org/?p=861

2. При создании языков программирования всегда стоит дилемма: должен ли быть этот язык мощным или лёгким. Иногда их даже называют LFSP (languages designed for smart peope), навроде Lisp, и LFM (languages designed for masses), навроде C++ -- http://paulgraham.com/vanlfsp.html. Дальше подставляйте сюда любые пары -- Haskell и Java, например. Заканчивайте каким-нибудь Coq.

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

Эта же дискуссия про "стильные языки" против "агглютинативных" в изложении того же Alan Kay (который сам всю жизнь изобретал скрипки, хоть и ругал за это Энгельбарта): "Стильные языки (APL, Lisp, Smalltalk) и агглютинативные ("клейкие") языки типа PL/1. Стильные языки -- для людей, у кторых есть математическая ленивость, они окупаются через год после начала проекта -- когда у вас появляется сильная идея, и вам быстро-быстро нужно все переделать. Агглютинативные языки сопротивляются этой переделке. Кроме того, стильные языки обычно позднего связывания, а агглютинативные языки -- раннего, что приводит к совершенно разным процессам отладки, дает абсолютно разные типы ошибок. И для стильных языков не нужно беспокоиться об архитектуре фон Неймана. Это раздел двух культур, через эти различия в стилях невозможно общаться" -- пункт 8 из http://ailev.livejournal.com/469995.html.

И тут же дискуссия про bootstraping и взаимозаменяемость программистов , про разворачивание собственных подходов и инструментальных сред (Steps Toward Expressive Programming Systems тут: http://vpri.org/html/writings.php, сага о создании офисного пакета на 20тыс. строк), мемуар Михаила Донского, который описывает, что сильный программистский коллектив сам себе разрабатывает фреймворк -- чуть ли не от уровня железа. Создает себе стиль, не обращая внимания на язык. И затем на этом фреймворке получает удивительные результаты -- прирученный тобой язык становится могучим и великим, программирование выдерживает стиль от самого верхнего уровня до самого дна (железа). Похоже, что дело не столько только в языке (когда речь идёт о языке), сколько в стиле его использования в части прихвата чужих библиотек и той самой "заменяемости программистов" -- "голенький" язык подразумевает совершенно другой подход к наращиванию его возможностей. И тот же Донской мне рассказал, что язык программирования только по недоразумению называют языком, настоящий язык -- это собственноручно созданные библиотеки и фреймоворки, на которых и создаётся большая система, и только если у тебя есть такой "свой язык", то безопасно входить в большие проекты, которые идут больше года (http://ailev.livejournal.com/613067.html).

И отчаянный крик души Алана Кея про то, что компьютерная наука не идёт по пути развития эффективных и мощных средств, а сваливается в предложение всё более и более убогих "для масс" -- и массы тупеют. С его точки зрения, люди должны (но не хотят, и нужно что-то с этим делать!) учиться, чтобы осваивать трудные языки -- вкладывать много-много часов, чтобы добиться беглости чтения и говорения на этих языках. И когда софт будет поддерживать таких людей, то в этот момент и будет компьютерная революция -- http://www.vpri.org/pdf/future_of_reading.pdf

3. Закон стандартов John Sowa 1991 года (http://en.wikipedia.org/wiki/John_F._Sowa#Sowa.27s_law_of_standards) -- успешен становится не предлагаемый официальный проработанный до мелочей стандарт, а широко распространённая его упрощённая недоспецифицированная версия, она становится стандартом де-факто. Сложность со всей её мощью проигрывает простоте и недоспецифицированности.

4. Интересно, что этот же подход "мощь для профи против лёгкости для масс" может быть применён к целым отраслям знания. Так, ван Бентем вообще договаривается до того, что вся логика -- это "наука, цель которой в значительной мере определяется поиском определенного балансамежду выразительной силой формальных языков и многосложностью их использования при решении таких задач как осуществление контроля за согласованностью, адекватностью моделирования и правильностью вывода" (http://ailev.livejournal.com/915253.html). 

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

5. Разные концепции автомобиля без водителя. Некоторые компании считают, что нужно делать автомобиль продолжением водителя, ибо водить (в том числе водить профессионально) -- это удовольствие. Некоторые компании считают, что водителя из контура управления нужно убрать, никаких "профессиональных водителей" -- компьютер лучше справится. То же самое с пилотами в авиации, а космонавтов уже давно убрали из контура управления. Лучшие "водители" и "пилоты" теперь те, кто пишет программы автопилотов, и совсем необязательно, чтобы они сами умели водить-пилотировать.

"Профессиональный автомобиль" -- это возможность газовать каждым отдельным колесом, 8 передних передач и 20 задних. Автомобиль для тупых -- с автоматической коробкой передач и ABS, а в пределе так и вообще с автопилотом. Профессиональная функция отпадает.

Это же всё относится к роботам любого вида: изобретение конвейера не столько "усилило" человека и сделало его более обученным и способным, сколько привело к резкому снижению требуемой квалификации рабочего, "деградация работы в двадцатом веке": http://www.amazon.com/gp/product/0853459401/. Хорошо обобщено это (с поминанием той же скрипки Энгельбарта и призывом не забывать о программе что-то делать и для умных людей, а не только тупых -- делать интерфейс между машиной и человеком более сложным, чтобы у человека был шанс вмешаться в работу машины) в рассказе http://www.macroresilience.com/2013/07/08/explaining-the-neglect-of-doug-engelbarts-vision/. Atul Varma говорит о полностью автономной кофеварке, которая отлично справляется с задачей -- но в тот момент, когда что-то идёт не так, "кофеварка для тупых" терпит полное фиаско. Если бы у человека был шанс вмешаться и человек был бы достаточно умён, то можно было бы что-то ещё сделать -- http://www.toolness.com/wp/2012/03/coffee-machines-and-community/ (но для этого нужно бы "научиться играть на кофеварке", а люди не любят "учиться играть на XYZ". Но некоторые всё-таки будут учиться!).

Впрочем, и с "что-то идёт не так" тоже много чего по пути происходит: happy path становится всё разнообразнее и разнообразнее, плюс появляются resilience systems, задача которых быстро обнаруживать, что что-то идёт не так и пытаться выжить в этих условиях -- вплоть до полной перестройки того, что осталось от системы после поломки "изнутри системы".
* * *
C .15926 Editor мы сделали то же самое -- скрипку, на которой никто не хочет учиться играть. Это же относится не только к инструменту, но и к дисциплине: занятие онтологией требует времени для освоения, в каком-то смысле это освоение нового языка-основы и языка-библиотеки, как об этом говорил М.Донской (там ведь и обширная библиотека справочных данных). Эффективно ли решать задачи интеграции данных, построения концептуальных моделей данных освоившему этот инструментарий человеку? Да, эффективно. Прост ли редактор (и заодно дисциплина, которую он поддерживает) в освоении? Нет, ибо там и 4D extensionalism, и RDL, и Python и много чего ещё. Люди не любят "учиться играть на XYZ", иструменты и языки для smart people не имеют шансов вне рамок выращивания их в каком-то узком комьюнити какого-то многолетнего проекта.

И к системной инженерии это тоже вполне относится. Знаниевые инструменты -- они такие же, как и любые другие. Играть на системноинженерой скрипке нужно долго учиться, но кто-то всё-таки научается. И это не мейнстрим! Мейнстрим -- это автоматизация системной инженерии, а системные инженеры будущего это те, кто программирует системноинженерный софт, системноинженерную скрипку-самоиграйку, системноинженерную кофе-машинку с одной кнопкой "сделай мне красиво". Smart people выжимаются в автоматизацию и делают автоматические скрипки с одной кнопкой Start (используя для этого профессиональные инструменты с огромным временем освоения и доработки до надлежащего уровня), оставшиеся наедине с одной кнопкой masses потом в среднем тупеют, как рабочие на конвейере -- будь то конвейер по сборке автомобилей, разработке софта или созданию ракет для покорения Марса. 

И это всё растянуто на длиииинную цепочку творцов-программистов-кодеров-быдлокодеров-операторов-быдлооператоров-роботов. 
 2
Подписаться
 
 
ага, из этой же серии можно вспомнить тему про то, что нужно делать, если ваш программист пишет программы, которые тормозят на ваших компах. (да, да, не менять программиста, а проапгрейдить железо)

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

Бугога, то же самое было 20 лет назад: "Кому нужны эти GUI? Только тупым секретаршам! Настоящий... должен... командная строка... ламеры..." А через 15 лет массы "тупых секретарш" написали, например, Википедию. Видимо, окончательно массово отупев в ходе работы. 

С его точки зрения, люди должны (но не хотят, и нужно что-то с этим делать!) учиться, чтобы осваивать трудные языки -- вкладывать много-много часов, чтобы добиться беглости чтения и говорения на этих языках.

Какие люди, сферические в вакууме? У разных людей разные потребности. Я, скажем, системы аэронавигации писать не собираюсь. Мне нужен простой и удобный язык для написания свистоперделок малой механизации для мой основной работы. Начорта мне тратить много-много часов, зачем мне беглость, если я что-то "пишу" раз в месяц?
Проблема, на мой взгляд, актуальна не только в части усиления интеллекта, а в любой области развития.

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

Ну и более приземленные вопросы - нужно ли продвигать людей в правильном направлении, и если да - то как? 
Ах да, вопрос на засыпку - какое направление правильное?

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

Почему интересно - хочу понять, 
1) почему у меня сформировалась потребность в движении к сложному, 
2) как точить пилу (эффективность, вот это вот всё), 
3) и как воспитать/обучить этому окружающих (разной степени взрослости).

Прошу извинить за некоторую сумбурность и, возможно, небольшой оффтопик, рой мыслей на тему в что-то более зрелое пока не вырос.
В массы пойдут языки самые простые -- вплоть до языков, в которых не будет логических операторов и циклов, не будет переменных
APL?
Тоже просмеялся над этим.
про "мы сделали то же самое -- скрипку, на которой никто не хочет учиться играть."
да, это проблема, и в других отраслях знания: есть решения, но они сложны. Причем избежать сложности никак нельзя, она принципиальна.
Скрипкам тоже нужен маркетинг. Вот взять хотя бы название или сайт. Не дружелюбно это все пока, и непонятно зачем, вот и не хочет никто играть.
Если бы это было так, то качки (люди, привычные к энергетическим тратам), были бы и самыми умными тоже.
Проблема в перераспределении ресурсов между мозгом и всем остальным.
Если вы уже умны, то занятия спортом могут сделать вас умнее. Более того, с возрастом необходимость активности возрастает, при это важна как нагрузка на выносливость, так и на силу.

Здесь играет роль нейротрофический фактор мозга, он выделяется и утилизируется во время нагрузок.

Качки не выглядят умными потому, что они просто не умны. Но если вы уберёте у качка занятия спортом, он станет ещё тупее.
Между усилением человеческого интеллекта и его разгрузкой нет противоречий. Правильная разгрузка - сама по себе усиление, остаётся больше ресурсов для важного. недостаток аккордовой клавиатуры - она условно пригодна для ввода текста, но уже неприменима для его полноценного редактирования (навигация, шорткаты), не говоря уже о САПРах. Нужно больше клавиш, что как удобнее, так и проще для моторной памяти.

Между мощными и лёгкими языками тоже нет противоречия. Должно быть просто делать простые вещи и пропорционально сложнее сложные. Если язык общего назначения существует достаточно долго, но в настоящее время активно не применяется, то либо в нём проблемы (с реализацией простого и/или сложного), либо он находится в тени более популярного языка, сильно совпадающего по возможностям.

А что касается .15926 Editor, то сработал главный риск, который я упоминал 4 года назад - невостребованность самого ISO 15926 в его "стандартном" варианте (а не в виде marketing bullshit строчки в несовместимых энтерпрайзных решениях). А уж с каким музыкальном инструментом стандарт сравнивать, и в чём там проблемы с простым/сложным - отдельный разговор.
>LFM (languages designed for masses), навроде C++
Напомнило картинку))


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

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

> "Усилить" -- это быстрее по времени и лучше по качеству
В расчет того, что "быстрее", надо только время обучения еще не забывать включать. Ну т.е. в пределе "сложность скрипки" "окупается", если сэкономленное время при "игре на ней" в течение жизни превосходит время обучения (а ведь далеко не факт, что навык игры на скрипке будет использоваться все время жизни после его изучения! Голофоны то уже на подходе!).
В частности поэтому цепочка "творцов-программистов-кодеров-быдлокодеров-операторов-быдлооператоров-роботов" такая длинная - во всех автоматизациях есть оптимум сэкономленных автоматизацией ресурсов (в т.ч. временных!) vs затрат на автоматизацию. "Умная кофеварка", о которой говорит Atul Varma, наверное, не так часто ломается, чтобы каждому пользователю ежедневно пригождалось бы умение "играть на ней" (а если так, то надо "что-то менять в консерватории", производящей кофеварки, например, быдлокодеров на кодеров/программистов/творцов - смотря где оптимум!).

>Люди не любят "учиться играть на XYZ"
А и не надо заставлять людей любить тратить время на изучение технологии, которая обязательно вскоре сменится другой, на изучение которой снова надо будет тратить много часов.
Надо из умения "играть на XYZ" вычленять базовые навыки, лежащие в основе этого умения, и разрабатывать методики построения нужных "рельс мышления" у детей, мозг которых способен научиться "играть на XYZ" гораздо быстрее. Ну или думать, как увеличить продолжительность жизни, чтобы не так жалко было его тратить на "изучение игры на XYZ".
Короче, тут главное дотянуть до технической сингулярности, чтобы цепочка замкнулась (робот=творец), тогда то заживем!
Купер (а до него Круг) имели главной идею, что интерфейс должен помогать выполнять задачи. 
Сложность тут побоку.
Смотрите: программист изначально ориентирован на более сложные задачи, потому и интерфейс рисует навороченный.
И всё, нет никакой глобальной бойни дураков с умнымиулыбаюсь
Сложность тут - самоцелью оказывается, если программист изначально не ориентирован на задачи пользователя вообще.

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

С созданием собственных фреймворков вообще ровно это происходит.
Если проводить параллели с кофеварками, то должно быть что-то такое: пока она работает нормально - у нее одна кнопка, как только начинаются проблемы - появляются новые кнопки (по 1 на каждую функцию). А вот с аккордовой клавиатурой такой фокус не прокатит - каждая новая кнопка - это сразу в 2 раза больше аккордов-функций.
Если проводить параллели со стандартами, то он тоже может быть представлен (разбит на части?) в такой форме - "недостандарт-стандарт без мелочей-полный стандарт", тогда и маркетологам будет проще честно указывать, а какой именно уровень матрешки этого стандарта они поддерживают своим софтом.

Комментарий удален

Мне по этому поводу очень нравится девиз языка Perl: «Простые вещи должны оставаться простыми, а сложные — стать выполнимыми» («Easy things should be easy and hard things should be possible»)
> Донской мне рассказал, что язык программирования только недоразумению называют языком, настоящий язык -- это собственноручно созданные библиотеки и фреймоворки, на которых и создаётся большая система, и только если у тебя есть такой "свой язык", то безопасно входить в большие проекты, которые идут больше года 

Как-то пришлось пописать на ассемблере и я очень удивился, когда у меня сформировался набор блоков, вызываемых командами весьма читабельного вида (define)

Общий тренд прост: "интеллектуальное большинство" побеждает (числом).
Суть проблемы в том, что усиливать человеческий интеллект оказывается невыгодно и это развлечение для немногих эээ... пассионариев интеллекта, человеческий интеллект выгодно разгружать и это даёт массовость, что понимается как "успех". 

Именно поэтому я считаю, что либерализм дошел до полного маразма. С точки зрения, экономии ресурсов усиливать интеллект выгодно. С точки зрения либеразма - нет.
Единственное, что меня удивляет, что большинство вполне себе умных людей присоединяются к мнению "интеллектуального" большинства. Конформизм, чоуж тут поделаешь.
Думаю, что проблема неочевидно, но очень тесно связана с интеллектуальной собственностью и правами на нее.
Из той же связки появляется и то, что последнее десятилетия практически вся айтишная индустрия работает на перетягивание из частного сектора в корпоративный даже личной информации. Даже Вашим ЖЖурналом вы владеете не в полной мере. Корпоративному владельцу накладно и опасно поддерживать множество развитых индивидуальностей, выгодней и надежней иметь дело с унифицированным примитивным стадом и всех так или иначе опускать до уровня этого стада.

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

alexander_mikh

12 января 2015, 18:44:40 UTC Комментарий изменен:  12 января 2015, 18:44:59 UTC 

вот хороший пример как сейчас группа из трех человек сделала все от железа до веб.
http://eax.me/eaxcast-s02e07/ 
Аргумент Алана Кея, когда он говорил про 20тыс. очень сложных строк для офисной системы по сравнению с 20млн. не очень сложных: по объему 20тыс. трок это один томик сверхсложного текста. И у одного человека есть шанс «расшифровать» этот один томик в течение своей жизни, да хоть и выучить наизусть все строчки, и тем самым глубоко понять устройство программы «до уровня железа». Ну, или наоброт: написать такой томик. Ежели обычное офисное приложение, как водится, 20млн. строк с операционной системой, то это огромная программа физически не сможет быть понята человеком в течении жизни, просто все тома невозможно прочесть за время жизни человека, даже если они и просты до невозможности и не требуют времени на понимание.
Всё это фигня. 

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

Так вы с начала с этим разберитесь.
Во-первых, далеко не 4, а минимум 37.
В химии сколько участвует? 
Протон + электрон + нейтрон + фотон = 4.
Если вам нужно больше, значит вы не Бог. 
О! Ценное наблюдение. Но я думаю, что инициатива наказуема: вы это заметили, вот вы и разбирайтесь.
Я бы с радостью, но ряд товарищей меня опередили лет на сто.
Замечу о параллельных алгоритмах: тень от фонарика прорисовывается мгновенно, но параллельно.
Момент между "ботаничеством" и "фэншуем" очень тонок. В яп, имхо, это еще идет от непонимания что и зачем мы делаем - тот самый дурацкий момент, когда мы понимаем, что нам надо забить гвоздь, но выбрать между отверткой и молотком мы не можем, потому как сам вопрос о том, чем отличается отвертка от молотка мы не задали себе. И выбор у нас строится на каких-то дурацких кейсах "как я трудно, но удачно забивал саморезы" и "как я безуспешно закручивал гвозди".
"Настоящий язык - это б и ф" - с одной стороны понятно и хорошо: рост уровня абстракции, плох тот программист, который думает в строчках кода, с другой - попробуйте поиграть на леворукой гитаре, такая фигня получается, то есть есть вариант остаться "игроком ноктюрнов на водосточных трубах".

всего слов - 3977