DEV Community

Jess Lee
Jess Lee

Posted on

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

Latest comments (18)

Collapse
 
pancy profile image
Pan Chasinga

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.

Collapse
 
clickclickonsal profile image
Sal Hernandez

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!!!!!!!!!!!!"
Collapse
 
cathodion profile image
Dustin King

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.

Collapse
 
kayis profile image
K

Native:

  • more features
  • easier to get good performance

Web:

  • better structured
  • way less restricted
  • best cross platform
Collapse
 
cess11 profile image
PNS11

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.

Collapse
 
jfrankcarr profile image
Frank Carr

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.

Collapse
 
denmch profile image
Den McHenry • Edited

I immediately thought of this tweet by Henrik Joreteg (Human JavaScript, Ampersand):

Collapse
 
andrewlucker profile image
Andrew Lucker

For clarification is this meant to be a comparison of mobile web vs mobile native?

Collapse
 
ptasker profile image
Peter Tasker • Edited

Web dev = fast feedback loop (refresh page, thing does something)
Native dev = compiler (for most things) makes code faster and checks your syntax etc.

Collapse
 
justinctlam profile image
Justin Lam • Edited

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

Collapse
 
jfrankcarr profile image
Frank Carr

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.

Collapse
 
nektro profile image
Meghan (she/her)

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.

Collapse
 
jfrankcarr profile image
Frank Carr

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.

Collapse
 
rhymes profile image
rhymes

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.

Collapse
 
makiten profile image
Donald

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
Collapse
 
nektro profile image
Meghan (she/her)

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

Collapse
 
david_ojeda profile image
David Ojeda

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.

Collapse
 
rhymes profile image
rhymes • Edited

It's worse than that unfortunately :/

The latest version has 1% of market share

android versions

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