Обновить

Комментарии 43

Когда я давным-давно изучал программирование, я представлял как страдают англоязычные: то что для нас - новые, чистые, самостоятельные и независимые концепции ("if", "else", имена функций и переменных), для них - исковерканный родной язык! Именно исковерканный, изуродованный, не подчиняющийся естественным правилам английского языка. Поэтому какое счастье что языки программирования на английском (и какое счастье что я практически не сталкивался с 1С, кроме единственного раза, но для выноса мозга и одного раза хватило).

я представлял как страдают англоязычные

Думаю им вообще пофиг.

но для выноса мозга и одного раза хватило

Русский вообще плохо пригоден для использования в качестве идентификаторов из за многобуквенности (длины слов), особенно в технической сфере, получается либо brainfuck из сокращений и аббревиатур либо простыня сплошного текста, что так что так - нечитаемо

НЛО прилетело и опубликовало эту надпись здесь

Ершов еще в школах внедрял язык ерш на основе русского.

Такой зашквар.

язык программирования с русским синтаксисом

Путаете синтаксис с лексикой.

Лет шесть назад подобный пост меня бы восхитил - действительно, юному программисту нужно немало понять абстракций, чтобы что-то подобное сделать. Сейчас впечатление сильно слабее: кажется, ушки нейросети торчат тут из каждого абзаца (может, уже чудится на фоне тонн нейрослопа и LLM тут только редактором работала? если что, читатели и автор поправят меня).

То, что у вас получилось что-то интересное сделать, уже хорошо: но уделите больше времени тому, чтобы самостоятельно разобраться со всем тем, что вы используете - в будущем экспертиза опытных программистов, способных понять и критически оценить созданный llm-джунами код будет намного ценнее труда промтописателей (imho).

Было интересно как ООП реализовано, оказалось

case 'ClassDeclaration':
...
                return `class ${node.name} { ${methods} }`;

т.е. по сути транспилятор в js и на текущем этапе того же эффекта можно было достигнуть автозаменой ключевых слов без всякого AST.
Так что задумка хорошая но пока смысла в ней мало.

Модно написать сюда https://t.me/perfolenta разработчику Языка Перфолента.NET/Перфо.NET - он добавляет другие языки в свою IDE (Добавил OneScript). Среда разработки у него под Win. Проект активно развивается, сообщество активное и квалифицированное. Мужик весьма продвинутый. преимущество его среды разработки, лично для меня - очень лёгкая, быстрая и не перегруженная.

Если кому интересно другие языки доведенные до промышленного применения, кроме 1С:

  • OneScript - сценарии на 1С (Win/linux GPL), статья на Хабре

  • язык для микросервисов, аналог Go - Гонец - (Win/linux GPL), статья на хабре

  • Перфолента.NET (аналог C#)/Перфо.NET (аналог Shame/Lisp для изучения функционального программирования, написан на перфоленте, 2000 строк!!) (Windows) - для написание утилит, консольных приложений. Самый продвинутый - ООП, Функциональное программирование, декораторы, замыкания ... всё круто, и имеет товарный вид.

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

  1. Школьники — первые шаги в программировании без языкового барьера

a) желающие в ИТ школьники еще остались ? по-моему даже школьникам ясно, что денег здесь нет (до многих родителей еще не дошло, но старперы всегда тормозят).

b) если желающий в ИТ не желает и/или не способен изучить "технический английский"
в минимальном объеме, то ему здесь не рады.

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

Информатика в школе обязательна и там сейчас не паинт с вордом изучают, но и программирование

Без нескучных обоев не принимается

Вы меня опередили :)

Как всегда, нужно называть вещи своими именами.

На создал свой язык, а сделал надстройку над Node.js для русификации.

Чтобы именно создать новый язык с нуля одному.... ну, как раз сразу после рождения и нужно было начать.

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

Перевод сомнительный. Но мы рады, что изучение способа решить задачу в итоге вас погрузило в дебри и как все устроено под капотом. Все из нас делали велосипед когда-то.

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

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

Теперь на китайском делай

Хех, я в 14 лет тоже такое городил. Даже фотку нашел, тогда PHP5 на слуху был, только PHP 5.4 вышла. Но разница в том, что я с сразу понимал, что есть что и делать просто посмеяться. Даже до YoptaScript было, если я верно помню.

Скрытый текст

Войди_в_меня - это конечно мощно...

Всем известно, что статья повторенная еще раз становится смешной)

А если серьёзно, то посвятите танкиста в этот затянувшийся рофл по созданию очередного перевода джаваскрипта на русский и написанию об этом статьи плз, а то я совсем уже юмора не понимаю(

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

В Китае существовала такая «местная программная языковая» система, под названием EPL.

如果 (a > 0)
   输出("a 是正数")
否则
   输出("a 不是正数")
结束如果
对于 i = 1 到 10 循环
   输出(i)
结束循环

Важно не то, какие языки вы понимаете, а ваше логическое мышление. Сейчас EPL используется только для написания мусорных игровых скриптов.

И все равно придется переключаться с английской раскладки на русскую и обратно.

Русскоий язык в программировании обречен с текущей раскладкой клавиатуры 😁

НЛО прилетело и опубликовало эту надпись здесь

Вот тоже хотел об этом написать.
А вот Tsoding в своём шутки ради написанном «Хорошем Учебном Языке» об этом, кстати, подумал.
https://www.youtube.com/watch?v=f4EOMbmIqqw

Чел в 13 лет стал постигать как работают языки. Мое уважение! Все кто заминусили, я уверен, в 10 свои ассмеблеры писали. Жду кстати наработок от таких граждан!

Синтаксис у ассемблера сильно проще, чем у JavaScript, а уж кодогенерация и подавно, попытка поёрничать не удалась.

Что делает (без подглядывания в гугл) MOV AX BX? )))))

Копирует двухбайтовое значение из регистра BX в регистр AX, и оно пишется с запятой: mov ax, bx. И что за скобкосмайлы, такое употребляли лет 20 назад, пора бы уже перестать.

Ассемблер реально несложно парсить, там не нужно всё это LL/LR, рекурсивные спуски и прочее, тупая стейт-машина.

Загуглили все ж таки (((( Эх ((((( Такое чувство что половина комментаторов боты ((((

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

Ну если вы можете позволить себе тыкать в мое написание сообщений, то почему мне не ткнуть вам? )))))) А так. Если вы все ж живой человек, то подскажите, просто сразу получается потерялась главная мысль моего комментария, вы уже в 10 лет писали свой собственный язык? Как то изучали то что в компах творится? Или просто увидели у меня слово ассмеблер и за него зацепились? ((((((

Да, зацепился за ассемблер.

Когда мне было 10 лет, компьютеров в моём городке ни у кого не было. Когда мне стало 13 лет, у меня появился собранный родителями клон ZX Spectrum. Поскольку очень мало у кого из знакомых тоже были спектрумы, то основная проблема была в том, где достать игры и где достать информацию. Вместе с компьютером шли две кассеты с играми и руководство по Basic. Попробовав писать игры на Basic сам я понял, что они работают медленно, и решил поглядеть, а как же сделаны крутые коммерческие игры. Но оказалось, что они написаны в машинных кодах, так что посмотреть их логику не так-то и просто. В самом конце Basic-руководства было совсем чуть-чуть про машинные коды и ассемблер. Беда была в том, что собственно ассемблера у меня не было, и у друзей его не было, он же не игра. C Basic такой проблемы не стояло, он был зашит в ПЗУ вместе с редактором. Я пытался написать редактор+ассемблер на Basic, сначала максимально тупо: нужно было ввести текст команды и машинные коды (их получал вручную). Далеко этот прототип не продвинулся: я сговорился со знакомым дядькой поехать в Москву на радиорынок, и там купил кассету с коммерческими ассемблерами. Сначала был gens, потом перешёл на zeus.

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

А вот потом уже в колледже понеслось, и ассемблер и С и плюсов немного, и питончик потом....

Весело тогда было ))))) Так что согласен, раньше проблема была с поиском инфы, зато теперь ее сейчас хоть завались, но фишка сейчас в другом, стоит ли ей доверять? И блин очень плохо что масса этой инфы генерится всякими ИИ (((((

согласен :) - здесь главное желание чела просматривается что-то сделать в 13 лет. писал подобный интерпретатор для 5-летней дочки в 90-х, но скорей не как инструмент для изучения ею программирования, а как прибабах к запуску игр :) - типо "пока не решишь/ответишь - фиг, а не игрушки":)

по поводу локализации языков программирования: бред - это когда куева хуча народа за денешку втюхивает "русский вариант" java :)

Минусы я вообще невероятно редко ставлю, но и плюсов пока эта разработка не особо заслуживает. Вот я в 13 тоже писал свой язык программирования, но там с нуля было абсолютно все, и лексер и парсер и разбор AST, и компилятор в свою виртуальную машину (очень редуцированный ассемблер по сути) и интерпретатор этого байт-кода. ООП в свой язык я завезти не смог (да и не особо желал), а вот из фукнциональной парадигмы много чего удалось реализовать. Для тех, кто жаловал APL, конечно не удивительно, но вот таким однострочником, например, можно было простые числа до 1000 напечатать

Скрытый текст
write $(+)(\(x) = \(y)=(? y=0:'':' '+y) (x * $(*)(.bool(.mod(x,[2,x/2])))) .([3,1000]))

Читаемость всей APL-подобной функциональщины конечно write once & throw away, да и ужасно некрасивый тернарный оператор подводит (пришлось сделать его таким уродцем, чтобы любое выражение однозначно определялось слева направо). Хотя вот fold симпатичный, map прям красивый (кажется будто его нет), появился не очень красивый оператор "точка" (который проще всего трактовать как отключение дефолтного применения map к функциям или их аргументам (немного дичь, да)). Но вполне можно было писать императивные программки на по сути паскалевском синтаксисе, но это не совсем интересно (хотя, потому что на том же APL так делать было вовсе нельзя, я считал это большой фичей). Потом я этот проект забросил, но его же с совсем небольшими добработками потом засчитали за курсовую аж третьего курса :) Потом несколько раз еще вспоминал, что может доделать язык немного, ради прикольного code golf, но, признаем, кому оно надо на языке который только под это-то и заточен, и, ох, даже не без багов.

Конечно у меня небольшая положительная ностальгия и прилив странной гордости за себя мелкого, и, конечно я бы написал бы тогда, в 13 лет статью на хабр, если бы он был, но, пожалуй понятно, что в хаб "ненормальное программирование".

А тут точно хочется пожелать Владиславу дальнейших успехов, но как бы академической ценности в статье вообще нет. Причем, если код из репозитория и правда, окей, не подвиг конечно, но и недурно для 13 лет, то статья, к сожалению, даже сам проект как-то слабо преподносит. Тут многим кажется, что это просто переименовашка для ключевых слов js и всякие evaluateCallExpression() они даже смотреть не будут.

Я соглашусь со многими комментаторами, что целесообразность всего этого под большим сомнением, однако, парню 13 лет, он в это полез и стал разбираться, это определённо заслуживает лайка. Те, кто минусят, вы что, совсем там очерствели? Где ваша юношеская любознательность?

НЛО прилетело и опубликовало эту надпись здесь

Как уже отмечали: это скорее транспилятор в nodejs, а не интерпретатор на nodejs. Ваша задача решается лексером -> map по токенам -> join в исходник -> запуск.

Долгосрочные планы очень амбициозные, но сразу скажу, что вам с десяток раз придётся всё переписать с нуля, чтобы начать двигаться в правильном направлении.

Раз время позволяет (13 лет) и желание огромно, то рекомендую копать в сторону llvm при учёте крепкого понимания базы (что такое указатели, что есть стек и куча и т.п.). Да, тема очень объемная, вообще не на один день, но повышение хард-скиллов обещаю.

Можете попробовать начать с малого, например классика - пусть код - набор арифметических целых выражений, присваивание и лог в терминал. Задача: написать компилятор. Потом можно и условия/циклы добавить, типы и т.п. И только после этого можно будет подумать над jit или своим интерпретатором.

По крайней мере, это ИМХО, я бы так поступил на вашем месте, если вам действительно интересна тема разработки языков программирования

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

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

Примеры читаются забавно, "let" нейронка перевела в некоторых местах как "пусть", а в других как "позволить", из-за чего код читается как царский указ: позволить это, позволить то, позволить сё, во какой я милостивый!

Тогда уж: $ влад программа.влад

Если основная цель - писать код на русском, то нужен такой синтаксис, который не требует смены раскладки. Фигурные и квадратные скобки есть только на английской раскладке и получается, что её нужно постоянно менять, пока пишешь код. Кмк, это сильно портит DX языка

Классно получилось. Продолжайте.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации