ЖивоСкрипт это визуализация 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-классов:
Объект:
Массив:
Подпрограмма (функция):
Вызов-запуск подпрограммы:
Комментарии (49)
mnepoh
10.07.2017 14:22+8Похоже, что на столько пытались упростить, что перемудрили. Легче обычный яп объяснить чем это. Вообще не понимаю этой моды на обучение детей(да и кого угодно) программирование. Все эти игры с блоками и js/python/что-то еще, гикбрейнсы и прочее.
Error1024
10.07.2017 14:27Берём Pascal.ABC и учим, когда ребенок научиться основам можно перейти на «настоящие» реализации — Lazarus/Delphi.
— Кстати из-за огромного потока деграданских картинок — ощущение что я в деграданском паблике ВК сижу.mnepoh
10.07.2017 14:36-3Почему именно паскаль? Мне кажется, там много всякого устаревшего и грамосткого.
Nikobraz
10.07.2017 15:49+5Строгий по синтаксису, статическая сильная типизация, и больше ничего. Идеальный язык для изучения алгоритмизации, он не даст халявить как Python. Python тоже хорош для изучения, но уже на следующем этапе. По возможностям равен C, но гораздо ниже порог вхождения.
Вот расскажите мне, что там устаревшего, что не подойдет для обучения школьников?Error1024
10.07.2017 16:27Видимо не выйдет модную, хипстерскую инфографику с фигурными скобочками делать про обучение на паскале, из-за отсутствия оных :D
MrShoor
10.07.2017 16:39+2Да ладно вам. В паскале фигурные скобочки вполне себе есть. Сам недавно только использовал:
Pakos
11.07.2017 12:49Кроме отсутствия ООП там нет ничего устаревшего (и какого там ещё) — базовые понятия — скалярная переменная, массив, присваивание, операции, ветвление, цикл (перечисление, с пост- и предусловием), подпрограмма. Можно Бейсик или Фокал, многословная Джава на начальном этапе похуже будет. Можно и Си, конечно, но не плюсы.
mayorovp
10.07.2017 16:00-2Все-таки самые основы лучше показывать на "черепашке", а не на Паскале. Паскаль, конечно, язык хороший, вот только все учебные задачи для него какие-то синтетические.
Error1024
10.07.2017 16:33Как-раз паскаль — один из немногих языков годных как для обучения, так и для настоящей разработки.
Все эти черепашки, лого, и т.д. имеют огромную пропасть до настоящего программирования, в то время как паскаль позволяет плавно к настоящей разработке.
Ну и плюс все популярные, на данный момент, диалекты позволяют из коробки, без секса с компиляторами, библиотеками и т.д. использовать Canvas для рисования. Графика — вызывает восторг и интерес у ребенка, в отличие от унылого вывода в консоль.
haldagan
10.07.2017 14:30+8Гитхаб? Страница с proof of concept?
Из картинок ни пса не понятно — пощупать дайте.
Гугл не находит ничего.
mayorovp
10.07.2017 14:36+3Ваше дерево смотреть неудобно. Если уж делать подобный визуальный язык — то лучше всего делать как в Scratch, где заголовок цикла является одним целым с самим циклом, а не боковой веткой к нему.
k12th
10.07.2017 14:55Строки четырех типов: с одинарными и двойными кавычками, для id-имен и для имен css-классов
Вот это очень странно. Если решение выделить отдельный тип для CSS-селекторов (причем для всех сразу, а не для ид (которые вообще-то не стоит использовать бы) и классов) еще можно натянуть, то различие между " и ' от меня напрочь ускользает.
В остальном прикольно, большая работа. А на живых детях пробовали?
knekrasov
10.07.2017 15:29+1Выглядит прикольно, но по факту неюзабельно абсолютно. Зачем визуализировать код, когда можно (и нужно) визуализировать поток выполнения и принятия решений?
То, что лексемы заменились иконками, не помогает пониманию от слова «совсем» (это не говоря уже о сомнительности выбранного языка в качестве первого)
MetaDone
10.07.2017 15:33+6https://habrahabr.ru/post/323132/
цитата оттуда:
В этой статье я поделюсь своим дзеном в области бэкенда с начинающими инженерами-программистами. Это может быть полезно например для милых дам, или для детей 12+, которые прочитали учебники, но таки не осилили стандартные фреймворки и архитектуры
https://habrahabr.ru/post/322204/
Задача — разработать клиент-серверную программу для сохранения знаний в виде дерева-иерархии документов (как в библиотеке), максимально простую и удобную, чтобы справились даже дети 12+ и очень пьяные инвалиды.
Ничего личного, но у автора какие-то странные отсылки к детям 12+vmb
11.07.2017 02:49+4Уравнивание милых дам, детей 12+ и пьяных инвалидов по какому-то подразумеваемому основанию тоже довольно странное, чтобы не сказать сильнее.
Alexeyco
10.07.2017 16:05+5Прошу прощения, но почему мы все считаем детей идиотами, которые «пока-еще-глупые». Как педагог по образованию говорю: это чушь. Если мы говорим о программировании как о реализации производственного процесса, я вас уверяю — умственного развития учащегося уже 8 класса вполне хватит, чтобы начать изучать, скажем, Python, JS… за редкими исключениями. Зачем нужен какой-то синтетический язык без прикладной пользы? Который похож на взрослые языки, но не взрослый. В школе в нас запихивали бейсик, в институте в т.ч. Pascal. А у некоторых потоков под введением в программирование вообще подразумевалось изучение VBA и применение его в Excel.
Положим, кто-то из детей решит для себя «да, мне нравится прогать». И что? Переучиваться? Не логично. Куда как полезнее было бы замутить с детьми ролевую игру. Кто-то тимлид, кто-то программист, кто-то менеджер, а учитель — заказчик. И вот пусть они выпустят даже простой продукт, не поубивав друг друга. Но писать надо на взрослых языках. Тем более, что они ничуть не сложнее.mayorovp
10.07.2017 16:33Как человек, нашедший книжку по программированию в папиной библиотеки еще в начальной школе, могу сказать вам, что наибольшие проблемы у детей (как у меня, так и у некоторых моих знакомых) возникают со скоростью набора текста. 15 символов в минуту — это же простейший оператор цикла без тела набирается поначалу минуты полторы. Отсюда очень странное для взрослого программиста понимание подходов к проектированию программы — попытка всеми правдами, неправдами и паттернами снизить число символов, которые придется набирать.
Очень хорошо такое заметно, когда на вступительных олимпиадах в вузах сидят рядом новички и опытные олимпиадники. Первые просто по звуку клавиш клавиатуры соседа понимают, что первых мест им не видать :-)
Поэтому подсовывать пятикласснику реальный язык программирования практически гарантированно означает заставлять его копать и находить самые странные стили и способы программирования, от которых потом придется еще отучаться. Тут нужен или язык, на котором подобные выкрутасы просто не пройдут из-за бедности и строгости самого языка (Pascal) — но этот способ подходит только когда тяга к знаниям достаточно сильна. Или язык с очень короткими командами (Лого), или же вот такой визуальный язык как у автора.
Alexeyco
10.07.2017 16:52+2Школьное образование — это во-первых знаменитое «учись учиться». То есть, школа формирует инженерные способности (способность обеспечить себя неизвестными ранее знаниями). Умение пользоваться окружающим миром с целью извлечения из него нужных знаний. К примеру, не зная, как копать колодец, будущий член общества должен уметь найти, как его копать. И второе — это предпосылка к самоопределению. Школьнику нужно дать попробовать все (или многое), чтобы он определил себя в жизни.
Разве логично давать пробовать одно, а потом подсовывать другое? 8-классники на телефоне печатают (такое ощущение) быстрее, чем многие взрослые на компьютере. Отрасль сильно изменилась и сильно меняется. В словосочетании «хороший программист» за последние 20 лет изменилось понимание всех слов. А подходы остались теми же — эзотерические языки программирования, которые не используются нигде или почти нигде.WRONGWAY4YOU
19.07.2017 13:02Очень странно...
Мне четырнадцать лет, а печатаю что-то окола 100 слов в минуту.
Со мной что-то явно не так...
Пойду дальше теорию категорий учить...
Zenitchik
19.07.2017 13:04Вы герой. Я 100 слов в минуту так и не научился, и скорее всего не научусь.
marcor
11.07.2017 01:48А я вот таки соглашусь.
В школе я упёрся в решение какой-то задачки на Pascal. Парень из параллели показал мне решение, и я был просто поражён тому, что он печатает несколькими пальцами, и — вы только подумайте! — со стуком клавиш как в кино.
Я почувствовал себя полу-инвалидом, что ли. И начал практиковаться больше.
А через десять лет я и сам так научился, такие дела.
Ограничение в скорости печати я сейчас вижу и на своей сестре. Учится быстрее меня, но сложно всё равно.
Но я так и не убеждён, что надо пытаться делать язык более удобным для печати. Скорее, нужны другие методы ввода.
delvin-fil
11.07.2017 06:10О да! Никогда не забуду как набирал в хекс коде Бейсик Микрон на Радио РК86! Я уж и не помню, сколько там кода(помню, что в журнале на двух страницах), но набирал и отлаживал его ДВА месяца. Но почти сразу появился на кассете Ассемблер Микрон и Редактор Микрон. Тоже эпопея.
Кстати, долго отвыкал от раскладки РК. Появился Пентагон 128. С, внимание, раскладкой Дворак. Это был Ад?.
Потом от Дворака так же тяжело переходил на Qwerty.
vlreshet
11.07.2017 09:51+3Извините за грубую критику, но ваша разработка — никому не нужная поделка.
1) Всегда умиляют такие попытки создания Русского (тм) Языка Программирования. Зачем? Зачем учить детей тому, от чего надо будет отвыкать сразу же при переходе в настоящую разработку? Поезд уже ушёл, 99% промышленных ЯП используют английский.
2) Визуальные конструкции не просто не упрощают, они усложняют понимание. По факту, «конструкции» это тот же код, только замусорен разными рамками и тенями. Ну вот смотрите, чем вот это
В лучшую сторону отличается от этого
окно.имя = 5 * (1 + 2)
Дети не такие кретины как вы думаете, им не нужны рамочки-рисуночки для понимания одной строчки кода. А конструкцию вызовов «подпрограмм» я вообще так и не понял.
3) И да, а причём тут JS то? Тем более «хардкорный» JS, и строгий режим. В вашем «языке» как минимум переменные объявляются без «let, var, const», что запрещено строгим режимом JS.
P.S. посмотрел все ваши публикации — сильно кажется что вы просто тролль. Постоянные нездравые идеи и странные картинки невпопад
AbstractGaze
11.07.2017 12:00Буквально на днях наткнулся на статью Миф о «простом языке для непрограммистов»
Если вкратце — не стоит создавать «простой» язык для кого бы то нибыло, потому что на нем гораздо сложней писать.
Там же в конце есть ссылка на «Неклассическая теория алгоритмов» для детей постарше.
Rusty_Fox
19.07.2017 12:10Вот вы тут все критикуете, а мне понравилось. Ярко, красочно — для детей ведь это главное. Правда ничего не понятно, но это пустяк… А есть вариант для детей до 7 лет и до 3 лет, желательно, еще ярче? Нет, я серьезно… Добавить еще больше цветов и возможность сделать шрифт покрупнее не помешала бы. И да, очень надеюсь, что писать руками ничего не надо — знай себе, перетаскивай готовые объекты, так ребенок лучше запоминает. Это хорошо, когда все для детей, да еще так качественно и просто.
maxminimus
19.07.2017 12:15-3Я просто адаптировал веб-языки для детей, то есть выделил простое подмножество понятное детям.
Еще проще невозможно.
Однако вполне возможно придумать принципиально иной язык, например логический, который будет работать в браузере.
Zenitchik
19.07.2017 12:34В чём глубокий смысл выделения рандомных букв?
vlreshet
19.07.2017 13:02Ну слава богу, я думал я один это вижу. Даже пытался слова собрать из этих букв) Одному странному человеку «понравилась» «разработка» другого странного человека, ничего необычного.
Zenitchik
19.07.2017 13:19Мне идея такого «выделения» фразы в тексте понравилась. Не нахожу полезным, но интересно. Написать скрипт, который это делает — неплохое развлечение, когда будет простой на работе.
GDXRepo
Работа, конечно, проделана большая, свой язык, как-никак. Но ни в коем случае не стал бы на таком «языке» учить программированию. Даже с точки зрения визуального программирования, для этого есть значительно более подходящие инструменты (блок-схемы). К тому же, чисто внешне это выглядит крайне перегруженно. С вашим вариантом дети получат привычку к совершенно нестандартному принципу «разработки», и им придется адски переучиваться, когда дело коснется более промышленно-ориентированных языков. А учитывая, что в детском возрасте знания закладываются более прочно, то это вдвойне плохой выбор для первого обучения. Для обучения детей из современных языков, на мой личный взгляд, очень хорошо подходит адаптированный Swift с его Playgrounds, где и графики много, и конструкции простые, и переход из детской в профессиональную сферу не будет сопряжен с трудностями. P. S. В 12+ — прямая дорога в полноценные языки.
maxminimus
Да, работа проделана большая!
Такое способны сделать всего несколько человек в мире.
Твоё мнение я не спрашивал, и оно мне не интересно, спасибо.
Я вообще никого не просил оценивать мою работу.
Однако в принципе мне интересно мнение тех кто например сам разработал язык программирования, или изобрел что-то новое и интересное.
Перед тем как давать оценку и судить — покажи свои работы, чтобы мне понимать что ты талант и компетентный критик, а не обычный бесполезный тролль.
vlreshet
Ну нифигасе у вас самооценка то) Такое способен написать толковый студент пятого курса.
maxminimus
Сколько студентов создали языков программирования?
А троллить как ты способен любой студент.
Подсчитай количество созданных визуальных языков программирования и количество программистов — соотношение примерно один на миллион.
Троллей как ты миллионы. Они бесполезные и только портят жизнь.
Пока одни ребята изобретают новое — другие как ты троллят их на Хабре и минусуют карму.
Твоё мнение я не спрашивал и оно мне не интересно, спасибо.
Когда дизайнеры например в компании Эпл создают свой продукт — они не спрашивают мнение у толпы. Принимают решения и оценивают работу только талантливые специалисты. А в России наоборот, охлократия, власть толпы, бардак.
Когда автор выпускает свою книгу — он не хочет чтобы на последней странице были напечатаны гадости о его книге от кого-попало. Так не бывает в жизни. Но на Хабре именно так.
Тролли — это фундаментальная проблема Хабра. Здесь нет механизма фильтрации троллей. Я не могу поставить тролля вроде тебя в игнор, и удалить твой оскорбительный комментарий. Хабр нисколько не защищает меня как автора от злостных троллей.
Хабр фактически ненавидит новых авторов. Я это ясно ощущаю. Это натурально дедовщина.
Здесь описана схожая ситуация:
habrahabr.ru/post/311322/
«Господство привелегированных троллей»
vlreshet
Окей, допустим (в какой-то вселенной) у вас классный продукт. Если вы решили его представить — то где сравнение с существующими продуктами? Вот я знаю что детей нормально на Scretch можно обучать. И как по мне, он имеет сильно получше интерфейс и задумку чем у вас. Почему вы не рассказываете чем ваш продукт лучше существующих?
mayorovp
То есть вам не интересно мнение тех, кто мог бы ваш язык использовать?
Это все объясняет...
delvin-fil
Это мнение людей, которые сталкивался так или иначе.
Это изврат!
GDXRepo
Ооо, какой всплеск агрессии)) Самооценка у вас и правда неплохая (кстати, я не обращался к вам на «ты», как-то быстро мы сменили общение)), раз вы один из тех единиц в мире, кто способен сделать что-то подобное. И да, похоже, вас не интересует мнение конечных потребителей вашего языка, а для чего, простите, этот язык тогда разрабатывался? )) Оценивать вашу работу вы не просили — да, а тогда зачем вообще статья? Или вы ожидали, что, написав статью на хабр, вы не получите на нее оценок? На прочтение вашей статьи люди потратили время. И все, кто потратил это время, имеют полное право написать отзыв на то, на что они его потратили. И, к слову, по вашим словам получается, что вам, во-первых, не интересно мнение тех, кто будет пользоваться вашим языком, а во-вторых, не интересно мнение тех, кто работает в той же сфере, что и вы. То есть, вас не интересует ничье мнение, но при этом статью вы все-таки написали, и даже обиделись на обсуждение, развернувшееся в комментариях. Странный вы человек) Показывать свои работы я никому не собираюсь, кому надо — найдут их в моем резюме. Я, можно сказать, пользователь вашего языка, и пишу отзыв о прочитанном с точки зрения пользователя, слегка понимающего в той сфере, откуда эта статья происходит. Имею полное право на свое личное мнение, и при этом не обязан вам доказывать, что я «талант», коим себя и не считаю) В целом, теперь понятно, почему у вас такой рейтинг и карма на ресурсе.
mnepoh
Лол. Ну ты и обиженка. Небось возомнил себя вторым Андерсом Хейлсбергом.