6 ms·
Speaking as a web developer, this is sad, but true. However, what's even sadder to me is the fact this continues to be true despite the fact that, believe it o
by lewisl9029 11y ago
Speaking as a web developer, this is sad, but true.
However, what's even sadder to me is the fact this continues to be true despite the fact that, believe it or not, the web has been the platform where most of the innovation in UI development paradigms has been taking place in the past few years. And I don't just mean in terms of the sheer number of new things coming out.
The web community pioneered UI development paradigms involving functional programming techniques and immutable data, and have brought its benefits to other platforms (through projects like React Native). I personally would never want to go back to the old way of building UIs. And I suspect I'll feel the same way about client-centric data fetching when I get to try out Relay/GraphQL, Falcor, Om Next, etc in production.
I really want Firefox OS to be successful for this exact reason. I don't want to have to make compromises between the best experience for my users and the best experience for myself as a developer. With a platform that makes web the native UI technology, we shouldn't have to make this compromise in theory, but Firefox OS's execution thus far has left much to be desired.
- pjmlp 11y agoI don't believe it. As someone with lots of native UI experience, that has to occasionally support web projects, the web is just plain clunky and playing catch up with the RAD tooling we enjoy since the mid-90 on native platforms.
- lewisl9029 11y agoI was mostly referring to development paradigms and methodology in my original post, but in terms of tooling, I personally haven't see any tooling on the native side even approach the increased productivity provided by the instantaneous feedback loops that countless hot-reload implementations can offer for the web. https://github.com/gaearon/babel-plugin-react-transform/ https://github.com/gaearon/babel-plugin-react-transform/ http://gaearon.github.io/react-hot-loader/ http://gaearon.github.io/react-hot-loader/ https://github.com/bhauman/lein-figwheel https://github.com/bhauman/lein-figwheel
- mixmastamyk 11y agoI've done similar with inotify (dnotify before that) and Python now for over a decade, and it is an interface than can automate anything. I use it with doc generators also. I believe I used something similar called fam in the 90's but that may have only been on SGI.
- lewisl9029 11y agoFilesystem watching is only part of the equation though. Live reload has been available for the web and various other platforms for a long time, but the traditional approach to live reloading does not preserve application state. These new hot reload implementation allows your app to be reloaded with your new changes without affecting the state of the application, and is not practical unless your application has been developed with a focus on functional techniques and careful management of application state. This probably doesn't sound like a significant difference, but in practice, it is a huge boost to productivity, especially in a non-trivial app where reloading the entire app and then reproducing the app state manually with every file change can become quite tedious.
- mixmastamyk 11y agoSounds neat, I do love a rapid feedback loop, although I may have done similar with a debugger and the reload built-in come to think of it. In the types of apps I think we're talking about, typically most state is in the database and not much is going on in the client.
- lispm 11y agoThat's why Common Lisp / CLOS has functionality like * CHANGE-CLASS (change the class of an object to a different class), * update-instance-for-different-class (updating the object after a class change, one can provide methods which will be lazily called when needed), * update-instance-for-redefined-class (updating the object after redefining a class, one can provide methods which will be lazily called when needed), * LOAD (load source or machine code), * EVAL (eval expressions) * COMPILE (compile code in memory to memory), ... One then always develops with a live application. Classes and objects can be updated in-place...
- bad_user 11y agoI was pleasantly surprised that the latest Chrome for Android delivers push notifications for Facebook due to a new W3C API, and Facebook's mobile web interface has been in good shape for some time, so right now Facebook's native app is completely optional. Which is a good thing, given how many permissions Facebook's app requires. Apparently this was announced back in April, but I just noticed it, due to Facebook being updated: http://blog.chromium.org/2015/04/reaching-and-re-engaging-users-on.html http://blog.chromium.org/2015/04/reaching-and-re-engaging-us... Along with other things such as the app manifest, Chrome on Android is leading the pack in terms of making the mobile web feel native. Previously this title belonged to iOS Safari, unfortunately Apple dropped the ball a long time ago. I've been a long time Firefox user and I'm using Firefox on Android as well. But I do think they could do a better job, I mean I'm all for Firefox OS and what that means for Mozilla, but I feel their Android effort is subpar and that's a shame, given that Android is the modern Windows and there's plenty of room for Firefox on it. I mean right now Firefox is the only app I have that wasn't updated for the material design guidelines and they didn't even try to fake it. And that would be OK, but I've been waiting for things to get fixed ever since forever, like the Add to Homescreen functionality which is completely broken. But anyway, people that bemoan web interfaces are usually ignorant of present day web interfaces that people use. You can't name an email client that's more usable than GMail's web interface. And surprisingly FastMail on a mobile browser is almost as usable as native GMail, being all web. Facebook and Google Maps are 2 other example of having awesome mobile web interfaces. Of course, people focus on shiny rather than utility. But I don't care how usable or shiny your iMessenger or your FaceTime is, because I don't own an iOS device, not anymore. And your native app might be great, but if it doesn't have a web presence, I personally don't care much about it because I change devices often.
- tracker1 11y agoI disagree... They've removed functionality from the mobile web interface. Specifically, I'm unable to tag friends when sharing a post. When I share a video link (youtube, etc) it no longer creates a thumbnail or embeds the link as it does on desktop web. I'm unable to tag friends inside new/shared posts, only in comments. I won't use the full client because it eats my battery, and they separated the messenger interface requiring yet another app with battery eating features.