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

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

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

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

Техзадание

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

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

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

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

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

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

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

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

Что делать с графиком?! Я начал искать, и нашел в интернете пример, как построить график, если есть массив данных – выдрал пример к себе… а он не рисует без библиотеки «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 и с программированием через год, а тем более через десять лет. Конечно. И я, действительно новичок, я многого не понимаю. Но я, даже при самом негативном раскладе (если ИИ захватит мир и станет программировать лучше человека), не могу помыслить, что отдам Искусственному Интеллекту своё право получать удовлетворение от решенной задачи - я сам хочу съесть вкусный пирог, удовлетворить женщину, написать код - я не собираюсь делегировать это машине. Антропоцентризму - ура!

Ссылка на статью про мое детище (повинуясь комментаторам):
Веб-страничка строит график спектра отражения и пропускания света стопкой пластин

Комментарии (10)


  1. Cere8ellum
    16.04.2024 16:58

    Ну и сумбур.

    Где ссыль на детище?


    1. MarkNest Автор
      16.04.2024 16:58

      Сумбур - это для художественности, это типа юмор. Так то у меня опубликовано пока всего две статьи... Одна эта, другая про детище


  1. sumdy-c
    16.04.2024 16:58
    +5

    Кто-то минусами кидается, а зря. В этом небольшом тексте, я когда-то узнавал себя)

    Правда - это забавно. Особенно в моменте когда используешь MutableObserver, чтобы отловить проявление элемента в сложном приложении Реакт, чтобы автоматизировать пересчет высоты подвала, либо когда пишешь свою реализацию VDOM для конкретной части проекта, либо когда загружаешь glTF в приложение на Babylon, еще пытаясь в математику, чтобы все хорошо ходило, стояло и прыгало и еще много, много всего…, а потом читаешь текст и вспоминаешь, что не мог получить элемент по id через querySeletor(), что не получалось отфильтровать массив объектов и многое другое)

    Автор оставил только теплые чувства, читать было очень интересно даже по подаче) Спасибо за работу) Только так, можно стать настоящим программистом, а не купив очередной курс за много нефти)

    PS, джаваскрипт, не Ява)


    1. MarkNest Автор
      16.04.2024 16:58
      +1

      да!)))


  1. BioHazzardt
    16.04.2024 16:58
    +2

    Мне приснился сайт, и я в него влюбился

    мне однажды приснился сон про джунов-чернокнижниов, читающих заклинания на джаваскипте и их уберчела в капюшоне с толстенным учебником по C++ в руках, если увидите, что я с каменным лицом шел по улице и внезапно начал ржать - значит я тот сон вспомнил


  1. MAXH0
    16.04.2024 16:58
    +4

    Давно, лет 20 назад или даже больше, во время войны браузеров, мне попалась книжка от MS. Там описывался IE3.2 и верстка к нему. Тогда моим любимым браузером была Opera, но большинство примеров подходили и к ней. Но, главное, в конце было описание двух языков программирования для браузера. ВижуалБесика-скрипт и ДжаваСкрипт. На Бейсике было писано монструозное бизнес-приложение с логикой. JS давалась буквально на одном листе. О! Какой классный и простой язык, подумал я. И стал его учить.

    За прошедшее время ВижуалБесик-скрипт умер, но JS уже не простой и классный. Это давно не Scheme притворяющийся Java. Это язык корпоративной разработки со всеми сложностями такого языка. Подобно айсбергу с огромной частью невидимой сложности.

    В принципе, то что вы описали можно сделать легко и понятно для начинающего на ванильном JS + HTML5. Увлеченному 8-класснику это на пол-года работы от идеи до презентации проекта. С учетом того, что школьник с нулевыми знаниями программирования пришел в кружок и занимается. И разместить можно бесплатно. Моим ученикам я предлагаю https://free.sprinthost.ru, но есть и другие сайты где бесплатно для не нагруженного сайта. Всё решаемо.

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

    Большинству любителей этот уровень сложности излишен! Возможно стоит попробовать составить пособие именно для любительского web- программирования. Не знаю. Я пока думаю об этом.


  1. Moor
    16.04.2024 16:58
    +1

    Если вы комбайнер, вы не можете писать "пользователь должен ввести". Ваша фраза "человек должен вбить" :)


    1. MarkNest Автор
      16.04.2024 16:58

      :)))


    1. barbanel
      16.04.2024 16:58
      +1

      Если комбайнер истинный, то возможно даже: "Нужно влить!" =)


      1. MarkNest Автор
        16.04.2024 16:58

        "пользователь" => "Мужик"
        "может" => "обязан"
        "ввести" => "вставить"
        )))