Ayao "Alqualos" Kuroyuki (ayao) wrote,
Ayao "Alqualos" Kuroyuki
ayao

Порванный гик-код

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

Чтобы не быть голословными, проанализируем это порождение сатанизма.


Во-первых, о дизайне кода. Представление данных в виде последовательности параметров - вещь далеко не новая, особенно для телеметриста. Однако, структура этого представления оставляет желать лучшего. Во-первых, именем параметра является просто идентификатор. Это автоматически закрывает какие-либо возможности внешнего развития этой системы. То есть коды могут составляться в соответствии со спецификацией и только с ней. Ну, это всё равно, что иметь язык программирования, где все переменные и их смысл заранее определены разработчиками языка и ни использование их в других целях, ни заведение собственных переменных не допускаются. Всего-то надо было расширить возможности кода введением пространств имён, типа:
a999 qua:aЖопа
где "a" - "глобальный" параметр, согласно спецификации - "возраст", а "qua:a" - параметр "a" в пространстве имён "qua". Для обеспечения уникальности достаточно было предоставить сервис регистрации пространств имён, который бы мог, заодно, и обеспечивать автоматическую расшифровку кодов. Чего сложного? Всего лишь база данных имён параметров и их смыслов. Это вам не телеметрия...

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

Теперь о самих параметрах. Берём спецификацию кода, и вперёд.

К параметрам общего характера у меня претензий нет. Но они и к гикам отношение имеют весьма опосредованное. Теперь приступим же к самому главному, а именно - к компьютерам.

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

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

В-третьих, полно недоговорённостей. Например, параметр "P". Он указывает уровень программирования и список языков программирования, однако нигде в нём не фигурирует, какими языками программист владеет лучше других и насколько. К примеру, я могу писать и на C++, и на ассемблере - но разница в навыке!

В-четвёртых, попадаются и ошибки, которые заставляли бы громко ржать, если бы не подразумевалось, что спецификацию составлял человек, от компьютеров не далёкий. Например, параметр "L", выражающий отношение к Linux. Для начала, крайне странно, что не к GNU/Linux, поскольку очевидно, что от ядра самого по себе проку мало. Налицо неграмотность. Но больше всего смешит далее наличие BSD в списке субпараметров (кстати, нигде не раскрывается смысл субпараметров - то ли это дистрибутивы GNU/Linux, с которыми знаком владелец кода, то ли дистрибутивы GNU/Linux, которые он использовал, то ли просто набор страшных слов, ассоциирующихся у него со словом "Linux"). Тот факт, что BSD к Linux никакого отношения не имеет, как-то был то ли упущен из виду, то ли проигнорирован. Ну что можно сказать о вопросе "Какие модели автомобилей ,,Mercedes`` вы предпочитаете?", если в списке ответов на него фигурирует "Nissan Micra"?!

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

Для любопытства поглядел на оригинальный гик-код. Налицо масса отличий в лучшую сторону. Во-первых, улучшенный синтаксис, с модификаторами типа "!", "@" и т. п. Во-вторых, сразу бросается в глаза наличие версии спецификации. В-третьих, масса более грамотных вопросов, например, вместо "Linux" тут "UNIX", где "Linux" - лишь один из возможных вариантов. Есть, конечно, и те же проблемы, что и в русской версии, например, " Perl is a very powerful programming tool. Not only do I no longer write shell scripts, I also no longer use awk or sed. I use Perl for all programs of less than a thousand lines." - всё хорошо, но что если я согласен с характеристикой перла, но пишу шелл-скрипты, используя и awk, и sed, просто потому что считаю, что у них иная область примения? Аналогично, не порадовало наличие вопроса про Emacs, но отсутствие про Vim. Видимо, его тогда то ли не очень было, то ли он был сильно недоразвит. Но в общем и целом - оценка "неплохо". Такой код не грех и составить:

GIT !d !s !a C++++ UB++++ P+++ L++ E? W++ U? o? K? w--- O? M? V? !PS !PE Y+ PGP- !t !5 !X !R !tv !b Dl? D++ G e? !h !r y+
Что-то вроде того, да. Хотя всё равно лажа!

А общий вывод о русской версии - видимо, кривость русских рук проявляется не только в продающихся на авторынке колёсных дисках для "Daewoo Nexia" с посадочными дырками формы, напоминающей круг лишь весьма отдалённо...
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments