Coder Social home page Coder Social logo

Comments (8)

kuk avatar kuk commented on August 27, 2024 1

  1. Неоднообразно. Например, человек пишет код с | & ~, тогда, например, из Наташи ему будет скопировать код неудобно
  2. Неудобно форматировать.
NAME = (
    FIRST_LAST
    | LAST_FIRST
    | TITLE_FIRST_LAST
    | TITLE_LAST_FIRST
  ...
)

Также неоднообразное форматирование

NAME = FIRST_LAST \
    | LAST_FIRST \
    | TITLE_FIRST_LAST
...
  1. Ошибки из-за отсутствуя скобочек. Например IS_FIRST | MAYBE_FIRST & is_title() не равно and(or_(IS_FIRST, MAYBE_FIRST), is_title())
  2. Дополнительные усилия по разворачиванию. Предикат a & b & c это and_(and_(a, b), c), нужно написать код, который разворачивает это в and_(a, b, c)

from yargy.

dveselov avatar dveselov commented on August 27, 2024

/cc @alexanderkuk

from yargy.

dveselov avatar dveselov commented on August 27, 2024

Ну, речь ведь не идет о полной замене - я предлагаю добавить ещё один вариант написания грамматик, который (иногда) позволит убрать многословность.
Проблема с копированием кода, на мой взгляд, немного притянута - вся суть библиотеки как-раз в том, что не нужно ничего писать вручную и копировать, т.е. можно просто сделать pip install ... и начать использовать готовые грамматики. А как (и через что :) они написаны - это дело десятое.
В остальном, я согласен, это добавит некоторые сложности.

from yargy.

kuk avatar kuk commented on August 27, 2024

Ну, речь ведь не идет о полной замене - я предлагаю добавить ещё один вариант написания грамматик, который (иногда) позволит убрать многословность.

Я считаю, что это введёт неоднообразность

Проблема с копированием кода, на мой взгляд, немного притянута - вся суть библиотеки как-раз в том, что не нужно ничего писать вручную и копировать

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

Короче, я против.

from yargy.

dveselov avatar dveselov commented on August 27, 2024

Тогда давай сделаем так: в первом сообщении голосовалка, которая будет доступна ~месяц.
01.10.2017 посмотрим на результаты, ну и там уже решим, ок?

from yargy.

kuk avatar kuk commented on August 27, 2024

Я написал 4 аргумента против. Сколько аргументов за? Я вижу 1: краткость записи.

from yargy.

dveselov avatar dveselov commented on August 27, 2024

Хорошо.

  1. Неоднообразность можно убрать своим code style guide - например, писать на питоне можно как угодно, но обычно все придерживаются PEP-8. Если PEP-8 чем-то не устраивает, то используют свой вариант (например у Google есть свои рекомендации по стилю)
    Т.е. если кому-то не нравятся магические методы - их можно просто запретить использовать в коде (и обозначить это в своей документации, например).
  2. В аналогичных проектах, например в Томита-парсере (или NLTK, да в любой грамматике, даже в той, что описывает питон), используется похожая нотация. Т.е. вариант с магическими методами может быть понятен для людей, которые раньше использовали какой-то другой парсер.
  3. Ошибки из-за отсутствия скобочек могут быть и с вариантом без магических методов.
  4. Если в некоторых грамматиках неудобно использовать магические методы, можно не использовать их. Пример с несколькими элементами внутри or_ действительно выглядит так себе с магическими методами (вот в данном случае можно и не использовать их или использовать, но страдать - это осознанный выбор).

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

from yargy.

kuk avatar kuk commented on August 27, 2024

Не, мне хотелось бы увидеть не критику моих минусов, а список плюсов. Я сейчас вижу два плюса:

  1. Меньше кода
  2. Синтаксис знакомый пользователям Томиты, NLTK

from yargy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.