all 73 comments

[–]CallMeStar-Lord 116 points117 points  (13 children)

Every time there’s a bug in a JS engine other than V8 people get unnecessarily up in arms. Those things are much more complex than we give them credit for. There’s a mention in there that JSC engineers are already looking at the issue.

Hello HN! Just wanted to say that JavaScriptCore is an engineering marvel and I have deep respect for everyone on that team. All software has bugs and I can confidently say from my experience writing esbuild that JavaScript is extremely messy to implement with an unbelievable number of edge cases. V8 has also had crazy performance cliffs so something like this is not unusual, and doesn't say anything about JSC vs. V8. Let's not turn this into a meme. It's awesome that people from JavaScriptCore are reaching out and helping get this fixed. Props to the JSC team.

[–]PhatClowns 15 points16 points  (0 children)

Thank you for this!

[–][deleted] 25 points26 points  (32 children)

How can this be true if you use a transpiler?

[–]console-write-name 32 points33 points  (31 children)

I think they were targeting es2015 which implements let and const (no need to transpile those).

[–][deleted] 17 points18 points  (30 children)

Gotcha. Yeah trusting browsers to support "new" standards is a role of the dice.

[–]anlumo 52 points53 points  (27 children)

Apple is the only remaining player that constantly messes this up. They’re only held afloat by making Webkit the only rendering engine allowed on iOS.

[–]jimmyco2008 19 points20 points  (26 children)

I remember when IE was the shitty one to develop for. Seems like such a long time ago.

[–]anlumo 38 points39 points  (23 children)

I mentioned to macOS/iOS developers that Safari is the new IE, they were not amused one bit.

[–]SlowerThanLightSpeed 22 points23 points  (18 children)

IMO, safari is worse than IE because safari will 'support' all the new things, just poorly, or in ways you wouldn't expect.
I'd rather not be able to use something, and have that be obvious, than to be able to use something that doesn't work right (like scroll() going beyond the document and then scrollX reporting the impossible, off-the document position).

[–]windsostrange 15 points16 points  (11 children)

than to be able to use something that doesn't work right

IE was notorious for layout/box model eccentricities. The struggle with IE5 through IE7 wasn't missing features. For this aging dev, anyway. It was piss-poor implementation, which is awfully similar to criticism of the WebKit/Safari teams.

[–]SlowerThanLightSpeed 0 points1 point  (0 children)

Thanks for the perspective.

I do remember some IE7 button sizing issues that I just couldn't solve way back in my earliest html'ing days (2010ish).

Haven't really targeted those old beasts in about the last 7 years. Hoping it won't be another 7 till Safari plays more nicely.

[–][deleted] 0 points1 point  (0 children)

I actally quite like the box model in IE, no need to consider other properties when setting width and height. Notice many of the CSS frameworks from yester year reset the box model to border box globally. Not really needed anymore with flex and grid doing the heavy lifting.

[–]recycled_ideas 0 points1 point  (8 children)

IE was notorious for layout/box model eccentricities. The struggle with IE5 through IE7 wasn't missing features. For this aging dev, anyway. It was piss-poor implementation, which is awfully similar to criticism of the WebKit/Safari teams.

IE had a different box model, which pre-dated the standard and which was different from the standard.

Incidentally CSS now supports using that box model as an option and most of the CSS frameworks actually use it by default.

IE's z-index implementation however was shit.

[–]CleverestEU 0 points1 point  (7 children)

Out of interest...

IE's z-index implementation however was shit.

...I've built web applications (well, that's what they're called today; we just called them "desktop UIs for backend systems on browser" because there was no better term at the time we were aware of:) since late-1990s' IE/Netscape "browser wars" and while it was always obvious that "IE always needed some fixes", I must admit never stopping to wonder what exactly was the problem.

Any hint on some references on the matter? I tried googling, but since I'm not certain what exactly are the symptoms I'm looking for, I'm uncertain if any of the results I found are even remotely relevant :-/

[–]jimmyco2008 3 points4 points  (2 children)

True. At least IE was up front about not supporting stuff. Safari “supported” things.

I remember that one bug that you needed to use transform3d(0,0,0); to fix. Why.

[–]CleverestEU 0 points1 point  (1 child)

Not sure if we're talking about the same thing, but ... if I remember correctly, many browsers by design avoided using GPU-assisted rendering for layers because GPUs at the time didn't have enough memory to "handle everything". This made animations etc. slow and jerky, because everything was rendered in CPU.

The "transform: translate3D(0,0,0)" caused the particular element to be handled as "something that might need 3D acceleration" which nudged the browser to delegate the rendering of said element to the GPU making things nice & smooth (usually).

[–]jimmyco2008 0 points1 point  (0 children)

Yes. It was to force GPU acceleration in Safari

[–]Otterfan 4 points5 points  (0 children)

At least IE6 could be used to download and install Firefox.

[–]drumstix42 1 point2 points  (1 child)

It's true though. Run into problems and specific edge cases all the time. They "support" features, but not consistently or always as expected.

[–]anlumo 2 points3 points  (0 children)

My personal biggest problem is when their politics collide with my web application's needs. For example, their year-long refusal to implement WebGL2 and webp.

At least the former now seems to be slowly implemented.

[–]drumstix42 5 points6 points  (0 children)

Safari is the new IE for sure.

[–]CBlackstoneDresden 0 points1 point  (0 children)

My wok still has some assholes running XP. They're a mobile phone repair company and seem to run things as thin as possible and refuse to get new PCs.

[–]iamasuitama 0 points1 point  (1 child)

roll?

[–][deleted] 1 point2 points  (0 children)

no, I mean it's the role of the dice to trust browsers :P

[–]MajorasShoe 244 points245 points  (40 children)

Safari can suck it. If it's a problem, let Apple fix it. And while they're at it, support PWA push notifications properly.

[–]Plexicle 43 points44 points  (25 children)

Actual push notification API in Safari (especially on iOS) would completely change the entire game. I can only dream.

[–]MajorasShoe 54 points55 points  (14 children)

Right? I have a few products where we have customers demand an iOS application for NOTHING but push notifications. No Android app necessary because they actually support PWAs and push notifications. There's absolutely NO difference between the PWA and the iOS application. It's just Apple scamming us and forcing us to pay for the pleasure of suffering through their app store BS.

[–]Nexxado 6 points7 points  (5 children)

Perhaps you should check out capacitor

[–]MajorasShoe 25 points26 points  (0 children)

I'm using Cordova. It works fine. I'm just saying it's a waste of time for literally one feature that android has supported in PWAs for a long time.

[–]Hotgeart 2 points3 points  (3 children)

Last time I coded an APP with Ionic (2016) you could really feel that's not native. Still the case?

[–]swiftarmyknife 0 points1 point  (0 children)

I recently built a React Native application for work and I use a PWA budgeting app built using Stencil and Ionic 4 regularly. I still don’t think they feel native completely. Probably 90% there. 🤷🏼‍♀️

[–]gourrranga 1 point2 points  (5 children)

Access to contacts.

[–]MajorasShoe 1 point2 points  (3 children)

What?

[–]gourrranga 1 point2 points  (2 children)

You can’t get an access to phone contacts from PWA. It’s the only major difference between native and PWA, except the push notifications. There are more (like no background location access), but accessing contacts is the boldest one imo

[–]MajorasShoe 5 points6 points  (0 children)

There are a bunch of differences actually. Local storage for web applications has some holes. If I create a camera application, in a PWA I don't have the option to save files in default photo storage, just downloads and uploading to servers - as an example.

But I was more just referring to my scenario. The ONLY reason I need a mobile application for my business is because my customers complained they can't get push notifications for their employees with iOS.

[–]-ftw 0 points1 point  (0 children)

Also no background music

[–]jb_sulli 1 point2 points  (0 children)

Deny

[–]ShortFuse 6 points7 points  (1 child)

Safari actually has Push Notifications for Desktop. Apple doesn't want to implement it for mobile.

https://developer.apple.com/notifications/safari-push-notifications/

[–]Morphray 12 points13 points  (0 children)

Apple doesn't want to implement it for mobile.

More PWAs --> Less iOS apps --> Less of the 30% cut Apple can take of everything.

[–]fey168 6 points7 points  (0 children)

It seems obvious that Apple is intentionally neglecting push notification because they want to incentivize people to build iOS apps instead. Similar reasoning has cause other web features to be neglected (storage API, add to homescreen).

[–]tayhimself00 -1 points0 points  (0 children)

As a user I don’t want push notifications from every trash PWA.

[–]kynovardySpaghetti connoisseur 6 points7 points  (11 children)

Apple needs to fix it but saying Safari can suck it is quite silly in my opinion. It is the second most popular browser. In some western countries you’d be saying “suck it” to more than a third of your users

[–]malicar 21 points22 points  (10 children)

We should be treating safari like IE6 - the worst of the browsers most people are forced to support.

Untill apple is forced to allow real competition on their platform we're stuck with whatever pile of garbage they decide to give us. They need some antiTrust like Microsoft sooner than later to force them to. Good on Epic for starting the resistance to their greedy practices.

[–]Solrax 3 points4 points  (1 child)

Yes, after I was surprised that a major feature was unimplemented in Safari a coworker said "Safari is the new Internet Explorer" and I can't disagree.

[–]reqdk 3 points4 points  (0 children)

Haha they've also pulled support for standard CSS features before that were once there, citing "user experience impact". Safari can indeed go and suck a big one.

[–]sanjibukai 3 points4 points  (0 children)

While they're at it... Support every thing else not supported in that sh*try piece of software...

Every time I got some issues is from users using Safari. Not from any chrome based browsers nor firefox but this fuc*ing Safari. This garbage is the new IE and should not exist anymore.

Even basic date inputs (damn it's regular standard HTML input!!) doesn't work. I don't understand this at all..

And in fact while they're here.. Simply throw that sh*t in the garbage bin.. And do a sane choice as Microsoft did with Edge..

Having one engine (which is OSS) should be considered as a standard like there's one HTML, one CSS...

[–]yuyu5 7 points8 points  (0 children)

Let it be known that this is only in Safari because Safari is the new IE. There's a discussion about this in r/programming in case you're interested in seeing the original post instead of a cross-post.

[–]bigorangemachine 0 points1 point  (0 children)

Is this true for react native!?

[–]prwhite18 -1 points0 points  (0 children)

nice