Написал язык программирования с нуля. Как работает компилятор и препроцессор - IT_школьник.

Поділитися
Вставка
  • Опубліковано 14 січ 2025

КОМЕНТАРІ • 118

  • @IT_Shkolnik
    @IT_Shkolnik  3 роки тому +5

    ССЫЛКА НА АРХИВ - disk.yandex.ru/d/qHIqBk7tJOc4Uw
    ССЫЛКА НА GCC - www.equation.com/servlet/equation.cmd?fa=fortran

    • @feviend8265
      @feviend8265 2 роки тому +1

      Лучше выкладывать код на github. Там есть и комменты, ветки и всё такое. А в яндекс диске нету

    • @IT_Shkolnik
      @IT_Shkolnik  2 роки тому

      @@feviend8265 я уже на гитхаб все выкладываю :)

  • @yessimovaindira8016
    @yessimovaindira8016 Рік тому +39

    Ну Президента туркмении тебе не обогнать. Он единственный кто смог написать нейросеть на html

  • @timofdev
    @timofdev 3 роки тому +10

    Никита, случайно наткнулся на твоё видео и у меня восхищение. Ты огромный молодец!

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому

      Спасибо за приятные слова!

  • @stalker32041
    @stalker32041 Рік тому +5

    1:37. Разница между двумя строками в том, что верхняя хардкодится в исходник по адресу, а нижняя подменяет все a, которые появятся дальше по коду на 5.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Немного не так. Под верхнюю выделяется место на стеке как под обычную переменную, только её нельзя менять через её символ. А нижняя хардкодится

    • @stalker32041
      @stalker32041 Рік тому

      @@IT_Shkolnik это же препроцессор... он конкретно подменяет во время работы дериктивы и их упоминания на результат. То есть все инклюды буквально компонуют несколько файлов в 1 перед обработкой остальной частью компилятора.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      @@stalker32041 дефайн - да, согласен. Под const память выделяется

  • @ExPoSeS2811
    @ExPoSeS2811 3 роки тому +10

    Спасибо, я понимал конечно что такое компиляции и интерпретация, но плохо. А теперь ты все разложил, и стало все понятно!

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +3

      Я рад, что вам помогло моё объяснение! И конечно спасибо за комментарий, только так ютуб понимает что мои ролики интересны

  • @skill_x_8016
    @skill_x_8016 6 місяців тому

    Боже мой, парень, ты просто невероятно хорош!
    Когда смотришь твои видео, понимаешь что нет ничего невозможного)
    Спасибо тебе огромное и удачи в развитии канала🔥

  • @tolikblik1
    @tolikblik1 Рік тому +5

    Супер, шикарно объясняешь!

  • @levovix
    @levovix 3 роки тому +6

    1:01 Препроцессор - программа, которая выполняет предобработку кода. Библиотеки подключает, раз уж на то пошло, линковщик, который связывает символы из разных объектных файлов

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +1

      Я имел ввиду что в С препроцессор подключает заголовочные файлы с функциями

    • @Тролль-в1м
      @Тролль-в1м 13 днів тому

      ​@@IT_Shkolnik и не только! Препроцессор - это первая стадия компиляции. Препроцессор не занимается тем, чтобы подключать файлы.
      Команды препроцессора в C:
      #if - как if, только обрабатывается препроцессором.
      #else - как else, только выполняется препроцессором.
      #ifdef - если объявлен макрос N выполняет действие.
      #ifndef - если не объявлен макрос N выполняет действие.
      #endif - конец if блоков выше
      #define - объявляет макрос.
      #undef - удалить макрос созданный #define
      #include - включает файл в программу.
      Круто, что ты увлекаешься C(это мой любимый язык). Удачи в создании новых проектов. Советую почитать какую-нибудь хорошую книгу или статьи о C, чтобы лучше понять, как там всë устроено.

  • @GOALACTION
    @GOALACTION 3 роки тому +15

    Слушай было достаточно интересно! Продолжай в том же духе!😉

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +1

      Спасибо, друг!

    • @gn0rltv311
      @gn0rltv311 Рік тому

      О привет, как поживаешь?

  • @zx_gamer1381
    @zx_gamer1381 2 роки тому +5

    Препроцессор не "подключает" библиотеки. Препроцессор обрабатывает макросы. В частности команда #include означает, что препроцессор должен вместо этой строчки вставить содержимое файла. В заголовочных файлах (внезапно!) находятся только заголовки. А непосредственно "подключение" (правильнее сказать "связывание") скомпилированных объектных файлов осуществляет линковщик.
    P.S. В заголовочных файлах писать код можно, но оправданно оно только в случае написания глобальных шаблонных функций или классов на языке С++.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Ага. И ещё в случае однострочных инлайн функций

    • @itszzupart6607
      @itszzupart6607 Рік тому

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

  • @4edbark
    @4edbark Рік тому +1

    6:53 Да это прям блюпринты в Unreal Engine. Они также работают. А вообще, у меня давно была похожая идея сделать такой компилятор, но как-то руки не доходят.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      С блюпринтами и Unreal Engin'ом я не сильно знаком, но рад что вы нашли такую интересную связь. У меня тоже до некоторых запланированных проектов долго руки не доходят, НО. Здесь просто нужно перебороть самого себя и заняться этим делом. Когда я начинаю что-то делать то всё идёт в гору, но если я только думаю как я это буду делать то я могу потратить много времени впустую. Если вы правда хотите сделать компилятор ( любого уровня ), и у вас есть время на это, то смело делайте, таков мой совет )

  • @anonsd5521
    @anonsd5521 3 місяці тому

    Не тратьте время, насколько я поняла, он написал программу, которая читает документ и в зависимости от слов, которые находит в документе активирует нужные функций на языке C.

  • @shugarok1163
    @shugarok1163 Рік тому +1

    я думаю на ассемблер(вместо с) легче было бы переводить там потом все понятно команды идут сразу в проц

    • @IT_Shkolnik
      @IT_Shkolnik  11 місяців тому +1

      Думаю, особой разницы не сыграло бы, ведь большую часть процессорного времени в обоих случаях будут занимать системные вызовы. Да и Ассемблер я тогда ещё не особо хорошо знал, потому выбор пал именно на Си

  • @ВаняФилин-ф2г
    @ВаняФилин-ф2г 6 місяців тому +1

    Если ты дальше этим будешь заниматься , тебя ждет большое будущее !

  • @codemonkey2190
    @codemonkey2190 2 роки тому +3

    В самом с++ настолько много инструментов и возможностей что сам c++ можно переделать в другой язык.

    • @mr.efertyon1922
      @mr.efertyon1922 11 місяців тому

      если знаешь где найти полную вики со всеми инструментами и возможностями скинь.

  • @cglike
    @cglike 3 роки тому +1

    1:13 это означает только то что препроцессор буквально возьмет все что есть в файле stdio.h и вставит вместо директивы include, и ничего ты тут не подключаешь

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +2

      1. Копирование содержимого из 1 файла в другой называется его «включением» или «подключением».
      2. В книге по С Брайана Кернигана и Денниса Ритчи это называется подключением.
      3. include переводится как «включить» или «подключить».

    • @cglike
      @cglike 3 роки тому

      @@IT_Shkolnik если ты напишешь
      #include то ты подключишь библиотеку ?

    • @cglike
      @cglike 3 роки тому +1

      @@IT_Shkolnik include это именно "включить"(содержимое) как часть целого. В твоем случае stdio часть стандартной библиотеки а её подключать не надо. Включая заголовочный файл ты лишь копируешь определения функций и структур из этого файла в свой translation unit.
      + препроцессор в принципе не способен подключать библиотеки, только ctrl+c/ctrl+v

  • @misterfox3464
    @misterfox3464 7 місяців тому +1

    Скажем так. Реализация и идея хрень. НО!
    Интеллект - это способность решать не стандартные задачи нестандартно... Мне кажется ты доказал что будь у тебя достаточно времени и знаний ты бы написал намного лучше.
    Продолжай )

  • @endyelectrician2491
    @endyelectrician2491 Рік тому +9

    Отличная работа 🚀, но кажется точнее будет называть твой "компилятор" транслятором. Бьёрн Страупструп тоже первую рабочую версию языка С++ реализовал как транслятор с С++ на С. Желаю удачи и самое главное - не бросай подобные затеи.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому +2

      Спасибо большое. Бросать я не собирался, а вот от ютуба немного отошел. Но я возвращаюсь и буду продолжать снимать видео. Замечание про транслятор верное!

    • @memoryspeak
      @memoryspeak Рік тому +1

      ​@@IT_Shkolnik возвращайся

    • @romarom346
      @romarom346 Рік тому +1

      Если говорить точнее, Бьярне создал транспайлер, это транслятор, транслирующий один высокоуровневый язык, в другой высокоуровневый язык, либо в самого себя, но потом он создал полноценный отдельный от Си компилятор.

  • @СтепанДнепров
    @СтепанДнепров Рік тому +1

    Ну, если делать прям по фен-шую, то генерировать надо не сишный код.
    Нет смысла спускаться на уровень ассемблера (придется тогда под разные ос и архитектуры практически заново писать), лучше использовать LLVM IR для этого

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Вообще была у меня идея генерировать ассемблер, но на момент создания этого видео я ещё про него почти ничего не знал)

    • @СтепанДнепров
      @СтепанДнепров Рік тому +1

      @@IT_Shkolnik ну, писать компилятор сразу в ассемблер это тяжко не только с точки зрения того, что это язык сложный, а с точки зрения того, что под каждую архитектуру нужно будет писать свой компилятор почти с нуля, а llvm будет низкоуровневой прослойкой.

  • @feviend8265
    @feviend8265 2 роки тому +10

    Привет. Крутое видео. Занимаюсь программированием 2 года. Сейчас мне 14. Я делал 2 своих языка программирования которые были компиляторами и переводились в c++ и c#. 2 язык был намного сложнее, там был кроме компилятора еще и лексер который разбивал код на токены и образовывал AST (абстрактное синтаксическое дерево).
    Hello world на моём 2 языке:
    main:
    print("Hello World")
    end

    • @lizbertarian
      @lizbertarian 2 роки тому

      Как ты строил AST? Какой тип парсера использовал (LL или LR)?

    • @feviend8265
      @feviend8265 2 роки тому

      @@lizbertarian не знаю что такое LL и LR. Лексер в моём языке это и лексер и парсер вместе. Писал его без кодогенераторов. Использовал рекурсию. Больше не помню потому что это было год назад. Надо смотреть код

    • @feviend8265
      @feviend8265 2 роки тому

      @@lizbertarian у тебя есть telegram?

    • @lizbertarian
      @lizbertarian 2 роки тому

      @@feviend8265 @ lizzy_weiss

    • @yzyteam
      @yzyteam 2 роки тому +1

      Обзор сделаешь на свое творение ?

  • @user33017
    @user33017 Рік тому +3

    Ммм за 4 дня сделать свой яп с интерпретатором. Ничего себе. Я ток за минут 10 сделал калькулятор на языке си. До этого 4 года программировал на python. Понял, что задачи, для которых он сделан не подходят для меня. Потом перешёл на c++. Попробовал си. Все мифы, что якобы он очень сложный развеялись. До этого вывел строку на голом железе на fasm. А потом узнал о roadmap'ах и понял, что я нихрена не знаю, пон.😂😂😂

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому +2

      Ваш комментарий можно использовать как идеальный ответ на "Что такое программирование в двух словах"

    • @LightSpark75002
      @LightSpark75002 8 місяців тому

      Я тоже все время изучал питон, а теперь начал джаву. Я понял что она тоже больше подходит для меня.

  • @SerjCrimea
    @SerjCrimea 2 роки тому +9

    У тебя по сути получился интерпретатор. Для компиляции нужно учить Ассемблер. И типа пишешь CLS а в коде Ассемблер, вызываешь очистку экрана. Ну и компилятор Ассемблера, везде участвует, даже в Си и в Си++ ;)

    • @tailogs5825
      @tailogs5825 Рік тому +2

      Если так докапываться, то у него получился транслятор. Но по сути у него смесь транслятор/компилятор, так как в любом случае мы получаем испольняемый файл, которой не нужен интерпретатор (виртуальная машина) для работы.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Со всеми согласен, в моей реализации смесь из транслятора и интерпретатора. А про ассемблер видео дальше будут

    • @nakidai
      @nakidai Рік тому

      Если говорить правильно, то не компилятор ассемблера, а а ассемблер :)

    • @ТимерланБатаев
      @ТимерланБатаев Рік тому

      Конвертор*

    • @ТимерланБатаев
      @ТимерланБатаев Рік тому

      Работа интерпретатора основана на VM

  • @andreysedunov5154
    @andreysedunov5154 Рік тому +2

    Привет, я новенький на твоём канале. Расскажи пожалуйста, сколько ты учишь С?

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Привет, спасибо за комментарий. Я учу Си два с половиной года

  • @artemboiarshinov
    @artemboiarshinov 3 роки тому +3

    Ждем ролик о создании современного языка программирования PETOOH

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +1

      Спасибо! Вы с GitHub я так понимаю?)

    • @PaulWide
      @PaulWide 3 роки тому +1

      аааахахаххааха

    • @cordestandoff2358
      @cordestandoff2358 2 роки тому +1

      Koo KoO koo kOk kooo

  • @CAXAROK2010
    @CAXAROK2010 5 місяців тому

    Красавчик

  • @MikeGreen-v6t
    @MikeGreen-v6t 11 місяців тому

    Отлично!

  • @sentronawer2719
    @sentronawer2719 3 роки тому +2

    силен!

  • @mikhailreznichenko8035
    @mikhailreznichenko8035 2 роки тому +1

    Сильно!

  • @lq9263
    @lq9263 3 роки тому +2

    Твое решение конечно интересно, но если кто то будет пользоваться твоим языком. То пользователю придется понимать ошибки языка C. Так что предлагаю посмотреть в сторону байткод. Работает это очень просто так вот: твоя программа превращает код понятный пользователь в менее понятный для пользователя, и более простой. А потом твоя программа может выполнять этот байткод.

  • @Motarola_RUS
    @Motarola_RUS 3 місяці тому

    А ты код пишешь на ноутбуке или ПК

  • @urson995
    @urson995 Рік тому

    Очень круто! Но где-то слишком усложнил. В остальном молодец.

    • @IT_Shkolnik
      @IT_Shkolnik  11 місяців тому

      Старался, спасибо!

  • @swiftkey1316
    @swiftkey1316 2 роки тому +3

    Мой язык там работает 1 программа:
    Code = ()
    String =0
    Event =input()
    Code.append(event)
    def FileAnalysis() :
    file=open("main.txt")
    def FileAnalysis() :
    File =open("main.txt")
    print("ошибка в коде")
    if('form ' (big) ')
    mainloop
    #команды языка
    print("input", programma) это программа выводит, то что в ней написано.
    IT_школьник пж заметь

  • @ЮрийРейковский
    @ЮрийРейковский 7 місяців тому

    Слушай, а расскажи как собрать установщик под программу

  • @Phantom-Soft
    @Phantom-Soft Рік тому

    4:40 ENTER - (17) ???

    • @IT_Shkolnik
      @IT_Shkolnik  11 місяців тому

      Спасибо за вашу бдительность, исправил в описании

  • @haxidenti6001
    @haxidenti6001 Рік тому +3

    Это не язык программирования а команды. В целом думаешь правильно. Только создавая язык, создавай язык, не его функции. А то не создав язык до конца ты уже создаёшь функции. Они будут потом, сначала создай сам фундамент, а функции придут со временем. Делать язык тупо для команд, то лучше взять какой то пайтон, он же будет лучше чем скачивать твой. Но если всерйоз то сделать свой яп было бы круто и что бы была главное сво идея, зачем кго делаешь. В противном случае язык ради языка - такое

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому +1

      Я не собирался делать серьёзный ЯП, который будет использоваться людьми по всему миру. Это тестовый язык, чтобы попробовать себя в написании транслятора и реализации

    • @vincentvince2136
      @vincentvince2136 Рік тому

      ​@@IT_Shkolnik ты написал детское говнище, я таким баловался еще когда начинал свой путь проганья. У тебя нет ничего, из чего обычно делают ЯП, т.е. нет лексера парсера и тд

  • @timoftimof2977
    @timoftimof2977 Місяць тому

    спасибо

  • @dyze8847
    @dyze8847 Рік тому +2

    Написал недавно свой интерпретатор, для выполнения json-файла😂😂
    Возможно, это звучит глупо, но это ускоряет написание простых программ))

    • @IT_Shkolnik
      @IT_Shkolnik  11 місяців тому

      Ух ты, наверное классно получилось!

  • @PaulWide
    @PaulWide 3 роки тому +3

    у тебя it_батя? колись.
    монтируешь сам?

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +1

      Монтирую сам. Батя - хардварщик

    • @cordestandoff2358
      @cordestandoff2358 2 роки тому

      @@IT_Shkolnik азахах

    • @honky-tonk1060
      @honky-tonk1060 Рік тому

      @@IT_Shkolnik - скажи, ты знаешь такого типа с юзернеймом Кибердед (а зовут его Масалович А.И. ) ? Если да - то что скажешь о нем (охота инсайдов от тех, кто общался с ним вживую ) ,

  • @JohnHiz
    @JohnHiz 2 роки тому +1

    Думаю что язык С не является таким уж низкоуровневым, низкоуровневый скорее Assembler

    • @IT_Shkolnik
      @IT_Shkolnik  2 роки тому

      Тоже верно. Наверное С - средний уровень. Да и вообще попробовав Ассемблер в первый раз, потом перейдя на Си кажется что как будто за рулем летающей машины с автопилотом

    • @vincentvince2136
      @vincentvince2136 Рік тому

      ​@@IT_Shkolnik си - высокоуровненвый яп

  • @feviend8265
    @feviend8265 2 роки тому +3

    Сейчас я делаю свою игру на движке unity. Думаю бесполезно делать свой язык программирования, т.к. есть очень много готовых языков. Даже крупной компании jetbrains, было сложно делать язык kotlin. Лучше писать библиотеки для готовых языков (например python).
    Думаю добавить в свою игру API для написания модов на python

  • @ЮрийРейковский
    @ЮрийРейковский 7 місяців тому

    А ты хорош

  • @egorovsa
    @egorovsa 3 роки тому +2

    Чуть чуть медленнее с расстановкой.

    • @IT_Shkolnik
      @IT_Shkolnik  3 роки тому +1

      Спасибо за совет

  • @CODMLIFER
    @CODMLIFER 2 роки тому +2

    перекинь свой компилятор на гуглдиск потому что у меня в стране заблокали всё русское😢

    • @IT_Shkolnik
      @IT_Shkolnik  2 роки тому

      У меня тоже много что заблокировали

    • @seekyboi23
      @seekyboi23 2 роки тому

      Езжайте в укр

    • @addblocker6634
      @addblocker6634 Рік тому

      ​@@seekyboi23 разве это не под запретом? Только при наличии родственников. Я думаю не у каждого есть такая возможность.

    • @seekyboi23
      @seekyboi23 Рік тому

      @@addblocker6634 запрет? Родители будут только рады такому событию

    • @honky-tonk1060
      @honky-tonk1060 Рік тому +1

      поставь браузер Опера хоть на компе, хоть на телефоне (там есть встроенный VPN, включи его - и все загрузится/скачается ) ,

  • @motopers
    @motopers Рік тому +1

    Получилось мего кал где ты говоришь много воды да и то не правду язык СИ никогда не был низкоуровневым это высокоуровневый яп и точка. Низкоуровневый только языки ассемблера выбираешь любой понравившийся транслятор и погнали. Интерпретируемый язык будет выполнен быстрее в первый раз, а компилятор будет долго компенлировать но после его код будет быстрее поскольку ему не нужно перекомпилировать код. Что ты написал это просто кусок кала на СИ где ты определил транслятор как if else нету никаких оптимизаций бизнес логика и интерфейсы вместе короче получился медленный переводчик встречающихся слов в команды си и это никаких образом языком яп назвать нельзя, для этого надо писать на ассемблере и знать computer science на хорошем уровне.
    И это не хейт просто мнение, а так ты красава учишь в начале СИ это хотябы нормальный язык, а не всякие новомодеые языки с кучей абстракцей для смузихлебов

    • @tailogs5825
      @tailogs5825 Рік тому

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

    • @tailogs5825
      @tailogs5825 Рік тому

      И ещё, для разработчика будет проще писать именно на интерпретируемым языком по многим причинам, например, как ты и сказал, я просто неправильно сперва понял, но это не отменяет сказанные мною слова ранее. Так вот, ты говорил именно про разработку, да, на интерпретируемых языках если интерпретатор работает на фоне, то он быстрее запустить программу, так-как основная часть, тобишь интерпретатор работает, как в то время компилятор только только будет компилировать программу. Но после запуска, скомпилируемая программа будет работать быстрее интерпретируемой. И да, я знаю что VM это разновидность интерпретаторов, навсякий. Буду открыт к критике со стороны и поправке, если я где-либо ошибся

    • @motopers
      @motopers Рік тому

      @@tailogs5825 Так во первых круто что ты умеешь работать с критикой. Далее язык СИ это сложный высокоуровневый яп. Я не совсем понял аргумент про то что СИ может работать напрямую с железом, любой современный по голу выпуска язык может в той или иной мере это делать даже тот же Js в окружение Node может всё то что и СИ. Только язык ассемблера является низко уровневым, поскольку он имеет возможность напрямую работать с системными вызывами, при этом он самый понятный язык пр и лёгкий в освоении как бы это глупо не звучало для тебя, я имею опыт и помимо своего мнения вижу такое у других. После языка ассемблера были созданы не менее прекрасный паскаль, бейсик, fortran, ada, которые даже по коду они имеет в себе кучу уже написанных декларативных частей, в том то и дело что и низко уровневым языке Ассемблера ты всë пишешь сам. СИ не стоит посередине между python и языком ассемблера скорее ADA

    • @tailogs5825
      @tailogs5825 Рік тому

      @@motopers ​ @user-pk8hj8lp3e Я сам учил множество языков и пробовал писать программы на всех сказанных тобой языках, разве что на ассемблере поюзал на пк, но особо не зашло, так как используя реализацию в виде fasm приходилось работать именно с си функциями, а не напрямую допустим с прерываниями, как в операционной системе ms dos или тем же linux (как я слышал там это возможно) (я там не программировал не на одном языке, но пользовался самой ос). Насчет си, почему ты настолько уверен в том, что он относиться именно к высокоуровевым, если абстркции там поменьше, чем в любом из языков, да и есть множество ресурсов упомянающих его как именно среднеуровневый и низкоуровневый, стоит просто загуглить и все становиться ясно. Но после сказанных тобой слов я задумался и думаю, что все же он больше всего относиться к среднеуровневым. Во всем остальном ты прав, как и в железе, тут я сглупил.

    • @tailogs5825
      @tailogs5825 Рік тому

      @@motopers А, еще забыл упомянуть, на fortran что-то да учил, но особо не пользовался, так как нет надобности в этом. Да и это косается многих языков ... У меня такая проблема, что я постоянно учу языки, чем пишу на них что-либо. Такими темпами я затронул уже больше 40 языков и продолжаю это делать ... У меня просто нет идей для программ, кроме рабочих. А если они появляются, то они слишком сложные, а простое ... ну ты понял. Но как только я выбираю какой-либо язык и убираю другой, то ощущаю фантомную боль и рано или поздно возвращаюсь к изучению языков ... Не знаешь как с этим можно справиться? Я просто устал ...

  • @Сергей-ы3д8и
    @Сергей-ы3д8и Рік тому +2

    Всё круто, но звук ужасный.
    Купи хороший микрофон.

    • @IT_Shkolnik
      @IT_Shkolnik  Рік тому

      Рад что вам понравилось видео. Да, я уже подумывал над покупкой микрофона, думаю скоро куплю. В любом случае буду всем делиться в телеграмм канале