Launch HN: Enso (YC S21) – инструмент визуального программирования и рабочего процесса для науки о данных

Привет, HN, мы Войцех и Сильвия , соучредители Enso ( https://enso.org ). С технической стороны Enso – это визуальный и текстовый язык программирования (вы можете переключаться с графика на код и обратно). С точки зрения бизнеса, это построитель рабочих процессов, который позволяет аналитикам без опыта программирования автоматизировать процессы, управляемые данными, просто путем соединения визуальных компонентов. Наш графический интерфейс похож на IDE, но с графическим редактором рядом с кодом. В настоящее время мы сосредоточены на анализе данных – подготовке данных, смешивании и аналитике (как в памяти, так и на SQL). Вы можете посмотреть видео о том, как это работает, здесь: https://youtu.be/fQvWMoOjmQk .

Раньше мы назывались Luna, и нам повезло, что за эти годы у нас было несколько больших тем на HN. [2] [3] [4] [5]. В конце концов мы перешли в режим «хедз-вниз», чтобы создать производственную версию на основе отзывов клиентов и пользователей. С тех пор мы значительно улучшили продукт. Он по-прежнему грубоват, но теперь работает намного лучше. Мы также сделали несколько руководств ( https://www.youtube.com/channel/UC4oMK7cL1ElfNR_OhS-YQAw ) и документы ( https://enso.org/docs/syntax ). Мы добавили много новых библиотек, поэтому теперь вы можете делать с ними гораздо больше. О, и мы изменили название на Enso и были приняты в YC! 🙂

Проблема, которую мы решаем, заключается в том, что аналитики данных по-прежнему тратят до половины их времени на повторяющуюся ручную работу, которую можно автоматизировать [6]. Приведу один пример: компания, с которой мы работаем, нанимает бизнес-пользователей, которые используют Excel для определения правил качества данных. Они вручную переводятся в SQL, а затем вручную переводятся на Python. Это не только подвержено ошибкам, это настолько медленно, что они забирают их дней, чтобы ввести одно новое правило. Там дней накладных расходов на этот процесс – это безумие!

Много лет назад я (Войцех) руководил собственной разработкой инструментов визуальных эффектов (VFX) в киностудии. Мы создали такие инструменты, как облачные рендеры и движки для моделирования дыма. Художники, использующие эти инструменты, не имели никакого опыта в программировании, но они разрабатывали сложные алгоритмы для взаимодействия между частицами, подповерхностного рассеяния света и тому подобного. ВНИМАНИЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! В более ранних поколениях этих инструментов были сотни параметров конфигурации, кнопок и т. Д. Для множества различных вариантов использования, но этот подход стал слишком сложным, и люди в конечном итоге поняли, что он не работает, когда вам нужно сделать что-то, о чем производитель не подумал. из. В настоящее время они используют программное обеспечение на основе узлов (например, Houdini FX), которое позволяет пользователям рисовать алгоритмы как последовательность шагов обработки данных (эти шаги часто называют «узлами»). Позже, когда я работал в других отраслях и натолкнулся на те же крысиные скопления сложных графических интерфейсов пользователя для решения задач обработки данных, я понял, что область аналитики данных / науки нуждалась в том же прорыве, который мы уже совершили в VFX. пробел.

Большинство языков визуального программирования / построителей рабочих процессов плохо масштабируются, потому что они не позволяют пользователям выражать абстракции. Попробуйте построить сложный конвейер, и вы получите нечитаемый набор соединений – это похоже на кодирование веб-приложения на ассемблере. Enso отличается тем, что мы позволяем вам создавать абстракции для управления сложностью. В результате у вас никогда не будет больше, чем 20 – 20 узлы на сцене в Enso (узлы иерархические). Вы можете создавать собственные типы данных, пользовательские компоненты (функции), обнаруживать ошибки и т. Д. Все это работает, потому что Enso – настоящий язык программирования. Однако наивные реализации таких систем очень медленные. Каждый компонент может состоять из сотен, а иногда и из тысяч компонентов нижнего уровня. Настоящая уловка в том, чтобы заставить эти иерархические компоненты работать быстро. Для этого вам понадобится специальный компилятор и система времени выполнения, а это сложная техническая область. В нашей системе используется специальный JIT-компилятор на основе GraalVM. Подробнее см. https://enso.org/language#compiler . Если это интересно для вас, вот наш подкаст о том, как компилятор работает под капотом: https://www.youtube. com / watch? v = BibjcUjdkO4 .

Enso является интерактивным, что означает, что мы пересчитываем соответствующие части графиков при изменении параметров, что значительно сокращает циклы обратной связи. Как и многие люди на HN, нас вдохновил классический доклад Брета Виктора о мгновенной обратной связи: https://www.youtube. com / watch? v = 8QiPFmIMxFc . Мы также приложили много усилий для расширения возможностей. Вы можете добавлять Java, JavaScript, R и Python (вскоре также Ruby, Scala, Kotlin, Rust и C) непосредственно в узлы Enso без необходимости писать какие-либо оболочки и с почти нулевыми накладными расходами на производительность.

Enso имеет открытый исходный код. Код нашего компилятора находится по адресу https://github.com/enso-org/enso и наш код графического интерфейса https://github.com/enso-org/ide . Наша бизнес-модель основана на продаже доменных библиотек, локальных установках с расширенным управлением разрешениями пользователей и, в ближайшее время, размещенном решении под названием Enso Cloud, которое будет нашей единственной базой кода без открытого исходного кода. Поскольку это Hacker News, я должен добавить, что все наши альфа-версии собирают анонимную статистику использования, которую мы используем для улучшения Enso и подготовки ее к стабильному выпуску. Полная информация об этом всегда в наших примечаниях к выпуску ( https://github.com/enso-org/ide/ релизы / последний ).

Дорогая семья HN, мы очень рады показать вам Enso. Пожалуйста, поделитесь с нами своими мыслями, впечатлениями, идеями и отзывами. Для нас это безумно важно, ведь мы мечтаем сделать Enso самой полезной платформой для обработки данных в вашем арсенале инструментов! Кроме того, если вы хотите создать свои проекты на базе Enso, мы будем рады помочь вам в этом – опишите здесь, что вы имеете в виду, и мы свяжемся с вами: https://airtable.com/shrsnx2mJuRn0MxIS 🙂

=== Ссылки ===

Luna: визуальный и текстовый функциональный язык программирования – https://news.ycombinator.com/item?id знак равно – фев 2017 (100 Комментарии)

[2] Luna – визуальный и текстовый функциональный язык программирования – https://news.ycombinator.com/item?id= 14612680 – Июнь 2017 (310 Комментарии)

[3] Luna 1.0 Beta вышла – https://news.ycombinator.com/item?id= 17704989 – Янв 2018 (167 комментарии)

[4] Luna Studio – Visual и текстовый функциональный язык программирования – https://news.ycombinator.com/item?id= 20182090 – август 2018 (64 Комментарии)

[5] Luna – язык WYSIWYG для обработки данных – https://news.ycombinator.com/item?id= 20182090 – Июнь 2019 (86 Комментарии)

[6] https: // www. alteryx.com/e-book/idc-study-the-state-of-self-s…

Leave a comment

Your email address will not be published. Required fields are marked *

4 × 3 =