Ошечки
Я хотів би трохи більше розповісти про N2O і весь рух навколо нього. N2O — це історія, історія про створення програмного забезпечення, такого від якого не хочеться ригати, а хочеться щодня прокидатися і піліть нєтлєночку. На жаль, не всі мови можуть запропонувати таку екосистему, яка б підходила всім людям, тому я вважаю, що кожен майстер повинен сам створити собі свою екосистему та показати свій спосіб писання програм. Рік Хіккі створив цілу мову та екосистему, Ерік Мейєр створює бібліотеки спочатку для Майкрософт, потім для себе http://reactivex.io (яку і ми використовуємо у себе у виробництві). Стає зрозуміло, що якщо ви хочете створити, щось варте воно повинно мати ціну і бути кращим за аналоги і в інших мовах. Якщо ж здасться так, що ваша ідея чи технологія не застосовується в інших мовах або не має в них великого сенсу, то, можливо, ваша бібліотека переоцінена.
Тому експансія N2O іншими мовами мала відбутися, оскільки у поширенні N2O потрібно лише розуміння, коли приходить розуміння устрою N2O та його принципів: мінімалізму, простоти та практичності; імплементація іншими мовами з'являється сама собою. Якщо говорити про мови, то давайте розглянемо наступну (упереджену) шкалу мов, цікавих для портування N2O:
— github.com/o1 — Standard ML
— github.com/o29 — Coq
— github.com/o3 — Haskell
— github.com/o4 — Agda
— github.com/o53 — Clojure
— github.com/o59 — Java
— github.com/o61 — C#
— github.com/o7 — Elixir
— github.com/synrc — Erlang — https://n2o.dev
— github.com/erpuno — Elixir — https://erp.uno
— github.com/o83 — Rust — https://o83.github.io/platform.rs
— github.com/o89 — Lean
Що пропонує N2O? N2O пропонує специфікацію, яка говорить як будувати та масштабувати досить складні системи в рамках референсного аплікейшин серверу та має можливість працювати поверх різних мережевих протоколів. Ми анонсуємо, що ця специфікація підходить і добре лягає на всі функціональні мови та є конкурентноспроможною у порівнянні з усіма провідними проектами у цій галузі на кожній з платформ.
Не приховуватиму, деякі замовники взагалі не розуміють про що ми говоримо, тому ми фокусуємося на інженерних робочих групах. Дехто дивується навіть тому, що ми можемо впроваджувати цілі системи та комплекси на Erlang без інших мов і правильно бояться, того шо вони навряд чи знайдуть на свої низькі Ерланг зарплати аматорів мінімалізму та зрілої самостійності. Так, звичайно, маючи багато грошей, будь-який мислячий зможе побудувати корпоративну машину та закидати її Java та JavaScript позиціями.
Цю історію я хочу розповісти починаючи зі Standard ML, мовою, яку я вважаю незаслужено забутою (що підтверджує відсутність WebSocket імплементації), і яку ми вважаємо однією з найкрасивіших мов. Цією мовою ми імплементуємо базовий тракт N2O і робимо версію здатну працювати лише поверх TCP, наприклад. Далі ми беремо іншу мову, наприклад Coq, і показуємо як написати N2O на прувері з екстрактом OCaml, тобто. у мову, який майже такий самий як попередній. Потім ми демонструємо N2O на Хаскелі та порівнюємо його пошарово з Yesod, демонструючи повну перевагу. І, нарешті, переходимо до самого немаргінального та самого нетипізованому Ерлангу (тут все зрозуміло).
Якщо ви вважаєте, що зрозуміли N2O або хочете зрозуміти, і хочете написати його мовою якої немає в цьому списку, зв'яжіться зі мною! І, насамкінець, оновлений агрегатор ошечок, головний сайт N2O:
https://n2o.dev — фреймворк для підприємств, що не залежить від мов та технологій.