Я поклонник чистого кода. Мне нравятся мои языки, чтобы выразить то, что я пытаюсь сделать, но мне нравится, чтобы синтаксис тоже отражал это.
Например, я работаю над большим количеством программ в Objective-C для jailbroken iPhones, которые исправляют другой код с помощью функции method_setImplementation()
среды выполнения. Или, в PyObjC, я должен использовать синтаксис UIView.initWithFrame_()
, который также довольно ужасен и нечитабелен тем, как структурируются имена методов. В обоих случаях язык не поддерживает это в синтаксисе. Я нашел три основных способа сделать это:
Должен ли я и как должен создать расширение для Python и Objective-C, чтобы разрешить мне это сделать? Стоит ли писать синтаксический анализатор для моего языка, чтобы преобразовать синтаксис во что-то приятнее, если он находится только в такой специализированной нише? Должен ли я просто жить с ужасным синтаксисом подключения по умолчанию Objective-C или PyObjC?
Существует только два вида языков программирования: трюизм, те, на которые каждый жалуется, и те, которые никто не использует. Люди, которые хотят делать программы, не выбирают язык, потому что он красив или чист; они выбирают его, потому что он поддерживается, доступен и не настолько ужасен, что вы просто не можете его использовать.
Когда вы видите что-то, что, по вашему мнению, можете улучшить, может быть очень заманчиво сказать, что я могу это исправить! и работать прямо, но в этом случае стоимость, вероятно, выше, чем того стоит. Языки программирования, которые не заполняют какую-либо более крупную цель, чем быть более чистыми или немного более последовательными, как правило, не улавливаются, поскольку дополнительные достижения в этих областях - это не то, что вам действительно нужно, действительно нужно улучшить процесс создания программного обеспечения. Проекты в неясных языках домашних животных, как правило, умирают и не улавливаются, так как стоимость вклада (изучение кого-то любимого языка, нового для вас и не имеющего широкой поддержки и документации) слишком велико.
Если вас интересует дизайн языка и возиться, это может быть интересно для вас. Это сложнее, чем может показаться - дизайнеры всех основных языков должны были иметь дело с множеством компромиссов в их разработке, часто жертвуя красотой и чистотой для практичности и совместимости. Если, с другой стороны, вы хотите написать программное обеспечение, справитесь с несовершенными инструментами, которыми вы были обработаны.
Если у вас нет опыта в разработке компилятора или интерпретатора, мой ответ является категорическим НЕТ, это одна из самых больших проблем в информатике.
Если у вас есть опыт, мой ответ переключается на "это действительно глупая идея".
Представляете ли вы, что это станет большим зрелым продуктом, который другие люди захотят использовать? Если вы это сделаете, чем пойти дальше, иначе это просто отвлечет вас от написания отличных приложений.