Pull to refresh

Comments 26

«Идея о том, что такой язык возможно будет легче понимаем детьми» — скорее всего очень ошибочна.
Трудно сказать — пробовать надо. Совершенно не очевидно на самом деле.

Дело в том, что любые новые… Не знаю как назвать — концепции/парадигмы человек усваивает через призму того знания, которое у него уже есть… Если никаких усвоенных представлений о том же программировании нет — внезапно может оказаться, что все очень просто и понятно. А смайлики хороши тем, что они же еще и подобраны со смыслом… Только надо немного пересмотреть сет… Что бы за пиктограммками именно смысл был (причем для ребенка, который не в теме)… Ну не знаю как-то так: emojilisp.com/set/fDGq3s4aBBTzTzHC

В общем, попробую на ребенке при случае!
Согласен. car и cdr должны отображать свою суть, а не своё название на том синтаксисе, от которого автор пытается избавиться.
Интересная идея в целом, но мне кажется, она не для детей. У картинок слишком велик отвлекающий фактор.
Что только не придумают люди, чтобы другим людям не изучать программирование :)
ИМХО, лучше обычного алфавита, из которого можно составлять синтаксис, пока ничего не придумали, т.к. не все можно выразить пиктограммами так же емко и просто, как обычными словами алфавита.
А дети при обучении просто не поймут логику, им захочется разместить картинки так, чтобы было красиво, а не так, что нужно составить формализованный алгоритм для «foreach ($a as $v) { for ($i=0; $i<count($n); $i++) { if (($v%3) == TRUE) { $j[$m] = $v.$n; }}}».
Только ИМХО.
Класс! Только, похоже, у вас синтаксическая ошибка в коде: оператор собачка с коричневым пятнышком не определен. :)
Это, похоже, просто переменная.
Да, точно, там их три: собачка, хрюша и кошечка.
История развивается по спирали — вот уже и иероглифы переизобретаем на новом уровне =)
А мне понравилось! Я как-то все время испытывал сложность с функциональными языками, т.к. видимо за всевозможными наворотами никак не мог парадигму рассмотреть, а тут… Вроде как-то вырисовывается! И кстати вполне вероятно, что дети смогут уловить суть (как человек не отягощенный глубокими знаниями в теме говорю! )) ). А вот вопрос: тот же айфон — он Emoji (и кстати сегодня pebble презентовали поддержку оных в новой прошивке), я из сафари могу сразу набирать все это, только вот цифры что бы вбить — надо переключится на обычный ввод… А нельзя цифры вводить тоже из набора эмоджи? И вообще — чуток причесать, и я бы себе такое приложение скачал за доллар! ))

В общем идея, на мой взгляд, стоящая — нужно немного развить и главное — не перегружать функциональностью! Иначе смысл теряется… Нужно что-то очень небольшое, но понятное…
цифры можно тоже сделать из набора emoji, но мне совсем не понравилось как они выглядят в Sublime, там цифра и ободок вокруг неё отдельно
Ну… )) Одно дело, как выглядит, а другое дело — вопрос usability. ) Переключать раскладку неудобно… Хотя бы опционально — стоило бы включить.
И кстати вполне вероятно, что дети смогут уловить суть [функционального программирования]
Я думаю, его суть лучше улавливать с помощью ML-подобных языков. Выразительный синтаксис, отлично накладываются на математическую нотацию. А Лиспы не более «функциональны», чем какой-нибудь Питон.
(⌘ (! n) (∴ ↺ ((ℙ 0) (n n)) (⌥ (≤ n 1) 1 (↺ (× ℙ n) (− n 1)))))
(╱! (ι 5)) ⇨ (1 2 6 24 120)

Ой, то есть (×/⍳)¨⍳5.
А cdr правильно работает? Оно же не последний должно возвращать, а все кроме первого, разве нет?
действительно ошибся, исправлю
Где тэг «ненормальное программирование»?

Подозревал, что лисп написан древними египтянами.
шизофрению можно заработать, читая такую программу. бжж
Не понимаю, как простая замена лексем на пиктограммы может упростить детям понимание ЯП: сложность ЯП не изменилась, изменился только внешний вид. Детям совершенно не обязательно знать car, cdr и т.п., даже если они представлены всякими там собачками да кошечками. Им куда проще будет работать просто со списками, ассоциативными массивами и деревьями, если они будут представлены отдельными типами, чем если им придётся конструировать их вручную из pair. Опять же, представление кода как данных детям тоже не нужно, так что можно обойтись без скобочек, которые будут только отвлекать. lambda, quote, eval — всё это взорвёт ребёнку мозг, он потом долго будет считать программирование какой-то заумной фигнёй для яйцеголовых.

Короче, джля детей нужно проектировать специальный упрощённый ЯП, без лишних фич, немногословный, минималистский донельзя. За основу можно взять смесь Python и Haskell:

это Кот:
  сытость = 100
  может мяукать:
    напечатать "Мяу!"
  может мурлыкать:
    напечатать "Мурлык-мурлык!"
  может ходить(сколькоШагов):
    сытость = сытость - сколькоШагов
    если сытость меньше сколькоШагов:
      сытость = 0
    если сытость равно 0:
      мяукать
  может естьКорм(сколькоШариков):
    сытость = сытость + сколькоШариков
    если сытость больше 100:
      мурлыкать

Вася = сделать Кот
Вася ходить 30
Вася мяукать
Вася ходить 70
Вася кушать 100

И даже это слишком сложно, наверное. Надо как-то визуализировать похождения кота, а для этого нужен супер-простой графический фреймворк.

Короче, тут нужна большая серьёзная работа с привлечением детских психологов.
В этом направлении работ ведется много — взять тот же Snatch, и его облегченную (sic!) версию для айпад…

Здесь другое… Это не обучение программированию — это… Ну как головоломка, что ли. Игра. Это не столько просто (в том понимании, которое вы вкладываете) — это как раз наоборот — весьма нетривиально. Просто только в смысле количества лексем.

Многие думают, что дети не хотят заниматься программированием, потому, что им сложно. А зачастую им не сложно — им скучно. Ибо вот эти вот Вася ходить, Вася кушать — это все несколько… Банально, что ли! Они это все могут, они не понимают — зачем! )

А в приведенном варианте лиспа крайне высок уровень абстракции. И это может быть интересно… Как некий вызов, как что-то загадочное, ребус, шифр, некая необычность. А может и нет! Надо пробовать.

Впрочем я согласен наверное на счет lambda, quote, eval, а так же скобочек… Однако сама по себе идея некоего эзотерического языка на основе пиктограмм мне кажется занимательной. Долже ли это быть лисп — вопрос. Эта версия мне нравится!
Относительно терминала: он тут не причём. Просто в испольемом вами шрифте нет нужных символов и fontconfig (или что у вас там) берёт их из другого шрифта. Я не знаю, почему при этом нельзя отмаштабировать символы, чтобы они занимали одну ячейку, но это вопрос к авторам библиотеки, отображающей шрифт, а никак не к терминалу: чтобы исправить эту досадную проблему авторам терминала пришлось бы написать свою библиотеку для отображения текста.
Эта парадигма очень подойдёт для языка J.
Там код трудночитаем, но если заменить закорючки иконками, то всё будет супер.

Может быть вы знаете какой-то редактор, где можно определить автозамену при сохранении пиктограммного текста на ASCII-символы?
А при считывании автозамену определённых комбинаций на пиктограммы.

Сама идея — отличная. Посмотрите на язык APL — так в 60-х делали визуальное программирование. Там Айверсон придумал нотацию при которой скобки почти не нужны — это очень укоротило текст программ.
Апл, как раз, был предшественником джея. И что один, что другой — плохо читаемы, потому что идиома на идиоме идиомой погоняет.

В 60-е годы не было единого представления о шрифтах, поэтому отрывались со спецсимволами почём зря.
Но когда вместо синуса-косинуса надо писать 1O, 2O и т.п. — это изврат.
Sign up to leave a comment.

Articles