Below, I have wrapped up the languages and their respective tools I am going to use for my next repo(s). Here is my takes and argumentation to arguably top programming languages and tools that are oriented towards safety, reliability, and efficiency as a whole:
- Go is a performant statically-typed back-end language that embodies extra lightweight concurrency with “goroutines” as “subthreads” hence outshining JavaScript async, in conjunction with Fiber, as the lightweight and fast web framework boasting Fasthttp, to enable us to build web servers, REST APIs, HTTP connection, like request handling, and routing easily and flexibly, rather than using JavaScript with it’s scalable yet overheadful mainstream framework [React] having to use virtual DOM and carrying over it’s extensive UI and libraries and vast ecosystem. Go also features built-in
html/template
library package allowing us to achieve SSR/SSG by pre-rendering the page on the server at build time, enabling the page reload instantly on the client side.- HTMX adds interactivity, directly with the actual DOM, to the HTML elements via attributes like
hx-get
,hx-target
, etc. without needing to define their JavaScript code manually, hence minimal JavaScript bloating. Access to DOM and making HTTP requests for dynamic page are the whys HTMX is built on JavaScript.- Bootstrap CSS framework provides a foundation of essential UI elements and styles along with it's grid system that can be applied to the HTML elements so as needing minimal configuration.
- Lit, in it’s latest version of 3.0, might become handy as well to eliminate boilerplate codes if we use the exact same element over and over again, this is typically be the case when we have lots of similar UI elements and we are only to tweak relatively a few of their properties, though Lit element creation is all done in JavaScript regardless of it’s light-weightness.
Asynchronous web framework alternatives:
- Actix Web: one of the most popular and performant web frameworks, lightweight, support WebSockets, and HTTP/2, middleware support for request processing, asynchronous handling via Rust's async/await.
- Rocket: Another widely used web framework that emphasizes usability and developer experience. It's designed to be easy to use, with a focus on safety and type-safety, support for templating, JSON handling, and form data, supports asynchronous request handling (in the latest versions)
- Warp: a lightweight, composable web framework built on top of the Tokio asynchronous runtime. It is designed for building APIs and microservices, with Composable filters for request handling, asynchronous processing and easy integration with the async ecosystem, support for JSON and WebSockets
Web apps framework alternatives with WebAssembly
- Yew: A framework for creating multi-threaded front-end web apps with WebAssembly. It draws inspiration from React with routing, state management, effects, virtual DOM and component-based architecture and is designed to make building user interfaces straightforward.
- Seed: Another Rust framework for building web applications using WebAssembly, follows the Elm architecture, simple and easy-to-use API, emphasis on functional programming principles, good documentation and community support.
Library alternatives to facilitate working with WebAssembly
- stdweb: Provides bindings for JavaScript APIs to interoperate with JavaScript.
- wasm-bindgen to simplify the communication between Rust and JavaScript, to be used in conjunction with the frameworks.