У Python есть Django. У PHP есть Laravel. У Руби есть Руби на рельсах. Но где полная структура стека для JavaScript?
Возможно, многие популярные фронтальные рамки теперь являются полными стеком — Next.js, Nuxt.js, Remix, Svelte и другие. Но в 2020 году было мало — если таковые имеются — действительно полные стеки JavaScript Frameworks. И именно тогда братья -близнецы и инженеры -программисты Матиджа Шошич и Мартин Шошич решили создать его.
«Теперь все переходит в JavaScript, потому что он становится распространенным, и разработчикам легче использовать один и тот же язык на фронте и бэкэнд», — сказала Матиджа Шошич новым стеком. «Вот почему индустрия сейчас движется к полному решению JavaScript. Но не было, скажем, единой структурой для полного стека, которая находится только на JavaScript. Так что это то, что мы хотели исправить».
Они подали заявку на Y Combinator, стартап-акселератор и венчурную фирму, которая инвестирует и поддерживает технологические компании на ранней стадии; Он известен тем, что запускает такие компании, как Airbnb, Stripe и Reddit. Они были отвергнуты, но в этом письме о том, что они обнаружили свою поддержку попробовать еще раз:
«DSL [domain-specific language] Для разработки веб -приложений является одним из святых Грааля для программистов, заинтересованных в создании инструментов для других программистов ».
Кто не хочет построить Святой Грааль? Было слишком заманчиво, чтобы не пытаться снова. Братья подали заявку еще два раза до того, как их проект был принят.
Из этого появилась WASP, Full Stack JavaScript Framework и компания из восьми человек для его поддержки. (Оса доступна на GitHub.)
Братья теперь работают полный рабочий день на осе. Матиджа Шошич является соучредителем и генеральным директором Wasp The Company. Его брат Мартин также является соучредителем и главным технологическим директором.
Братья Мартин и Матиджа Шот Фото предоставлены Матией Сосич.
Нет, эквивалент Laravel для JavaScript
«За последние 10 лет у нас нет единственного решения, но у нас есть куча небольших решений, из которых каждый решает одну конкретную часть проблемы», — сказала Матиджа Шошич.
Существуют фронтальные фреймворки JavaScript — братья использовали основу, Angular и реагируют на клиент. Существуют также бэкэнды JavaScript Frameworks — они использовали PHP для java и node.js. Он также отметил, что существуют также базы данных с картированием объекта (ORM) и между ними, и между ними, решениями по управлению операторами и слоем API. (Примечание редактора: Meteor-это полная структура стека для приложений в реальном времени и некоторые фронтальные рамки, такие как next.js, nuxt.js с Vue и Sveltekit для Svelte, теперь поддерживают реализации бэкэнд.)
«У вас есть специализированные детали для каждой части стека, но вы, как разработчик, остались с работой по сшивке всего и убедиться, что все эти части могут эффективно общаться,. [in a] Масштабируемый и надежный способ », — сказал Матиджа Шошич. — Это на самом деле требует большого знания доменов, специализированных знаний. А также, требуется много работы, чтобы просто сделать это ».
Неспособность найти одну полную структуру стека и испытать «усталость структуры», в 2020 году они решили построить одну, с другими каркасами полного стека для других языков, служащих в качестве их моделей.
На названии WASP, бета -фреймворк уже имеет почти 16 000 звезд на GitHub, и в его разногласии более 4000 разработчиков.
«То, что мы пытаемся сделать, — это в основном воссоздать этот единственный опыт Ruby на Rails и Laravel, но для современной экосистемы JS», — сказал он. «Это означает, что, в конце концов, мы обрабатываем гораздо больше вещей для вас, что приводит к меньшему коду и меньшему опыту знаний, необходимых самим разработчиком».
Но они также были отчасти мотивированы, чтобы построить что -то, что было абстрагировано вдали от конкретного языка.
«Ruby Rails был великолепен, но опять же, мы теперь уезжаем от Руби», — сказал он. «Сегодня это JavaScript, и это будет наверняка JavaScript, конечно. Но даже если вы можете сделать что -то, что не зависит исключительно от JavaScript? Это своего рода другая часть мотивации для осы».
WASP: DSL действует как рамка
Технически, WASP является специфичным для домена языком (DSL), компьютерным языком, специализирующимся на конкретной области приложения. Это означает, что он предназначен для решения проблем в определенной области, а не выступать в качестве языка общего назначения, который можно использовать для любого вида программирования.
В этом случае WASP является DSL для JavaScript. Но Шошич научился не называть это так, потому что это имеет тенденцию путать людей, даже разработчиков. Они склонны предполагать, что это другой язык от JavaScript, а это не так.
«Мы на самом деле представляли осу [as a] Новый язык программирования для веб -приложений, но это звучало для разработчиков как нового Python или New C ++ или новой Java, которые являются общими языками программирования », — сказала Матиджа Шошич. [and] Node.js, и они должны изучить наш совершенно новый стек, который, очевидно, очень пугающий ».
«То, что мы пытаемся сделать, это в основном воссоздать этот единственный опыт Ruby на Rails и Laravel, но для современной экосистемы JS».
— Матиджа Сосич, генеральный директор Wasp
Таким образом, они называют это рамкой, потому что так он и на самом деле функционирует, объяснил он.
Однако тот факт, что это DSL, означает, что он работает с другими технологиями. В частности, WASP в значительной степени зависит от React, node.js и Prisma для ORM.
«Девяносто процентов вашей работы будет писать эти технологии», — сказала Матиджа Шошич. «Оса — это просто простой клей между этими частями, что делает всю эту тяжелую работу, которую я описывал».
Язык — это просто деталь реализации, которая помогла им сократить шаблон и сделать вещи быстрее, добавил он.
Зачем реагировать и node.js?
React был выбран по двум основным причинам — это была технология, с которой братья имела наибольший опыт в то время, и она широко использовалась.
«Для нас это было логично, мы знали это лучше всего, и мы можем достичь самого широкого рынка», — сказала Матиджа Шошич. «Опять же, с характером WASP, мы разрабатываем его, чтобы быть агностическими в рамках пользовательского интерфейса или библиотеки… Но сейчас мы сосредоточены на React и Node JS, потому что они были как -то самыми основными технологиями, с которыми можно было начать».
Использование React и Node разблокировало еще одно преимущество — принятие предприятия.
«Все знают, как развернуть React и Node. Именно поэтому мы видим принятие предприятий, потому что для них очень легко развернуть React and Node», — сказал он. «Не существует сторонней инфраструктуры, которая вам понадобится, что является большим блокировщиком для предприятий».
Приста — это небольшая структура для базы данных, и она легко используется через JavaScript, сказал он. Он поддерживает Mongo, Postgres и другие базы данных, поэтому он хорошо выровнялся с WASP.
Дополнительные инструменты
Команда осы также предлагает два инструмента, которые упрощают разработку:
- Mage-это генератор веб-приложений на основе искусственного интеллекта, который позволяет описать, какое приложение вы хотите, и предоставит рабочий проект кода.
- OpenSaas предоставляет пакет для программного обеспечения в качестве приложения Service (SAAS). Обычно разработчики продают эти стартовые пакеты, но Шошич решил сделать его с открытым исходным кодом. Вот краткий видео пример этого инструмента на работе.
Матиджа Шошич рекомендовал разработчикам исследовать осу, потому что это полный фреймворк JavaScript. В целом, в соответствии с часто задаваемыми вопросами WASP на основе WASP занимает около 30 минут.
«Большим мощным является то, что разработчики предприятий могут очень легко запустить его внутри», — сказал он. «Потому что, в конце концов, WASP — это просто простое приложение React и Node.js, которое является основным для развертывания практически в любой среде».
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Loraine Lawson — ветеран -репортер, который в течение 25 лет освещал технологические проблемы от интеграции данных до безопасности. Прежде чем присоединиться к новому стеку, она работала редактором Banking Technology Site Bank Automation News. Она … читайте больше от Лорейн Лоусон