If Rumi were a programmer. I'm really good at self-proclaimed manifestos. Too reckless to be an entrepreneur. Open-source fanatic. Bare-metal hardware, virtual machine, and all-computing wisdom.
XML (and HTML) was not designed for dynamic content. No matter how you look at it, HTML is fundamentally a markup language for describing a static document. <button> is new compared to <a>, and still the api is not perfect. That's because HTML wasn't built to be UI-oriented. It was built to be document-oriented.
In addition, the browsers had just recently introduced supports for webworker, which enables concurrent processes in the browser. Native applications have had this baked in for ages because concurrency has been a core to any UI programming.
IMHO I think all the tools and frameworks for web development to date are all just hacks around this fundamental design flaw. BUT, and a big but, frankly, I <3 the web so much because of its flaw. It's liberating (no platform-specific bureaucracy), and being a hack, attracting countless minds to work and experiment with it.
Compare it to, say, iOS development. This is what I have to say--Good luck with getting through XCode's configuration hell, if you could own a Mac at all.
A Browser to test your app, in native sometimes you need to run your code on a physical device to test some feature that uses the hardware.
Simple web server running when in development, in native you'll need either xcode/android studio running along with either a simulated device or running a connection to talk with a physical device & with ReactNative you need a JS server running to fetch your JS. ahhhh so much!!! Hint: expo.io will make it easier)
More tutorials, stack overflow, video content to go to for help
For Native:
You get access to hardware such as camera, nfc, network connection, etc which make it pretty cool & fun to build features on!
Usually are kept simpler than what a Web App would do. So makes it easier to stay small which in term would make it easier to maintain 😃
When deploying your app you get to tell your friends "Check out my app", & they'll say "Is it on the App Store?" & you'll finally get to say "YES!!!!!!!!!!!!"
This is more about why I like it than what it's like:
Ideally, the web is a platform with universal reach that is not controlled by any one corporation or government, and that anybody can publish/deploy to with almost zero cost. I'm Team Web, 100%.
On the other hand, the web has spent the last couple decades reinventing features that native platforms have had, well, natively. And large organizations are still able to exert considerable influence.
But the web has come so far. I'm looking forward to things like WebAssembly and P2P protocols that may let it go even farther.
This question makes a lot of assumptions that aren't necessarily true or applicable.
For high performance computation or throughput so called web development isn't an option. Then you need to do what the corporate giants from time to time have done, write parts of your web app in C++ or similar language.
If you can afford overhead or can't afford such programmers, then web scripting is probably what remains an alternative.
If you can put it in performant binaries and write such code fast, then you probably should unless you expect hardware changes breaking it further down the line.
I agree it depends somewhat on your application and delivery infrastructure. If you have a good structure in place it's probably about the same or better. Mobile apps are like this.
However, when this structure isn't in place, for example, when you have a less-than-cooperative corporate network admin team, then a web app is typically easier to deploy faster and more frequently. That's why a lot of corporate teams have moved from desktop to web, deployment and support issues. It doesn't have to be like that but it has tended to be the path of least resistance.
Web dev = fast feedback loop (refresh page, thing does something)
Native dev = compiler (for most things) makes code faster and checks your syntax etc.
I don't think either is better, both are tools and have their useful use cases. Which one should you pick, whichever you can get things done with. Which ones should companies use, whichever they have the talent for.
Do you want to make a cross platform PWA app? Great, can you hire talented JavaScript developers? Maybe you can only find native devs locally. Maybe they costs less or have a stronger community locally.
Insomniac Games decided a few years ago to use web dev to create in house tools. In the end they realized they have a whole company full of C++ devs and were better off creating native tools.
Latest comments (18)
XML (and HTML) was not designed for dynamic content. No matter how you look at it, HTML is fundamentally a markup language for describing a static document.
<button>is new compared to<a>, and still the api is not perfect. That's because HTML wasn't built to be UI-oriented. It was built to be document-oriented.In addition, the browsers had just recently introduced supports for webworker, which enables concurrent processes in the browser. Native applications have had this baked in for ages because concurrency has been a core to any UI programming.
IMHO I think all the tools and frameworks for web development to date are all just hacks around this fundamental design flaw. BUT, and a big but, frankly, I <3 the web so much because of its flaw. It's liberating (no platform-specific bureaucracy), and being a hack, attracting countless minds to work and experiment with it.
Compare it to, say, iOS development. This is what I have to say--Good luck with getting through XCode's configuration hell, if you could own a Mac at all.
For Web Development:
For Native:
This is more about why I like it than what it's like:
Ideally, the web is a platform with universal reach that is not controlled by any one corporation or government, and that anybody can publish/deploy to with almost zero cost. I'm Team Web, 100%.
On the other hand, the web has spent the last couple decades reinventing features that native platforms have had, well, natively. And large organizations are still able to exert considerable influence.
But the web has come so far. I'm looking forward to things like WebAssembly and P2P protocols that may let it go even farther.
Native:
Web:
This question makes a lot of assumptions that aren't necessarily true or applicable.
For high performance computation or throughput so called web development isn't an option. Then you need to do what the corporate giants from time to time have done, write parts of your web app in C++ or similar language.
If you can afford overhead or can't afford such programmers, then web scripting is probably what remains an alternative.
If you can put it in performant binaries and write such code fast, then you probably should unless you expect hardware changes breaking it further down the line.
I agree it depends somewhat on your application and delivery infrastructure. If you have a good structure in place it's probably about the same or better. Mobile apps are like this.
However, when this structure isn't in place, for example, when you have a less-than-cooperative corporate network admin team, then a web app is typically easier to deploy faster and more frequently. That's why a lot of corporate teams have moved from desktop to web, deployment and support issues. It doesn't have to be like that but it has tended to be the path of least resistance.
I immediately thought of this tweet by Henrik Joreteg (Human JavaScript, Ampersand):
For clarification is this meant to be a comparison of mobile web vs mobile native?
Web dev = fast feedback loop (refresh page, thing does something)
Native dev = compiler (for most things) makes code faster and checks your syntax etc.
I don't think either is better, both are tools and have their useful use cases. Which one should you pick, whichever you can get things done with. Which ones should companies use, whichever they have the talent for.
Do you want to make a cross platform PWA app? Great, can you hire talented JavaScript developers? Maybe you can only find native devs locally. Maybe they costs less or have a stronger community locally.
Insomniac Games decided a few years ago to use web dev to create in house tools. In the end they realized they have a whole company full of C++ devs and were better off creating native tools.
Source: deplinenoise.files.wordpress.com/2...