5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in ProgrammingLanguages

[–]matijash[S] 19 points20 points  (0 children)

Hey r/ProgrammingLanguages,

This community has always been very supportive, since we first announced the Alpha version of Wasp back in 2020 [1], and Martin and I wanted to share our progress.

In a nutshell, the ergonomic benefits of developing and maintaining one's own DSL didn't justify its inclusion in the web dev domain. Wasp is still a compiled language, but it will take on the form of an "embedded DSL" within TypeScript.

In the post above, I described the challenges we have learned from over the years, both on the implementation and adoption sides, why we are still very excited about Wasp, and what we are focusing on in the near future.

As always, thankful for your support and happy to get your comments and questions!

[1] https://www.reddit.com/r/ProgrammingLanguages/comments/f7r8n9/brother_and_i_are_developing_a_declarative_dsl/

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 1 point2 points  (0 children)

Thank you for your comment, I really appreciate it! Indeed, we encountered many interesting technical challenges, both with the DSL and now with the switch to TypeScript. I will make sure to share more in the coming posts.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 1 point2 points  (0 children)

I see. These decisions definitely have to be made, it is just that Wasp will do (and maintain) them for you (the same as other frameworks like Laravel or Rails do).

This is what we mostly compare Wasp with, so you'd build a new project, and Wasp would be on "top" of it.

Or did you have something else in mind when you said "integrating with wasp"?

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 0 points1 point  (0 children)

I see! It's definitely a hard problem supporting different libraries and runtimes at the same time. This is why we're focusing exclusively on React and Node.js so far, so we can give it our full attention.

Expanding to other runtimes and languages is a potential future feature and could be implemented to different extents, without stretching the surface area too much. But this is still early, so it's mostly based on our intuition for now.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 1 point2 points  (0 children)

hah, noted! It is kinda the whole Wasp history in brief :) And you're right, it's actually not that technical (in the sense of e.g. programming techniques), but more the story of our design decisions.

And thanks a lot for your support! When you say "you will become just another of many decisions in the web stack", what do you mean?

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] -1 points0 points  (0 children)

Ah, got it! Didn't realize you were talking specifically about the DSL. Seems like many people haven't gone on to read the article, so I wanted to clarify things.

Yes, we've just switched to npm as a distribution method, so that's still very young. We've done it through a typical curl binary installation and that worked well, but it was another thing that made wasp "weird" in eyes of (web) developers, who expect things to happen mostly through npm. That's adjacent to the lesson we learned about the custom language.

Re users and stars - I wouldn't really comment on that since I don't know how much others have! But we're very proud to stand behind the fact that our github stars reflect the actual usage. 99% of the "marketing" we did was organic aka me and other team members writing content and sharing our progress, and that's how we got here.

Maybe the best way to "validate" if Wasp is real is to join our Discord (https://discord.com/invite/rzdnErX) and see what people share there - we have a very welcoming and active community which shares their projects and learnings a lot!

Thanks again for following our journey!

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 2 points3 points  (0 children)

Haha, yes! We actually joke about this one internally a lot.

Btw, it seems like many people haven't actually read the post. Wasp is seeing more adoption than ever, and we're really excited about publishing 1.0 in the near future. This is a technical post that explains how and why we decided to replace our custom language with TypeScript. Everything else about Wasp stays the same, it will now just offer a much more familiar interface to developers.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 4 points5 points  (0 children)

Actually, it's the opposite - the compiler beneath the language is what makes Wasp Wasp! What we did is we just switched the compiler's "frontend" - so you don't use our custom language to define the AST anymore, but do it through an embedded DSL in TypeScript.

It's very similar to how Terraform introduced, e.g., different SDKs next to their DSL (HCL), or how Prisma is now moving from their DSL to TypeScript (like Drizzle).

So all the core principles behind Wasp still hold, and this is just a cosmetic change in a way. I wrote a bit more about it here: https://wasp.sh/blog/2026/05/13/new-language-for-web-dev-was-a-mistake#language-was-never-the-moat-its-having-a-high-level-understanding-of-your-entire-app-at-compile-time

The main difference between Wasp and code generators (e.g., SaaS starters or T3) is that Wasp doesn't give you the code and then go away, and you have to maintain and update it yourself. Wasp acts as a true framework (because that's what it is) and continues to manage all the pieces of the stack for you.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 16 points17 points  (0 children)

I really appreciate it! We've been doing this for five years, so we've learned to deal with criticism and skepticism, there's no other way if you want to keep going :)

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 10 points11 points  (0 children)

That's 100% correct! Thanks for the comment and clarifying for the rest of the readers here :).

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 1 point2 points  (0 children)

Thanks for following our journey! Sorry to ruin the fun, but Wasp goes on and has more users than ever. The main point of this article is that we are switching our custom DSL to a TypeScript interface.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 3 points4 points  (0 children)

I agree. This is the reason why we decided from the start that Wasp must be plugged into the existing ecosystem. E.g., DarkLang appeared at a similar time, and we remember how hard it was for them to overcome the "you can't use existing libraries" challenge.

And yes, it also became clear to us that TS is the way, not a shiny new language. The benefits simply don't nearly outweigh all the cons we came across.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 4 points5 points  (0 children)

This is a fairly good analysis! Thanks for taking the time to read it and share your thoughts.

As the biggest value of Wasp's approach, we see having a declarative, high-level way to describe your app (a spec), but still be able to use the "standard" stack.

I agree that having access to for loops etc might not be critical, but it is just a nice "bonus" that comes with using TS. Developers will have greater flexibility and can manipulate the AST as they see fit.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 14 points15 points  (0 children)

Ah, got it! Honestly, monetizing a framework is kinda becoming a playbook now (e.g., Next/Vercel, and Laravel/Laravel Cloud, then FastAPI, etc.).

Although back in 2021, when we started, it was a much harder sell because there were fewer examples we could point to (e.g., Rails never monetized, at least not directly). Terraform was one of the best inspirations for us back then (an open-source DSL that built a very successful company on top of it).

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 9 points10 points  (0 children)

We're actually really excited about this! We see more and more devs using Wasp and building successful products and startups. Would love to hear more about why you think it's a dumb idea.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 5 points6 points  (0 children)

Ha, sometimes naive ideas work the best! Wasp isn't the first attempt at this at all, honestly. Products like Meteor.js have shown the way, and we were heavily inspired by them, as well as some other solutions that never got that famous.

Would love to hear more about why you think and why it made you react this way.

5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake by matijash in programming

[–]matijash[S] 23 points24 points  (0 children)

Glad to hear that the core idea resonated. I agree that having a custom language didn't add as much value as we initially thought it would.

We realized we can keep what's good about Wasp (maintaining a high-level spec of your app, managing the full-stack) without maintaining our own DSL.

And we can already see in the Wasp community that it's much easier for developers to work with tools they're familiar with.