purescript-contrib / governance

Guidelines and resources for the PureScript Contributors organization
15 stars 3 forks source link

browser compatibility guidance? #45

Closed jamesdbrock closed 2 years ago

jamesdbrock commented 3 years ago

@ozkutuk has suggested in https://github.com/purescript-contrib/purescript-arraybuffer/issues/34#issuecomment-909615292 that the arraybuffer polyfill for TypedArray could be removed, because TypedArray has been supported in all browsers for a long time.

That seems like a reasonable suggestion to me. However, because purescript-contrib is supposed to be a foundational package collection, it also would seem reasonable to take a maximalist approach to browser compatibility.

Do we have any guidance on the question of what set of browsers we should try to target for compatibility?

thomashoneyman commented 3 years ago

This is a great question to bring up, and we don't currently have an explicit guidance. I've seen @hdgarrood weigh in on particular issues of browser compatibility in the past and he may have an opinion.

As far as I'm concerned, I'd like to be in the 98%+ browser usage window in general, perhaps with some rare exceptions. I'm somewhat pulling that number out of nowhere, but my gut sense is that we shouldn't aim for 100% and we should not drop below 95%, and there's some leeway in between.

hdgarrood commented 3 years ago

Yeah, I personally think that 95% is a bit low - that would mean things breaking for 1 in 20 users, which feels like a lot to me. I think 98% sounds reasonable, but we should probably look at what that would mean in practice before deciding on a policy. I also think that where there are opportunities to provide wider support at little to no cost, we should consider taking those opportunities. In the specific case of TypedArray - if this polyfill works and isn't a maintenance burden, why not leave it in?

I also think that it might make sense to have different standards in different contexts. For example, I think the compiler and core libraries should have the highest standards, since you need these to be able to do basically anything in PureScript. Contrib libraries are generally much less critical, so I think it could be justifiable to use things with slightly less support.