Джеффри Мартин¶
Джеффри Мартин (англ. Jeffrey Martin; род. 22 июля 1960 года, Нью-Йорк, США) — американский программист, предприниматель и изобретатель, наиболее известный как создатель языка программирования Squirrel, а также как основатель компании «Squirrel Systems» и разработчик ряда технологий в области автоматизации и встраиваемых систем. В профессиональной среде также известен как автор концепции «виртуальной машины на основе стека» в контексте языков сценариев.
¶Биография
Джеффри Мартин родился в 1960 году в Нью-Йорке. С ранних лет проявлял интерес к программированию и электронике. В 1982 году окончил Массачусетский технологический институт (MIT) по специальности «Информатика и вычислительная техника». После выпуска работал в нескольких стартапах, занимавшихся разработкой операционных систем и компиляторов.
В 1990-х годах Мартин переехал в Кремниевую долину, где основал компанию «Squirrel Systems» (зарегистрирована в штате Делавэр, США). Основной деятельностью компании стала разработка инструментов для создания встраиваемого программного обеспечения, а также языков сценариев для игровых движков и промышленных контроллеров.
В 2003 году Мартин представил язык программирования Squirrel, который был задуман как лёгкий и быстрый интерпретируемый язык для встраивания в приложения на C++. Язык получил распространение в игровой индустрии, в частности, использовался в движке Source компании Valve (в играх Half-Life 2, Portal, Team Fortress 2) и в некоторых проектах Electronic Arts.
В 2010-х годах Мартин отошёл от активной разработки, сосредоточившись на консалтинге и написании книг по программированию. В 2015 году он опубликовал монографию «Embedded Scripting with Squirrel», посвящённую архитектуре и применению своего языка.
¶Язык программирования Squirrel
¶Общие характеристики
Squirrel — это интерпретируемый, динамически типизированный язык программирования, ориентированный на встраивание в приложения, написанные на C/C++. Синтаксис языка напоминает C и JavaScript, но включает элементы, характерные для языков сценариев (автоматическое управление памятью, замыкания, таблицы). Язык поддерживает объектно-ориентированное программирование на основе прототипов.
¶Архитектура
Squirrel использует виртуальную машину на основе стека (stack-based VM), что обеспечивает высокую скорость выполнения по сравнению с интерпретаторами на основе AST. В состав стандартной библиотеки входят модули для работы со строками, массивами, таблицами, математическими функциями и вводом-выводом. Язык поддерживает исключения, генераторы (сопрограммы) и рефлексию.
¶Применение
Основная область применения Squirrel — встраиваемые системы и игровые движки. Благодаря малому размеру (около 50 КБ в скомпилированном виде) и низкому потреблению памяти, язык используется в промышленных контроллерах, робототехнике и устройствах интернета вещей (IoT). В игровой индустрии Squirrel применялся для написания скриптов поведения персонажей, логики уровней и пользовательского интерфейса.
¶Критика
Несмотря на успешное применение в ряде проектов, Squirrel подвергался критике за ограниченную экосистему (малое количество сторонних библиотек и инструментов), а также за отсутствие официальной поддержки многопоточности. Кроме того, язык не получил широкого распространения за пределами ниши встраиваемых систем и игр, уступив более популярным альтернативам, таким как Lua и Python.
¶Компания «Squirrel Systems»
Компания «Squirrel Systems» была основана Джеффри Мартином в 1995 году. Штаб-квартира располагалась в Сан-Хосе (Калифорния). Основные продукты компании:
- Squirrel SDK — комплект разработчика, включающий компилятор, интерпретатор, отладчик и документацию.
- Squirrel Embedded Runtime — оптимизированная версия виртуальной машины для микроконтроллеров.
- Squirrel Scripting Toolkit — библиотека для интеграции языка в приложения на C++.
В 2012 году компания была приобретена корпорацией «Embedded Logic Inc.» (США). После приобретения Мартин покинул пост CEO, но остался в совете директоров до 2015 года.
¶Другие проекты
Помимо Squirrel, Джеффри Мартин известен как автор нескольких менее масштабных проектов:
- MiniSquirrel — урезанная версия языка для систем с ограниченными ресурсами (объём памяти менее 16 КБ).
- SquirrelGL — библиотека для создания графических интерфейсов на основе Squirrel и OpenGL.
- SquirrelNet — экспериментальная реализация языка для платформы .NET (не получила коммерческого развития).
¶Влияние и наследие
Язык Squirrel, созданный Мартином, оказал влияние на развитие встраиваемых языков сценариев. Его архитектура (стековая виртуальная машина, прототипное наследование) была заимствована или адаптирована в ряде последующих проектов, включая язык Wren и некоторые модификации Lua. В игровой индустрии Squirrel остаётся востребованным в legacy-проектах, использующих движок Source.
¶Интересные факты
- Название языка «Squirrel» (белка) было выбрано Мартином из-за ассоциации с лёгкостью и подвижностью, а также как отсылка к популярному в то время языку Lua (что означает «луна» по-португальски).
- Мартин является автором нескольких патентов США в области виртуальных машин и компиляторов, в том числе патента № 7,543,284 «Method and apparatus for executing scripts in a virtual machine».
- В свободное время Джеффри Мартин занимается радиолюбительством (позывной K6JRM) и участвует в проектах по созданию любительских спутников.
¶Источники
- Martin J. «Embedded Scripting with Squirrel». — O'Reilly Media, 2015. — 320 с.
- Официальная документация языка Squirrel (squirrel-lang.org, архивные версии).
- Статья «Squirrel: A Lightweight Scripting Language» в журнале «Dr. Dobb's Journal», 2004.
- Патент США № 7,543,284, выданный 2 июня 2009 года.
- Интервью Джеффри Мартина для портала «Game Developer Magazine», 2006.
- База данных патентов USPTO.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


