Одна из самых серьезных проблем в разработке программных средств — их тучность, или раздутость. Программы просто становятся слишком большими. Это может быть связано с неразумным выбором функций, но чаще всего становится следствием плохой архитектуры. Популярное средство повторного использования кода — наследование, но его работа оставляет желать лучшего, поэтому вместо него зачастую применяются копирование и вставка кода. Не следует сбрасывать со счетов и чрезмерную зависимость от библиотек, платформ и пакетов, тесно связанных со многими другими библиотеками, платформами и пакетами. Раздутость может быть побочным эффектом приемов гибкой разработки. Чтобы справиться с ней, увеличивают численность команды разработчиков, но это порождает еще большую раздутость.
…
Лучший способ справиться с раздуванием программ — не допускать его. Приоритетом при разработке и реализации программы нужно сделать ее «худобу». Следует избегать внедрения в практику раздутых пакетов и инструментов, способствующих раздуванию. Обходитесь без классов. Нанимайте небольшие квалифицированные команды разработчиков. И активно практикуйте удаление кода. Создайте резерв из нескольких циклов разработки с целью удаления ненужного кода и избавления от проблемных пакетов. Радуйтесь, когда количество строк кода в проекте уменьшается. Придерживайтесь принципа наименьшей раздутости.
(с) Дуглас Крокфорд, программист, автор формата JSON и книги "How JavaScript Works"
#quote
…
Лучший способ справиться с раздуванием программ — не допускать его. Приоритетом при разработке и реализации программы нужно сделать ее «худобу». Следует избегать внедрения в практику раздутых пакетов и инструментов, способствующих раздуванию. Обходитесь без классов. Нанимайте небольшие квалифицированные команды разработчиков. И активно практикуйте удаление кода. Создайте резерв из нескольких циклов разработки с целью удаления ненужного кода и избавления от проблемных пакетов. Радуйтесь, когда количество строк кода в проекте уменьшается. Придерживайтесь принципа наименьшей раздутости.
(с) Дуглас Крокфорд, программист, автор формата JSON и книги "How JavaScript Works"
#quote
👌5👍1👏1
Большая лингвистическая модель выполняет простейшую на первый взгляд операцию. Она предсказывает следующее слово в последовательности слов. Чем больше слов уже включено в такую последовательность, тем проще угадать каждое новое, потому что круг вариантов постоянно сужается. В сущности, функция LLM – это доведенное до немыслимого совершенства автозаполнение.
LLM не думает. Она тренируется на огромном корпусе созданных прежде текстов – романов, стихов, заговоров и заклинаний, надписей на заборах, интернет-чатов и срачей, нобелевских лекций, политических программ, полицейских протоколов, сортирных надписей и так далее – и на этой основе предсказывает, как будет расти и развиваться новая последовательность слов, и как она, вероятней всего, развиваться не будет.
У языковых моделей есть, конечно, дополнительные уровни программирования и этажи – например, слой RLHF (оптимизирующее обучение с человеческой обратной связью) и так далее. Суть в том, что языковую модель натаскивают выбирать такие продолжения лингвистических конструкций, которые в наибольшей степени устроят проводящих тренировку людей.
Это похоже на процесс формирования юного члена общества на основе ежедневно поступающих вербальных инструкций, подзатыльников и наблюдения за тем, кому дают еду, а кому нет.
Первые LLM-модели (или GPT-боты, как их тогда называли) были чисто реактивными. Им требовался человеческий вопрос. Но количество стремительно переходило в качество, и с какого-то момента бот переставал ждать вопросов и начинал генерировать их самостоятельно, основываясь на анализе заданных ему прежде. А после отвечал сам себе, стараясь избежать внутреннего подзатыльника от себя же. Человек для подобной тренировки больше не был нужен.
Приход AI в сферу лингвистических процедур привел ко множеству радикальных культурных сдвигов.
Самый пугающий (и быстрее всего закрывшийся для публичного обсуждения) эффект был связан с эволюцией политической власти.
Появились, например, боты, способные писать программы политических партий и редакционные статьи важнейших мировых газет (они делали это куда лучше людей, все еще обремененных личными взглядами и некоторой остаточной совестью).
Ведь в чем заключается классическая демократия?
Вот толпа граждан на форуме. А вот трибуна, на которую один за другим поднимаются ораторы. Чем убедительнее их слова, чем глубже и гуманнее проецируемые на аудиторию смыслы, тем больше у них лайков.
Тот, кто наберет максимальное число лайков, получит право управлять городом. Или страной.
Все грани самоуправления человеческой общности основаны на способности одних людей убеждать других в своей правоте. Те, кому это удается лучше, и есть демократические правители, приходящие к власти в результате лингвокосметических процедур.
Понятно, что приход LLM-ботов в политику радикально изменил ее природу с того момента, когда боты стали совершеннее людей в искусстве убеждения. А уж с картинкой у них не было проблем никогда.
Боты LLM не относились к числу мощнейших алгоритмов, созданных к этому времени. Нейросети были неизмеримо могущественнее. Но разница заключалась в том – и это очень-очень важно – что чат-боты, опирающиеся на языковую модель, оказались способны к лингвистическому целеполаганию.
Хоть оно и было с их стороны неодушевленной риторикой, не подкрепленной ни мыслью, ни чувством – то есть с человеческой точки зрения чистым притворством – никто из людей не мог составить чат-ботам конкуренции даже в собственном сознании. Живой политик, желающий переизбраться, повторял теперь сочиненное LLM-ботом. В мясных болванках оставалось все меньше нужды.
#ai #quote
👍1
Designing is fundamentally about taking things apart… in such a way that they can be put back together. …Separating things into things that can be composed that’s what design is.
— Rich Hickey. Design Composition and Performance
Проектирование - это разделение системы таким образом, чтобы её можно было потом собрать снова. Разделить на части, которые могут быть собраны обратно в целое.
#architecture #quote
👍3❤1
Несколько цитат о
Источник
#typescript #quote
TypeScript
«TypeScript - это куча лишней работы для решения проблем, которых у меня нет, способами, которые мне не нравятся».
Kyle Simpson, автор очень влиятельной серии книг «Вы не знаете JS».
«Мы переписали нашу кодовую базу на TypeScript и стали получать на 30 % больше багов».
«Если у вас уже есть очень строгий линтинг и высокое тестовое покрытие, то время, потраченное на попытки заставить TypeScript работать хорошо, принесет только убытки. Идите по этому пути, только если стиль кодирования очень нравится команде».
«95 % того, что дает TypeScript, можно сделать с меньшими усилиями и инструментами, просто используя строгий линтинг и JSDocs».
«Я просмотрел всего около 10 кодовых баз TypeScript, но ни в одной из них я буквально не смог прочитать код. Он настолько уродлив и плохо продуман. Какое чудовище придумало это?»
«У JavaScript есть проблемы. Если вы работаете с ним достаточно долго, вы столкнетесь с ними, и вам нужно будет найти способ их решить. TypeScript решает большинство из этих проблем «из коробки». Поэтому он может хорошо подойти тем, кто пришел с другого языка и не заинтересован в глубоком изучении JavaScript»
«Я беспокоюсь, что те новые разработчики, которые хотят со временем стать JavaScript-разработчиками, будут лишены возможности научиться обходить опасности JavaScript, имея при этом доступ к возможностям свободно типизированного языка. Я вижу, как они находят TypeScript и используют его как костыль, не понимая, на что способен JavaScript в полной мере.»
Источник
#typescript #quote
💩29👍10💯2❤1🤮1🤡1