DEV Community

Discussion on: Imba - a JavaScript alternative for increased developer productivity

Collapse
 
valdoghafoor profile image
Valdo Ghafoor • Edited

Memoized DOM looks awesome but syntax is really not for everyone
IMO it looks messy as there is no separation of concerns nor separator for instructions.
I understand the "more dense code" logic but it's a honey trap.
Separators exists for readability & comprehension, not to annoy people or loose time.

  • Your bundler seems very close to Vite. Is it alike ?
  • Is Backend part only node written with your syntax ?
  • Is there a decoupled version of Memoized Dom so we can use it with current Web Standards ?
  • If you are trying to solve a specific problem with Imba, what is it ? You talk about productivity but creating a new language will inevitably push people to invest a lot of time in learning it. How do you justify this investment ?
Collapse
 
wadecodez profile image
Wade Zimmerman

Came here to say something similar.

IMO, Imba is a DSL for JS framework diehards. For most devs, this language will be too syntactically different. There are too many key words, and the flow is difficult to follow.

That said, I imagine this would be good for fast paced freelance style work. Once learned, you could probably pump out web-apps by the hour.

Collapse
 
konung profile image
konung

I disagree with "or most devs, this language will be too syntactically different. "

To me comming from Ruby/Elm/Elixir/CoffeeScript this actually looks very intuitive. Much more so than other JS frameworks I used, like React or Angular.

Thread Thread
 
johnaweiss profile image
johnaweiss

JS devs have many JS-transpiled languages to choose from, and now they have another. Great!

Collapse
 
joserochadocarmo profile image
José Rocha

Too syntactically different?... developers are so blinded nowdays that they even could see a clean and easy language. Imba is extremelly easy and very human friendly, very similar to Ruby and Python. But ok, let continuous to be verbose. Lets write ugly React code.

Thread Thread
 
christopher2k profile image
Christopher N. KATOYI

Verbosity isn’t a BAD BAD thing if it helps readability and comprehension. I also think the comparison with Python isn’t valid. Python isn’t a DSL aim to handle content markup, style and business logic.

Thread Thread
 
valdoghafoor profile image
Valdo Ghafoor • Edited

Ruby & Python are old languages and were not designed to be used in Frontend context. It just makes no sense. It would only be useful for backend people coming for some frontend gigs without the deep comprehension of what's really going on in Javascript.

What you call "human friendly" is YOUR opinion. If "human friendly" is just writing "sentences" with spaces as only separator, then I except your code to have the same flaws as humans sentences have: lack of explicit instructions and interpretation issues.

However Javascript & web standards exists without your opinion and millions of devs around the world are very ok with it.
Imba may just be sugar for lazy backends ... (Except memoized dom, this can be pretty good)

Creating new syntaxes may just split our strong community into pieces, and force developers to make a choice and loose job opportunities. Vue & React are close enough to be able to make a switch if needed, because they still rely on JS comprehension.
Imba doesn't...

Verbose is not wasting time, verbose is just explicit...
You loose a small time once while writing it, but you win time in readability/comprehension every time you go over that code again.
It's like tests...

Thread Thread
 
johnaweiss profile image
johnaweiss

There are many languages in the world, and room for plenty more. Don't worry, IMBA won't "split" the JavaScript community -- JS is way too huge.

Collapse
 
somebee profile image
Sindre Aarsaether

Thanks for talking a look! I understand your initial reaction, the syntax is definitely not for everyone. I don't think it's a honey trap though. I agree that some of the examples may even go too far on not using separators and parenthesis, but it is not like you cannot use them. It is similar to Tailwind in this regard. Looking at it initially it is a lot to take in, but it doesn't take that long to learn, and once you've learned it you're not going back :)

  • Yes, the bundler is quite similar to vite. Both are using esbuild under the hood, which deservers all of the credit for the speed and flexibility of bundling -- it is an incredible piece of software.
  • Yes, Imba compiles to straight forward js, and you would use express/koa etc and run through node.
  • There is no decoupled version of memoized DOM. I would love for other languages to take inspiration from it though.
  • Tbh, I'm just very passionate about improving the tools I use myself. I'm trying to make Imba the most efficient way to bring ideas (ie scrimba.com) to life. It won't be worth your time investment unless enough other people also find it productive and fun, since having a large community, docs and examples is really important :)
Collapse
 
johnaweiss profile image
johnaweiss

I'm a strong supporter of separation of concerns. Also a huge fan of reducing typing and eliminating verbosity. Why couldn't Imba do both?

Collapse
 
johnaweiss profile image
johnaweiss

People learn new languages all the time, and new languages are introduced all the time. No one is forced to learn it. By your logic no one should ever introduce a new language because someone might have to learn something new. The horrors!