
Microsoft Project Reunion: an evolution of the Windows developer platform - aspenmayer
https://github.com/microsoft/ProjectReunion
======
tzs
> Project Reunion is our vision for unifying and evolving the Windows
> developer platform to make it easier to build great apps that work across
> all the Windows 10 versions and devices people use.

I just want it to be like it was in 1998. Want to learn how to program for
Windows 95, 98, or NT back then? Buy _Programming Windows_ 5th edition by
Charles Petzold, read it, and you are most of the way there. Add _Advanced
Windows_ by Jeffrey Richter if you need more lower level knowledge.

If you needed to support Win 3.1, you had Petzold's _Programming Windows 3.1_
for that. (...and Petzold's _Programming the OS /2 Presentation Manager_ if
you wanted to branch out a bit).

Just get Petzold to write one of these for Windows 10 and I'll be happy.

~~~
ArtWomb
>>> Just get Petzold to write one of these for Windows 10 and I'll be happy

If you are tuned into MS Build Live right now, you can get a feel for where
not just Windows, but the entire ecosystem is headed. Low code developer
studios. Heavy cloud integration. HTTP / API REPLs. Build actions instantly
targeting a mind boggling array of devices and platforms.

I've seen it across environments. Goal is to eliminate the possibility of
introducing human error into complex systems. As well as onboard recent hires
quickly. Era of developing software as visual metaphor is upon us. Possessing
actual bare metal skill will become more rare (and counter-intuitively more
valued) than ever ;)

~~~
m0zg
> Era of developing software as visual metaphor is upon us.

I've been hearing this for about 25 years. Yet none of the software I actually
use is developed that way.

~~~
shawn-butler
Yes, but now we have DeepLearning or something... I'm sure it will be
different this time.

~~~
m0zg
I make my living with it. It's pretty much the opposite of "code free", and
its problem domain is entirely orthogonal to that of "traiditional"
programming in that you can't do what deep learning systems do using the
traditional means, at all. Try recognizing a hotdog reliably with just some
for loops and if statements. Code-wise, frameworks themselves are millions of
lines of code, and then there are tens of thousands of lines of your own,
often extremely gnarly stuff on top of that. And I don't expect anything that
can "write itself" in my, or my children's lifetime.

~~~
PeterStuer
I think the poster you are replying forgot to add the '/s'

~~~
m0zg
Adding /s is almost always pointless. People who understand sarcasm don't need
it, and everyone else doesn't know what /s means.

------
ourmandave
_What’s different this time?

Microsoft has been on a years-long journey to unify the APIs in Win32 and UWP,
adding more common APIs and interoperable code between the two. Still, every
time Microsoft tries to improve the situation, developers have to wait for the
latest version of Windows.

This time, Microsoft is borrowing an idea from the web — polyfill — with the
introduction of packages. A polyfill is a piece of code that provides modern
functionality on older browsers that do not natively support it. As Microsoft
introduces new APIs, developers link against a package, and if you’re on an
older version, Microsoft will polyfill the functionality as best it can to use
in the new version. The best part is that these packages will work from a
Win32 or UWP app. The collection of packages thus becomes a common API service
between Win32 and UWP. Best of all, Microsoft can do this across its 1 billion
devices, immediately. Microsoft EVP Rajesh Jha explained the result in a
briefing ahead of Build 2020._

From this article: [https://venturebeat.com/2020/05/19/microsofts-project-
reunio...](https://venturebeat.com/2020/05/19/microsofts-project-reunion-
bridges-win32-and-uwp-divide-again/)

~~~
WrtCdEvrydy
Polyfills are a problem since you have to bundle them even if your version
supports the new features... unlike the web where you can use the user's
browser info to send them the correct polyfill these new applications will get
larger and larger.

~~~
nicoburns
Hmm... it works pretty well for android (Android Support Library). I think it
only compiles in the bits you use which helps keep the app size down.

~~~
applecrazy
I believe that’s the case for modern JS polyfills (if you use a bundler)

------
Phil-bitplex
I have re-read the readme about 5 times now, and I'm still not really sure
what it is.

I _think_ its an API wrapper to make functionality available in older versions
of windows, is is only in newer versions of windows? Or maybe other platforms
that support UWP? It feels like the readme is written in startup-speak, where
I was expecting it to be a little more... developer-y?

~~~
contextfree
I agree it's confusing. But here's the intention as far as I can tell:

UWP was originally "monolithic" and "closed" in several respects: your app had
to either adopt all UWP facets (be a "UWP app") or none (be a "Win32 app"),
new APIs only shipped with new Windows releases, the implementations were
entirely closed source, etc.

In the past few years they've started to take pieces of what used to be UWP
and pull them out into separate components. Unlike the monolithic UWP
platform, these components can be adopted independently by Win32 apps without
having to adopt all the other components at once, their runtimes can be
distributed with your app outside of Windows and run at least a few versions
back, their implementations are partly or wholly open source, they do planning
and design reviews in the open on github, etc.

So far, the components they've done this with have been

* WinUI (a decoupling of the UWP UI framework)

* MSIX (a decoupling of the UWP packaging system)

* C++/WinRT, C#/WinRT and Rust/WinRT (a decoupling of the UWP object system and language bindings)

The "new" Project Reunion is basically an umbrella name for these decoupled
UWP components, a declaration of their intent to decouple the rest of UWP in
similar fashion, and a new github repository for planning this and designing
the future evolution of the Windows developer platform in general. So the
repository has issues posted by Microsoft developers about how the UWP app
lifecycle and resource formats can be decoupled, for example.

~~~
acqq
As an example, how the "Win32" apps are to use these "new" UI features:

[https://docs.microsoft.com/en-
us/windows/apps/desktop/modern...](https://docs.microsoft.com/en-
us/windows/apps/desktop/modernize/xaml-islands)

Desktop C++ users should use: "UWP XAML hosting API provided by the Windows 10
SDK (version 1903 and later)."

~~~
efdee
Having actually tried to use XAML Islands to get some UWP UI controls into a
WPF application, I can say that the experience was absolutely horrible and I
ended up giving up and not using the UWP control after all. Truly, truly
horrible.

This was about a month ago.

I hope they do better this time.

~~~
acqq
> Truly, truly horrible. This was about a month ago.

Fascinatingly, it seems that Microsoft for their own purposes prefers to use
Electron-based applications.

I'm curious if they will manage to reduce that strange state to something more
reasonable.

------
cs702
_> Project Reunion is our vision for unifying and evolving the Windows
developer platform to make it easier to build great apps that work across all
the Windows 10 versions _and devices* people use.*

I'm always a bit skeptical of projects that seek to harmonize or standardize
APIs across different kinds of hardware devices, not for the benefit of users,
but for the benefit of software developers.

The visions behind such projects often seem to produce elegantly designed
software platforms, like Windows 10 Mobile[a] and Ubuntu Touch[b], for which
there is actually no user demand.

Did end-users, i.e., regular people, ask for Project Reunion?

\--

[a]
[https://en.wikipedia.org/wiki/Windows_10_Mobile](https://en.wikipedia.org/wiki/Windows_10_Mobile)

[b]
[https://en.wikipedia.org/wiki/Ubuntu_Touch#Ubuntu_Mobile](https://en.wikipedia.org/wiki/Ubuntu_Touch#Ubuntu_Mobile)

~~~
tasogare
The Windows platform is extremely fragmented since Win10: not only there is
different API and execution models (Win32, UPW) but also each new Win10 build
brought new API that were not available on previous versions. Even as someone
who program mainly in C# (on Mac/Linux) and some knowledge about the UWP
disaster^W situation this is a mess cery hard to understand and not appealing
to develop for.

~~~
ferzul
why is it a problem that they release new api's? they couldn't bring them all
out before they're written, so the alternative is to batch them up and release
them all at once.

but then don't you still have a common install base, because the change will
be too much for some users who will hold off, a la windows 7/8.

as someone doing a little windows dev on the side, the issue for me has been
that i don't know whether uwp or win32 is the better (future proof) choice. i
guess when one of the main distinctive features of your os is that it is
backwards compatible, it is hard to change. (i noticed BN_UNPUSHED is
documented as being included for compatibility with 16-bit versions of Windows
before 3.0.)

------
sylens
This is all about fixing a mistake that never should have been made. They did
the UWP split around the time of Windows 8 and since then have tried to prop
up the Windows Store with Windows Mobile ports, XBox games, and other
ventures. It’s good to see them finally recognize that the Microsoft Store
wasn’t going to go anywhere.

~~~
wvenable
The UWP project was all about Windows Phone -- it was a platform for running
more constrained and less battery-heavy applications on a phone while also
allowing those apps to run on the desktop.

When their phone platform imploded, UWP suddenly didn't have a real market.

------
dboreham
Parsed that as "Microsoft Project" Reunion. Like a dinner where the devs and
pms from the Project planning application reminisce about old times, before
daily standups and stories and sprints and...scrum masters.

~~~
smitty1e
Precisely. And then I wondered who hated themselves enough to spend more time
with that application than they were paid fat piles of cash to do.

------
aspenmayer
'At Build 2020 [1] today, Microsoft unveiled Project Reunion [2], its latest
attempt to unify the Windows developer platform by reducing fragmentation
between Win32 APIs and Universal Windows Platform (UWP) APIs. Microsoft also
promises Project Reunion can modernize existing apps with the latest
functionality, whether they’re built using C++, .NET (including WPF, Windows
Forms, and UWP), or React Native. Additionally, it can decouple the APIs from
Windows via tools like NuGet, and it brings new WinUI 3 and WebView2
releases.'[3]

Possibly related:

Windows Package Manager Preview

[https://devblogs.microsoft.com/commandline/windows-
package-m...](https://devblogs.microsoft.com/commandline/windows-package-
manager-preview/)

[https://github.com/microsoft/winget-cli](https://github.com/microsoft/winget-
cli)

[1] [https://mybuild.microsoft.com](https://mybuild.microsoft.com)

[2]
[https://github.com/microsoft/ProjectReunion](https://github.com/microsoft/ProjectReunion)

[3] [https://venturebeat.com/2020/05/19/microsofts-project-
reunio...](https://venturebeat.com/2020/05/19/microsofts-project-reunion-
bridges-win32-and-uwp-divide-again/)

~~~
kroltan
Don't get me wrong, but are you associated with the project or Microsoft?

~~~
moron4hire
Why would it matter? Can't an MS dev be proud of their work and want to share
it, without being accused of being a "shill"?

~~~
kroltan
When I commented, the comment in question had a very generic market-speech,
and as a moderator of other internet communities, my "spider-sense tingled" so
to speak. As it stands now the comment is much more productive.

~~~
aspenmayer
It was a quote that I hadn’t yet cited. I had no intention to be ambiguous so
I do apologize for the confusion.

------
mrpippy
This seems more like codifying some principles/guidelines between a couple of
new APIs (and hopefully everything going forward), rather than anything
actually new:

* can be used in UWP and Win32 apps (with no package required for Win32)

* supported on Windows 10 versions going back several years

------
LyalinDotCom
The first thing you as a developer can start exploring today that is part of
"Project Reunion" is WinUI 3.0 Preview 1:
[https://blogs.windows.com/windowsdeveloper/2020/05/19/introd...](https://blogs.windows.com/windowsdeveloper/2020/05/19/introducing-
winui-3-preview-1/)

------
nicoburns
The list of supported languages is pretty interesting. Looks like Microsoft is
pretty serious about making Rust a first class citizens for it's Windows APIs:

> C++, Rust, C#, and JavaScript

~~~
qzw
Would definitely be nice to see Microsoft put more resources into supporting
Rust. Go has Google’s backing and Swift has Apple’s. Would be interesting if
Microsoft fully embraces Rust, but hopefully without the “extend and
extinguish” part.

~~~
steveklabnik
They already do support Rust in a few ways, but I would always welcome even
more support for sure :)

------
btmiller
Microsoft seems to have tried to unify their developer story in many
incarnations now. So my biggest question is, why will this one succeed where
others have failed? I see absolutely no evidence to suggest this is better
than previous attempts.

~~~
criddell
The consumer Windows ecosystem (excluding games) feels moribund. When is the
last time that anybody was excited about some new or improved Windows program?
Everything interesting seems to be happening either on mobile or on MacOS.

There's still lots going on in the commercial / enterprise space, but that
stuff is either old and Win32 or new and in the browser.

Who is using UWP?

~~~
pjmlp
Anyone that wants to access any new Windows API introduced since Vista, where
they re-focused on COM to deliver the ideas that failed with .NET on Longhorn.

So if you are using pure old style Win32, you will be using a view of the
computing world stuck in Windows XP.

~~~
criddell
> you will be using a view of the computing world stuck in Windows XP

That's kind of what I was getting at when I said the Windows ecosystem
(excluding games) is moribund.

~~~
pjmlp
If having 90% of the desktop market, with a good base of Fortune 500 and SMEs
is moribund, I really like Zombies.

~~~
criddell
Inertia is a helluva thing.

For the record, I'm a Windows desktop developer. It's a great place to make a
living, I just wish there was a little more vitality here on the consumer
side.

On MacOS an independent developer (or small shop) making great software can
still sell it at $50-$100 to enough people to make a living. For some reason
it's harder to do on Windows even though the market is far bigger. I'm
thinking of software like Things or Fantastical. High quality, polished,
reasonably priced with an enthusiastic user base.

~~~
pjmlp
Only if you live in US or similar populated OS X countries.

I have been in plenty of countries where there isn't any Mac to be found.

------
nvr219
Why is Microsoft so bad at naming things.

------
cl0rkster
sounds like they are serious about making an interoperability layer between
older programming constructs so you can run .net core code on older frameworks

am i missing something other than the politics?

admittedly this is pure speculation (TLDR... i mean... it's a corporate github
repo with an unfathomable number of enormous minds contributing to it), but i
would think something like .net core 1.1 would be the initial target

also... to head of the parenthisized joke above... i was also too lazy to
research it more. i told my boss about it, though. he's smart... and in charge
of how things like this impact my life

------
fred_is_fred
I assumed this was party planning for the original team who wrote Microsoft
Project and clicked just to see if there was a Gantt chart to show who was
going to buy beer and the estimated lead time.

------
sbarre
I was hoping this was about a new open-source version of MS Project =(

~~~
Topgamer7
Yeah I had hopes, but was skeptical that would be the case.

------
legulere
WebView2 seems like an interesting replacement for electron.

~~~
dstaley
WebView2 isn't a replacement for Electron; it's a replacement for the Internet
Explorer powered WebView component that's been a part of Windows 10 since the
beginning. WebView2 doesn't have the same level of platform APIs that Electron
provides. While you totally could build a similar app using WebView2 as you
could with Electron, you're going to have to build all the non-web bits
yourself.

------
diimdeep
Microsoft - support every API we ever had. Apple - deprecate old and focus
attention on new.

I beleive in latter. Are you?

------
dmix
JVM, part 20.

------
rokstar
WinRT?

------
aspenmayer
Is this Google Wave coming back in the form of Office.com? Open-source!
Definitely a different Microsoft than the one I grew up with.

Announcement support page

[https://support.microsoft.com/en-us/office/get-started-
with-...](https://support.microsoft.com/en-us/office/get-started-with-fluid-
framework-preview-d05278db-b82b-4d1f-8523-cf0c9c2fb2df)

In the news

[https://www.theverge.com/2020/5/19/21260005/microsoft-
office...](https://www.theverge.com/2020/5/19/21260005/microsoft-office-fluid-
web-document-features-build)

'Microsoft is creating a new kind of Office document. Instead of Word, Excel,
or PowerPoint, the company has created Lego blocks of Office content that live
on the web. The tables, graphs, and lists that you typically find in Office
documents are transforming into living, collaborative modules that exist
outside of traditional documents.

'Microsoft calls its Lego blocks Fluid components, and they can be edited in
real time by anyone in any app. The idea is that you could create things like
a table without having to switch to multiple apps to get it done, and the
table will persist on the web like a Lego block, free for anyone to use and
edit.

'“Imagine you could take those Lego pieces and put them in any place you
wanted: in emails, in chats, in other apps,” explains Jared Spataro, head of
Microsoft 365, in an interview with The Verge. “As people work on them, they
will always be updated and contain the latest information.”

'Microsoft’s Fluid Framework sounds a lot like Google Docs, but it’s actually
Google Docs on steroids. Microsoft is so confident it has built the future of
productivity, it’s now open-sourcing its Fluid Framework so the rest of the
world can help shape what it has created. Some Office.com users will even be
able to start getting a taste of this Fluid future in the coming months.'

~~~
Ididntdothis
Wrong thread.

~~~
aspenmayer
I'm the OP. I meant to post this where I did.

Edit: you were right I was wrong apologies

~~~
btmiller
You mean your other post?
[https://news.ycombinator.com/item?id=23236287](https://news.ycombinator.com/item?id=23236287)

~~~
aspenmayer
Yeah, I was replying to wrong tab. I'll be eating crow over here in the corner
lol

