1. 1C / Говнокод #23260

    −3

    1. 1
    2. 2
    3. 3
    https://github.com/covrom/gonec
    
    1C:Enterprise-like language interpreter written in Go https://covrom.github.io/gonec/

    ГОВНЕЦ (govnec)
    Интерпретатор и платформа создания микросервисов на 1С-подобном языке

    Цели

    Интерпретатор создан для решения программистами 1С множества задач, связанных с высокопроизводительными распределенными вычислениями, создания вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С.

    Включив такой интерпретатор в свое решение, Вы можете предоставить высокий уровень сервиса для своих клиентов, который обгонит решения не только ваших конкурентов на рынке 1С, но и конкурентных платформ в enterprise.

    Интерпретатор разрабатывается “от простого к сложному”. На начальных этапах будет включена базовая функциональность многопоточных вычислений и сетевых сервисов. В перспективе планируется организация работы с различными базами данных и визуализация управляемых форм, созданных в конфигураторе.

    Еще никогда не были так просто доступны программистам 1С возможности:

    * Создать микросервис с произвольным сетевым протоколом, развернуть его на linux, в docker контейнере или кластере kubernetes
    * Выполнить сложную многопоточную вычислительную задачу для десятков тысяч подключающихся пользователей за миллисекунды
    * Взаимодействовать с пользователем через web-браузер с минимальным трафиком
    * Сохранять и получать данные с максимально доступной скоростью в key-value базах данн

    Запостил: j123123, 12 Августа 2017

    Комментарии (39) RSS

    • Почему синтаксис похож на 1С?

      Синтаксис 1С знаком и удобен сотням тысяч быдлокодеров программистов в России и СНГ, а в перспективе и зарубежом. Это позволяет создавать решения, которые могут поддерживаться любыми быдлокодерами программистами 1С, и которые не будут требовать дополнительной квалификации.
      Ответить
    • Мне не понравилась конструкция «Модуль {...}» наряду с «Функция ... КонецФункции». Негомоиконно Неоднообразно как-то.
      Ответить
      • К ним пробрался сишник и разлагает проект изнутри.
        Ответить
      • интересно какой язык этот синтакс ввел первым. самое старое про что я знаю это фортран.
        Ответить
      • [green]
        лучше б сделали как в баше
        Модуль
        Функция
        ...
        яицкнуФ
        ьлудоМ
        [/green]
        Ответить
        • Лучше бы сделали как в unlambda, где закрывающие конструкции в принципе не нужны.
          Ответить
          • если б я стал разрабом компилятора 1С, то перед суицидом увольнением только ради "яицкнуФ" залил бы правило в грамматику прям в ветку "Производство"
            Ответить
        • Напомнило вулкан из яйца:
          https://pbs.twimg.com/media/C9E8cqRXkAExDki.jpg
          Ответить
    • > > Производительность ожидается сравнимой или выше, чем у интерпретатора языка Python.

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

      > Интерптетатор реализован на языке Go путем адаптации исходных кодов интерпретатора языка anko [...]

      ну пускай попробуют. хотя уже столько русско-язычных вариантов(*) паскаля в лету кануло, что слабо верится что из этого тоже что то выйдет.

      (*) если бы хотя бы попробовали сделать "natural language independent" язык, который можно и на другие языки перевести, то может быть из этого что-то бы и получилось.
      Ответить
      • > "natural language independent" язык
        В качестве кейвордов оставить только спецсимволы.
        Ответить
        • Предлагаю Brainfuck, Whitespace
          Ответить
          • Да, whitespace - идеальный кандидат.
            Ответить
            • да, но азбука Морза уже проверена практикой. whitespace требует трех символов, в то время как азбука Морза обходится только двумя! "dot the i-s and cross the t-s" - только без самих i/t.
              Ответить
              • > азбука Морза обходится только двумя
                А вот нихуя! Там ещё пауза участвует, без которой хрен что раскодируешь. Так что в морзе тоже три знака.

                З.Ы. Ну разве что считать морзянку потоком из джвух символов - mark и space...
                Ответить
                • зато лучше совместима с аналоговыми носителями.

                  и пауза тоже можно избежать. нужно просто азбуку морзе префиксной сделать.
                  Ответить
                  • > префиксной сделать
                    Идея прикольная, но сложно будет синхронизироваться если сообщение с середины слушаешь.
                    Ответить
                  • И для пробела придётся ввести код...

                    Но тогда это уже нельзя называть азбукой Морзе. Например, есть код Бодо, тоже основанный на точках и тире, но в нём все символы содержат строго пять битов, так что паузы не нужны.
                    Ответить
                    • > паузы не нужны
                      Но они всё равно есть между сообщениями.
                      Ответить
                      • в азбуке морзе уже есть пунктуация.
                        Ответить
                        • А в коде Бодо (точнее, в его модификациях — CCIT/ITA2, МТК-2) ещё есть возврат каретки и перевод строки. А как заканчивать сообщение, я не знаю.
                          Ответить
                          • конец сообщения (перенося в ваш мир программирования - конец строки и конец файла) это всего лишь (типографская) конвенция. сделать новую не такая большая проблема. в крайнем случае, всегда можно закончить явно, кодовым словом. как например уже сверху продемонстрировано с функциями: «Функция ... КонецФункции»
                            Ответить
                            • Оказывается, примерно так и сделали. В законе (!) написано, что международная телеграмма должна заканчиваться четырьмя буквами N и двумя пробелами (комбинацией, которая вряд ли встретится в обычном тексте).

                              Так что паузы и вправду не нужны.
                              Ответить
                              • Будем следовать закону.

                                NNNN  
                                Ответить
                                • Офтопик. Нормативные акты о формате сообщений издают не только для международных телеграмм. Например, железнодорожные станции передают друг другу «телеграммами» информацию о том, какие поезда собираются отправить, чтобы принимающая станция смогла подготовить путь. Читать далее:
                                  http://osjd.org/doco/public/ru?STRUCTURE_ID=5068
                                  Ответить
                              • > паузы и вправду не нужны
                                Всё свободное время засирать эфир этими NNNN NNNN ? :)
                                Ответить
                                • В оригинальном ITA код, состоящий из нулевых битов, обозначал простой. Если я правильно понял, им допускалось засирать эфир для поддержания уверенности, что связь со станцией не потеряна.

                                  В русифицированном МТК-2 квинтет с кодом ноль означает переключение регистра на кириллицу. В принципе, он тоже не создаёт символов в ленте.

                                  А вот цепочки NNNN NNNN создают пустые сообщения.
                                  Ответить
                                  • > обозначал простой

                                    idle + fill frame'ы. это когда ты пытаешься на ненадежном средстве передачи создавать подобие соединения и надежности.

                                    fiber optics тоже по этой причине что-то постоянно посылает (fill frame'ы). иначе другая сторона будет думать что кабеля вытянули. на эзернете тоже линии держатся в логической 1це во время простоев (и по этому (как мне расказывали) эзернет жрет электиричество и почти во встроенных приложениях не встречается).

                                    я к чему веду. fill frame'ы вырезаются на уровне железа. в нашем случае, текстовый редактор для нашего языка будет просто наполнители игнорировать и не показывать. в конце концов, мы же делаем современное user-friendly окружение для пользователей.
                                    Ответить
                                    • > на эзернете тоже линии держатся в логической 1це
                                      Там же трансы для гальванической развязки, через них постоянный ток не пролезет.

                                      Емнип, всё-таки тишина там в свободное время.
                                      Ответить
                                      • > Емнип, всё-таки тишина там в свободное время.
                                        З.Ы. Всё-таки есть на ethernet'е пинги каждые 16мс (link pulses). И железка считает, что кабель выдран, если 50-150мс нет пульса или пакета.
                                        Ответить
                                        • я сам тормоз. в лог 1це держался коаксиальный эзернет. про phy витой пары я вообще ничего не знал. а вот сейчас знаю что там есть пинги ;)
                                          Ответить
                                          • > там есть пинги
                                            Прикольно, что этими пульсами сетевухи ещё и рассказывают друг другу о поддерживаемых скоростях.
                                            Ответить
                                            • типа пытаются эзернет по возможности обратно-совместимым держать? даже как-то логично.
                                              Ответить
                                              • витой паре уже пару десятков лет, но ембедщики продолжают её обходить стороной, ибо ну его нахер, да скорость выше 115 кбод/с нужна только хипстерам
                                                Ответить
                                                • ты не видел что за г новое народ делает. туда даже BT classic уже не влазит. извраты типа система максимум 200мс может работать за раз с супер-капа, остальные 800мс супер-кап заряжается от цинковой батарейки...

                                                  ЗЫ безпроводные сети это будущее! даёшь BLE!! аж 80 миллиардов микробит в секунду!!!
                                                  Ответить
                                                  • BLE годно, юзаем
                                                    но не для передачи информации

                                                    > безпроводные сети это будущее
                                                    эфир и так уже засран до невозможности, дальше только хуже,
                                                    да и с безопасностью не оч - легко глушилку поставить
                                                    Ответить
                    • Ну вот если считать морзянку потоком из mark/space, то нужно всего 2 символа: dot = MS, dash = MMMS, pause = SS.
                      Ответить
      • Бейсик разный бывает. Компилируемый в нативный код Бейсик даст такую же производительность, как Си, Паскаль, Фортран. У него же статическая типизация.

        Вот интерпретируемый или микрософтовская поделка с собственной виртуальной машиной — да, будет медленным.
        Ответить
        • > Бейсик разный бывает.

          нет, не бывает. только MSFT остался верен духу настоящего басика: все через Ж и тормозит.
          Ответить

    Добавить комментарий