It's just corporate astroturfing.
AMP is obviously conceived, funded, and implemented by Google and its employees. If you squinted your eyes and tilted your head just right you could see a "good for the web" angle with faster mobile pages.
But AMP for email & AMP Stories have nothing to do with making the web faster, it's just another part of Google's attempt to essentially fork the web & control the platform so they can compete with Facebook by shoehorning FB/IG/Messenger features on to the web (Instant Articles, Stories, Carousels, "interactive" email etc).
That's bad in and of itself, and for Google to present its corporate strategy as an "open source" project so it can enlist the help of volunteers and those passionate about the web is disingenuous in the extreme.
There are far more worthy projects that could use volunteer help than a $750 billion company's corporate strategy.
Further thoughts here: https://twitter.com/lukestevens/status/963905898895699968
AMP is also slower than optimizing it yourself.
Really, I regularly get broken links on an android phone from Google News. It's hilarious to watch it try and resolve, if the article is more than 15min old. A direct link to the article just works. New links work. I'm guessing it's something similar to what you describe...
An idea predicated on a lie can only go downhill. Engineers need to, as best they can, convince product owners that AMP in any form is a poison apple.
Edit: I'm pretty vocal in those old threads calling out AMP as a walled garden play, FWIW. I remember AOL's early days.
Sorry (as in: I apologize).
As an engineer, I know AMP shows slow AMP sites before fast HTML ones and this disgusts me.
As a product owner, I need to be in that carousel. It's sales and pays my rent. So product owner me even made engineer me write an AMP library for node. It doesn't feel great.
Actually, there was one time I witnessed an engineer speak up about why a particular popular idea was a bad thing long-term. He left immediately after management squinted at him and tilted their heads like confused dogs.
That doesn't mean that it's not worth the effort. I would rather try something than to never have. All I can say now is that I won't be working on any future AMP development. The people who employ me may have to have to decide if it's worth firing me over an insidious Google feature. I hold no malice to my employer, but there comes a point where I cannot take money to do damage to the technology that enabled my career.
TLDR: Your point is well taken, but my point still stands that there should be some way for stakeholders to know that what they want may have long-term negative consequences.
Product owners will convince them right back with large 3 figure salaries, bonuses and RSUs. It won't be that hard either.
I'm pretty sure any programmers working on AMP at this point have heard the criticism (since it's repeated every time AMP comes up) and know what they're doing. They just disagree.
Even if it's getting a bug fixed to make your own site work, would it be better for it to be closed source?
"Open source" is just a useful fiction in this case: what would a fork of AMP even do? It does however make the project corporately palatable to others that might want to implement it (i.e. Microsoft/Bing), plus it attracts unpaid contributions to fix the work of Google's highly paid engineers ("Building the future web, together."). The former might be necessary but the latter is extremely problematic IMO.
Google could have set up AMP as an independent W3C group (for e.g.) at arms length from its competitive interests, but it didn't, and recent AMP product announcements show us why.
Community ownership and independent standards committees are not a requirement of open source. As long as forking is allowed, as a project owner, you're within your rights to veto any change. Consider Python ("Benevolent Dictator for Life") and Linux. Or for a smaller project, consider Elm.
It's not unusual for employees and volunteers to work together. Furthermore, the "volunteers" are often employees of a different company.
But as per GP's point, what would forking the project do? Who other than Google is positioned to host an AMP fork, and why would they choose to do so?
The centralized nature of the project makes it hard to understand what the point of it being open-source is, apart from being good PR and getting free work done on it.
I agree that you'd lose some benefits, but it's still an interesting web framework.
only contributed because my employer was lockedin into using AMP for the perverse SEO incentive.
Anyways, I'm just happy to finally have usable web results on mobile.
My irritation with AMP is also driven by the fact it's not usable for me. Reader mode is often broken in iOS which is a particularly egregious regression. URLs are obviously broken. And sometimes sites can't even get text-on-a-page right with their AMP versions: https://twitter.com/lukestevens/status/963910460796936192
If you optimize for the bottom line (as a business should), what will you pay most attention to?
Weird, I've been reading web results on mobile for over a decade.
> Instead of granting premium placement in search results only to AMP, provide the same perks to all pages that meet an objective, neutral performance criterion such as Speed Index. Publishers can then use any technical solution of their choice.
How would you measure this in a way that couldn't be gamed?
I'm not saying AMP is the best solution, but the way AMP prevents you from doing things that hurt performance makes it much easier for you to know for sure an AMP page has certain performance properties.
As soon as Google, the thing that indexes for relevance starts caring about an orthogonal behavior like performance, my ability to trust that I'll see relevant things first is compromised. Balancing between two good criteria dilutes both, basically.
Performance impacts a page's relevance in one case: if it never renders (times out), in which case it isn't indexable anyway. Otherwise, users have "stop" and "back" buttons at their disposal if a relevant page doesn't load fast enough for them.
Performance is important, but should not be a criterion for search results. The fact that it's may be incorporated into the ranking system is at best extremely misguided and at worst baldly avaricious.
They'll care because faster results will generally mean happier and more engaged users who'll want to use your search engine again. This applies even more for mobile users where you might be waiting 10s of seconds before anything is rendered on a slow page.
It seems like a bad tradeoff to make: marginally increase user engagement by serving faster pages at the cost of potentially compromising the primary reason (relevance) that people use your search engine? I'm sure there is data supporting that decision, but this doesn't make it sit any better with me. It's like going to the library and saying "I'd like the complete works of Shakespeare, please" and having the librarian say "well, here's our theater section, but please pay special attention to these abridged/easy-reading versions of Shakespeare, since we think they'll make for a more enjoyable experience for you. The complete works are on this floor somewhere; you can find them yourself."
I'm not saying that we'll automatically slide down that slope, just that it's there, and a bit slippery.
Ensuring a certain level of performance is not a very easy problem to solve. But it's doable.
Myself and a few others sat down with the AMP team awhile back and chatted about what that would look like and there were definitely a few different layers that would be needed to get it to work.
The first is already in progress. There's a spec for something called "Feature Policy" (https://wicg.github.io/feature-policy/). Feature Policy would let you tell the browser you don't need certain features which would in turn let browsers take shortcuts (so to speak).
For example, you could declare that you will not be allowing document.write. Enough features being declared could serve as a way for Google (and others) to say "Ok, this is going to be reasonably fast."
There's more needed of course: we had discussions about a standard related to declaring a limit on asset sizes, etc. But it's a start. And while it will always be a little fuzzy, the same is true of AMP. It's completely possible to build a slow AMP page.
The best Google can do is say "if they're doing X, then the odds are good that it's performant".
What I'm getting at is maybe AMP is Google's way to make the problem easy. Sometimes when a general problem is difficult, you're better adding restrictions to make the problem tractable.
> It's completely possible to build a slow AMP page.
Can you elaborate? How easy would it be to test AMP pages for that?
It absolutely is! (Sorry if I made it sound like it wasn't). That's what the goal is of Feature Policy and other standards too: to add restrictions to make it easier to solve.
> Can you elaborate? How easy would it be to test AMP pages for that?
I keep meaning to make an example, but real work gets in the way. :)
Basic gist though is that AMP is, again, only a fuzzy approximation of good performance. You can still mess it up.
As for testing, the best thing to do is probably test from the origin server. That way you eliminate the Google cache layer and just focus on what the format itself actually accomplishes.
There was a post recently where a guy did exactly that, and the results were far from instant: https://ferdychristant.com/amp-the-missing-controversy-3b424...
The conclusion, for anyone who doesn't want to click through, is that the vast majority of the performance benefits don't come from AMP itself. They come from A) the Google cache layer and B) the fact that Google preloads the AMP page in the background before you click on it.
Not sure I agree with this part though:
> What we know about AMP is that the technical standard in itself enforces good performance. For example, CSS is limited to 50KB and only inline, custom JS is not allowed (other than via an iframe method), and all images are guaranteed to be lazy loading.
Hence, this is why AMP pages load instantly compared to a “normal” web page. It’s enforced by the standard. Right?
If you're including several MBs of CSS and JS in a render blocking manner and even more MBs of non-lazy loading images (which really isn't unusual) you're going to have a significantly slower page. There's a lot of hate for AMP but those restrictions make a lot of sense.