Использование Дилана для написания парсера
Я хотел бы написать синтаксический анализатор для языка набора текста, который я помогаю развивать.
Я ничего не кодировал в течение многих лет и, просматривая различные варианты языка, я наткнулся на Дилана.
Похоже, очень интересный язык для работы - синтаксис чистый, выглядит довольно простым в использовании, может использоваться динамически.
Насколько подходит Дилан для этого проекта?
Моя идея заключалась в том, чтобы поместить его на Github, чтобы другие могли добавлять или улучшать мой код (это было давно!). Но все, кажется, используют Lua.
Буду ли я одинок в этом, если решу развиваться в Дилане?
Я должен был бы выучить Дилана или Луа независимо от того, какой я выберу. Но похоже, что сегодня все знают, как программировать на Lua.
С уважением
1 ответ
Если ключевым требованием является то, что вы хотите, чтобы другие люди помогали, то Дилан, вероятно, не лучший выбор. Он мало используется, поэтому вы найдете меньше помощи, чем с другими вариантами.
Возможно, самый популярный динамический язык в настоящее время - это Python. Он очень хорошо поддерживается, множество документов, учебных пособий и множество примеров кода, доступных на GitHub и т. Д.
Lua довольно популярен, хотя и менее, чем Python. Это не тот случай, когда большинство людей кодируют его. Это довольно ниша, в основном используемая в играх и для сценариев в целом, но это очень хороший, простой, но мощный язык. Мне это очень нравится.
Если вы хотите пойти по маршруту Дилана, но хотите получить более активную поддержку, тогда вы можете посмотреть на Джулию. Это довольно новый, но явный потомок Дилана. Его основная цель - научные вычисления, но в нем есть большинство компонентов, помогающих написать чистый синтаксический анализатор, например, типы Union. Это также довольно быстро, что может быть полезно в зависимости от того, что вы на самом деле собираетесь делать с анализатором.
И это подводит меня к моей последней точке. Вы можете написать простой парсер на большинстве языков без особых сложностей. Правильный выбор языка, скорее всего, будет зависеть от других вещей, например, от того, как быстро он должен работать? сколько платформ он должен поддерживать? Будет ли он встроен в другой код, например, в веб-стек? Джава? Эти решения, вероятно, существенно сузят поле.