this post was submitted on 06 Aug 2023
7 points (76.9% liked)
Programming Languages
1167 readers
1 users here now
Hello!
This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.
The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:
This community is dedicated to the theory, design and implementation of programming languages.
Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.
This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.
This is the right place for posts like the following:
- "Check out this new language I've been working on!"
- "Here's a blog post on how I implemented static type checking into this compiler"
- "I want to write a compiler, where do I start?"
- "How does the Java compiler work? How does it handle forward declarations/imports/targeting multiple platforms/?"
- "How should I test my compiler? How are other compilers and interpreters like gcc, Java, and python tested?"
- "What are the pros/cons of ?"
- "Compare and contrast vs. "
- "Confused about the semantics of this language"
- "Proceedings from PLDI / OOPSLA / ICFP / "
See /r/ProgrammingLanguages for specific examples
Related online communities
- ProgLangDesign.net
- /r/ProgrammingLanguages Discord
- Lamdda the Ultimate
- Language Design Stack Exchange
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I do agree that JavaScript will be with us for quite a while still, but that statement has a caveat: WebAssembly
You can use a backend language, for example Rust has good tooling here, and compile it to WebAssembly, which runs in browsers.
That way, your frontend stack can be HTML+CSS+Rust.
This also has various advantages:
No, you can't replace JS with Wasm entirely. Wasm can't access the DOM https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
It’s not a perfect solution yet, but their comment is mostly accurate. wasm-bindgen works well enough to create whatever else is missing. In my opinion, it can feel annoying to use when doing stuff like managing callbacks with rust, but, there are web frontend frameworks that are progressing.
I’ve used Dioxus. If the application isn’t too complicated, it’s not a bad experience. It’s still in development though. There’s also Yew, which has a similar react like design that Dioxus uses, but I preferred Dioxus. Lemmy also actually has a frontend client that uses Leptos, which is another react like framework in rust.
If someone was using egui, I don’t think they would have issues with their user interface on the web. (but be more constrained to the limitations of it)
—-
They were also only correcting the author who stated browsers support only JS. I mean, I’m not sure I would recommend rust to a new developer, but, I think they’re correct that browsers support more than JS. (Browsers are just not supporting WebAssembly to the level of JS yet)
I'm using Leptos myself and my understanding is that it's decisively different from React in that it does not maintain a Virtual DOM. In that sense, it's more reactive than React.
Well, unless you meant something different. I don't know terribly much about React. 🙃
As I understand things, yes, WASM has to interop with JS to handle the DOM access. But I have implemented a small UI with DOM access and had to write no JS myself, because frameworks can generate that interop code for you.