5 ms·
tl;dr: "As long as you have a good browser, your device won't become a brick." Great post - while web apps are 'behind' native right now, it'll only take a few
by wgx 15y ago
tl;dr: "As long as you have a good browser, your device won't become a brick."
Great post - while web apps are 'behind' native right now, it'll only take a few more APIs to make webapps the natural choice. And, developers to start working with them of course (local storage, geo, viewport, etc).
- leon_ 15y agoFor me to develop anything webapp related the following must happen: The development environment has to become a lot better. I don't want to write my application in 3 different languages on 3 different layers using 3 different technologies. And I certainly don't want to write anything in JavaScript.
- ihatelowercase 15y agoWell, that only shows your ignorance, not the state of web development.
- Newky 15y agoCan I ask why you don't want to write anything in javascript, used in the right way, it is a very powerful and expressive language, plus with technologies like coffeescript, you can write Javascript (the good parts) in a clean and neat format. Although I agree with your point on the different layers, and different technologies, its worth considering the reach of a web-app, and the theoretical develop once, deploy on the most important platforms (iOS, android etc).
- leon_ 15y agoHmm, I just don't like JS. It feels to me rather fragile. Alone == and === let ring my alarm bells. And the most examples you can find on the web for JavaScript are just a messy hell. Abuse of closures (are those real closures in JS anyway?) leads to spaghetti code. And most of the major frameworks tend to support this "paradigm". > theoretical develop once, deploy on the most important platforms After all those years that's something I won't buy :) Today's html documents are still filled with "ifdefs" for different MS browsers and special css selectors for every major html rendering engine. Testing a webapp for compatibility with common browser/os combinations must be hell. But there are other reasons why I tend to avoid webdev: There are considerations like security. If I deploy a desktop app and one user gets hacked because I messed up then this one user got hacked. Depending on the bug hacking more users tends to be non trivial. If on the other hand I have a glitch in my web app suddenly all my customers' data is in danger because all the juicy targets sit in one place waiting to be mass-hacked by a script. I hope that webapp shops hire a full time security guy for their apps but ... who am I kidding ... most of the apps probably run on unsecured boxes and have a dozen of (forgotten) developer backdoors in them. Security is just a huge and complex issue I wouldn't want to deal with. (And couldn't to be honest.)
- ootachi 15y ago"Abuse of closures (are those real closures in JS anyway?) leads to spaghetti code." Yes, of course they're real closures.
- mnutt 15y agoSecurity cuts the other way, as well. If you put out a bad desktop release with a major security flaw, you'd better have a good way of force-upgrading everyone or you'll have some percentage of users running the insecure version forever.
- simonw 15y agoYou're probably going to find that the development world leaves you behind then.
- leon_ 15y agoYou shouldn't assume you know how the development world looks like only because you have a bunch of vocal webdev evangelist blogs in your RSS reader.
- Tichy 15y agoI suppose you could use GWT to compile Java to JavaScript. To me GWT is still the weirdest open source project ever: why would you go to these lengths to be able to write in an ugly language (Java) that compiles to a pretty language (JavaScript). But to each their own - I know people who use GWT in production.
- wladimir 15y agoA big reason to use GWT, from what I've heard, is code sharing between client and server code (for example, data validation). Of course, nowadays you can do the same by using javascript both server and client side...
- richardw 15y agoI use both Javascript/JQuery and GWT, depending on the task. I'd use GWT when I want more predictability - when an app is complex enough that I'd like to be able to move bugs to compile time instead of run time (unit test or otherwise). With GWT you don't look for a bug in Chrome's Javascript console, say. A new browser comes out with weird specifics? Great. Switch on the flag for that browser and recompile, and that browser gets a unique snowflake version that works perfectly. Over time, GWT will improve the JS it compiles to, even given the same source code. It gets faster independent of the browser improvements.
- Stratoscope 15y agoI tend to agree with you - I greatly prefer JavaScript to Java myself. But I did hear one argument for GWT that I found persuasive - that they are able to do optimizations in the generated JavaScript code that we probably wouldn't - or couldn't - do in more idiomatic JavaScript. I didn't find this persuasive enough to use GWT myself, mind you. :-) But it does seem like a valid reason someone might want to use it.
- ghenne 15y agoThere are some interesting projects out there for you. One of them is NS Basic/App Studio, which provide a VB like environment, then generates the JavaScript, HTML and CSS. (You can also program in JavaScript.) I agree - dev environments have to become more user friendly to be really good. (disclosure - I'm one of the guys having fun working on the NSB project)
- hrabago 15y agoFunny, when I had the same concern, my next thought was "Well then it's time to start writing my apps in Javascript".
- bergie 15y agoI think it isn't so much about the technology lagging behind, but more about understanding on how to best use the web technologies on mobile, and probably libraries packaging this understanding into easy to use format. Think of the "AJAX boom" of around 2005. XmlHttpRequest had been around since late 90s, but only then mainstream developers understood the potential for building more responsive web applications.
- st3fan 15y agoNot just raw APIs. What I miss the most are tools and frameworks. For example even putting together a basic UI for a simple todo list is a challenge for me to do in HTML. I need to know HTML, CSS, positioning, differences between mobile browsers, platform-specific css tricks, etc. It is really not so simple. On iOS I just drag and drop stuff in Interface Builder and connect outlets and actions. Done. The other thing is standardized frameworks. Everybody hates frameworks but on iOS (and Android) they implement all the hard stuff. Want to show a list with a million items? There is a framework that deals with that. Just fill in the blanks (create table view rows, lookup data) and you are done. In the HTML world not so much. It is all way too low level. Developers either have to start from scratch or use something like jQuery. But all those frameworks are young and inherit the basic problems of the web platform. jQuery Mobile is a good start, but some things really need to become part of a W3C standard and implemented natively for performance in my opionion.