Jonathan Blow, автор игрушки Braid, замутил на ютюбе сперва пару выступлений о том, как ему осточертел С++ и не видно годных альтернатив для написания игрушек, и как было бы круто сделать свой язык для этих целей с блекджеком и т.д., а на днях уже раз и показал демку вырисовывающегося язычка. Работающий компилятор (пока что через генерацию Си, но это временно), работающие примеры. Пока что там почти ничего нет (ни объектов в том или ином виде, ни генериков), код примерно на уровне Go без GC, зато есть прикольная киллер-фича: весь язык целиком доступен в компайл-тайме (для этих целей сделана генерация байткода и его исполнение компилятором). Надо сделать безопасный printf? Сказал компилятору, что все вызовы printf проверяются вот этой функцией, а она проверяет соответствие агрументов форматной строке, отрабатывая в компайл-тайме. Надо проверить, что все переданные в функцию строки одной длины? Аналогично. Говорит, чем городить суперсложную систему типов, которая бы пыталась проверять такие инварианты, проще позволить проверять их кодом на том же языке, а систему типов оставить простой (ну, генериков добавить, конечно). Показал демку - простая игрушка на OpenGL со стрельбой по пришельцам. Потом ставит в коде строчку вроде
#assert( #run invaders() >= 10, "need to kill 10 invaders for this to compile")
запускает компилятор, вдруг открывается окошко и запускается игра. Если убьешь 10 пришельцев - скомпилируется успешно, нет - ошибка компиляции. :) Развлекуха.
В D тоже есть похожий compile time function execution, но все ж более ограниченный, некоторые вещи там недоступны и OpenGL не повызываешь.
#assert( #run invaders() >= 10, "need to kill 10 invaders for this to compile")
запускает компилятор, вдруг открывается окошко и запускается игра. Если убьешь 10 пришельцев - скомпилируется успешно, нет - ошибка компиляции. :) Развлекуха.
В D тоже есть похожий compile time function execution, но все ж более ограниченный, некоторые вещи там недоступны и OpenGL не повызываешь.
no subject
Date: 2014-11-04 08:49 am (UTC)no subject
Date: 2014-11-04 08:59 am (UTC)no subject
Date: 2014-11-04 09:11 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-04 07:52 pm (UTC)Он, родимый =) Зато можно save/load в игре делать через save-lisp-and-die, например, каково, а?
GC, кстати, при определённых навыках там можно почти не задействовать.
no subject
Date: 2014-11-04 09:04 am (UTC)Bluet…Lisp!no subject
Date: 2014-11-04 09:31 am (UTC)no subject
Date: 2014-11-04 10:34 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-04 09:13 am (UTC)Он придумал Форт, похоже. Там это основной инструмент был. :)
no subject
Date: 2014-11-04 09:09 pm (UTC)no subject
Date: 2014-11-05 04:54 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2014-11-04 10:26 am (UTC)no subject
Date: 2014-11-04 10:36 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-04 12:12 pm (UTC)no subject
Date: 2014-11-04 01:53 pm (UTC)no subject
Date: 2014-11-05 09:03 am (UTC)> заплатки на слабые места"
Золотые слова!
no subject
Date: 2014-11-04 07:48 pm (UTC)no subject
Date: 2014-11-05 01:16 am (UTC)"Jonathan Blow, the creator of Braid, a 2008 Microsoft-published game that was, arguably, the first mainstream indie success, also became a millionaire through his game. ... He funnelled the remainder of the money he earned—which he estimates to be around four million dollars—into his next game, The Witness, due for release later this year. "
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-04 07:57 pm (UTC)У меня был пост, где я в compile-time ходил в бд и синхронизировал тамошнюю схему с орм-биндингами.
no subject
Date: 2014-11-05 01:17 am (UTC)no subject
Date: 2014-11-05 08:47 pm (UTC)(no subject)
From:no subject
Date: 2014-11-05 04:34 pm (UTC)no subject
Date: 2014-11-05 07:19 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-05 08:44 pm (UTC)no subject
Date: 2014-11-06 10:38 am (UTC)no subject
Date: 2014-11-06 11:34 am (UTC)