When we release 2.0.0 (no date set as of this submission) we will drop support for IE11. Folks that are required to support IE11 can continue to use the 1.x version of the libraries.
I understand the strong feelings some will have with this decision, which is why this issue was created: so folks could have their voice heard. However, this is an informational message. There are features of modern JS that we plan to use, Proxy being the most significant. As there is no way to polyfill the functionality of Proxy for IE11 it forces us to make a decision.
Please keep the flaming civil.
It sounds like the decision has already been made, so why argue?
But hey I'll give it a try...And I want to say upfront that I don't like IE and I think it is totally useless for modern SharePoint development...See my uservoice entry here: https://sharepoint.uservoice.com/forums/329220-sharepoint-dev-platform/suggestions/35770003-provide-clear-support-statement-for-spfx-with-ie
But....since SPFx and O365 in general still supports IE11, custom solutions should support that as well. I would guess 99% are usinge PNPJS for SPFx and so I would suggest PNPJS to support IE11 as long as SPFx has official support for it. Otherwise I am guessing you will lock out all vendors and partners that want to develop solutions for multiple customers and as such can not bet on certain browsers as maybe inhouse developers can.
So I think this will infact lock out quite a large amount of devs from PNPJS and that will decrease the overall quality and stability of PNPJS. A community driven project also gets tested and approved by the community. So I think it is a poor decision over all.
Since this library is advertised as "Microsoft and community driven", why not to ask what community thinks on this issue? Through the online voting where only one vote is counted. But not only twitter, because we need something global to reach more people. Probably a link to voting during one of the community calls will work.
Just my thoughts on the topic.
SharePoint and Office 365 are the main targets for pnpjs. There are a lot of enterprises which use Office 365 and a lot of them use IE11. Like I mentioned earlier Office add-ins when rendered inside a desktop application (Outlook, Word, etc) internally use IE11. Which basically means we will not be able to use pnpjs in office add-ins as well. All modern web frameworks support IE9+ (not even 11).
Why can't folks that have to support IE11 continue to use 1.x versions?
It's all about features parity. If both libraries support the same set of features, then it's totally fine. However, it adds extra work.
Of course they can, but where will all the new features go to? 2.0 and not 1.x, right?
99% of our enterprise customers are using IE11 and they expect it to be supported by us as long as SharePoint Online officially supports it.
Let me play devils advocate a little here: you mention above "Microsoft and community driven". If the community wants to help ensure all features are introduced in both libraries that can absolutely happen. It works both ways (and I am not pointing at anyone in this thread) but "community" is often used to say "the community wants this, you must give it to us" but the side that is ignored that if it matters to the community they should jump in and help build it. We are all volunteers who work on this.
In the past we have maintained feature parity for 6 months when making big moves (ref the move from sp-pnp-js to the pnpjs libraries). This is an incredible amount of work and involves maintaining two libraries and managing two releases. But we do it because we do care about ensuring folks have the best experience. We would likely try and do something similar for this.
At the end of the day IE11 will not be supported forever. It also represents a small percentage of users hitting SPO. Why shouldn't we start now to look forward and see how we can improve and innovate? Also, please see this recently published official statement on IE11.
[IE11] represents a small percentage of users hitting SPO
From my experience, I don't have a feeling that it's true for all enterprises. A few big Office 365 customers (thousands of users) I worked with had a strong requirement to support IE11, because it's their main browser. That's my only concern. Probably I was unlucky with customer selection :)
I do mean small percentage overall.
My last two employers (120k and 15k ppl in the company) use IE11 as the main browser due to legacy systems relying on IE11 ActiveX (Ms Project Server, SAP, electronic documentation management portals) and they don't make much effort to move to Edge or so. Even basic things like Lync presence indicator relies on ActiveX. Or if you wanted to do a database connection client side. I'm just a hobby guy doing a bit of JS and I'd gladly get rid of IE11, but if I want to create any solution that could help an office lady on the first floor, she's most likely using stock setup on company computer and changing that across the company would be a big project. I'm typing this on a new (2019) company laptop with Win10. It came with IE11 and Edge pre-installed. To put in Chrome I had to do an IT ticket and someone did remote session to run the installer for me.
Now, as for voting, I'd say pnpjs offers plenty enough features as it is and I'd be happy to stay on 1.x. Whatever else you think up I'd try to recreate/transpile myself or learn to live without it. But I'd say, don't hold back and go for it. There's a chance we'll be able to meet again in few years' time in a world free of corporate IE11. You either grow and expand, or stay at 1.x and fizzle out, which means there will be nothing you can offer in the future when we're asking for it.
We can resolve it another way around. Vuejs team is also planning to go with Proxy in the newest version. However, they decided to implement proxy in an extensible way, i.e. they will provide a replacement for the Proxy for IE11.
Could we do the same in 2.x? In other words provide a single entry for Proxy with a way to replace it with custom implementation if needed.
Working on this tonight, we will have a setting in the config for ie11. If true we will bypass Proxy and potentially other ie11 unpolyfillable functionality - however some things may not work as expected in ie11 mode. We won't break anything on purpose, but some of the ideas for the library involve the flexibility of Proxy. Ie11 mode will be unsupported in some cases meaning certain functionality may simple be unavailable in that mode or behave in unexpected ways and we won't fix those "bugs". I don't have concrete examples, but want to put that out there. IMO that is a fair compromise.
Most helpful comment
We can resolve it another way around. Vuejs team is also planning to go with Proxy in the newest version. However, they decided to implement proxy in an extensible way, i.e. they will provide a replacement for the Proxy for IE11.
Could we do the same in 2.x? In other words provide a single entry for Proxy with a way to replace it with custom implementation if needed.