И снова зима, и снова очередной интерпретатор.
Два года назад я решил написать простой интерпретатор Форт-подобного языка.
За четыре месяца я его написал. Пришлось переписывать четыре раза, но с четвёртого раза я таки его написал.
И он даже неплохо работал, показывая производительность в 1 миллион операций в секунду.
Чтобы понять, насколько это плохой или хороший результат, представьте себе язык ассемблера, в котором можно определять собственные функции, классы и даже свойства с методами get и set.
И всё это работает конечно на порядки медленнее, чем например Python, но 1 МГц у этого процессора есть по скорости.
В принципе я потом проводил эксперимент с Питоном. В подобном тесте он показал похожую производительность. Просто некоторые моменты в нём очень хорошо оптимизированы.
Год я отдыхал, затем занялся дальнейшими переделками, и теперь работаю над восьмой или даже девятой версией, надеясь, что с ней неразрешимых проблем уже не будет. Хотя что мне остаётся - мне остаётся только надеяться.
Сегодня я научил программу вычислять хэши строк. Полезная функция.
Но я вспомнил, что самая первая версия начиналась примерно с этого же. Это побудило меня написать этот пост.
Вот, снова зима, снова интерпретатор. Снова программа умеет считать хэши.
За годы разработки программ я сделал такой вывод: если хочешь написать большую программу, пиши её медленно. Условно говоря, по одной функции в день.
Тогда мозг не перегружается информацией, и нет стремления всё успеть.
Это стремление приводит к тому, что необходимость всё переписать с нуля, сильно демотивирует, когда начинаешь в очередной раз всё переписывать.
Но конечно самую серьёзную демотивацию я почувствовал, когда программа таки заработала.
Вот, новый язык программирования, объектный Форт, но писать на нём что-либо нет никакого желания.
А тут он снова перестал работать, всё надо переписывать, и быстродействие всего 1 миллион операций в секунду.
Я почувствовал тогда какую-то непередаваемую пустоту. Как будто сделал нечто никому ненужное, как будто записал альбом музыки, которую никто не услышит.
И тогда я взял паузу. Стал размышлять о том, что именно я сделал не так.
Дело в том, что на Форте программировать довольно увлекательно. Сравнимо с Питоном.
А вот писать что-то такое с объектами и классами почему-то не возникает желания совершенно.
Я стал анализировать причины, почему это происходит. Почему на C++ писать интересно и легко, а на производном - на интерпретаторе, писать нечего.
Но в какой-то момент я сказал себе: стоп, ты больше не можешь писать код так, как делал это раньше. Тело слишком быстро устаёт и слишком медленно восстанавливается. Пиши медленно, по чуть-чуть. Но если ты не будешь писать программу, ты так ничего и не напишешь, и тебе придётся заниматься этим в следующей жизни.
В общем, я понял, что я хотел бы, чтобы в следующей жизни у меня была такая программа - именно поэтому её нужно написать.
И вот, она умеет вычислять хэши для строк. Чем не повод повеселиться.
Комментариев нет:
Отправить комментарий