DEV Community

Cover image for Wasp - language for developing full-stack Javascript web apps with no boilerplate

Wasp - language for developing full-stack Javascript web apps with no boilerplate

Max on June 14, 2022

Meet Wasp: a new programming language for developing full-stack web apps with less code. Wasp is a simple declarative language that makes developi...
Collapse
 
leob profile image
leob • Edited

Great vision, super cool idea! Reminds me of the "4GL" concept of yesteryear, or maybe of Model Driven Development, but better (probably) ... I do think many people tried to develop something like this, no doubt there have been numerous attempts - I hope this time the idea will succeed and "fly" :)

Collapse
 
matijasos profile image
Matija Sosic

Thanks a lot for your support, really appreciate it! :) Yeah, this is definitely something a lot of developers are thinking about and would like to have, and this promise has materialised in many more or less successful forms (e.g. Ruby on Rails when there were no SPAs) over the years. We're also very excited about this and think now is the best time ever to achieve, given all the awesome and mature technologies we can build on top of (React, Node, Prisma, ...).

If you want to give it a try check out our Alpha Testing Program: wasp-lang.notion.site/Wasp-Alpha-T...

Collapse
 
leob profile image
leob • Edited

Yeah I'd like to ...

And the concept is super promising, sort of a high level declarative language which hides away all of those tedious details. which are essentially the same anyway from project to project - with the goal to be able to focus on the unique business requirements of an app, rather than spending time on boiler plate and reinventing the wheel.

This is sort of the "holy grail" of software/app/web development, and it has been attempted numerous times, but ulitmately none of those efforts really took off ... curious to see if this time around it could be a different story.

So what if I'd want to use, let's say, Vue instead of React - does the language support that, and if so, how? I also see new 'frameworks' popping up that are built on top of React, such as Remix which is now really getting popular - how difficult (or easy) would it be to integrate or support that?

Thread Thread
 
matijasos profile image
Matija Sosic • Edited

Yes, that is exactly what we are thinking with Wasp! Right now, in Alpha, Wasp supports only React and Node.js + Prisma. Our goal is to add support for Typescript next and then bring it with that stack to the stable 1.0. With that in place, we plan to look into adding support for more FE libs (probably Vue) and also BE (e.g. Python).

Next/Remix is also a great point - we're looking into how to integrate it best - either by supporting them within Wasp or by replicating pieces of functionality they offer (e.g. SSR). That's still something we're not yet totally clear about, depending on what kind of DX we can offer with each approach.

Re difficulties of integrating with different languages/libraries - Wasp DSL is built in a way which makes it absolutely possible, but it is definitely a lot of work. In the beginning we will probably implement support for each independently, and then see if we can recognize common patterns we can extract.

Thread Thread
 
leob profile image
leob

Ideally, you should try to make this stuff pluggable, allowing "third party" devs to develop 'plugins' for those other languages or frameworks, WITHOUT having to touch the core of Wasp - which means you wouldn't need to do all of this work yourself ...

But, I understand that that's easier said than done - you may need to implement some of these yourself first, in order to gain an understanding on how a "plugin" system might work :)

Thread Thread
 
matijasos profile image
Matija Sosic

That is exactly what we were envisioning! We imagined a plugin/module system where developers could themselves implement certain integrations & features. We could expose Wasp AST (data structure that emerges after the initial parsing) so they could modify and expand it.

It's still very high-level thinking, but we also described it in bit more details in this issue on Wasp repo: github.com/wasp-lang/wasp/issues/227

Collapse
 
pj_stew profile image
Pete Stewart

Sounds like a great system! Have you thought about compiling to webassembly? I'd also love to see it using Vue and Svelt.
If you could make a system that was agnostic of the end language, in that you could change a variable in the config and it compiled to Vue instead of React, or perhaps even wasm. That would be truly amazing!

Collapse
 
matijasos profile image
Matija Sosic

Thanks a lot Pete! Yes, the overarching and long-term goal is to make Wasp as stack-agnostic as possible. That way we could also soften the common "new tech" syndrom that happens every few years and then we all have to re-learn the latest stack. Ideally you'd be able to choose whether you want to use React/Vue/Svelte, and possibly also combine different langs in some parts (e.g. if you have some ML library in Python you want to use).

We're still at the beginning, but very excited about all the posibilities! :) If you want to join the party, check out our Alpha Testing Program we're running currently - would be awesome to get your input! : wasp-lang.notion.site/Wasp-Alpha-T...

Collapse
 
hayerhans profile image
hayerhans

Great idea, I am tired of writing all the boilerplate, with this we can all focus on what matters the business logic

Collapse
 
maksim36ua profile image
Max

In that case -- we're more than happy to invite you to become our alpha-tester :)

wasp-lang.notion.site/Wasp-Alpha-T...

Collapse
 
khaki32 profile image
khaki

Not production ready according to the deploying docs. I'm interested in where it will go, specifically hoping for better docs and TypeScript support.

Collapse
 
matijasos profile image
Matija Sosic

thanks for the comment! We expected to move to Beta in a couple of months, and support for TS is one of the main next features we're working on :)

What is your stack atm, anything specific you'd like to build?

Collapse
 
kartikgargg profile image
Kartik Garg

Great tool. Wasp, language for developing full-stack Javascript web apps. Nice information.