Live data from Hacker News

WalmartLabs opensources its tool for bringing React Native to mobile apps

techcrunch.com

21–30 of 47 posts

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#21

Why a company the size of Walmart does this cross platform crap is beyond me. Do they not have the resources to actually write real native apps in actual Swift? Why is it desirable to code to the the worst common denominators for devices? Cross platform is just lazy. And React “Native” is inferior to actual native.

Ultimately the declarative way of writing apps is objectively better and more predictable than the old mutable way :) Now that said, I agree on the performance costs, and too wonder why Walmart is hellbent on this strategy, given the endless resources they have. But at the end of the day, they have a head of engineering and need to make their lives simpler just like everyone else. If you know how to squeeze the perfo…

Also, coding in the React style is the "best DX for UI development" mainly if you're a web developer who doesn't want to learn the platform or the native tools but still wants to have "mobile developer" on your resume. (IMO)

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#22
post #16

Are these discards from the jet.com acquisition or actual critical path libraries?

No, Walmartlabs is the SV based version of walmart meant to build a walmart.com 3rd party merchant amazon killer. They use a lot of node and JS.

Jet.com is a NY based startup. They use F#.

They have quite separate code bases, and as far as I can tell no plans to merge them.

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#23
post #15
post #7

Earlier quoted context omitted.

I’ve done both native (Mac, Windows, iOS, Android, Gtk+, Tizen) and React. Your post comes off as condescending fanboy hype. I understand you want to promote React, but this approach does more damage than good. My personal experience is that “declarative” in this industry is a perennial silver bullet. What often goes unnoticed is that declarative languages are not very future-proof, as extensions are constrained by t…

> Java+XML and CSS — both of these were hailed as declarative breakthroughs originally, and today they are the stuff of “TheDailyWTF” nightmares. Java+XML isn't declarative, XSLT was. XSLT declined when XML declined. CSS works quite well even today and is still widely used. Declarative coding style is in many ways resistant to obsolescence since you're just declaring what you want than how to do it. The best example…

I'm a fan of declarative (eg. logic) programming but how is XSLT declarative when Java and XML isn't? XSLT has been proven Turing-complete a long time ago (eg. [1]), and if anything, is functional, being derived from DSSSL/Scheme up to the XML syntax.

[1]: http://conferences.idealliance.org/extreme/html/2004/Kepser0...).

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#24
post #11
post #9

Earlier quoted context omitted.

> imagine you’re stuck working in a 15 year old patched up JavaScript/HTML hybrid That should be quite a powerful language by then, if it's not already.

My point was that the world around will change, and at some point the declarative language that seemed so succinct will become clunky and inadequate to express the new requirements. Java+XML really is the poster child for this. There was a time when it was the fresh declarative kid. React will most likely follow a similar path, not through any fault of its own.

> My point was that the world around will change

Same will happen to your Swift or Android-Java codebases though. Go try to build and run on your 2015-17 machine+OS+devenv any just-slightly-real-world-beyond-hello-world run-off-the-mill 15-year old Visual Studio 6 line-of-biz (or other) codebase right now.. or whatever they used on Macs back then (I'd imagine the compatibility story for pre-OSX stuff is maybe even slightly worse than in MS land). Software that's meant to survive is meant to be maintained, I guess.

Or the server side of a web app? What's it gonna be, CGI or ASP 3 or PHP 3.. always the same story.

Bringing up HTML/JS/CSS from those days to function (though not shine) for today's requirements might prove comparatively tame by comparison =)

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#25
post #24
post #11

Earlier quoted context omitted.

My point was that the world around will change, and at some point the declarative language that seemed so succinct will become clunky and inadequate to express the new requirements. Java+XML really is the poster child for this. There was a time when it was the fresh declarative kid. React will most likely follow a similar path, not through any fault of its own.

> My point was that the world around will change Same will happen to your Swift or Android-Java codebases though. Go try to build and run on your 2015-17 machine+OS+devenv any just-slightly-real-world-beyond-hello-world run-off-the-mill 15-year old Visual Studio 6 line-of-biz (or other) codebase right now.. or whatever they used on Macs back then (I'd imagine the compatibility story for pre-OSX stuff is maybe even sl…

I can’t speak much for the rest, but old Mac codebases in particular hold up better than you might think. You can write an application that runs on every version of Mac OS from 1.0 (circa 1985) up to High Sierra with just a handful of conditionals through the use of Carbon [0]. Porting pre-OS X software should be similarly simple, given that it’s written in C or C++ (Pascal was somewhat popular for classic Mac apps, not sure what getting that code running on modern machines would look like).

When it comes to “new world” Mac stuff, the things keeping something written for OS X 10.0 from running on modern macOS have more to do with API deprecations than anything else. Objective-C is still widely used and is well supported (even with Swift’s growing popularity), so usually getting an old codebase of this nature running just means fixing a couple of deprecation errors, fixing a bunch of warnings, and hitting compile. The nature of change in the native sphere has largely been evolutionary, not revolutionary, so it’s largely stayed the same with new things being added. It’s not like the web where wheel reinvention and fads are a constant.

[0] http://blog.steventroughtonsmith.com/post/109040361205/mpw-c...

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#26

Why a company the size of Walmart does this cross platform crap is beyond me. Do they not have the resources to actually write real native apps in actual Swift? Why is it desirable to code to the the worst common denominators for devices? Cross platform is just lazy. And React “Native” is inferior to actual native.

It's this assumption that "same experience on all platforms" (aka "branding") is desirable to "native experience on all platforms". Facebook wants facebook to feel like facebook whether you're on an iPhone or an Android or your PC. Same with Chrome - it eschews native platform UI on all devices in favor of looking the same everywhere. Good UI - by definition - doesn't get in your way. But "good UI" may not be "good m…

> But "good UI" may not be "good marketing" or "good branding" and these companies are placing a premium on their brand at the cost of the user experience.

it's unclear where 'at the cost of the user experience' comes in.

you say that good ui "doesn't get in the way", and later that platform windowing toolkits should be used to avoid distraction. this seems to suggest that platform toolkits are "good ui".

aside from branding, one driving force for cross-platform ui is that some don't agree with the premise of platform uis being "good ui".

> Think about it - how many people (as a percentage of users of an app) will use it on multiple platforms?

depending on the region, i'd wager a lot, actually.

> Hubris also comes into play. Obviously the UI models used in xxx platform are not perfect, but every app designer thinks "users will prefer this over xxxx's default, no question about it" (...)

do any compare various options and using their reason, experience and advice, and then conclude a particular choice is preferable because of it's properties and characteristics?

> (...) because they view their layout/navigation/ui/style to be the greatest thing since sliced bread and cannot fathom that users might actually prefer the device's native windowing/widget toolkits to their abomination.

how many people are we talking about?

truly it is terrible for the fascist designer to impose their design abomination upon the beleaguered users.

...but what about the liberated users no longer under the savage yoke of the gross and repellent 'native widget toolkit'?

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#27
post #4

Earlier quoted context omitted.

Absolutely agree, I avoid react / JavaScript ‘apps’ at all cost, they perform poorly, use excessive resources and seem to discourage an engineering mindset when writing code.

Out of curiousity, how are you able to detect React Native apps so you can avoid them? Facebook introduced React Native to their main app months before anyone noticed. Airbnb also was using it for a while before they publicly announced the fact.

[deleted]

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#28
post #4

Earlier quoted context omitted.

Absolutely agree, I avoid react / JavaScript ‘apps’ at all cost, they perform poorly, use excessive resources and seem to discourage an engineering mindset when writing code.

Out of curiousity, how are you able to detect React Native apps so you can avoid them? Facebook introduced React Native to their main app months before anyone noticed. Airbnb also was using it for a while before they publicly announced the fact.

At Airbnb, most core flows (search, home booking, map, trips/itinerary, inbox / messaging, the signup/login screen, profile, settings, and the hosting flow for listing your place) are all native. Most screens are built using a declarative abstraction on top of UICollectionView and UITableView.

The Trips tab in the app (itinerary) was actually rewritten in native after originally being implemented using RN.

It’s really too bad that people have this perception of RN’s use at Airbnb. I feel like people assume the whole thing is RN, which couldn’t be more wrong.

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#29

Earlier quoted context omitted.

Ultimately the declarative way of writing apps is objectively better and more predictable than the old mutable way :) Now that said, I agree on the performance costs, and too wonder why Walmart is hellbent on this strategy, given the endless resources they have. But at the end of the day, they have a head of engineering and need to make their lives simpler just like everyone else. If you know how to squeeze the perfo…

Declarative way of thinking is closer to how humans think while imperative code is closer to how machine works. That is why declarative way is objectively better and more predictable to model human behaviors, not necessarily the more efficient for machines. Performance will improve due to Moore's law and optimizations. The big picture is with more and more companies open source their technologies, software developmen…

> while imperative code is closer to how machine works

somewhat. less so these days than say back in the 8086 era.

cpu's these days do all kinds of wild stuff, with their long pipelines, staged execution, executing multiple instructions simultaneously, and other interesting behavior.

combine that with smarter compilers that can transform code in various ways to capitalize upon cpu developments, and you might be slightly surprised how some ostensibly boring and linear imperative code actually behaves on a present day cpu.

Re: WalmartLabs opensources its tool for bringing React Native to mobile apps

#30
post #7

Earlier quoted context omitted.

Ultimately the declarative way of writing apps is objectively better and more predictable than the old mutable way :) Now that said, I agree on the performance costs, and too wonder why Walmart is hellbent on this strategy, given the endless resources they have. But at the end of the day, they have a head of engineering and need to make their lives simpler just like everyone else. If you know how to squeeze the perfo…

I’ve done both native (Mac, Windows, iOS, Android, Gtk+, Tizen) and React. Your post comes off as condescending fanboy hype. I understand you want to promote React, but this approach does more damage than good. My personal experience is that “declarative” in this industry is a perennial silver bullet. What often goes unnoticed is that declarative languages are not very future-proof, as extensions are constrained by t…

> What often goes unnoticed is that declarative languages are not very future-proof [...] Surely that will not happen to React, you say, because it gets so many things right? Surely that will not happen to React, you say, because it gets so many things right?

It is often not appreciated how simple React really is. Its simplicity is actually well suited to survive a long, long time. Forget classes, lifecycles, schedulers and all this stuff for a moment. If you boil it down what you're left with is but a single signature: `createElement(name, props, chilren)`. That's what JSX transpiles into.

With that you can map pretty much every visual-oriented api on earth and as we can plainly see it goes further than that and starts rendering flat out everything that can be rendered in the same friendly manner we're used to:

shell consoles: https://github.com/Yomguithereal/react-blessed

word: https://github.com/nitin42/redocx

pdf: https://github.com/diegomura/react-pdf

samplers: https://twitter.com/GabeRicard/status/911989894267973633

mobile: https://facebook.github.io/react-native/

3d: https://github.com/Izzimach/react-three

windows: https://github.com/Microsoft/react-native-windows

macos: https://github.com/ptmt/react-native-macos

sketchapp: http://airbnb.io/react-sketchapp/

keynote: https://twitter.com/nishb1/status/913744410537537536

VR: https://facebook.github.io/react-vr/

hardware: https://github.com/iamdustan/react-hardware

What's even crazier is that everyday eco-system packages can be applied to the wildest targets. For instance animations via react-motion on shell consoles: https://github.com/gaearon/react-blessed-hot-motion or react-router on VR: https://youtu.be/Mf0Fy8iHp8k?t=12m25s

It's always the simple, almost trivial ideas that seem to survive and spread. React was released 4 years ago and has kept to a stable api. 16 was a rewrite, and it's a drop in replacement.

Post reply on HN