Я не претендую на звание программиста, т.к. по образованию вообще пианист.
Просто, в процессе работы по смежной специальности, постепенно потребовалось некое программирование на быдлосредствах для чайников-музыкантов, которые хотят улучшить workflow в своем уютном закутке мира digital audio.
В настоящее время это потихоньку выливается в скромный сайд-проект под лейблом Siberian Samples (можно поискать на рутреккере), а также небольшой вклад в сообщество пользователей Cocos Reaper и NI Kontakt. Дошло дело даже до того, что в течении года я мимикрировал под кодера в более-менее состоявшейся команде Keep Forest. Правда оказалось, что профессиональная работа в программировании требует все-таки гораздо большего опыта.
Данный проект, по сути, является средством самообучения, на примере Python (в последствии для основной части деятельности планирую мигрировать в плюсы). Хочу освоится с построением архитектуры, ООП, ведением нормального репозитория и т.д. Короче, немного прокачать скиллы.
Тем не менее, учитывая в принципе неплохой стаж быдлокодера (порядка 5 лет), возможно, блог проекта будет полезен начинающим программерам, столкнувшимся с питоном. А также, поскольку я, либо в силу неграмотности, либо в силу скромности публикованных решений такого рода, либо в силу абсурдности идеи, не нашел ничего похожего на свой подход к реалиации компилятора, возможно проект будет интересен и более опытным людям
Вообще интересно. Очень часто видел фразу “каждый программист написал хоть один компилятор”, но, когда я спрашиваю совета по реализации того или иного функционала у друзей, которые не первый год живут на окладе программистов, в ответ обычно слышу что-то вроде: “знаешь, я не системщик, даже не знаю, что и сказать”.
Теперь о проекте:
Это реализация компилятора для быдло-языка, посредством предоставления библиотеки классов, использующихся для генерации кода. Суть идеи в том, что языки пишутся не год и не два, и написание собственного языка в принципе, занятие настолько же бестолковое, как и написание собственного rich text редактора. Другое дело, если в кач-ве языка будет использоваться нормальный язык, а в кач-ве средств кодогенерации будет использоваться открытая библиотека, которая может быть в любой момент любым ее пользователем расширена для своих нужд.
На самом деле, в третий раз объяснять, что, зачем и почему неохота, поэтому тех, кого я немного аинтриговал, прошу под кат:
http://pyksp-blog.readthedocs.io/ru/latest/part0_why.html
Честно говоря, мне часто нужна помощь, которую я не знаю где искать, поэтому надеюсь на сообщество
Реализация из части 1 морально устарела, хоть и написана неделю назад. С тех пор я столкнулся с парой крупных архитектурных проблем, прочитал пару умных книжек, и написал большой модуль, который скоро опишу в части 2. Не знаю, может через день, может через пару.