HTML and Flash – the aftermath’s aftermath

I’ve had a very exciting few days as a result of my recent HTML/Flash post. Clearly there is still much to discuss on this subject! I had over 140 comments in the end, although at least half were probably from me. 🙂 I was so delighted that there were many eloquently expressed viewpoints and a measured and reasonable discussion.

I’ve attempted to summarise the conversation as best I can, but it was huge – some comments were even longer than the original blog post! But let’s start with those of you who are way ahead of me…

Comfort zone? What comfort zone!?

“I play around with many other technologies and languages. It’s part of being a good programmer (at least, I tell my boss I’m good 😉 )” – Mnem

“ I don’t think I’ve ever encountered a Flash developer who just ‘does Flash’” – Joseph Labrecque, elaborating further in his blog post.

“Seb: the Flash community embraces new technologies, like HTML5, CSS3 and WOFF” – Jerome

I’m very very glad that there are many Flash devs exploring all new options.

Flash abuse

“When I hear a web developer trash talking Flash… they are… devaluing the creativity… of extremely talented and smart people” – Dave

It’s important that we try not to take these things personally, otherwise we’ll get angry and that will only hold us back. If we shut ourselves off to changes in our industry, we’ll suffer for it. I try to understand why people may feel that way. Once you can communicate from a position of empathy you have more chance to prove your point.

“Is it just my impression or is the “open web” crowd a little more fanatical about dismissing the Flash world than the other way round? … I’d love to see everyone focus more on building cool stuff than what particular technologies get used to do it. ” – Peter Elst

I wish that we could separate the “cool stuff” from the technology that we use to create it. It’s when the technology stops being transparent that we have a problem. And when Flash is misused, it’s anything but transparent. I’m certain that a few misguided web developers will equally misuse HTML5 and JS. Sadly, native browser tech isn’t as easily identifiable as Flash and more of the blame will be apportioned to the coders than the technology they’ve abused. It’s unfair but there’s nothing we can do about it.

“your tone comes across as chastising the Flash community more than promoting open standards” – Andrew Odri

That’s a fair point. I always assume that most of my blog readers are Flash people so feel a need to provide the other side of the argument. When I’m with web devs I argue the case for Flash. Like I said, I don’t fit in. 🙂 I could have given more of the Flash side of the argument, I just assume you all know that already. 🙂

Flash or HTML – How to choose?

“Even as a JavaScript nerd, there are still times when I say… ‘this needs to be done in Flash’. …Once we needed Flash for complex animation, now we don’t. What we need flash for is rich interfaces, 3D animations and other complex interactions…Flash developers should be pushing… the next set of milestones for us… If we kill Flash, JavaScript might get stale… we shouldn’t Flash-bash. Flash is good. It just happens that it is often used for evil.”
– Clinton Montague, a ‘JavaScript guy’

“What’s worrying for me, is that the negative connotations for Flash have recently left the relatively insular world of web developers. Now agency clients are avoiding flash, in cases where it would be the best tool for the job, due to a general perception that Flash is a technology on the decline. “ – Lawrie

There is absolutely no doubt that bad Flash PR is having a huge impact and that is colouring agency clients’ demands. We can’t ignore this, but equally we probably can’t change it! The decision about using one over the other is easy :

If what you’re doing is simple – then use JS/HTML. Because if you can do it in a way that will work on iOS then you might as well.

If it’s more complex then you genuinely have a choice between Flash and HTML5: rich media performs very badly on iOS mobile Safari. So whether you do it in HTML or Flash it still won’t work. This will probably change over time as new iPads are released, but right now it’s very hard to get performant iOS rich browser content.

“You often want to build a website that is a combination of expressiveness and usability, if you feel you can express yourself using Flash, then… The trade off is usability sometimes.” – Gary Paluk

“And what’s wrong with Full on Flash sites? What’s wrong with the 99.99% percent of FWA? NOTHING!” – Giorgos

My personal opinion is that many of these full Flash sites are a little overblown and stylistically seem dated. But that’s just what I think. For my web usage I prefer to get the information I need as quickly as possible. And I get annoyed at sites providing me with an experience at the expense of usability. Call me boring. 🙂


“Have you seen what games are possible with JS already… I don’t see the need for Flash anymore. ” – Mike

JS gaming is getting better, and there are some impressive browser based games. Writing a JS game isn’t without its challenges but it’s becoming possible to make half decent games. But this doesn’t mean that HTML/JS has “won” and Flash will disappear. As long as Flash penetration rates continue to be high, and in-browser capabilities continue to improve, developers have a genuine choice between the two technologies.

I’ve tried both and it’s still easier to make a game in Flash. There are many things that browsers simply can’t do reliably yet. Of course that will change over time and if JS is capable of doing what you need now, then I wholeheartedly encourage you to explore this. I certainly am!

“If you are a Flash developer and still have a full roster of work, you have absolutely no reason or obligation to learn JavaScript. Keep doing what you’re doing, raising the bar of innovation and creativity.” – Iain Lobb (game developer extraordinaire)

Of course you’re under no obligation to learn JS – it’s just a suggestion, take it or leave it. It can only be positive, even if you don’t end up using it.

There are huge opportunities for people like you (Iain) who can make games. And sure, JS/HTML is pretty primitive now, but that’s changing all the time. And just because it’s primitive, doesn’t mean you can’t make a fun game with it. We used to make excellent Flash games when it was way less powerful. Just because we have an XBox doesn’t mean that it’s impossible to have fun with a Flash game.

In the rest of the web dev world, clients are demanding non-Flash websites (see Matt Hamm’s comment below). I expect clients are also demanding non-Flash games. Right now we can say “no way, it’s much better in Flash. And iPads are too slow to run HTML5 canvas games any more complex than tetris”.

But there will be a threshold. The new iPads will come out. Browser capabilities improve. You can be sure that at some point, there will be someone offering your client an HTML5/JS game. And we know it might run better in Flash. We’ll know the tools and the language are more powerful and more mature. But your competitor won’t care about that. And nor will your client. It will be good enough to make a fun game.

Of course Molehill will have an impact and Flash will continue to get more awesome for gaming. It’ll be interesting to see how that one plays out. You know me – I love new stuff and will enjoy exploring the new hardware accelerated Flash features.

But if you can also make make JS games, your highly specialised skills will be hugely in demand in the coming months and years.


“Watch what is coming with the next release of Flash [hardware accelerated 3D with Molehill]: // Can you run this with WebGL ? When HTML5 will become a standard, where will be Flash ?”

WebGL should in theory be comparable to Molehill, but of course there are cross browser issues (astonishingly, no support in IE9!). FlashPlayer should be the widest supported method to get hardware accelerated graphics in your browser. Let’s see how that one plays out!


“Bottom line. Apple reports 160 million iOS devices sold. We know none of those devices have Flash, which means consumers are doing just fine without. To me, that sends the ultimate message.” – Chuck

iOS has clearly made a huge impact: website owners have had to ensure that their sites work without Flash. I have an iPhone and I very rarely find a site that doesn’t work in my day to day browsing.

“And yet I’m wondering how many of those 160 million users would install Flash if they had the option.” – 0L4F

Good question to which I genuinely don’t know the answer! And my guess is that we’ll never know. Presumably a proportion of the people that buy non Apple iPhones and tablets will be doing so because of Flash.

“…All my clients demand that websites function completely on iOS devices and even that the layout/style of the site responds in appropriate ways according to screen size.” – Matt Hamm (web designer)

I really appreciate Matt sharing his view as a web designer. It seems that the majority of website clients want their stuff to work in iOS. If we want to use Flash, we have to have a very good reason to do so.

“Since the iPad, there is now no way to build once and deploy everywhere (for a complex animated site or game). IMO that was the greatest strength of Flash…” – felix

I’m fascinated that the write-once run anywhere ideals of run-times haven’t quite materialised and I’m not just talking about Flash. Probably a huge subject to investigate by itself.

“The iPad is actually not powerful enough to handle any but the most trivial animations/games [in HTML5]… A JS/Canvas block running in a website is no more accessible or ‘semantically correct’ than the same content running in Flash.” – felix

An excellent point that the open web dev community often miss.

Javascript/browser difficulties

“Do you know how bad the cross-browser functionality for HTML5 is?” – Tomas

“JavaScript is shit / doesn’t have strict typing / OOP / mature IDE etc etc “ – various

I’ll let Andy Hume (a front end developer from ClearLeft) answer that :

“implementations of JavaScript are messy within web browsers. But over the years we’ve learnt… good programming patterns… prototypal inheritance… etc… We’ve developed libraries like jQuery, which have then gone on to inform the design of standards and browsers themselves.

“Web development is a young industry. The technology we’ve got… is advancing… we’ve overcome huge difficulties in building web products …It’s almost difficult to comprehend how far we’ve come. And we’re continuing to move forward little by little, day by day.

“It’s far from perfect. But if you work on the web you get used to it, you learn to embrace it, and actually I think you grow to love it.” – Andy Hume, ClearLeft

And I can only add : If there’s a good reason to do something in JavaScript then we can work around its limitations. The fact that there were better languages around didn’t stop us using AS1 or AS2. We used it because we wanted to deploy to swfs. I can’t say I love ObjectiveC but I like building things for iOS. If there’s a good reason to make stuff with JS, then we can do it. We’re very experienced programmers. We’ve done harder things than this!

“With Google’s GWT // you can code in Java (typed) and compile it to JavaScript. Cross browser issues can be solved very elegantly with so called “deferred binding”: the compiled JS “chooses” the correct code for different browsers.” – Tim Knip

Worth looking into I think!

“…horribly slow JavaScript…” – Gary Paluk

JavaScript performance is leaps and bounds ahead of what it used to be and is actually comparable to AS now. It’s anything but “horribly slow” these days.

“HTML5 is a working draft, which means you can wait before all the functionalities work on all browsers.” – Sébastien D

HTML is always a changing standard, but it doesn’t stop anyone using it. More information about this at the WHATWG and yes it’s not HTML5 any more. 🙂

“Advocating for the use of Javascript in the name of progress… is not cool. I’d call that programmer-abuse.” – scriptkitty

I find the extreme reactions to the idea of learning JavaScript somewhat amusing (I’ll never forget Iain Lobb’s “I’d rather die than go back to a non data-typed language!”) I’m not sure my recommendation equates to programmer abuse. Seriously though, it’s just a suggestion. Ignore it if you like. 🙂

Apple hate

“just one thing kill your ipad” – io

“your enthusiasm for html5 and apple is pretty clear but not particularly well supported by the facts… apple has made a mistake over flash; it takes an apple fanboy to deny it.” – joshW

Seems there is still some Apple hate in the Flash community. Luckily for the haters, it’s possible to build a completely successful programming career whilst completely avoiding anything remotely Apple related.

But if you’re making websites, you can be sure your the vast majority of your clients will want their sites to work on iOS.

In my “What the Flux” survey of 300 (mostly) Flash developers, 60% have been asked to make iPhone apps, and 60% agree that the iPhone has the best UX. Like it or hate it, they’re doing something right. You can avoid it but, if you’re in this field, you’re doing yourself a disservice if you don’t at least study what they’re doing and understand why it’s popular.

Flash can be fun

“Good Flash has always been about throwaway entertainment that puts a smile on people’s faces… So your Macbook fan revs up a little when you’re watching kitten videos… so your browser crashed when you were planting aubergines in Farmville… who bloody cares really? World’s smallest violin. Nobody got hurt… If it bothers you that much then turn off your computer, go outside and climb a tree or something.” – Mark Burville following up in his blog post.

Classic quote about the tree 🙂 Thanks Mark.

Religious wars

“… Flash bashing comes from ignorance. But so does the web standards bashing. Both sides have a lot to offer the other. And isn’t it silly sometimes that there are sides at all? Learning JS or whatever else isn’t necessarily advice to prepare for the death of Flash. (because, honestly it’s not going to die) Being open to whichever new things might apply to us is only going to be a good thing.” – Val Head

“There are very few people at Adobe that ‘hate’ any technology. Flash itself is a collection of technologies, and a multi-billion dollar global industry driven by creative talent and some of the worlds largest businesses… Now, as someone who grew up in a real religious war, I will offer this advice… Keep an open mind, and move past those who demonstrate the will to stop you forming your own opinions.” – Mark Doherty, Adobe

“…I’m ready to switch over when JavaScript grows up a bit.” – John Davies

It’s not necessarily a question of changing sides, more exploring all possibilities to make you a better developer. I certainly not leaving Flash any time soon!

Everythings fine! La la la…

“I wonder how necessary this post really was. A Flash developer would have to be living in a cave not to have heard much of this already… My sense is, given the constant barrage on sites like Techcrunch and elsewhere, that the Flash community really didn’t need another reminder.” – Brian Rinaldi, Adobe

I hope that my blog post and subsequent discussions are nothing like the kind of horrible ignorant Flash-bashing that happens at Techcrunch. If you feel the Flash community is so sensitive that they can’t handle a reasonable, informed and intelligent discussion of the benefits of JavaScript, then you’re massively underestimating them! 🙂

Join with us!

“Do I care that I’m not working in AS3 as much as I’d like? Yes, a little. But now I find that I can [do] a lot of ‘Flash’ things with CSS, Javascript and Typekit… I still get to explore and try new things… For the record, ex-Flash developers make MEAN html developers. I encourage you all to jump in the arena and give the regular html guys a run for their money.” – Craig Anthony

“…I would love to see more Flash developers like Seb and I attending events like New Adventures to talk to the wider web community about how [our] skills… are transferable. If we become one side, one community I think we will see some really rapid advancements in the non-flash graphics programming on the web, which I for one would be delighted to see.” – Ringo Moss

Whew! That was a lot to get through! I think I just about touched on all the most commonly expressed views.

I’m sure that you have plenty more to say on the subject! The only thing I ask is please try to be succinct! And thank you for your continued reasonable anti-inflammatory non-angry discussion. 🙂

21 replies on “HTML and Flash – the aftermath’s aftermath”

A quote by me is taken out of context. Javascript speed has increaced recently but between different browsers you can never be sure that it is going to run as quickly as the other. Chrome can run JS quickly, perhaps ~400% faster than some other browsers. Since HTML5 also depends on the speed of canvas rendering, perhaps I should have said that the technologies, on average, over a selection of browsers, on a selection of platforms, on a selection of specs are generally slower than Flash execution. Now that’s a little less ambiguous ^_^

Good summary. Thanks for taking the time to do that.

I am a little dismayed though at how the portion of my comment was portrayed. In no way was I implying “everything’s fine” (nor that the Flash community is overly sensitive). I was talking about using our energy to correct misconceptions being held by and disseminated by speakers and attendees at conferences like naconf. The point was that in my personal view, there’s not enough of that going on however we have an overabundance of posts and messages to Flash developers trying to enlighten them on HTML5 and JavaScript (not that there’s anything wrong with that message, it’s just a bit redundant in my view – particularly for the type of audience that would read your blog).

Hi Brian, I clearly got it quite wrong but I read the tone of your post as quite protective of the Flash community and encouraging a blinkered view. Your clarification helps so thank you!

I feel a responsibility to pass along things that I find from outside the Flash world, I’m sorry if it seems redundant to you. I can only hope that it helps others not as clued in as you are.



Hi Jonas,

there’s no denying that iOS definitely shook things up a bit!

Here’s something to think about : how would it be if Apple had included FlashPlayer on iOS? Do you think the early iPhones (and even the iPad) are fast enough to run a full FlashPlayer?

What would have happened if Flash on the iPhone sucked? Would people hate Flash less or more?

I honestly don’t know the answers to these questions. And of course Apple’s continuing refusal to put Flash on iOS is a political business decision.

But there’s no point in being angry about it, let’s focus on making cool stuff instead!


It wouldn’t have mattered.

HTML5 runs absolutely HORRIBLY on iOS, do you seem them hating on canvas? Of course not, because it really has nothing to do with performance at all, if it did they would be praising flash for it’s great performance on Android (relative to canvas anyways).

It’s mostly fools, who get all fanatical about what Jobs tells them, but never bother to actually learn the truth.

The other part of people are the html “purists”. Most web developers I’ve ever met do some flash, and _every_ single flash developer I’ve met does js/php/html/css etc etc etc. So as far as I’m concerned, these purists who never do flash are little more as a small but vocal minority.

HTML5 canvas does run horribly on iOS, and FlashPlayer on Android runs surprisingly well, at least on my Nexus1. Despite this, my experience of FP on mobile was unsatisfactory – untouchable buttons and components, unplayable key controlled games etc. I need to be convinced that any “rich” mobile browser content can provide a good UX, whether it’s Flash or HTML.

I’m sure you didn’t mean to, but your comment comes across as a little angry. But I’m very glad that the Flash devs you encounter are so open minded. Seb

Seb, I totally agree with you about learning new stuff, etc, etc. I am loving all these changes because they are putting me in contact with a lot of new technologies (I am one of the ‘flash-guys’) and I am discovering how much power we can have when we know a lot of different solutions for the same problem. But I think Jonas has a good point. And I indeed had this impression reading your post.
I own a small advertising company here in Brazil and my clients are already asking “I want to be on the iPad!” :). But, as yourself said, iProducts browsers are still quite slow and we cannot do really cool things unless we go to the APPs. Look at the FWA Mobile, almost all websites there are quite boring. On the other side, Flash is still installed in a LOT of computers. So, if you want reach EVERYbody TODAY, the best way, I think, is use Flash and then build “something” for iProducts and other less powered mobiles.
Dont take me wrong, as I said, I am loving these changes (I am even receiving more money per project now! :), but Flash is NOT ONLY for games and ULTRA complex stuff yet.

I think what gets me about this whole argument is the intellectual dishonesty inherent in the argument that “Flash is bad for mobile while JS is perfect for it.” The fact is that JS has worse performance than Flash and rich experiences delivered in a web browser *in general* are bad on mobile devices. If you see something in Flash that runs slow on your android phone do you for a minute think “this would be so much better/faster/cooler in JS?” I surely hope not, but how many HTML partisans actually do?

Or even more dishonest is the argument that Flash is completely incapable of handling touchscreen input. How many years has it been used in touch kiosks again? And what are we comparing this to anyway? Is the argument that Javascript by default is somehow “touch enabled?” I can show you a half dozen sites full of cool JS experiments that completely break on touch screens.

And what ever happened to the mantra that sites should always be “accessible” and that this is one of the reasons that Flash is so evil? Is there anything “accessible” about thewildernessdowntown? Is there anything accessible about a site that is so heavily scripted that a user who surfs without js enabled can’t access basic functionality? Is it somehow less “evil” to make a site inaccessible because of JS than because of Flash?

Funny, I don’t hear the HTML crowd parroting the line that “we should use the tool that’s best for the job.” Rather I hear a lot of lies and misrepresentations in a quest to spread their chosen technology. Do they somehow think the web will be a magically better place when all the annoying ads are written in horribly coded, browser-crashing JS and there’s no way to kill them without killing the rest of the site’s scripts?

re What if Flash was on early iPhones:

When Flash player was ported to mobile devices iPhone 3GS had been out for about a year. I have a Droid 1, which is slightly slower than a 3GS and it runs most Flash content I’ve tried pretty well. There are some swfs that are really slow, but they are very graphically heavy and clearly not optimized for mobile. After playing some of the mobile Kongregate games I’m very impressed by the speed of Flash on mobile. Perhaps iPhones pre-3GS wouldn’t handle the content very well, but Adobe set minimum hardware and software requirements for the Android version, they could have done the same for iOS. The iPad and iPhone 4 should be capable of running Flash content much faster than my Droid, and if future iOS devices use a Tegra 2 chip then you get blazing fast hardware accelerated Flash.

The fact we pay such lip service to iOS is a remarkable testament to the brand power of apple, but are we really going to allow 1.36% percent of the internet to hold hostage our future technology decisions?

That’s all for me now – “Must not get trapped in a flame war, must not get trapped in a flame war, must not get trapped in a flame war…”

Cool little overview, it does seem a little unfair that Flash is being set in a negative light, but life isn’t fair. I don’t know for a fact but it seems very likely that (as stated above by Lawrie & Seb) agency clients are avoiding Flash as a solution because there is, “a general perception that Flash is a technology on the decline.” This however is the nature of the world in which we work, one technology may or may not be a better solution than another, but only one will be chosen. Hopefully, over time the “right” technology/solution will be chosen more often than the “wrong” for a given problem. In my eyes, this is a huge factor in helping to set standards around certain technologies, ultimately the “right” solution proves itself. For better or worse (depending on the angle from which you choose to view) companies can just as easily define standards, promoting or demoting a given technology, again this is the nature of the world in which we work.

I would think it is pretty safe to say (though no guarantee) that most every Flash developer has worked on at least one project, site, tool, etc. deployed as a .SWF for a client, where .SWF may not have been the “best” solution. Flash has just as easily had the general perception in agency eyes as a technology on the rise, and clients wanted Flash to be used as their solution, whether or not it was the “best” solution. Take the good with the bad.

Ultimately, I don’t see Flash’s “death” anytime soon, but we’ll all just have to see how things play out. The best we can do as Flash developers is to continue to create the best work we can, its as simple as that. When Flash gets a “bad wrap” due to a poor performing project, site, tool, etc. I would bet that there are often two (or one of the two) underlying issues involved.

1) Deadlines – Where a project, site, tool, etc. is released prior to it being fully ready. Time is not permitted for testing and optimization.

2) Memory Management – Where a project, site, tool, etc. is released and the developer is still learning (I would argue we’re all students and will continue to be) about Flash, its power, and correctly harnessing that power (in addition to becoming very knowledgeable of OOP and design patterns). Or again the issue of deadlines shows its head.

Do you guys/gals feels this is an accurate assessment?

It is obvious however that Flash is what it is because it pushed the boundaries of its time. Most everything HTML5 and CSS3 are bringing to the table Flash can already do and do well. Though much I feel should be native capabilities of HTML, CSS, and browsers in general, and this seems to be what is happening.

The fact that Flash Player has a much more rapid release cycle compared to HTML/CSS is a huge advantage, an advantage we must not forget. Flash Player can therefore iterate over, test, and deploy new possibilities more frequently. As long as Flash and the Flash Player continue to push the boundaries of its time (and do so successfully), I feel it will remain in a comfortable position. But again, for better or worse companies can just as easily define standards, promoting or demoting a given technology, again this is the nature of the world in which we work.

I will keep a steady eye however, but I will Flash on.

For me I think the issue isn’t the scripting language I use, it is more about how comfortable I feel with the Adobe tools I like the metaphor and the GUI. My work ranges from AS3 and timeline tweens to bit shifting and bitmap processing and papervision within a single swf.

I often use JS to access and interact with the browser but not for animations, because most of the my animation are more what you could call multimedia swfs.

My work and I think most flash developers are only 50% about code, and I like the flexibility and the autonomy of combining the varied content that is usually required.

Great overview. Overall this has been a great discussion.

I just wanted to add my perspective on the supposed demise of flash.
I’m an elearning developer and I will often use flash to create simulations/highly interactive material.

Last year I dabbled with purely html+css+js learning objects. It was fun to play around with but ultimately an exercise in futility, why?

Well the institution I work at has a large network of thin clients all of which run off xp with either IE7 or IE8 the. I just couldn’t get a decent and consistent experience across the browsers .

Were not going to roll out Windows 7 any time soon so I’m stuck with those browsers.

So for me and the users I cater for flash (where appropriate) is the best and only option.

Flash will still be around for games and RIAs for businesses for a simple reason: Copy control.
In HTML5 you can just rip off the code and paste it on your website and make people believe it is your own work. I’ve seen a few copies of MrDoob Harmony on the web already.
Although you can decompile flash, it is a bit less straight forward and you can obfuscate it to render it impossible to make sense. This plus cross browser incompatibilities and inconsistencies in HTML5 doesn’t actually make it sensible choice for serious Rich Internet Apps. Also all the actors of the industry have to agree on their implementation of HTML5, as IE or an other is lagging there is no way you can alienate such a big part of your users.

I think the hate around flash will diminish as well when the banners will be replaced by their HTML5 equivalent. They might even be worst. Layers on top of websites and 30 seconds ads are horrible and it’s all html layers.

My guess is HTML5 will replace the simpler content, videos and banners eventually. But it is not mature enough yet to replace it for more advanced apps.

I feel like your opinions have formed because you like Apple, and you like Flash, and they fought, and so there was also a fight in your own mind, and Apple won for some reason, probably because they make more, and more useful, stuff. Everything else is you attempting to rationalise the result, which involves generalisations. Is that close?

I spend the majority of my time learning and researching to ensure that I can be as impartial as possible, but the situation is far from black and white. As I said in my post :

“…we humans like to have distinct winners and losers, success or failure, love or hate. Reality is much greyer and more complex than that.”

The reality is complex and I try to present opinions with facts to back them up. No one can be truly impartial but I try my best. At least you can be certain that I know about all the technologies I’m commenting on before I do so.

It is also possible to like Apple products and also like the appropriate use of Flash. And have fun exploring HTML. And just because I like Apple products it doesn’t mean that I approve of everything Apple does! Some people find this hard to believe.



Comments are closed.