Обновить
4
0
Alex Bubnov@nwalker

Пользователь

Отправить сообщение
«Once in the city of JavaScript an old samurai was playing shōgi thinking that he is playing poker. The outcome of the game was undefined.»
Итог работы разума немного предсказуем.
Да, у них там все по хардкору. Я и сам не все понял, честно говоря.
Если я правильно понял, у них там примерно следующее: компонентная архитектура без изоляции компонентов ради снижения runtime costs и эффективной командной разработки. Вся кодобаза на плюсах, никаких скриптов.
Entity из компонентов клеятся как раз шаблонами, особое внимание уделено интересным случаям, когда, например, в одной из веток условия может быть вызван метод компонента, которого может и не быть. Очень грубый пример:

template class IRenderObject { void SetColor( Color ); };
template class IPhysiscObject { void OnCollide ( void ) { if (Is(RenderObject) && Is(Ball)) Access(RenderObject)->SetColor(RED); };
class CInvisibleBall: public IPhysiscObject, public IGameObject {};

Или что-то вроде того. Формально, компилятор должен сказать «да вы там офигели вконец?», но фактически он этого не делает, потому что dead code elimination или как-то так.
Выглядит это все очень брутально, но впечатления оставляет очень заманчивые.
blog.gamedeff.com/?p=91 — 8 лет назад, консоли. очень похожие яйца, вид в профиль.
И, что тоже плюс, не требует Ruby.
>> Обобщенный сборщик мусора
С сайта(http://rubini.us/2013/10/04/rubinius-2-0-released/): «The generational garbage collector».

Generational.
Обобщенный.

Прекрасно, продолжайте в том же духе.
>> отсутствие альтернативы
Да ладно, будто поиграть не во что.
Если вам хочется почитать код на э-ге — смотрите в erlyvideo/flussonic, rabbitmq, riak, couchdb, ejabberd(не уверен, про него разное говорят). Это все готовые продукты, которые работают и, что немаловажно, приносят своим создателям деньги.
А черт его знает. Типы, говорят, годно проверяет, пока все покрыто спеками.

>> все входящие значения разные
Не сможет.
spec — это для dialyzer, это отдельный статический анализатор, к компилятору имеет весьма опосредованное отношение.
Кстати, в цитате из ядра нираскрыта самая интересная тема — как собственно передаются данные. Кого волнует инициализация структур, в самом деле.
В этом законопроекте может быть только одно правильное изменение — полная отмена закона.
>> Как у вас всё легко.
Ну так. Люди под х86 компиляторы пишут, и ничего. А тут все же VM.
Вообще, изначально было постулировано, что только STM спасет мир. BEAM был контрпримером. Про язык речи вообще не шло.

Кстати, хоть VM и накладывает свой отпечаток, не все так страшно. В эрланге можно иметь shared mutable state, хоть это и будет выглядеть весьма отлично от других языков. Кстати, где это будет дороже по производительности — тоже под вопросом. В конце концов, никто не запрещает разработать другой язык под BEAM, где будут изменяемые переменные и array
Erlang VM. Вкратце ознакомиться можно в habrahabr.ru/post/117538/
Полагаю, STM несколько сложнее в реализации. Черт его знает, на самом деле.
Алсо, не смог найти актуальной информации по теме. Этот форк вообще существует?
Вообще-то, обойти — см. BEAM. Вкратце — своя куча и свой GC у каждого потока. У этого подхода есть свои минусы, однако, эффект потрясающий.
Надо заметить, что в нем есть одна фича, которую стоит взять на заметку разработчикам Sublime Text(читай: быстро, решительно позаимствовать =). Inlines, на основе которых можно изобразить очень занятные вещи.
Так скос же не только сверху, но и сзади.
Assembly, Hartwall Areena.
Просто полюбопытствую — а зачем писать названия транслитом? На мой взгляд, выглядит то ли глупо, то ли неприятно.

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность