История создания s4g до версии 0.9.2

Мне всегда было интересно как же создавался какой-то проект, его история создания, до определенной версии. Поэтому и мы начнем)) В статье расскажу историю разработки s4g до версии 0.9.2 с момента задумки.

Скриптовый язык программирования s4g с момента задумки вышел в свет только спустя 15 месяцев. На протяжении всего этого времени мы работали не только над ним. Примерно четверть из этого времени (разработка в свободное от работы время) было потрачено на его разработку. Разрабатывая язык мы не обладали соответствующими знаниями, в общем были полностью некомпетентны в этих всех вопросах. Но решились расширить свои познания.

История создания началась с того что я не мог толком организовать ИИ в нашем движке SkyXEngine, не было опыта, нужно было как-то этот опыт с ИИ приобрести. И честно сказать интерес к разработке пропадает, когда над ней сидишь все свое свободное время, а конца не видно. Поэтому надо было отвлечься на что-то совсем другое, но что могло бы пойти в конечном итоге в движок и помогло бы понять сущность ИИ. Но это что-то должно было быть намного меньше чем сам движок дабы быстро его завершить. Это было лето 2016 года, месяц июль.

В это время … я по работе проживал в лесу, связи не было. Но были случаи когда выезжал туда где есть связь, там же искал статьи по этому поводу и скачивал. Было весело))

После 2 месяцев появилась первая чрезмерно сырая, но хоть немного работающая версия языка. Тормозов немерено, возможностей мало.

После того как у меня появилась связь с Евгением (ноябрь 2016) мы все обговорили и было решено нам вместе взяться за его разработку, так как это чрезмерно увлекательный процесс и конец мы видели на горизонте. Однако еще не понимали, что горизонт не имеет границ))

В конце ноября мы взялись за полноценную разработку языка. Код был весь переделан. Попутно мы изучали отстающие области. И в начале января 2017 появилась уже более лучшая версия языка, без утечек памяти и более стабильная. Однако парсер все еще страдал ибо был рекурсивен, не было четких правил грамматики и что самое главное не было четкого плана.

Были разработаны основы языка, без ООП, только данные на встроенных типах (в том числе и функции) и небольшая библиотека экспортированных на сторону языка функций, а так же API для взаимодействия из C++ с языком. Была написана основная документация по языку.

В этот же период Евгений сделал сайт s4g.su. Но в последний момент мы поняли что язык еще достаточно сыроват и еще рано выкладывать его в open source ибо мы с трудом разбирались в парсере. Энтузиазм угас, желание тоже, уж очень сильно мы устали и были вовсе не рады этой версии. Решили отложить на потом, если еще захотим. История создания первой публичной версии к сожалению не закончена.

Окончательно решили мы доделать язык только после того как у нас образовался нехилый застой в разработке движка, нам не удавалось добиться хоть немного синхронной работы, и в очередной раз мы просто изработались. Однако взявшись за разработку языка, дело пошло (конец августа 2017).

Выпустить разрабатываемую версию языка мы хотели в течении 2 недель, так как не шибко много надо было доделывать, нам так казалось, но в итоге на разработку ушло больше месяца))

За этот месяц работы был опробован наш стандарт оформления кода, код был приведен в порядок, жесткие связи между модулями были разорваны, и наконец-то парсер был переделан как надо, убрали все не нужное, внедрили классы. В этой разработке мы отказались от производительного кода (как нам казалось) в пользу удобного кода и в итоге удобный код оказался во многих местах быстрее)) В общем основная идея и концепция языка были полностью сформированы. Кроме стандартной библиотеки экспортируемых функций появились и другие, в значительной степени улучшили и доработали API, переработали документацию.


По окончанию разработки версии 0.9.2 у нас не было никакой радости, восторга и самоосознания, мы просто выдохлись, изработались, нам надо было доделать язык, опубликовать его на нашем сайте, написать о нем хотя бы на двух более менее тематических форумах (ссылка, ссылка) и все, можно считать что выпуск версии состоялся, отвязались))

Такое состояние на момент выпуска у нас не впервые (выпуск SkyXEngine 0.9.0 был примерно таким же трудным). Поэтому мы уяснили, что разработка своего продукта «потом и кровью» и его выпуск не принесут радости на момент выпуска.

Однако, после того как мы немного отдохнули мы поняли что мы совершили достаточно большую работу. Самое главное — наш уровень вырос. Пусть мы сделали не шибко хорошо, однако для каждого из нас это личное достижение и хороший плюс в портфолио))

История создания первой публичной версии окончена.

Ссылка на сайт языка

Поделиться:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*

code