But I'm sure this title gets you more clicks.
But I'm sure this title gets you more clicks.
I think the analogy is very clear. If you want to code like it's 2000, supporting IE6 is easy, because IE6 is a very good 2000 browser. If you want to code like it's 2010, supporting Safari is easy, because Safari is a very good 2010 browser. But in both cases, if you want to use any new features that have been standardized and are supported by other browsers, you're fucked.
The main difference I see is that IE6 didn't get any updates at all. Safari gets updates, but many new features are missing or broken.
EDIT: Another difference is that MS never blocked you from installing a better browser, but Apple does that on iOS. That policy is becoming increasingly ridiculous...
box-sizing: border-box;
Now there were many other problems but I'm not sure people appreciate how such features eventually got standardized. Similar issues happened around DOM serialization with APIs like innerHTML, which Netscape refused to adopt because of "series of pointing at standards". Developers ended up adopting the idea and it was later standardized. XHR is another case. There are many more.In the case of Safari, I can think of canvas, touch (love or hate it vs pointer events it was before any of the alternatives), DPI independence, &c.
It's some of these quirks that seems to show how newer web standards might be rushed through by increasingly aggressive vendor involvement. Apple hasn't changed all that much from when it first released Safari. It's only our expectations for the pace of new additions that has.
Web dev was "fun" in the early 2000s.
Also console.log and javascript debuggers didn't exist. Working with complex JS got really interesting really quickly.
A major source of hatred for IE was the fact the IE team did work prior to the browser standards, a practice which is now standard operating procedure. Where would be without ajax?
Why has that not resulted in anti competitive behavior lawsuits? MS got in to a fair bit of trouble for similar things. They didn't stop you installing an alternative.
But then again that depends on how you define browsers...
This is not possible on iOS without a jailbreak, because Apple simply doesn't allow alternative browser engines to be used.
So, basically, a 3rd party JavaScript engine is not allowed. I guess you could write your own browser engine that doesn't support JavaScript.
I guess Flash was not allowed for performance and security reasons (lots of vulnerabilities, right?)
Thoughts on Flash https://www.apple.com/hotnews/thoughts-on-flash/
Apple has a monopoly of taste – a self-defining market that won't switch OSes even if that constrains their other choices. But they could, so the "market of Apple users" isn't a discrete market under the law.
[Edited: gosh I type slow.]
Maybe, maybe not. That is what the person I was responding to claimed though.
I don't believe it is reasonably easy to choose/install another operating system on an i device. I could be wrong.
>One person having an iOS device and another having an Android device does not cause any issues between the two, they are fully able to communicate by the nature of cell phones.
By the nature of cell phones? What is the nature of cell phones?
Ethernet existed in the 90's and I personally setup networks using it that allowed Windows and Linux systems to communicate with each other.
But the very idea that someone has to know this has to be done and disable iMessage is insane to me, and I suspect part of the reason it is the way it is is because Apple doesn't really mind what (to the average Joe) is a major annoyance when switching phones.
To be fair, matters were even worse before Apple released that tool. But this has been an ongoing issue for something like four years.
I wonder if Apple could really fix it any way short of asking the phone companies to know when someone switched.
So what Microsoft did that was illegal was use their monopoly power to destroy an existing player. That's how they were "anti-competitive".
While Apple not allowing any competing rendering engines to be written for iOS is anti-competitive in the dictionary sense that they are preventing competition to be created, it isn't the type of behavior targeted by anti-trust law.
(IANAL, but my understanding is that if Apple had removed Spotify, Pandora and other music apps from the App Store while releasing their streaming music service, that would be an anti-trust violation.)
*Netscape was $49 in 1996 http://www.fastcompany.com/27743/nothing-netscape
Even by the most generous definition of "computer", Apple holds 20% market share at most.
Samsung won't get sued for anti-competitive practices because you can't switch the browser on their so-called smart TV for the same reason.
This stuff is rampant.
IANAL but folks over reddit explained it as this:
Microsoft was a software only vendor in the past but Apple is the hardware and software vendor. US and EU laws dictate that the hardware manufacturer to have full control over the ecosystem becuase of the industry behaviour in the past and who the end-consumer pays his money to.
http://www.reddit.com/r/explainlikeimfive/comments/39q25f/el...
I am not sure how correct it is but at least it makes sense.
Web browser is arguably the single most important app on any phone. Or a computer. How many browsers you have currently installed on yours?
I should be able to install any browser on iPhone, just like I can on my Macbook.
While I was still using iPhone, that forced me to always reach for Android phone when I wanted to read any page with wrong size font for me. Which is pretty often.
IMHO, there's just one good mobile browser, and it's Opera. Not mini version, but the proper mobile one.
The big feature? It can always reflow any div (paragraph) text to 100% screen width. Always the font size I want and never any horizontal scrolling.
I hope Apple will finally allow other browsers that are more than just embedded mobile Safaris. Including full Javascript JIT support, because that's what modern web requires. Currently on iOS only app that can allocate executable pages is Safari.
https://developer.apple.com/app-store/review/guidelines/
"2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript"
Again, it doesn't allow them to be made as the 'default' browser - which in itself is a big reason to criticize them.
[0] : Chromium Bug: https://code.google.com/p/chromium/issues/detail?id=423444
The author is right, the details aren't the same but the same attitude exists. The author is simply speaking up before the differences become extreme.
Microsoft didn't "break the web" they created their own web and then let it twist in the wind because they were pissed about the government beat down.
Apple didn't get their hand slapped, but they did build something so lucrative that evolving Safari became a smaller priority, which some would argue aligns well with their push to the App/closed ecosystem model.
Moving to WebKit? Only if you count CyberDog, I guess. Safari was always WebKit based.
Also, your phrasing could be read as if Chrome came before Safari, but Safari is from 2003 (https://en.wikipedia.org/wiki/Safari_version_history), Chrome from 2008 (https://en.wikipedia.org/wiki/Google_Chrome_release_history).
> Microsoft didn't "break the web" they created their own web
> and then let it twist in the wind because they were pissed
> about the government beat down.
I was around as well. My recollection is that they let it twist in the wind because SaaS competed with their two interdependent quasi-monopolies: Windows and Office.Which is another instance of the Innovator's Dilemma: How can a successful company embrace technology that disrupts themselves?
It wasn't called SaaS back then, but in any case -- they let it "twist in the wind" because their market had become the enterprise, and that's a market that wants stability, predictability and no updates if they can be avoided. By then they had killed all competition, so their incentives were to keep businesses locked-in through backward compatibility and security fixes. Add to that the big move to .Net and an effort to replace Flash...
IMHO it wasn't about the antitrust or platform control (they could have broken all the SaaS apps they wanted with each update, they had 95%+ of the market and were n.1 target for every website out there). They just had other priorities: the browser war had been won and attention was now on the enterprise market. Around that time, IIRC, Gates also retired, leaving Ballmer in charge; Ballmer was not the sort of technologist to lose much sleep over "the future of the web"...
Then I tested it in Safari. Two weeks later I gave up and basically had to `if (Safari)`. I don't know if the code still has that, but it probably does. This wasn't anything 'lacking'. Sure, it was contenteditable-related but the fact remains that I found a consistent subset in every browser except Safari.
So, yes, Safari broke my web - and it wasn't something that was missing, it was something that behaved very differently compared to other browsers. I can't remember what specifically broke it, but even ~2 years ago I had a significantly better development experience with IE than Safari with no new HTML5 features in sight.
[1]: http://help.k2.com/onlinehelp/k2smartforms/userguide/1.0.6/c...
Not only is IE8 a snowflake but html4 is particularly hard to get a good layout working. Lots of nontrivial layouts in pure html4 (and css 1/2) require tons of browser specific hacks.
But honestly, I can't know because he's not naming anything specific anyway, just an anecdote about how IE8 was great at being standards-compliant and safari wasn't. Which is such an extraordinary claim (and is so contrary to established precedent) that without any extraordinary evidence, I have a lot of trouble accepting it.
(And it's amazing how many people think "I'm not doing any browser hacks" while they're using something like jQuery, which is a library 100% devoted to doing browser hacks for you while abstracting you from that fact.)
I was working on top of a huge CSS framework - the majority of styling work I did was tiny tweaks to styles where the appropriate hacks had already been solved.
Also I didn't mention layout. The specific pain point was contenteditable in combination with JS - by the time I got to the code everything surrounding my little problem-space had been solved by the rest of the team. Again, specifically, Safari demonstrated wildly different behavior within that specific space, where other browsers only behaved marginally different (a relative term, contenteditable is a complete mess, sadly, still in HTML5) in a way that I could find a viable subset of functionality that worked consistently.
Well, that's the whole thing then, isn't it? The huge CSS framework probably had tons of hacks (as you say) to make things work in IE8... it's a bit disingenuous to say you wrote everything to be clean and without browser hacks, if the hacks all exist but are buried under a "huge CSS framework".
Your whole experience could probably be restated as "I was working with a CSS framework that did a bunch of cross-browser hacks for me, and the tweaks I made to it didn't work in safari", which is a pretty uninteresting statement, because it's equally likely that any issues you had in safari are the fault of the CSS, and not the browser. (In fact, much much more likely.)
Did you miss the whole of my second paragraph?
> Also I didn't mention layout
Something working in opera doesn't mean it is standards compliant.
(emphasis mine)
I use Chrome as my primary development browser and Safari and Firefox as my second and third choice. When I do get around to testing in IE 9+, it's almost an afterthought. Is it surprising then that IE is the browser that gives me the most trouble?
All browsers have quirks. It's inevitable when you have many competing implementations from companies that have different priorities. The browser you use the most is naturally the one whose quirks you will get used to.
I'm in sympathy with the spirit of this post, but I'm not sure that I agree with this specific example. I think that there's a big difference between an 'everyday' web page requiring a specific browser, and the creator of a browser showing off what they see as its exceptional capabilities.
However much designers (and users) like adherence to standards, I think that it's clear that a lot of the innovations we take for granted have come from browsers leading the way; and there's not much point in having those innovations in the browser if the user doesn't know about them.
(I should be clear that I'm not advocating a functionality free-for-all, though; probably much more harm than good has come from this behaviour.)
That said, there are some cases where things are Chrome-only simply because other vendors are far behind. (eg. speech recognition & synthesis)
That said, I was just playing with Edge on Win10. Its like a pre-bundled Chrome. Fast, compliant, etc. It hilariously even breaks MS software, for example, I can't open the address book in Outlook Web Access because some deprecated html control that Chrome no longer supports. So if Chrome no longer supports, Edge doesn't either!
I guess we'll see if extensions ever take off for it. If they do I could see it hurting Chrome's marketshare. Personally, the Chrome/Google juggernaut needs to be knocked down a peg or two. I hope Edge gets popular just to keep Google's sometimes anti-consumer ambitions in check. For example, using FF in Android means Play Store links don't work right and a million other things. Google isn't incentivized to make alternative browsers work well in Android. They want use to use Chrome and all of its spying/tracking/marketing stuff cooked in.
But it's still better than Safari's IndexedDB support, though, even though they've basically not touched it since IE10!
The "Chrome Experiments" was a way to show off the WebGL capability in chrome that no other browsers had at the time. (Now those demos will mostly work in all browsers)
Plus you are forgetting that those are experiments. They were never really meant to be actual "apps". Making an experiment/demo for one browser is fine IMO. Especially when only 1 or 2 browsers have implemented the standard currently.
It's like webRTC. I made a "demo" webRTC app about a year ago, and it only worked in chrome OR firefox (but they couldn't talk to each other). That's not chrome or firefox breaking the web, that's the other browsers not being at the cutting edge, but i don't blame them. WebRTC was (and still is) VERY new, it wasn't even finalized and i was using the app as a bit of a tech demo to see what may be possible in the near future.
The chrome experiments were the same way. WebGL wasn't fully finalized, it was one of the first implementations of it, and people wanted to try it out, so Chrome Experiments was born.
I'm thinking, its almost time to consider WebRTC 'failure to achieve traction'?
The ability to do peer-to-peer communication from the browser is an amazing tool. It allows the creation of client-side-only web apps which can easily send massive amounts of data to others. With WebRTC (or any other service like it) you can add video chat to a web app with very little work, and no real server side infrastructure that is more secure than the alternatives.
If it needs to be re-done in the name of getting it implemented widely that's fine with me and i welcome it, but if it's just NIH syndrome at microsoft holding it back, that's not okay.
I've been dealing with the code base for 5 years, and never liked it. Had to rewrite the APIs every time we got a new source version, to fit our model which isn't the 'conference call' model. I'd be glad to see something more app-agnostic that just dealt with negotiating P2P streams, without so many assumptions about what/why/when the streams are.
Maybe some of the good ideas will end up in an improved WebRTC standard, but ORTC itself is not "the new version".
> still not widely adopted
Certainly everyone involved with WebRTC wishes that it had the support of IE and Safari, but Chrome + Firefox + Opera is nothing to sneeze at, particularly if you're targeting a savvy audience.
> Original two are not compatible
Maybe I'm confused, are you saying that Firefox and Chrome aren't compatible via WebRTC? I've used them together and had success, but just for basic video calling.
> not adopted in a single further browser in that time
This is fair, but if Microsoft's latest moves come to fruition that will be a big change. There are hints that Edge will likely support WebRTC[0], though I don't think there has been any official word. Maybe that's just for ORTC?
[0]:http://blogs.windows.com/msedgedev/2015/05/13/announcing-med...
Other products can do this. WebRTC suffers from being based on RTP/RTCP and SIP-style signaling. There's not enough juice there to get the job done.
AFAIK this is being fixed. Firefox should support the standard and Chrome is fixing their implementation to conform as well.
WebGL is a good comparison here - it was pretty dead before Apple implemented it. When they did (in iOS8) you started seeing a ton more WebGL things popping up.
Everything is cyclical: Lean - Average - Bloated - Lean - Average - Bloated
- Chrome sucks up RAM like Photoshop.
- Firefox Dev Edition is broken or slow every other build
- IE is "ok"but their dev tools are incredibly sluggish and useless.
The browser game has changed and become commoditized. Before they went towards being monoliths with everything from email, to apps and games, various services etc. Those parts are being usurped by stand-alone services and apps and need to longer be integrated into the browser. I think that's good! Browsers should focus at being browsers. Better to be a 'la carte than bundle everything under the sun.
Also, I think the vision of HTML as a "universal" app/game platform is slowly dying. We're coming to terms with HTML is really good for somewhat basic presentation and interfaces, but not much more than that.
Although doing advanced stuff is possible it seems we're coming to the realization that it's neither practical nor performant
Then just use release? Dev Edition is the alpha version with some different defaults, based on the assumption that "developers" are OK with an alpha quality build that has some new features faster. If that bothers you, use the release. It also contains the dev tools!
I will readily agree that the evolutionary path of OSX seems to have gone off the rails. But hey, why do I use Safari instead of Chrome?
I think one unfortunate aspect of the article is that it focuses on some of the less common deficiencies of Safari. I would have called out mobile Safari being unable to download files, or Apple's insistence against video codecs that all other vendors are aligned in agreement on when it comes to video.
No. If what worked before continues to work, it means it's not broken.
Also: What "very basic functionality" doesn't the latest versions of Safari support?
IE6 continues to work fine for what it supported originally as well.
To my knowledge, file downloads worked in all browsers prior to mobile Safari being initially released. So Apple did release a browser that broke some quite basic web functionality.
Regarding Apple's insistence on not supporting Ogg (Vorbis|Theora) (I assume that's what you're alluding to), those codecs were briefly recommended by the HTML5 standard, but were later dropped.[1] Again, I think its a stretch to say that Apple broke anything, simply because they resisted a proposed standard. I know a lot of developers were disappointed, but that's how committees work: You don't always get it your way.
[1] https://en.wikipedia.org/wiki/Use_of_Ogg_formats_in_HTML5
IE was a vast pile of shit for about a decade. It was pile of shit so high that Microsoft took out ads saying in so many words that its latest version "doesnt suck, honest". I tore my hair out for years over IE bugs. Fucking kids these days. Mobile Safari might not be as magical as you would desire but it is not even in the same league as the virtual genocide/superfund/WMD that IE was.
GET OFF MY LAWN
And yeah, the title is pretty clickbaity; guilty as charged! But my blog has no ads, so it's not like I'm making money off of it. I'm just trying to draw attention to what I think is an important issue.
As others have pointed out, it's all a matter of perspective. If you're trying to build for Web 2.0, then Safari is a fine browser. But if you're trying to build for Web 3.0 (or the "next web" or "appy web" or whatever you want to call it), then prepare to be disappointed.
The worst thing MS did with IE was implementing proprietary, and very aggressively protected, solutions to common problems. Developers, excited about the new features, rushed to support what they felt was the next generation of web technologies, only to get caught in Microsoft's trap. Once they held the marketshare majority, they stopped innovating.
Safari is nowhere close to a majority player in the market (not even on mobile). Thus, it could never be considered equivalent to the evils of IE.