https://thenewstack.io/will-2022-be-a-golden-age-for-full-stack-javascript/


Will 2022 Be a Golden Age for Full-Stack JavaScript?

28 Jan 2022 3:00am, by Mike Melanson

golden age

For six years now, developer and Best of JS creator Michael Rambeau has been tracking trending projects in the JavaScript ecosystem and assembling them into his yearly JavaScript Rising Stars, which ranks projects according to stars given on GitHub during the previous twelve months. The awards are broken down into a dozen subcategories, along with an overall winner category. Rambeau summarizes the results and then offers his thoughts on the year past and the year ahead. This year’s Rising Stars left off with a prediction, in the form of a question, that we thought deserved a bit more digging into: “Are we going to enter the Golden Age of JavaScript full-stack applications in 2022?”

In his conclusion, Rambeau points not only to the rise of meta frameworks — such as Next.js, Nuxt, SvelteKit and Remix — but also the shift to Rust and Go to bring greater speed to JavaScript tooling, the increased popularity of backend JavaScript runtimes like Deno, as well as JavaScript-based serverless functions at the edge with Deno Deploy, Vercel Edge Functions, Cloudflare Workers, and Netlify Edge.

“Basically, now we are building full applications with one language: JavaScript or TypeScript.”

– Michael Rambeau

In an interview with The New Stack, Rambeau expanded upon his thoughts, explaining that JavaScript has come a long way since its meager beginnings. It now has a position at all levels of the stack, he says, which led him to ask this question about JavaScript entering a so-called “Golden Age”.

The Role of TypeScript

“In the beginning, JavaScript was almost a toy language, because the purpose was to add some nice effects — some animation for example — [and] have some validation in forms, things like that. Most of the work, the real work, was on the backend,” said Rambeau. “But, there was a shift over the last 10 years to empower people in frontend. Basically, now we are building full applications with one language: JavaScript or TypeScript.”

Also sitting in on the interview, Vercel CEO Guillermo Rauch chimed in upon hearing Rambeau mention TypeScript, the language that builds on JavaScript by adding statically checked types. Rauch noted that TypeScript was one of several milestones to help JavaScript “develop from its ‘toy language’ beginning to its world takeover, from frontend to full stack,” and that it was “one of the key innovations that was necessary for JavaScript to scale.”

“JavaScript had this fundamental missing piece in a formal type system — the likes of which Java has, for example,” said Rauch. “I would say the rise of TypeScript is bringing a lot of credibility to the language ecosystem. It’s not just this language that you have to use because the browser runs it. It’s a language that you want to use and it’s a language that you can scale with. It’s also bringing credibility to this: I’m going to do not just the frontend, I’m going to do the backend, I’m going to do microservices, I’m going to do edge functions, I’m going to do workers, and so on and so forth.”

Meta Frameworks Bring JavaScript to the Edge

While TypeScript may afford JavaScript newfound credibility and the ability to function at scale, both Rambeau and Rauch point to the rise of meta frameworks as playing a key role in JavaScript’s growing presence across the stack. Whereas frontend frameworks brought a layer of abstraction to JavaScript development, offering reusable components for functionality and user interface elements, meta frameworks focus more on the compute, execution, and rendering runtime technology, explained Rauch.

“JavaScript is the dominant language today for edge computing.”

– Guillermo Rauch, Next.js creator and Vercel CEO

“We used to be too fixated on putting JavaScript on the device. If we can now take JavaScript and put it in the cloud and put it at the edge, now, all of a sudden, a lot of downsides that are typically associated with JavaScript — like ‘Oh, it’s just that technology for invading my privacy and rendering ads in the client and slowing down my device and draining my battery’ — you’re just playing toward JavaScript’s strengths,” said Rauch. “JavaScript is the dominant language today for edge computing. Obviously, WebAssembly is on the rise, but I feel like that’s like JavaScript, the good parts: run on the edge, run it on the client.”

Rambeau’s Rising Stars conclusion ended on a similar note, remarking that “Meta frameworks like Next.js or Remix take advantage of edge computing, making the integration of backend code in React applications a breeze.”

One Language to Run It All?

When presented with Rambeau’s hypothetical, others pose a simple question: is it good to rely on one language across an entire stack?

Carson Gross, creator of htmx, the framework that “allows you to access modern browser features directly from HTML, rather than using javascript,” argues that alternative languages and methods to using JavaScript across the stack exist for a reason.

“At the end of Terminator, when Sarah Connor is like ‘We don’t know what the future holds now,’ I think we’re there,” said Gross. “I think there’s a lot of people that don’t want the total JavaScript domination future. They want to work in Python, in Django, in Java, or whatever it is. There’s just a lot of stuff out there.”

“Is Javascript here to stay? Absolutely. Will it remain at the pinnacle of the food chain? Hopefully not.”

– Daniel Thompson-Yvetot, Tauri framework

Daniel Thompson-Yvetot, co-founder of the Tauri framework that is listed among the top ten projects on Rising Stars, says that using a single language across the stack can obviously enhance team productivity, cross-system testing, and code reuse, but that it can also lead to problems.

“Combined with problematic supply chains, hacked CDNs, jaded open source engineers, typosquatting, post-install attacks, and a plethora of other ecosystemic dangers, it is clear that the fertile crescent of full-stack Javascript is fully stacked with dragons and quicksand too,” said Thompson-Yvetot. “In my opinion, there is no reason to be a Javascript maximalist. While Javascript is great for making highly reactive user interfaces, it is a minefield of memory unsafety and performance, math problems, and clobberable prototypes. That said, Javascript WITHIN full-stack applications is definitely enjoying a renaissance with projects like Tauri, neutralino.js, Webview. Is Javascript here to stay? Absolutely. Will it remain at the pinnacle of the food chain? Hopefully not.”

What Stands in the Way?

Rambeau is clear on the fact that he posed JavaScript’s “Golden Age” of full-stack utility as a question and not an assertion. He says that there remain difficulties, such as setting everything up “the right way, in a standardized way” that includes things like a dev environment with instant feedback, testing, linting, formatting, type checking, and build for production. While all of these things may exist as separate tools, he says that “it’s not easy to get the perfect lineup to integrate everything right away.”

Beyond that, Rambeau also points to the storage layer and user authentication and authorization as remaining pain points, remarking that, “in a few words: backend features go beyond serverless functions.” Nonetheless, Rambeau seems to remain hopeful for JavaScript’s full-stack Golden Age.

“My dream, as a developer, is a tool that lets me build complete web applications with the same language (JavaScript or TypeScript), without having to worry about anything related to deployment or scalability. A tool that would let me focus on the features I want to provide to users. Ideally, I want to be able to run my app easily in local, deploy to multiple ‘preview’ environments and release to production. Pretty close to the vision of Vercel: ‘Develop, Preview, Ship’,” said Rambeau.

“I’d like to enter the golden age of web development,” he added, “a time when it’s easy to build applications, while focusing on delivering features that bring value to users, rather than having to make daunting choices about the technologies to use.”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s