
Microsoft Launches React Native for Windows - coldtea
https://techcrunch.com/2019/05/06/microsoft-launches-react-native-for-windows/
======
jclay
I switched from Mac to Windows a few years ago and I have to say, I’m always
excited to see their latest announcements and OS updates.

When was the last time macOS had an update that was exciting for developers?
They’re phasing out OpenGL, and there is no CUDA support for Mojave. Docker
support was pretty frustrating the last time I tried it as well. No big
features in the last few macOS releases. All the latest features increase
lock-in and don’t exist outside of the mac ecosystem (looking at you Handoff
and iMessage)

Microsoft now has:

\- VS code

\- A new terminal announced today (a very welcome change)

\- Ability to natively run any linux distro, with GUI! (WSL w/ X11 server)

\- Hyper-V powered docker containers (and they’re fast)

\- Great CUDA support

\- One click to install and run Ubuntu desktop in Hyper-V

\- Chocolatey has grown on me and is an effective brew replacement.

Overall, i’m very satisfied with the development experience on Windows, and
the pace at which it is improving makes me very confident that it will
continue to attract more devs.

I also like that they make their products available on other platforms. I know
that if I switch back to MacOS my OneNote, word docs, and C# code can be
brought over without issue. The same equivalents for macOS don’t provide any
cross platform equivalents.

I’m still holding out for tabbed windows in the file explorer, though :/

~~~
dawnerd
I find it amusing you claim docker on mac was frustrating when it's damn near
useless on Windows. File change notifications still don't work right (as of
about a month ago).

Edit: I'd love to use Windows as my daily BTW, it's just not there yet for me.
I don't want to have to jump through hoops to make my current workflow, work.

~~~
pknopf
With the new WSL2, you can run Docker natively!

~~~
tracer4201
How is performance? I used Windows subsystem for Linux a year or so ago. Using
a package manager to pull down some dependencies, which should take on the
order of tens of seconds took several minutes to complete. It was painfully
slow.

~~~
pknopf
WSL2 now uses VM technology, so the performance is now a lot better.

~~~
panpanna
WSL performance problems were mostly due to slow I/O.

How does virtualization fix that?

~~~
pknopf
Translating syscalls to the NT kernel is slower than running Linux with a
virtual filesystem.

~~~
panpanna
But in the end, the virtual filesystem is backed up by done Windows storage?

~~~
pknopf
Idk, but Microsoft cites these differences for the performance improvement.

Maybe things can be speed up/cached when you are one-to-mapping the syscalls
to NT kernel.

------
dfabulich
I think it's wrong/confusing to say that they're "launching" React Native for
Windows. React Native for Windows is out already, and it works fine. They're
just announcing the kickoff of a C++ rewrite.

[https://github.com/Microsoft/react-native-
windows/blob/maste...](https://github.com/Microsoft/react-native-
windows/blob/master/vnext/README.md)

> _In this sub-folder, we are working on a vnext rewrite of React Native for
> Windows10 built in C++ that reuses the C++ core bridge implementation from
> Facebook’s React Native. This will allow React Native for Windows10 to
> innovate and provide features by sharing the same core as Facebook’s React
> Native._

Cool, but this is basically just an implementation detail.

(I _do_ wish it supported Windows 7 and 8.)

~~~
BinaryIdiot
Yeah, I think you're right. A lot of people have even shipped applications
using React Native for Windows and it's been around for years. The article, in
the way it's written, makes it sound like they just opened it up today which
is wrong.

The C++ rewrite is exciting but yeah, it's more of an implementation detail. I
wonder if Microsoft words the announcement better (only saw the one from Tech
Crunch).

------
wtdata
I think it won't be long before Microsoft returns to the smartphone market
with an OS based on Windows, and this time it won't be a flop.

~~~
nwah1
The rumor for a long time was that the Windows Phone brand was dead but that
they might want a "Surface Phone" possibly with x86 emulation, which could
double as a PC in your pocket. They just tested the water with ARM-based
Windows laptops that have x86 emulation.

~~~
baybal2
Surface Phone is certainly not a bare rumour. Prototype PCBs and unleaded
parts of the device been spotted around Shenzhen for around a year now.

Moreover, Microsoft itself been said to go around different prototyping shops
here.

Lakefield was once said to be a codename for Surface Phone, but now been
discovered to be a codename for Intel CPU purpose made for it.

~~~
baybal2
unlabeled _

------
sccxy
Build 2019 gives us so many exciting news today.

This year I switched my developer machine from Macbook to Thinkpad and so far
it has been wonderful.

------
indream
Announcement:
[https://www.microsoft.com/developerblog/2016/05/26/creating-...](https://www.microsoft.com/developerblog/2016/05/26/creating-
universal-windows-apps-with-react-native/)

------
niutech
There has already been ReactXP from Microsoft to make apps for web, iOS,
Android, and Windows:
[https://microsoft.github.io/reactxp/](https://microsoft.github.io/reactxp/)

------
icxa
I find it interesting that most threads on HN lately about Windows always
seems to have quite a few comments in the form "I switched from Mac to
Windows, loving it!" I know no place is immune from shilling, but it does
raise a particular brow.

Conspiracies aside, and probably more interestingly, I am not convinced that
"this is the new Microsoft" or that Satya Nadella is some visionary CEO
because while everyone has been seemingly lulled to sleep here on "the new
Microsoft" on HN lately, guess what accounted for an ever growing portion of
Microsoft's business last quarter? Microsoft's data mining business! Horray!
So while we are out here with our pitchforks on the Google's and Facebooks of
the world collecting our data and selling it, Microsoft has quietly turned
around and ramped up their version of these practices seemingly unscathed.

Remember, Microsoft is still under scrutiny for continuing to collect your
data on Windows and other products _even after_ you have opted out. From my
perspective, choosing to run Windows is still choosing to run a spy machine
for Microsoft.

Maybe I am wrong, but Microsoft still doesn't deserve our trust, not even in
the slightest.

~~~
oceanghost
I completely agree. Most of the HN readers are too young to remember MS's bad
practices.

~~~
Aelius
How many employees from Microsoft in the 90s are still there now, calling the
shots?

Microsoft is a company like any other, and like any other company we should
keep an eye on what they're doing.

But too often the people who "remember Microsoft's bad practices" are
completely unwilling to reevaluate the company based on what they're actually
doing _now_, instead preferring to cling to illogical biases based on an old
grudge.

~~~
acct1771
How many of the National Security Letters are still in place?

How many PRISM-like APIs are there?

------
magicbuzz
As a long-time React dev, I booted Windows and started looking thru the
"vnext" setup. But then took another look and saw this:

System Requirements: Visual Studio 2017

Oh. Well, sorry but I'm not going to drop my current IDE (i.e install and run
a branch new IDE rather than my everyday tool I've customized greatly).

------
CamperBob2
What would be the arguments for/against using this instead of, say, Qt?

~~~
petrbela
"Learn once, write everywhere". Can't speak about performance comparison vs
using Qt/.NET/whatever but the whole idea about React Native is that today,
you can write a __native __app for iOS, tvOS, Android, web, macOS, Windows,
and a few others, all using the same language and framework. You still have to
understand platform specifics like UX guidelines but you use the same
technology to build a fully customizable, and fully performant, native
experience. It 's sort of like using C++ but way more developer friendly.

The cons:

\- an extra layer of abstraction

\- need to write a plugin if you want to surface a native functionality to RN
if it's not yet supported

\- no visual UI editor like in native tools (Qt/VS), although you generally
won't need it with React Native's code-first and instant refresh development
workflow

\- you need to be comfortable with React Native / JavaScript, obviously :-)

~~~
iso-8859-1
It's not gonna run everywhere, for the same reason WPF doesn't run everywhere.
Given that the apps written with this will bind to Windows using C++, and
there is no abstraction in between (like Qt), it's not gonna be portable. As
far as I understand, it is going to be a reimplementation of React Native
where the apps might have a similar style, but the backend will be completely
Windows specific. And nothing will stop a developer from using native Windows
APIs, so they will.

> The "current" subdirectory adds support for an earlier React Native for
> Windows10 implemented from scratch in C#. It reimplemented the JS<->Native
> bridge in C#, and shared the JS with Facebook's implementation of React
> Native. The ongoing direction of React Native involves a closer interaction
> between C++ and JS which is hard to achieve with a separate C#
> implementation.

Given that they say that the "old" version "shared the JS" in past tense, that
seems to hint that the "new" version will not share the JS? In that case, what
is left of React? It sounds like it will be the same style of API and
workflow, but different widgets and no cross-platform compatibility.

Source: [https://github.com/Microsoft/react-native-
windows/blob/maste...](https://github.com/Microsoft/react-native-
windows/blob/master/vnext/README.md)

~~~
tyscorp
He said "Learn once, write everywhere" not "Write once, run everywhere"

------
openfuture
This smells like an EEE, but I welcome it, they just want to snatch React from
FB.

~~~
lucasmullens
What is EEE? And what do you mean by "snatch React"? Facebook owns React, it's
not really snatchable.

~~~
spiffytech
"Embrace, Extend, Extinguish", Microsoft's 1990s playbook for eliminating
competition by creating a proprietary fork of some open system/standard, then
locking the industry into the Microsoft version of the product.

