What is better about web development vs native and vice versa?

Did you find this post useful? Show some love!
DISCUSSION (21)

For web:

  • It's easier to test UI
  • You can choose the language of your preference
  • Easier to be cross-platform

For native:

  • No browser bugs to worry about
  • Easier to just get started (fewer dependencies)
  • Less worry about supporting outdated OSes

I have to say I disagree with the native benefits you mention.

I don't think there are that many browser bugs to worry about. Maybe just non-supported ES6 features on older browsers, but those are not bugs per-se.

To get started developing native apps you need to install tons of SDKs and frameworks- be it Android or React Native (the few I have worked with). To get started with web dev, you just need any editor and a browser- almost anyone has that right out of the box.

Regarding the outdated OSes, I think Android has some big problems with that. You can't develop an Android app using the latest OS and expect to reach all Android users, not even 50% of them.

It's worse than that unfortunately :/

The latest version has 1% of market share

android versions

taken from developer.android.com/about/dashbo...

No browser bugs to worry about

your own code is a lot more likely to have bugs than the browser

Easier to just get started (fewer dependencies)

What do you mean by this?

Less worry about supporting outdated OSes

JavaScript is completely evergreen and support for legacy systems is a huge issue to tackle when doing native dev

The biggest thing for me is direct hardware access to things like barcode readers, scales, PLCs, specialized printers and so forth. To get these things to work in a browser you usually have to create plugins and such, if they'll work in that context and if you can accomplish it within corporate security policies.

In web development it's much easier to deploy updates, build tests, demo UI's and the like. It's also usually a lot easier to deliver a "minimum viable product" in a web environment.

Many barcode readers will actually register on your device as a keyboard and will be picked up by the browser no problem :D

And for other devices, while it doesn't have a lot of widespread use from the manufacturer side WebUSB has a lot of potential to bring all sorts of peripherals to the Web.

I've done that with hand helds where the user walked through a warehouse scanning pallets of merchandise. But, in this case, I'm talking about an assembly line with 5 to 10 fixed position readers, 1 or 2 scales and 2-3 printers along with PLCs. WebUSB sounds interesting though. I'll look into it.

I'll disagree with the MVP idea. I think if you are deploying to standard hardware then native is much faster to MVP. The process is more streamlined for native.

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.

The coincidence. In the latest digest by @iriskatastic there's a link to a comparison between Ruby and iOS programming that I found interesting: Practical Differences between Working in Ruby and iOS

It seems like the tooling is better on the web development side, especially for testing. Also web dev is less resource intensive. In iOS favor, frontend web dev these days has become quite resource intensive as well.

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 grew up playing around with HTML, CSS, JavaScript, and PHP. I don't think it is better than native but I'm more familiar with it. I guess the folks that grew up with BBC Basic could say the same about native.

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...

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:

  • 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.

Native:

  • more features
  • easier to get good performance

Web:

  • better structured
  • way less restricted
  • best cross platform

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.

Classic DEV Post from Jan 4

It's Just Syntactic Sugar

I've read/heard people express themselves like this many times when talking abo...

READ POST
Follow @chrisvasqm to see more of their posts in your feed.
Jess Lee
Taiwanese American based in Brooklyn. Finding, coding, and operating things at dev.to πŸ‘©πŸ»β€πŸ’»
Trending on dev.to
What discontinued company/product do you wish was still around?
#discuss
Explain Postgresql Views Like I'm Five
#postgres #explainlikeimfive
Goodbye
#goodbye #career
Who is hiring? (As of October 2018)
#whoishiring #discuss
Why "Just Unionize" Doesn't Work
#career #gamedev #computerscience
How do you authenticate your users?
#security #discuss #webdev
I'm a software developer and a meditation teacher - ask me anything!
#ama #productivity #softskills
Dev.to Review #4: Top 7 Of The Week, Discussed
#discuss #audio #bestofdev #popular