Spiiin's blog

daScript - как учить

Читать дальше...

daScript in imaginery world

Мой собственный способ измерить выразительность и скорость языка — решить на нём “задачу Джеймса Бонда младшего”, выдуманную головоломку из игры на NES James Bond Jr (видео). Несмотря на игрушечность задачи, кажется, это неплохой тест нового языка. Это веселее, чем реализовывать абстрактный поиск в ширину/глубину. Задачу решаю с небольшими алгоритмическими оптимизациями, но без оптимизаций по мелочам (скорее, наоборот, массив чисел специально копируется, как решена первая версия задачи на питоне, чтобы решения были сравнивыми, чтобы симулировать “код новичка” на языка и посмотреть, как язык справляется с этим копированием).

Сразу выводы про daScript для тех, кому не особенно интересны подробности реализации:

— Выразительность языка ОЧЕНЬ похожа на Python. Более того, я фактически просто переписал своё решение на Python 13-летней давности построчно, с парой изменений.
daScript по скорости в режиме интерпретации находится в одной лиге с компилируемыми языками (!!!). Код по скорости сопоставим с версией на Nim (чуть быстрее “наивной” скомпилированной версии, и раза в 1.5-2 медленнее оптимизированной).
— В режиме Ahead-of-Time компиляции daScript обгоняет nim (который вообще показывает достаточно хорошие результаты в нормальных бенчмарках с другими языками).

Читать дальше...

daScript - live-режим

Читать дальше...

Индустрия снова во мгле

Читать дальше...

daScript - перевод интервью с создателем языка

Свободный перевод части статьи A Look At The Current State of Independent Gamedev Software Production, интервью с автором языка daScript Борисом Баткиным. Курсивом — мои вставки. Иногда осознанно немного перефразирую или уточняю ответы.

Читать дальше...

daScript: C++ auto-bindings, assimp

Читать дальше...

daScript: C++ auto-bindings, msgpack

Читать дальше...

Хорошие качества программистов

Качества программистов, которые мне нравятся:

  • умение держать в голове большое количество информации
  • понимание, как использовать язык программирования в своих целях
  • умение решать задачу минимальным количеством изменений в коде
  • умение искать причины трудновоспроизводимых багов
  • слежение за качеством кодовой базы
  • умение ставить эксперименты
  • любовь к “тинкерингу”
  • умение довести решение сложной задачи до конца
Читать дальше...