As great as virtual DOM is, and amazing component based UI design where components just know how to render themselves, I think the problem is javascript. Why would I want to move logic away from languages like ruby, or golang, and into javascript? I can still have components that know how to render themselves I just have more full page refreshes when a form or link is actually submitted to rails non-ajax style. But this is OK. When I need some Ajax I use jquery and do it but my overall feeling is keep javascript to a minimum. Some stuff HAS to be js, like making the textfield get focus in the first name field on a form. So I write a little js for just that and only that. But otherwise no important logic should ever go in js. Am I rite? Here is example app I started with intent to finally learn react or angular and I love where it ended up: https://www.youtube.com/watch?v=_cuhYh68vHM Notice the "add kid" button or "add co-parent" buttons just show hidden form already on page. It has that quick feel of not doing page refresh when not needed. But I don't do 100% Ajax.
[+] [-] sfeng|9 years ago|reply
[+] [-] Piskvorrr|9 years ago|reply
So, although the client-side non-thin non-native apps (a.k.a. in-browser JS fat clients) are easy to write, nice and responsive, I'm sorely missing a way to do some of their heavy lifting server-side.
[+] [-] cmoscoso|9 years ago|reply
[+] [-] jmcdiesel|9 years ago|reply
[+] [-] true_religion|9 years ago|reply
[+] [-] kurtfunai|9 years ago|reply
If you'd like to implement some modern front-end technologies that lend themselves to this style, you could look to Vue.js (https://vuejs.org/) paired with a technology like Turbolinks or Turbograft (which allows for partial page refreshment).
It allows you to build something that feels more dynamic but still is based in Rails/ERB templates.
[+] [-] midgetjones|9 years ago|reply
I've needed to build rich, complex UIs under a deadline, and React has made that way easier and more maintainable than if I'd done it the old way.
[+] [-] lj3|9 years ago|reply
React hasn't been around long enough to make that claim. Angular 1.X has and, imho, it's no more maintainable than your typical jquery program. I suspect we'll find the same thing is true with react in another 3-5 years.
[+] [-] pipework|9 years ago|reply
Have you looked into not-JS languages that eventually produce browser-runnable code?
[+] [-] Piskvorrr|9 years ago|reply
[+] [-] MrBra|9 years ago|reply
OP is questioning their soundness with not just an opinion but with an argued view.
Therefore, OP could get back other argued instances of agreement and disagreement, stimulating a constructive debate, which in turn could end up modifying paradigms and reassigning truth values.
And yeah, they could even get reassigned to OP's view.
[+] [-] renke1|9 years ago|reply
Traditional web sites don't necessarily need JS (although it often makes them better), but web application most certainly need JS.
[+] [-] nickthemagicman|9 years ago|reply
Even Brendan Eich apologizes for it.
Hopefully web assembly gives us options in the browser.
[+] [-] carsongross|9 years ago|reply
Mandatory mention: intercooler.js lets you add ajax to you app w/ very little javascript.
I really didn't like javascript and thought that AJAX should work like regular old web requests and, in the process, rediscovered REST/HATEOAS. I really like it. You can use whatever language you'd like on your backend, all the communication is in HTML, as Berners-Lee intended.
https://github.com/LeadDyno/intercooler-js
[+] [-] dplgk|9 years ago|reply
React et al is not for this kind of work. If you're doing things that add niceties to interactions or some basic form validation, then you do not need a framework like Angular. Use jQuery or similar. But if you need to, for example, write a very UI heavy and data intensive app, then you'll probably want to use an existing framework like React. Or you could spend 6 months or 3 years writing your own framework before getting any actual work done.
[+] [-] badthingfactory|9 years ago|reply
If you're building a more interactive app, for example, let's say Trello; Server rendered views enhanced by jquery is never going to work.
[+] [-] usgroup|9 years ago|reply
[+] [-] midgetjones|9 years ago|reply
[+] [-] viach|9 years ago|reply
[+] [-] GolDDranks|9 years ago|reply
TypeScript also helps. I've been using it for just a few months, but it has already saved my ass many times.
[+] [-] unknown|9 years ago|reply
[deleted]