Pull to refresh

культура loc

Reading time6 min
Views1.2K
Ковырялся я тут по интернету, с целью найти себе windows manager для X. xfce4, конечно, классная штука, но есть в ней парочка раздражающих лично меня особенностей. Нет, ну можно было бы, как truehacker'у убрать пару-тройку строчек из исходников и добавить туда строчек 20, но вот что-то срабатывает дурная привычка: сначала пойти поискать среди готовых решений, потом уже самому делать. Некреативно это абсолютно.

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


Возьмём к примеру фирму Intel. Чем занимается фирма Intel? Изобретает процессоры. Делает процессоры и делает. Есть у неё такая цель: делать самые лучшие процессоры в мире. Но процессоры делает ещё куча фирм AMD, IBM, Sony, Toshiba, Samsung. И что такое выходит? Фирма Intel изобретает велосипеды в промышленных масштабах. Только велосипеды эти зовутся процессорами. Современный бы отечественный программист спросил бы их: а зачем они это делают? Ведь, можно взять готовый процессор и ничего не делать. Но вообще производители высокотехнологичных материальных благ тем и заняты, что постоянно подкручивают гайки велосипедам. Ну вот изобрёл кто-то там mp3-проигрыватель, Apple подкрутила гайки и сделала iPod. И iPod оказался круче, чем тот, исходный проигрыватель, однако это было всего лишь косметическое изменение сути.

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

А вот когда речь заходит об open source или internet (web 2.0), где любые программы или системы общедоступны всё меняется кардинально. Ну вот не нравится мне cpufreqd. Выхожу на форум, говорю: ваш cpufreqd — толстый, занимается хрен знает, кроме как удобного контроля частоты, давайте напишем новую легковесную альтернативу. И много находится желающих? Zero. Все ответы примерно такого содержания: сам дурак, и руки у тебя растут из ануса, и в cpufreqd то, что ты хочешь, делается при помощи вот этого конфигурационного файла размером в 100 строчек. Но я хочу ещё и это. А это делается при помощи вот этого файла в 200 строчек. Но я хочу и это и это одновременно! Нет, ну что ты? Ты просто неправильного хочешь. Иди выброси свой ноутбук на помойку и купи себе тот, который прошёл тесты на совместимость с linux. Как-будто от этого поменяется логика работы cpufreqd или процессор в этом ноутбуке будет другим.

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

Страх перед тем, что мы сделаем что-то не новое — совершенно неоправдан. Мы живём не в 19 веке, когда интеллектуальным трудом занято 10 человек, о которых все знают. В программировании работаю миллионы, и большинство из них — довольно ушлые представители вида homo sapiens. Конечно, уже многое придумано в этом мире. Но даже в катану можно внести штрихи, которые сделают её смертоноснее, и это тоже достойный труд.

Вот. Но ещё больший страх люди испытывают перед совершенно новым инструментом. Попытки пробить то, что нам нужен новый компилятор, производный от СИ, но с некоторыми дополнительными фишками (ну хорошо, ладно, не дополнительными, а значительно меняющими семантику языка), которые сделают жизнь лучше, сразу же натыкаются на ожесточённое: А ЗАЧЕМ!? Зачем, когда есть уже велосипед Си? Опять же, начинаешь объяснять: тут будет проще сделать вот это и это, а так же появится возможность делать так. На что получаешь отфутболивание: вот если извратится, то в Си это можно тоже сделать, а другое никому не нужно будет, потому что люди так не думают. Как-будто все в этой жизни любят извращаться и любят думать через пень колоду, а не в удобных терминах.

Короче, финансирование выбить — это такой геморрой. Но как иначе развиваться? Ну не могу я придумать штуку совершенно новую. Совершенно абсолютно новую, потому что ничего такого придумать нельзя. Даже wiki — ну чем не мутировавший форум? А L4 — извращённое видение Mach?

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

Нет. Я понимаю, дело — единственный способ доказать состоятельность проекта. Но, кушать-то во время работы тоже хочется. Хых. Получается, что творчество в нашей стране, опять же, может быть только хобби. Пока не прославился своей работой. Но можно ли так сотворить в приемлемые сроки нечто действительно серьёзное? Хрен знает.

Ладно. Я ушёл в строну. Так вот. Искал я WM для X. А это очень приятная с моей точки зрения область клепания ПО. Потому что тут никто не кричит о том, что: всё, что ты хочешь уже сделано в GNOME, надо только написать вот этот вот конфиг длинной в несколько метров (геометрических). Тут всё сложилось так, что создание нового wm — это кошерно. И набрёл я на такую штуку — wmii. Пишется она парой фанатиков Plan9.

Plan9, кстати, отдельная песня. Не смотря на засилие классических Unix'ов, Роберт и его комманда таки пробили идею о том, что неплохо бы было придумать ещё один, чтобы подкрутить некоторые гайки. И получилось весьма неплохо. Так что, не нужно боятся изобретения велосипедов. Хотите писать новую wiki — пишите, и не слушайте тех, кто будет говорить о том, что всё уже сделано, потому что никто не знает, чего вы там хотите сделать, пока вы это не сделаете. Пока ваш подвижный внутренний мир не будет выражен в подвижной же программе, а не в статичной картинке, которую вы пытаетесь описать словами, заявкой на финансирование, статьёй или сборником алгоритмов. Жизнь — это не набор формул, а сама жизнь во плоти. Я не понимаю, почему очень многие этого не понимают.

Ну так о чём это я? О wmii. Так вот… Фаны Plan9 фанатеют вот от такой вещи, которая называется loc — lines of code. Чем меньше, тем лучше. На suckless.org, который является домашней страничкой для wmii, они демонстративно гордятся, что их функциональная diri — это всего 200 строчек кода на rc, а сам wmii занимает всего 10000 loc. Вот это то, что делает Plan9 ещё приятнее \ я тоже становлюсь фанатиком: )? \ В век, когда 100 килобайт php-кода в архиве считаются небольшим решением, ребята делают многое всего в 200 строчек. Конечно, этому способствует удобная структура сервисов в Plan. Но просто устремлённость на то, что всё нужно писать как можно короче и как можно понятнее для других — это хорошо. Кстати, исходники ядра Plan9, гораздо легче читать, чем исходники того же linux. Сам не знаю, почему. Может быть по той же причине, что ядро писалось с той же целью максимизации соотношения функциональность/loc? А не просто для того, чтобы было и работало, как это сделано в Linux по моим ощущениям.

Хых. А хотел напиать коротенький пост о том, что loc — это хорошо. А вышло, что про больную тему — велосипеды. Но, героически сосредоточившись, я таки написал про loc, и теперь все будут знать, что это очень хорошо: ) Если можно написать wiki в 11 строчек на python (WyPy), то python, вполне возможно, очень даже хорошо. Опять же. Эта WyPy — велосипед в чистом виде, потому что были wiki и до неё, но это особая wiki, которая выделяет минимальный известный набор конструкций, необходимых для писания web-приложений, и, что более важно, учит неокрепшие умы силе и мощи lambda. Короче, по мне, так изобретательство велосипедов — достойнейшее из занятий.

А каждого, кто требует принципиальной новизны, нужно тыкать в его работу и говорить: ах, батенька, да неужели вы в своей статье 1812 года использовали натуральные числа? Та как вы могли применять столь древний инструмент в конструировании своей теории? Или так. Задумчиво щипать себя за бородку, закатывать глаза и говорить: как же, как же. Говорите, что придумали новое представление для конечных полей, которое записывается в виде таблицы умножения? Но вот если мы возьмём пересечение трёх линейных пространств, четырёх групп Ли и одной сигма алгебры, то получим то же самое — и ничего нового совершенно здесь не нужно.

Хых. Блин, опять меня понесло, ладно, пойду я страдать над словами \ ненавидит писание статей \

Tags:
Hubs:
Total votes 11: ↑8 and ↓3+5
Comments13

Articles