TL:DR - Deno must change syntax in order for it to succeed, attempting to keep the original nodes target audience may cause so many issues in the future.
Ah Deno, You have been spammed all over my feed in every social media possible. The new kid on the block came with a very cool toy everyone wants to play with. But is it really a cool toy ? or the same toy with a cool new paint on it?
Assuming most Node.js developers are well annoyed with the fad of Javascript UI SPA/SSR frameworks (For SEO Reasons: Angular/React/Vue ) and we all had our conversations and arguments of which one is better and why.
This Fad has been slowly been passed from the client to the Server side of JavaScript, Node.
With libraries like Nest/Curve-ball that essentially are a nice wrapper for an express/koa sever application. So what is different with Deno?
I won't go in detail about what is Deno, but I would like to talk about who is Deno, Ryan Dahl Is the original Node.js developer and maintainer for a while. He left the Node.js project and now he is back in attempt to fix all the issues he sees in Node.js today (ahem ahem promises).
So how do you fix something but keep the same target audience ? You keep the syntax…
Deno has its quirks but writing a small Deno app (since that's all that can be done at the moment) is Just like Node, and I mean JUST LIKE NODE.
I can already hear the "But you add async to for loops" comment. But that goes around the entire Idea of single responsibility, Let a single function deal with that, that already has the async () => {} and loop inside.
Deno is very young and has the potential to have a killer ideas. but for that to happen syntax must change, or at least adapt. And here is an example of what I mean:
Lets take Python's print command, which writes to the console (console.log() for JS ), We are all aware of that Print does, what arguments it takes and what to expect as an output. But if i create "Xython" (Just a joke, chill…. ) And say that Print() will look for a physical printer and print its arguments, As a user of the command you will be pretty shocked and confused as why a command so similar does something so different.
The Python example is extreme, but its passes the idea of what In my opinion is the initial flaw of Deno. If you keep the syntax and change under the hood this may cause a huge confusion in the community… and so many errors/issues if someone tries to convert his/her app to a Deno app.
A new coding language is a blessing. It creates diversity in the community and new options to create new or better things, but its a hard sell sometimes. Rust and Go are two perfect examples of this. Here to fix specific issues but it has a "steep" learning curve do to syntax learning which can be annoying at times, especially with JS developers(callbacks, Loosely typed, etc… ).
Javascript frameworks are "just the opposite" the syntax is different but under the hood its pretty similar (or at least the concepts are similar).
I would love to hear your thoughts about Deno on this aspect
Top comments (0)