ЖивоСкрипт — язык программирования для детей 12+

ЖивоСкрипт это графический (визуальный) язык программирования который компилируется в JavaScript. В нём используются только простые и понятные детям возможности языка JavaScript, и только сильные стороны, и только строгий режим. Это ядро (хардкор) js-программирования, максимальный минимализм — всего 50 графических элементов из которых состоит программа.

логотип ЖивоСкрипт

ЖивоСкрипт это визуализация JavaScript


Я выделил простое подмножество языка JavaScript, которое использую в своей работе. ЖивоСкрипт полностью соответствует языку JavaScript, в отличии от таких языков как CoffeeScript и TypeScript. ЖивоСкрипт это чистый ванильный JavaScript адаптированный для работы на сенсорном экране. Эта статья поможет начинающим понять суть этого языка, и ускорит наступление просветления.

Освоить ЖивоСкрипт возможно за один день, но грызть гранит науки надо несколько лет, потому что

нельзя просто так взять и стать программистом!

Исторический контекст


В начале, в 1995 году, этот язык назывался Mocha, потому что программисты любят кофе. Затем он был переименован в LiveScript, серверная версия языка должна была называться LiveWire. После этого внезапно название сменилось на JavaScript, потому что тогда Java было модным словом. Стандартизированная версия языка называется ECMAScript. Недавно Jeremy Ashkenas создал одноименный LiveScript, который компилируется в JavaScript, ранее им был создан CoffeeScript.



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

Редизайн JavaScript


Я люблю JavaScript — для любителя нет языка проще и эффективнее, это Лисп в шкуре Си. За 22 года веб-программирование достаточно созрело, и таки наступила эпоха комфортной веб-разработки, например можно верстать таблицы и текст флексбоксами. Для полного счастья осталось дождаться WebCL или WebGPU и WebAssembly. 12+ это приблизительный возраст когда обычно дети способны начать изучение программирования, и это тот уровень сложности инструмента который нужен мне.



Синтаксис языка и примеры кода


ЖивоCкрипт настолько прост что скриншоты понятны и без пояснения.

Программа это блок-последовательность действий и других блоков. Пустая программа:



Комментарий и блоки. Блоки могут быть именованными:



Действия связывания адресов со значениями:



Удаление элемента обьекта и элемента массива:



Ветвление IF-ELSE, в условии — адрес, сравнение или проверка существования свойства:



Ветвление-варианты SWITCH-CASE:



Циклы WHILE, DO-WHILE, FOR, FOR IN:



Простые значения. Строки четырех типов: с одинарными и двойными кавычками, для id-имен и для имен css-классов:



Объект:



Массив:



Подпрограмма (функция):



Вызов-запуск подпрограммы:



Share post

Comments 55

    +18
    Работа, конечно, проделана большая, свой язык, как-никак. Но ни в коем случае не стал бы на таком «языке» учить программированию. Даже с точки зрения визуального программирования, для этого есть значительно более подходящие инструменты (блок-схемы). К тому же, чисто внешне это выглядит крайне перегруженно. С вашим вариантом дети получат привычку к совершенно нестандартному принципу «разработки», и им придется адски переучиваться, когда дело коснется более промышленно-ориентированных языков. А учитывая, что в детском возрасте знания закладываются более прочно, то это вдвойне плохой выбор для первого обучения. Для обучения детей из современных языков, на мой личный взгляд, очень хорошо подходит адаптированный Swift с его Playgrounds, где и графики много, и конструкции простые, и переход из детской в профессиональную сферу не будет сопряжен с трудностями. P. S. В 12+ — прямая дорога в полноценные языки.
      –10
      Да, работа проделана большая!
      Такое способны сделать всего несколько человек в мире.

      Твоё мнение я не спрашивал, и оно мне не интересно, спасибо.

      Я вообще никого не просил оценивать мою работу.

      Однако в принципе мне интересно мнение тех кто например сам разработал язык программирования, или изобрел что-то новое и интересное.

      Перед тем как давать оценку и судить — покажи свои работы, чтобы мне понимать что ты талант и компетентный критик, а не обычный бесполезный тролль.
        +4
        Такое способны сделать всего несколько человек в мире.

        Ну нифигасе у вас самооценка то) Такое способен написать толковый студент пятого курса.
          –6
          Сколько студентов создали языков программирования?
          А троллить как ты способен любой студент.

          Подсчитай количество созданных визуальных языков программирования и количество программистов — соотношение примерно один на миллион.

          Троллей как ты миллионы. Они бесполезные и только портят жизнь.

          Пока одни ребята изобретают новое — другие как ты троллят их на Хабре и минусуют карму.

          Твоё мнение я не спрашивал и оно мне не интересно, спасибо.

          Когда дизайнеры например в компании Эпл создают свой продукт — они не спрашивают мнение у толпы. Принимают решения и оценивают работу только талантливые специалисты. А в России наоборот, охлократия, власть толпы, бардак.

          Когда автор выпускает свою книгу — он не хочет чтобы на последней странице были напечатаны гадости о его книге от кого-попало. Так не бывает в жизни. Но на Хабре именно так.

          Тролли — это фундаментальная проблема Хабра. Здесь нет механизма фильтрации троллей. Я не могу поставить тролля вроде тебя в игнор, и удалить твой оскорбительный комментарий. Хабр нисколько не защищает меня как автора от злостных троллей.

          Хабр фактически ненавидит новых авторов. Я это ясно ощущаю. Это натурально дедовщина.

          Здесь описана схожая ситуация:

          habrahabr.ru/post/311322/

          «Господство привелегированных троллей»

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

            Окей, допустим (в какой-то вселенной) у вас классный продукт. Если вы решили его представить — то где сравнение с существующими продуктами? Вот я знаю что детей нормально на Scretch можно обучать. И как по мне, он имеет сильно получше интерфейс и задумку чем у вас. Почему вы не рассказываете чем ваш продукт лучше существующих?
          +3

          То есть вам не интересно мнение тех, кто мог бы ваш язык использовать?


          Это все объясняет...

            0
            Это мнение людей, которые сталкивался так или иначе.
            Это изврат!
            +1
            Ооо, какой всплеск агрессии)) Самооценка у вас и правда неплохая (кстати, я не обращался к вам на «ты», как-то быстро мы сменили общение)), раз вы один из тех единиц в мире, кто способен сделать что-то подобное. И да, похоже, вас не интересует мнение конечных потребителей вашего языка, а для чего, простите, этот язык тогда разрабатывался? )) Оценивать вашу работу вы не просили — да, а тогда зачем вообще статья? Или вы ожидали, что, написав статью на хабр, вы не получите на нее оценок? На прочтение вашей статьи люди потратили время. И все, кто потратил это время, имеют полное право написать отзыв на то, на что они его потратили. И, к слову, по вашим словам получается, что вам, во-первых, не интересно мнение тех, кто будет пользоваться вашим языком, а во-вторых, не интересно мнение тех, кто работает в той же сфере, что и вы. То есть, вас не интересует ничье мнение, но при этом статью вы все-таки написали, и даже обиделись на обсуждение, развернувшееся в комментариях. Странный вы человек) Показывать свои работы я никому не собираюсь, кому надо — найдут их в моем резюме. Я, можно сказать, пользователь вашего языка, и пишу отзыв о прочитанном с точки зрения пользователя, слегка понимающего в той сфере, откуда эта статья происходит. Имею полное право на свое личное мнение, и при этом не обязан вам доказывать, что я «талант», коим себя и не считаю) В целом, теперь понятно, почему у вас такой рейтинг и карма на ресурсе.
              0
              Лол. Ну ты и обиженка. Небось возомнил себя вторым Андерсом Хейлсбергом.
            +8
            Похоже, что на столько пытались упростить, что перемудрили. Легче обычный яп объяснить чем это. Вообще не понимаю этой моды на обучение детей(да и кого угодно) программирование. Все эти игры с блоками и js/python/что-то еще, гикбрейнсы и прочее.
            • UFO just landed and posted this here
                –3
                Всё принципиально бесплатно!

                И для детей!
              0
              Берём Pascal.ABC и учим, когда ребенок научиться основам можно перейти на «настоящие» реализации — Lazarus/Delphi.
              — Кстати из-за огромного потока деграданских картинок — ощущение что я в деграданском паблике ВК сижу.
                –3
                Почему именно паскаль? Мне кажется, там много всякого устаревшего и грамосткого.
                  +5
                  Строгий по синтаксису, статическая сильная типизация, и больше ничего. Идеальный язык для изучения алгоритмизации, он не даст халявить как Python. Python тоже хорош для изучения, но уже на следующем этапе. По возможностям равен C, но гораздо ниже порог вхождения.

                  Вот расскажите мне, что там устаревшего, что не подойдет для обучения школьников?
                    0
                    Видимо не выйдет модную, хипстерскую инфографику с фигурными скобочками делать про обучение на паскале, из-за отсутствия оных :D
                      +2
                      Да ладно вам. В паскале фигурные скобочки вполне себе есть. Сам недавно только использовал:
                      Заголовок спойлера

                        +2
                        Эти не модные :)
                      –1

                      Типизация сильная, но невыразительная.

                      0

                      Кроме отсутствия ООП там нет ничего устаревшего (и какого там ещё) — базовые понятия — скалярная переменная, массив, присваивание, операции, ветвление, цикл (перечисление, с пост- и предусловием), подпрограмма. Можно Бейсик или Фокал, многословная Джава на начальном этапе похуже будет. Можно и Си, конечно, но не плюсы.

                      –2

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

                        0
                        Как-раз паскаль — один из немногих языков годных как для обучения, так и для настоящей разработки.
                        Все эти черепашки, лого, и т.д. имеют огромную пропасть до настоящего программирования, в то время как паскаль позволяет плавно к настоящей разработке.
                        Ну и плюс все популярные, на данный момент, диалекты позволяют из коробки, без секса с компиляторами, библиотеками и т.д. использовать Canvas для рисования. Графика — вызывает восторг и интерес у ребенка, в отличие от унылого вывода в консоль.
                      +8
                      Гитхаб? Страница с proof of concept?
                      Из картинок ни пса не понятно — пощупать дайте.
                      Гугл не находит ничего.
                        +3

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

                          –8
                          -26 карма, о чем можно говорить
                            0
                            Строки четырех типов: с одинарными и двойными кавычками, для id-имен и для имен css-классов

                            Вот это очень странно. Если решение выделить отдельный тип для CSS-селекторов (причем для всех сразу, а не для ид (которые вообще-то не стоит использовать бы) и классов) еще можно натянуть, то различие между " и ' от меня напрочь ускользает.


                            В остальном прикольно, большая работа. А на живых детях пробовали?

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

                              То, что лексемы заменились иконками, не помогает пониманию от слова «совсем» (это не говоря уже о сомнительности выбранного языка в качестве первого)
                                +6
                                https://habrahabr.ru/post/323132/
                                цитата оттуда:
                                В этой статье я поделюсь своим дзеном в области бэкенда с начинающими инженерами-программистами. Это может быть полезно например для милых дам, или для детей 12+, которые прочитали учебники, но таки не осилили стандартные фреймворки и архитектуры

                                https://habrahabr.ru/post/322204/
                                Задача — разработать клиент-серверную программу для сохранения знаний в виде дерева-иерархии документов (как в библиотеке), максимально простую и удобную, чтобы справились даже дети 12+ и очень пьяные инвалиды.

                                Ничего личного, но у автора какие-то странные отсылки к детям 12+
                                  +4
                                  Уравнивание милых дам, детей 12+ и пьяных инвалидов по какому-то подразумеваемому основанию тоже довольно странное, чтобы не сказать сильнее.
                                  +5
                                  Прошу прощения, но почему мы все считаем детей идиотами, которые «пока-еще-глупые». Как педагог по образованию говорю: это чушь. Если мы говорим о программировании как о реализации производственного процесса, я вас уверяю — умственного развития учащегося уже 8 класса вполне хватит, чтобы начать изучать, скажем, Python, JS… за редкими исключениями. Зачем нужен какой-то синтетический язык без прикладной пользы? Который похож на взрослые языки, но не взрослый. В школе в нас запихивали бейсик, в институте в т.ч. Pascal. А у некоторых потоков под введением в программирование вообще подразумевалось изучение VBA и применение его в Excel.

                                  Положим, кто-то из детей решит для себя «да, мне нравится прогать». И что? Переучиваться? Не логично. Куда как полезнее было бы замутить с детьми ролевую игру. Кто-то тимлид, кто-то программист, кто-то менеджер, а учитель — заказчик. И вот пусть они выпустят даже простой продукт, не поубивав друг друга. Но писать надо на взрослых языках. Тем более, что они ничуть не сложнее.
                                    0

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


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


                                    Поэтому подсовывать пятикласснику реальный язык программирования практически гарантированно означает заставлять его копать и находить самые странные стили и способы программирования, от которых потом придется еще отучаться. Тут нужен или язык, на котором подобные выкрутасы просто не пройдут из-за бедности и строгости самого языка (Pascal) — но этот способ подходит только когда тяга к знаниям достаточно сильна. Или язык с очень короткими командами (Лого), или же вот такой визуальный язык как у автора.

                                      +2
                                      Школьное образование — это во-первых знаменитое «учись учиться». То есть, школа формирует инженерные способности (способность обеспечить себя неизвестными ранее знаниями). Умение пользоваться окружающим миром с целью извлечения из него нужных знаний. К примеру, не зная, как копать колодец, будущий член общества должен уметь найти, как его копать. И второе — это предпосылка к самоопределению. Школьнику нужно дать попробовать все (или многое), чтобы он определил себя в жизни.

                                      Разве логично давать пробовать одно, а потом подсовывать другое? 8-классники на телефоне печатают (такое ощущение) быстрее, чем многие взрослые на компьютере. Отрасль сильно изменилась и сильно меняется. В словосочетании «хороший программист» за последние 20 лет изменилось понимание всех слов. А подходы остались теми же — эзотерические языки программирования, которые не используются нигде или почти нигде.
                                        0

                                        На телефонах-то они по-русски печатают...

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

                                          Очень странно...


                                          Мне четырнадцать лет, а печатаю что-то окола 100 слов в минуту.


                                          Со мной что-то явно не так...


                                          Пойду дальше теорию категорий учить...

                                            0
                                            Вы герой. Я 100 слов в минуту так и не научился, и скорее всего не научусь.
                                          0
                                          А я вот таки соглашусь.
                                          В школе я упёрся в решение какой-то задачки на Pascal. Парень из параллели показал мне решение, и я был просто поражён тому, что он печатает несколькими пальцами, и — вы только подумайте! — со стуком клавиш как в кино.
                                          Я почувствовал себя полу-инвалидом, что ли. И начал практиковаться больше.

                                          А через десять лет я и сам так научился, такие дела.
                                          Ограничение в скорости печати я сейчас вижу и на своей сестре. Учится быстрее меня, но сложно всё равно.
                                          Но я так и не убеждён, что надо пытаться делать язык более удобным для печати. Скорее, нужны другие методы ввода.
                                            0
                                            О да! Никогда не забуду как набирал в хекс коде Бейсик Микрон на Радио РК86! Я уж и не помню, сколько там кода(помню, что в журнале на двух страницах), но набирал и отлаживал его ДВА месяца. Но почти сразу появился на кассете Ассемблер Микрон и Редактор Микрон. Тоже эпопея.
                                            Кстати, долго отвыкал от раскладки РК. Появился Пентагон 128. С, внимание, раскладкой Дворак. Это был Адѣ.
                                            Потом от Дворака так же тяжело переходил на Qwerty.
                                          +3
                                          Извините за грубую критику, но ваша разработка — никому не нужная поделка.

                                          1) Всегда умиляют такие попытки создания Русского (тм) Языка Программирования. Зачем? Зачем учить детей тому, от чего надо будет отвыкать сразу же при переходе в настоящую разработку? Поезд уже ушёл, 99% промышленных ЯП используют английский.

                                          2) Визуальные конструкции не просто не упрощают, они усложняют понимание. По факту, «конструкции» это тот же код, только замусорен разными рамками и тенями. Ну вот смотрите, чем вот это
                                          image
                                          В лучшую сторону отличается от этого
                                          окно.имя = 5 * (1 + 2)
                                          Дети не такие кретины как вы думаете, им не нужны рамочки-рисуночки для понимания одной строчки кода. А конструкцию вызовов «подпрограмм» я вообще так и не понял.

                                          3) И да, а причём тут JS то? Тем более «хардкорный» JS, и строгий режим. В вашем «языке» как минимум переменные объявляются без «let, var, const», что запрещено строгим режимом JS.

                                          P.S. посмотрел все ваши публикации — сильно кажется что вы просто тролль. Постоянные нездравые идеи и странные картинки невпопад
                                            0
                                            Буквально на днях наткнулся на статью Миф о «простом языке для непрограммистов»
                                            Если вкратце — не стоит создавать «простой» язык для кого бы то нибыло, потому что на нем гораздо сложней писать.
                                            Там же в конце есть ссылка на «Неклассическая теория алгоритмов» для детей постарше.
                                              0
                                              Вот вы тут все критикуете, а мне понравилось. Ярко, красочно — для детей ведь это главное. Правда ничего не понятно, но это пустяк… А есть вариант для детей до 7 лет и до 3 лет, желательно, еще ярче? Нет, я серьезно… Добавить еще больше цветов и возможность сделать шрифт покрупнее не помешала бы. И да, очень надеюсь, что писать руками ничего не надо — знай себе, перетаскивай готовые объекты, так ребенок лучше запоминает. Это хорошо, когда все для детей, да еще так качественно и просто.
                                                –3
                                                Я просто адаптировал веб-языки для детей, то есть выделил простое подмножество понятное детям.

                                                Еще проще невозможно.

                                                Однако вполне возможно придумать принципиально иной язык, например логический, который будет работать в браузере.
                                                  +1
                                                  Принципиально новый язык… Где-то я это слышал… Принципиально новая ось, принципиально новые обои…
                                                    +1
                                                    Интересно, можно ли на этом языке грабить корованы…
                                                      0
                                                      О да)) Я бы на это посмотрел. Это было бы действительно захватывающе))
                                                  0
                                                  В чём глубокий смысл выделения рандомных букв?
                                                    0
                                                    Ну слава богу, я думал я один это вижу. Даже пытался слова собрать из этих букв) Одному странному человеку «понравилась» «разработка» другого странного человека, ничего необычного.
                                                      0
                                                      Мне идея такого «выделения» фразы в тексте понравилась. Не нахожу полезным, но интересно. Написать скрипт, который это делает — неплохое развлечение, когда будет простой на работе.
                                                        0
                                                        «А вот и тролли подъехали» — слова таки собираются!
                                                          0
                                                          О_О тю, действительно собралось. Не знаю как я в первый раз не заметил
                                                            0
                                                            а я, главное, тогда повёлся на Ваш комментарий. и даже не пробовал сам собирать — решил, что автор просто какой-то человек с расстройством. а вот оно как (только после #comment_10365806 понял).
                                                        0
                                                        Ярко, красочно — для детей ведь это главное.
                                                          0
                                                          А почему тогда курсива и подчёркнутых нет?
                                                          Если бы я саркастичную фразу «ярко, красочно — это главное [и пофиг, что непонятно]» хотел подчеркнуть специфическим форматированием — я бы побольше стилей использовал.
                                                          В конце я даже засомневался, что то сарказм.
                                                            –1
                                                            Первый комментарий — для автора нового языка поста, второй — для остальных. Курсив и подчеркивание мешали бы прочтению второго, выделенного жирным шрифтом, комментария.
                                                      +1
                                                      Мда… Я в свои 12 уже зарабатывал деньги разработкой сайтов, одним из первых в городе провёл себе выделенный канал и поддерживал open-source проект в свободное от олимпиад время. Радует, что мне такие люди как ты не попадались со своими псевдо-нужными поделками.

                                                      Ты детей за идиотов держишь или что?

                                                      Only users with full accounts can post comments. Log in, please.