Юмористический рассказ «Как неофит познавал яваскрипт»

9daa76f248d79e3a5ede353ba52770d7.png

«Грусть — прекрасное чувство. Как бы я хотел погрустить. Но вся эта чепуха меня бесит» © Иван Бунин

Пятьдесят лет назад программистов не было в природе. А сейчас они, кажется, уже вымирают — народился «Чат Гопоты», дьявольский Devin и всё такое прочее. Но, думаю, настоящие программисты не вымрут — они просто перестанут зарабатывать деньги. Ведь до сих пор умельцы и лапти плетут — не за деньги, для души. Собственно, дальше будет хардкорная история о душе программирования.

Что случилось

Мне приснился сайт, и я в него влюбился. Но сайт был только во сне ­– в интернете его не было.

Техзадание

Любовь моя (сайт) имела четкие формы. А именно. Заходит, к примеру, пользователь на сайт, видит несколько окошек с объяснениями, вводит в окошки свои параметры, нажимает на кнопку, а сайт вдруг хватает параметры и рисует пользователю график — отчего пользователь впадает в блаженство. Что-то типа калькулятора.

Драма в том, что сам я не программист — и вообще рядом не валялся — я, для определенности, например, депутат или комбайнер. И денег у меня нет, такой вот я комбайнер. А настоящие программисты, я к ним приставал, не желали «материализовывать» мою «чувственную идею» — у них дети, они должны деньги зарабатывать, а не вот это вот всё. Но я каждый раз успевал сообщить программистам, что хочу такие окошки, в которые пользователь, если ему правда надо, сможет ввести даже миллион параметров. И добрые программисты советовали мне в один голос: «Это надо делать на яваскрипте, тогда всё будет считаться на компьютере пользователя, а не на сервере».

Я запомнил полезное слово «яваскрипт» и взялся сам за свои окошки, за свой текст,
подкнопочную функцию и график. С этого момента я стал временами впадать в
душевное состояние, которое, мне кажется, олицетворяет Зидар из третьих Героев (он
на картинке) и которое описывает Иван Бунин (в эпиграфе).

Что у меня не получалось (и что не получилось)

В двух словах, у меня не получалось две вещи: найти и понять.

Я не мог найти руководства, как приступить к делу. Всё потому, что у меня не хватало терминов. Я не знал, как это всё называется, как сформулировать запрос гуглу. Во-вторых, интернет оказался заполнен ненужными мне статьями и советами, которые писали другие неофиты — да, если человек в чем-то разобрался, то ему полезно это написать в виде статьи, чтобы разобраться еще лучше, но ­– эти статьи тратили мое время! О, этот птичий язык! О, эти советы, которые не работают!

В конце концов я нашел «букварь по яваскрипту». Однако авторы букваря думали, что мне нужно понять весь яваскрипт (они последовательно мне объясняли всё подряд), а мне нужно было только немножко. Я читал и думал: «Солнце садится!» (в смысле, время уходит, а я занимаюсь черт знает чем!) Я дочитал до массивов и понял — это то, что нужно — хватит читать букварь!

В букваре мне не объяснили, как код яваскрипта получает параметры из окошек на сайте — в букваре все цифры уже были заданы в самом яваскрипте. Блин! Наверное это всё было в конце букваря, но ведь солнце садится! И я полез в интернет… где узнал, что в природе есть верстка сайта, стили, какое-то DOM-дерево и файл с названием «index.html». А мне же некогда! Но я вооружился понятием

и 

Что делать с графиком?! Я начал искать, и нашел в интернете пример, как построить график, если есть массив данных — выдрал пример к себе…, а он не рисует без библиотеки «jQuery», которая весит полметра (и похоже, что это версия мохнатого года)… Ррр! Я заподозрил, что это многовато и старовато, но самому разбираться, как это всё рисуется — солнце садится! — я сложил эту библиотеку к себе. Копаться в красоте отрисовки не стал. Пусть будут желтые графики с пупырками — плевать.

Я надеялся найти библиотеку js, в которой есть функция, возвращающая собственные векторы комплекснозначной матрицы 4×4. Наверное, не умею искать (чем вы там в своем яваскрипте занимаетесь?! Не можете человеку написать библиотеку…). Ыыы! Пришлось написать самому такую библиотеку — умножение матриц, обратная матрица, собственные векторы — ну всё такое.

Я не понял, как работают вот эти вот «отладчики кода js». Хрень какая-то! Поэтому я писал маленькими кусочками и, когда у меня не работало, вставлял в разные места строчку

alert('господи, помоги!');

Конечно, попав в какой-нибудь цикл, этот алерт меня бесил, но я нашел управу.

Кстати, этот яваскрипт-код иногда вообще не работает — весь (если забыть закомментировать строчку с комментарием) — алерт не выскакивает, в каком бы месте его ни вставить –, а иногда код работает до ошибочной команды — капризный какой до ошибок яваскрипт! Но это весело, это тешит.

Что касается синтаксиса яваскрипта, а именно скобок и всего такого… Один раз я
заподозрил яваскрипт в том, что он не умеет умножать числа, близкие к нулю… Проклял
его даже. Увидел шутливый видос про яваскрипт, где »0>=Null», и поверил в немощь этого
«мощнейшего инструмента»…

Оказалось, что я скобку не поставил… Яваскрипт — молодец. Но не очень удобно на нем перемножать комплекснозначные матрицы… в смысле, мне, неофиту, было неудобно и больно. Ыыы!!!

Считывание чисел из строк… Интересный был опыт. Советы из интернета не помогали (я не все интернетовские советы испробовал, но… что-то с этими советчиками надо делать). Я сам набуровил какой-то «индусский код». Работает! Хе-хе! Правда, в некоторых моих окнах яваскрипт воспринимает десятичную запятую как оскорбление (хочет десятичную точку)… Но ведь солнце садится!

Был момент — это когда я уже «расправил крылья и возобладал» — захотелось немножко красоты для своего сайта… чтоб на сайте стиралось число: «время расчета», если пользователь изменил параметры в окнах…  ну как бы, намек пользователю, что надо снова давить на кнопку (новый расчет делать). В общем, «событие: пользователь на сайте зашевелился; действие: надо стереть число» у меня получилось прикрутить только к окнам «input type= text», а к «радио-кнопке» не получилось — солнце садится!, а в интернете, тем временем, какие-то непонятные рекомендации… методы какие-то…

«Я сделяль»© сайт! Но не смог отправить его другу ГуглПочтой — прикрепленный к письму архив с сайтом был распознан Гуглом как «вредоносное ПО». Черт подери! Неужели я что-то не знаю о том, что я написал?! А Гугл знает! Ыыы!!!

Попытки разместить сайт в интернете бесплатно

Доктрина моего сайта — он бесплатен, он без рекламы и всего такого. И я с этой доктриной не смог разместить его в интернете. Пятнадцать лет назад я смог, а теперь не могу… Мир меняется.

На сайтах с подарковым хостингом я чувствовал себя несколько… эм… расфокусированно — много непонятных слов и кнопок — как к кабине современного самолета — там тоже штурвал не сразу видно — вся кабина в каких-то кнопках и лампочках. Что нажать, чтобы полететь? Опять букварь искать и читать его от корки до корки?!  

На Гугле — мне в лицо прыгали сайтовы конструкторы, и я свой «index.html» с «библиотечками» пристроить не смог — конструкторы спрятали от меня нужную кнопку! Ррр!  

На Юкозе — не смог загрузить туда библиотеку «jQuery» с рисованием графика… у них свой jQuery есть… он мой не пускает… я попробовал без своего, честно скачанного черт знает откуда «jQuery» (раз там всё есть, вдруг заработает) — график не строится, я написал мольбу в техподдержку — мне вежливо разрешили залить свою версию библиотеки «jQuery» (я не ожидал! Спасибо, правда!), но график не строится! Ыыы!!!

На Бегете — куда что вставлять?! Там уже есть какой-то «index.php»… Что это вообще за ПХП такое?! Ладно, положу своё рядом… Ура! График строится! Кидаю ссылку другу, а у него не открывается. Ррр! Оказалось, что любой смартфон сам дописывает в адресе букву «s»: «http» превращается в «https». А с https — ссылка не работает…, а с http — работает. Карамба! Что это за буква! … Вот так я узнал про SSL-сертификат… Узнал, что такое «хост» и «домен» (но это не точно, может быть я еще не до конца прочувствовал эти слова)… Узнал, что на Бегете хост бесплатно, но надо купить домен (тогда наверное дадут бесплатный сертификат и наверное заработает ссылка с https…, но это не точно, я не знаю, что там происходит). А у меня же доктрина — сайт должен быть бесплатным (для меня тоже). 

Я спросил у знакомого, он сказал, чтоб я не занимался ерундой, а купил себе нормальный хостинг, нормальный домен и все такое — это не дорого… 

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

Несмотря ни на что мой сайт греет мне душу… мой милый уродец…

Заключение

Наверное, поздно я стал учиться программированию (или как это называется). Ведь скоро за это перестанут платить деньги (грядет ИИ, деньги будут платить ему и его хозяину). Но азарт, преодоление, радость победы — победы не над другим человеком, а над собой, над задачей, над непонятным — я не хочу отдавать это ощущение Искусственному Интеллекту — я сам хочу получать это удовлетворение. Зидар и Бунин — мои друзья!

ЗЫ от автора (а до этого был художественный персонаж)

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

Habrahabr.ru прочитано 3029 раз