Google AMP lowered our page speed, and there's no choice but to use it - <AUTHOR> https://unlikekinds.com/article/google-amp-page-speed <comment><USER2> I'd love for Google to explain the justification for putting _only_ AMP content in the "Top Stories" carousel. Google needs to either rename the carousel to be "Top AMP stories" or allow non-AMP stories to appear in the carousel. Isn't the whole purpose of search to prioritize the most relevant content, regardless of the type of HTML used to create it?

<comment><USER3> I've asked the AMP team exactly this and they punted and demurred on the subject and said they have some vague plans to some day make it also contain sites that are as fast as AMP.

The AMP team will tell you that they are concerned with making the web faster, and it's the _search_ team that controls the carousel. Which is all well and good, but I can tell you that the _only_ reason any publisher is doing AMP is because they want the placement in the carousel and better search results.

As far as I can tell, google has no intention of ever allowing non-amp content they can't re-serve from their cache and add whatever analytics and tracking they want to from being ranked highly. AMP is a tactic to let them track the most lucrative mobile web users and take control away from publishers of original content.

<comment><USER4> There is nothing about an AMP page that makes it inherently faster until it lands in and is served by a Google regional cache server. Otherwise my site is going to be just as fast. I can make just as fast web pages and serve them from a server sitting in the same state as my customers. There will be no need for Google level scale for my site as it is regional. Yet I still get put below AMP sites.

From many different angles, AMP getting preferential treatment is heavy handed and clumsy, manipulative and forcing technology standards on the web that no one agreed on.

<comment><USER5> AMP limits what the page can do, and allows Google to safely serve content through a cache. So Google can preload and prerender the page in an iframe. As a result clicks on the carousel are literally instant. That can't be done safely with a regular HTML page.

<comment><USER6> I can't help but wonder what problem they're solving for. Is there a huge market of people clamoring to make webpages load faster than they already do?

<comment><USER7> You should try loading "the modern web" over a not great but passable phone connection (ie 3G maximum) on a non-flagship phone. Nearly every normal website you will have an exceedingly bad time on. That's what AMP claims to solve. Far be it from me to claim they succeeded or that they are doing it in the right way, but I think pretending the problem doesn't exist at all is disingenuous.

<comment><USER8> Why not fixing "the moder web" then?

<comment><USER9> Because convincing all the website owners to do anything (even if it clearly benefits everyone) is an impossible task.

See HTTPS adoption.

<comment><USER8> HTTPS adoption:

[https://storage.googleapis.com/cdn.thenewstack.io/media/2018...](https://storage.googleapis.com/cdn.thenewstack.io/media/2018/04/253fa7e9-ssl.png)

Great example. You just proved my point that it is possible to have positive change in large communities.

<comment><USER9> I'm not sure that graph shows what you think it shows.

That graph shows that there's an obnoxiously large number of websites that don't support something that there's zero reason not to support.

It costs $0 and takes _maybe_ half an hour to implement, browsers are screaming "not secure" to each visitor, and one in five websites _still_ don't support it. "Make websites faster", on top of being vague, is way more difficult to implement.

<comment><USER10> 1 in 5 NOT supporting it is much better than the opposite when I started working in the web where 90+% of websites didn't support HTTPS.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> > Then there's users begging Google to allow them to use more than 50kb of > CSS. Yes, most site's CSS is bloated. But 50kb is an absurdly small, > arbitrary limit.

I think for static articles 50kb should be plenty. The linked page itself uses only 35kb and a third of that is fontawesome. And 32kb of that is actually unused without javascript enabled. So the site only uses 3kb, but 50kb is absurdly small?

This site (Hacker News) gets by with 2 kb.

<comment><USER12> To be fair, HN looks like it was designed in the mid-2000s

<comment><USER13> And yet it works.

The problem is designers and their bosses/clients. They equate design with looks. As a result, they see design as solving the problem of aesthetic. They fail to realize this is a problem which very few people care about on the web. So long as it passes the smell test of credibility, no one cares. (Excluding a handful of cases.)

As a result, we, the users, must suffer.

<comment><USER14> That's true only for (some) tech-literate people. Everyday users will quickly think something looks ugly/old/cluttered when compared to the other apps/sites they use.

I'm an outlier on this site because I generally like redesigns and all that comes with modern web stuff (white space, rounded corners, flat, light drop shadow, generally clean and option for dark mode).

I find it's easy to test. Take a redesign you didn't think was necessary and then look at it 3 years later. Design changes over time. It's just life.

HN for some reason did age decently because it's very spartan and minimal. I like it. Even mobile is fine for reading. Not so much for contributing though.

Edit: Actually, everyday users might not care much either way. UNTIL some other site with similar functionality comes along but looks much more modern. Or if the site is trying to get new users.

<comment><USER13> "I like" is precisely the mistake I am addressing.

Design is not about what one likes. It is about what helps one solve a problem.

Web designers and their bosses/clients reduce "design" to the creation of the look-and-feel of websites. For them, design is all about how something looks. This is something which is highly subjective.

The flaw in this is that it's not how users think. Users have a job-to-be- done. A good design is one that helps them accomplish that job. A better design is one that helps them accomplish that job better, faster, or easier. A bad design is one which doesn't help them or makes it worse.

Consider a monolingual English speaker using an ATM in China. You will never hear them say, "Well, I can't get my money because I don't understand Chinese. However, this ATM looks so nice I'm going to try to use it again."

It doesn't matter how great that ATM looks if the user cannot accomplish their task.

Yes, aesthetics have a place, but it's a very diminished place of importance. Aesthetics is much less important than most web designers and bosses/clients think.

It's time they get over themselves and start thinking about users.

</comment></comment></comment></comment></comment><comment><USER15> > For a start, anyone contributing to AMP is required to sign a contributor > license agreement (CLA) for their code to be accepted into the project

This is pretty standard. You have to sign one to contribute to _Emacs_.

<comment><USER16> I noticed this too, and immediately thought of the FSF. But I kept reading and thought this was different:

> Note, you don't grant these rights to the AMP Project, you grant them to > Google. Google owns the code and patents.

<comment><USER17> This is standard. Copyrights are assigned to the body that owns the project. For EMACS this is FSF, for AMP this is Google. The only time it's something different is if a project is owned by a foundation just for that project but super common in the OSS world. Have you done much OSS development?

<comment><USER18> Why don't projects let you sign away your copyright so your contribution becomes public domain? Is that even possible?

<comment><USER19> In many countries authors aren't allowed to put the code under the public domain. To avoid these issues it is instead preferred to provide an explicit copyright license.

[https://opensource.stackexchange.com/questions/1371/](https://opensource.stackexchange.com/questions/1371/)

</comment></comment></comment></comment></comment><comment><USER20> A reminder to all AMP-haters like me: When using Firefox mobile, Google search results become free of AMP crap.

Also, you get the added benefit of a browser whose maker has no interest in tracking your every move.

<comment><USER21> And it has extensions like desktop browsers do, including ones that remove even more modern website bloat

<comment><USER22> You mean built-in extensions or can you add some now?

<comment><USER23> You have always been able to use every desktop extension on mobile FF, at least as long as I have been using it.

<comment><USER24> Android or iOS?

<comment><USER25> Android. iOS's firefox is Safari (like every browser on the iPhone) with a firefox overlay.

</comment></comment></comment></comment></comment></comment><comment><USER26> Microsoft was sued by DOJ by bundling IE with the OS. Google is doing a similar thing with AMP. They are walking a fine line.

<comment><USER27> you don't HAVE to use google search. everyone just prefers it. people prefer bing for searching videos(less censorship) and duck duck go for more organic results.

i don't think the AMP carousel is anything but a feature. people need to stop treating companies as services. products can go away in the blink of an eye.

<comment><USER28> Why is there constant advocacy to do away with anti-trust laws on this website?

<comment><USER27> how is it violating anti-trust is what i want to know. you don't put your website on google amp so google ranks you lower - they've told you this upfront. if you don't like google amp you can choose to not support it and take the advertising/SEO hit(which is really a monetary hit)

except no, people say they are "forced" to use google amp. well duh, google was also "forced" to make amp due to the shitty way people design websites in general(slow, ads in awkward places leading people to install ad blockers etc etc)

amp is inevitable in my opinion - the old style of ads are intolerable to most users now and google needs to keep up since ads are their core business

<comment><USER28> using your monopoly to force another one of your products on people violates anti-trust law

that's how

</comment></comment></comment></comment></comment><comment><USER29> Google needs to be split up and shut down. Why aren't the American authorities using the antitrust laws that is already there?

<comment><USER30> Basically because the current philosophy of the US justice department anti trust prosecutions is whether market dominance of the player harms ordinary people or causes them to incur higher cost. It is not really about actual monopoly power. Google has been pretty careful to stay consistent with this philosophy.

This wasn't always so in the US and it's not the same philosophy in EU. However, it is a valid and consistent view.

<comment><USER31> Corollary 1: You are legally allowed to kill all of your competition while not improving your monopoly product as long as you keep your product free.

Corollary 2: Human attention is considered equivalent to monetary value of exactly $0 by US government.

Corollary 3: You should never trust your government to be smart or do right thing for you.

<comment><USER30> Counterpoint: If you strongly want your government to change its approach, organize to change the government.

In US, it's very safe to do this without violence but even in significantly less safe places, people have successfully done this peacefully [1] [2] [3]

[1] [https://en.m.wikipedia.org/wiki/2013_Delhi_Legislative_Assem...](https://en.m.wikipedia.org/wiki/2013_Delhi_Legislative_Assembly_election)

[2] [https://en.m.wikipedia.org/wiki/2011_West_Bengal_Legislative...](https://en.m.wikipedia.org/wiki/2011_West_Bengal_Legislative_Assembly_election)

[3] [https://en.m.wikipedia.org/wiki/October_2005_Bihar_Legislati...](https://en.m.wikipedia.org/wiki/October_2005_Bihar_Legislative_Assembly_election)

</comment></comment></comment></comment><comment><USER32> \- Killing the web with AMP

\- Killing email with gmail specific garbage

\- Killing mobile phones with walled gardens

\- Killing browsers by implementing their own spec and fuck everybody else

\- Killing open source tools by releasing closed source extensions for VS Code

Google has done a complete and total 180 in the past 10 years. I remember when the name inspired and made you feel safe that this thing you were using was made with character and thought to your well-being. Now it's a dry-heave feeling having to touch anything Google.

<comment><USER33> \- Yeah, hate that Google walled garden. Much better to go with Apple.

\- Yeah, that gmail specific stuff is evil, except it isn't gmail specific at all.

\- Yeah, killing browsers with Chrome. Just like IE6 except it's open source, cross-platform, evergreen, and pushes standards forward rather then trying to subvert them. The biggest problem now is others like MS using their browser engine is reducing diversity, but I guess that's their fault for making it open source. evil!

\- And yeah, they have now officially destroyed VSCode (which includes lots of closed source MS stuff) by releasing a closed source extension.

<comment><USER34> These arguments don't invalidate OP's critique of Google's positions though.

[https://en.m.wikipedia.org/wiki/Two_wrongs_make_a_right](https://en.m.wikipedia.org/wiki/Two_wrongs_make_a_right)

<comment><USER33> Your only two options on mobile are Apple & Google and he is calling out Google (in fairly extreme terms) on a point where they are easily the better of the two.

It shows what a silly contortion he was going through to tell us to hate Google.

</comment></comment></comment></comment><comment><USER35> Hi, full disclosure I'm the founder of a company providing AMP services.

You can hate and have valid arguments against AMP, but... on this article, in particular, where is the data?

How can people comment and form an opinion based on basically nothing?

Am I missing the "before and after" links with the benchmarks?

<comment><USER36> (Author here)

You can run the test yourself on the AMP and non-AMP versions of an identical article to see yourself.

(Note: sometimes the numbers are off the first couple of times you run tests. If you run them multiple times, the AMP articles tend to score (sometimes significantly) lower.)

Non-AMP: [https://unlikekinds.com/article/google-amp-page- speed](https://unlikekinds.com/article/google-amp-page-speed) (Results: [https://imgur.com/OVpdwyh](https://imgur.com/OVpdwyh))

AMP: [https://unlikekinds.com/amp/article/google-amp-page- speed](https://unlikekinds.com/amp/article/google-amp-page-speed) (Results: [https://imgur.com/I3ha7Gi](https://imgur.com/I3ha7Gi))

Edit: More data here: [https://news.ycombinator.com/item?id=19630846](https://news.ycombinator.com/item?id=19630846)

<comment><USER35> The AMP version gives me better results: [https://www.dropbox.com/s/g4jchw76sh9x49k/Screenshot%202019-...](https://www.dropbox.com/s/g4jchw76sh9x49k/Screenshot%202019-04-10%2021.37.39.png?dl=0)

Non AMP version:[https://www.dropbox.com/s/lclqqdbdliuofjf/Screenshot%202019-...](https://www.dropbox.com/s/lclqqdbdliuofjf/Screenshot%202019-04-10%2021.40.12.png?dl=0)

My email is on my profile if you want to talk about this. Maybe we can help.

Edit: If you compare against the cached version, the version that your mobile users are going to hit, the results are much much better: [https://www.dropbox.com/s/c2y5akqclcim7tm/Screenshot%202019-...](https://www.dropbox.com/s/c2y5akqclcim7tm/Screenshot%202019-04-10%2021.44.23.png?dl=0)

<comment><USER37> > _My email is on my profile_

The 'Email' field in the profile is not visible to other users. You should add it to the 'About' field.

<comment><USER35> Updated. Thank you.

</comment></comment></comment></comment></comment><comment><USER38> I am wondering when the EU is finally giving this BS a fine.

</comment><comment><USER39> The irony is that the web version of google news on mobile is horrendously slow. Hackernews seems to have good performance though, maybe they can take some design cues.

</comment><comment><USER40> AMP has totally ruined the internet for desktop users. ~90% of AMP sites don't even provide a link to the full desktop version of the page (unless you want to dig through the source code of the page, but even then it is hit and miss), and AMP sites are linked to more and more on social media sites like reddit.

</comment><comment><USER41> I think the most fundamental issue here is that organisations are rebuilding their websites with AMP to align to Google search, when Google search is not the only search product available (much as you could believe otherwise from the discussion!).

How did all the work this company did add any value for someone using DuckDuckGo, Bing, Ecosia, etc considering the site was already fast?

This type of activity is a bad outcome.

<comment><USER42> Bing also preloads AMP pages, so this work would add value for Bing users. [https://blogs.bing.com/Webmaster- Blog/September-2018/Introdu...](https://blogs.bing.com/Webmaster- Blog/September-2018/Introducing-Bing-AMP-viewer-and-Bing-AMP-cache)

Same with Baidu. [https://9to5google.com/2017/03/07/accelerated-mobile- pages-e...](https://9to5google.com/2017/03/07/accelerated-mobile-pages- expansion-yahoo-japan-baidu-china/)

</comment></comment><comment><USER43> Google isn't the web. To make the point that they're dictating web standards is like saying that walmart makes people sick by only placing unhealthy products on their end caps. Like it or not, it is Google's store and if you don't like it, sell your wares in the Whole Foods down the street (duck duck go) or find a more creative channel than SEO (Instagram, podcasts, Twitter, etc).

<comment><USER44> Google isn't the web like the banking system isn't the only way to move money - you can do it, but it's really really difficult and if you have business ambitions it's almost certainly the wrong choice to avoid it.

<comment><USER45> I don't think Ben Thompson (stratechery.com) spends too much time worrying about SEO and Google. He built a solid reputation with excellent idea and he did this strange model of getting people to pay money for stuff - over 3000 people to pay him $100 a year to read his content.

</comment></comment></comment><comment><USER46> Soon enough Google will face the fate of Ma Bell

<comment><USER47> Be split up only to later recombine into a larger entity?

<comment><USER48> ...at tremendous profit to executives and bankers. All of the resources that various investors sank into building "competing" infrastructure, consumed through strong-armed acquisitions as everyone slowly realized that FCC was just as opposed to competition as they always have been.

</comment></comment></comment><comment><USER49> Practically, they probably weren't faster than their AMP page on mobile as a search result, because of preloading and google CDNage of the AMP cache of the page.

<comment><USER50> That's the sales pitch but I usually notice AMP pages because they take so long to render at all, waiting for a ton of JavaScript to load before anything displays. Mobile caches are small and unless you hit Google a lot in the same browser you see those delays frequently compared to sites which follow other Google teams' recommendations for performance.

</comment></comment><comment><USER51> Can someone explain _how_ an AMP page would possibly be slower?

Especially given Google's CDN and the fact it's likely to be preloaded in practice?

I find myself wondering if this isn't just some artifact of the Chrome tool being used to measure performance -- especially since that tool reports an overall score like "94", not an actual speed -- and the weightings it uses [1] could be different from what AMP is designed specifically to speed up. Also it would have to be measured across a wide variety of locations worldwide, etc., certainly if the author's webserver is in their own city, for example.

A _lot_ more data, measured rigorously, would be needed to prove that AMP is actually slower in practice -- it's a bold claim.

[1] [https://developers.google.com/web/tools/lighthouse/scoring](https://developers.google.com/web/tools/lighthouse/scoring)

<comment><USER52> Unless things have changed, you can't think of it as a real CDN. The Google engineer assigned to our AMP launch told us to think of it as a proxy without actually calling it that. Our testing showed that to be an accurate description of how it worked in practice.

</comment></comment><comment><USER49> This link on the page is dead (404): [https://unlikekinds.com/article/how- google-is-creating-the-o...](https://unlikekinds.com/article/how-google-is- creating-the-one-page-web)

Edit, apparently it should be linked from here, as the title and url of the article has changed: [http://unlikekinds.com/t/how-google-is-creating-the-one- page...](http://unlikekinds.com/t/how-google-is-creating-the-one-page-web)

<comment><USER36> Thanks! Fixed :)

</comment></comment><comment><USER53> Thus far, this whole AMP business seems like Google's tech-tipped thrust to control information (apart from their other methods thus far).

<comment><USER52> It's definitely control, but it's almost a lesser of three evils - it's no coincidence that as a large web publisher at the time, we were approached by Google, Facebook, and Apple at almost the same time and asked to deliver content for their respective walled gardens.

I'd happily choose the web over the other two alternatives. Sure it'd be great to have an open standard achieving the same thing as AMP, but it's 2019 and we haven't seen it yet.

<comment><USER53> I just think they are going about it in a pushy yet guarded way. I'd prefer good architects over good architecture as it breeds creativity/variety

</comment></comment></comment><comment><USER54> Why the hell does AMP and AMP alone get the privilege of hijacking chrome mobile's menu bar and hiding it from the user until we scroll all the way up to the top of the page and then drag it back down? It's like they've never heard of tabbed browsing before.

<comment><USER55> "Why the hell use Chrome?" : a corollary, no?

<comment><USER54> Good tab management, to be honest. Other mobile browsers like Firefox and the Adblock browser have issues where swiping the tab away only works in a specific direction or in a very straight line, or is annoyingly difficult when the device is in landscape mode because you have to swipe twice as far for some reason, or the UI for opening the tabs page is inconvenient.

</comment></comment></comment><comment><USER56> All good points. But not sure why "unlike kinds" should actually be featured - lets be honest your not exactly a household name in publishing.

Its hard enough getting a major publishing brand accepted by google as a news publisher.

</comment><comment><USER57> I personally have a choice about AMP pages -- I ignore them. AMP blows, and if I can't get a non-AMP version of a page, that page doesn't exist for me.

</comment><comment><USER58> Google AMP needs to die...

</comment><comment><USER59> Why on earth do we look to this bizarre for technical capability?

</comment><comment><USER60> People say AMP is disgusting, but I say that the alternative is even worse. Just go visit delfi.ee, postimees.ee, õhtuleht.ee and you'll see how damn bloated sites become if there's no market pressure to leanness.

<comment><USER50> This is true but consider an alternate history where Google cared more about web performance than pushing sites to adopt their proprietary JavaScript toolkit: search rankings would simply incorporate page performance/size measured in real browsers and all of those sites would have a strong incentive to reduce page weight and they could load faster without needing 100KB of AMP JavaScript to successfully load before they start rendering.

<comment><USER60> I'd be glad if that alternate history were the case, but currently AMP seems to be the lesser evil. AMP doesn't make my laptop's fans spin up.

<comment><USER50> I use Firefox's content blocking and haven't had that happen in years except on new installs where I forgot to disable WebM.

<comment><USER60> I don't use Firefox because my hardware is super weak and hardware acceleration is a must for most things for me - FF doesn't do that.

</comment></comment></comment></comment></comment><comment><USER61> Why in the earth you would use Google s sandbox es ?

</comment><comment><USER62> Google/Alphabet needs to be broken up.

</comment><comment><USER63> so, kill google news. who cares about it anyway and if anyone do I just don't get why. google platform stinks more than anything ever microsoft did

<comment><USER64> Google News is a very useful tool for a lot of people trying to find coverage from sources other than the select few that they might often frequent. I use it to find how international articles affect my country, my area, etc. I also use it to find articles in other languages.

Aside from that, Google News content is heavily integrated into the normal Google Search pages. It's not simply a matter of simply ignoring it; Google makes their Google News results some of the top results for searches for current events.

<comment><USER63> Yes it certainly is matter of ignoring it. Only not ignoring that stuff gives it credibility as we gave microsoft products.

<comment><USER64> If you think the majority of people are going to ignore what Google posts as the most relevant search result, I don't think there's anything more I can say to dissuade you.

</comment></comment></comment></comment><comment><USER65> From the article:

>... the position on Google's results that can literally mean the difference between a failed business and one that makes millions of dollars

looks to me like your business is the tail, and here you are trying to wag the dog.

</comment><comment><USER66> I think breaking Google's monopoly over search is the biggest challenge that nobody is trying to solve ... Maybe nobody's knows how to, maybe nobody's willing to invest in such endeavor but I hope people will realize soon that the cost of doing nothing is becoming much higher than the cost of trying ... And yeah I know there's duckduckgo but we need at least 2 or 3 much better duckduckgo's

</comment><comment><USER67> This article would be much more interesting if they showed that the AMP version of the page actually was slower than the non-AMP version. Instead, they just say that Google's Page Speed score is lower for the AMP version. But _nobody_ cares about the Page Speed score - it's just a rough proxy for user experience. The author of the article, however, doesn't do anything to look at actual user experience.

</comment><comment><USER68> AMP is just a set of conventions and limitations that, when followed, make for a fast site. Anyone can make a fast site if they follow similar rules. Most sites don't do that because either the developers want to use something that's "nicer" to code but a lot bigger, or because the marketing department insists on loading 12 different tracking and analytics progams--when they probably only use one or two.

<comment><USER69> AMP is google flexing its control over the web.

If Google wanted to highlight fast/penalise slow sites, they could simply measure the load time of a site when they index it.

But that would only achieve their _stated_ goals, it wouldn't achieve their _actual_ goals.

<comment><USER70> Throwaway Google search engineer here. People here really do care about making the web faster and moving metrics, both because that is how the company is set up to reward employees but also because they believe it makes the product better. Google has been penalizing slow sites forever. It stopped moving the needle (I suspect because it isn't marketable). Amp on the other hand really is working, metrics show a faster, smoother experience, and user studies have been positive. That's why Google is doubling down so much with it. Not because they have goals to control content providers or wall off the web, but because it makes a dramatic difference on the whole.

<comment><USER69> So if the "only" goal of AMP is to make things faster, why isn't the carousel based purely on "your result must load in < X ms"? If a company can "force" other companies to adopt AMP, it can surely "force" them to improve load times on their own.

Also, if speed is their goal, why does the _mandatory_ AMP 'boilerplate' include a CSS-driven 8 second delay before content is shown, that is _removed_ if the client loads the AMP JS?

Oh right. I know the answer. It's to give the impression that blocking third- party resources (such as AMP JS) via e.g. a content blocker, won't make the site faster. Which as we know, is a load of shit.

You might have the best of intentions and donate your entire salary to homeless blind children - that doesn't mean for a second that I believe google's _actual_ goals with AMP are anything less than exerting more control over the web for their own purposes.

</comment></comment></comment></comment><comment><USER71> One point here: stop using Google Pagespeed Scores unless you're having serious speed issues that need correcting.

Google only uses this in an incredibly small way, yet I've seen SEO people at multiple companies hammering on it like it's some magical SEO juicer. It's not. Just don't be in the bottom 10% (Google uses a slice even smaller than 10%).

I like that Google wants the web to be faster, but if I could axe one product that causes a lot of angst, it's that damn pagespeed score.

</comment><comment><USER72> ,,50kb is an absurdly small.... responsive queries so that your site looks great on mobile and desktop (and tablet and landscape and Android and iPhone.)''

Why would I need CSS for iPhone? I don't have an iPhone. Also I'm now browsing from my laptop, so I don't need mobile specific CSS either. Isn't there a way for the responsive site to load CSS specific to the device/display?

<comment><USER73> No. _Especially_ not with AMP, because Google sits between you and your user so you never get to know what device they are using.

In theory on your own site you could use user agent sniffing to worn out what CSS to send, but it's still not a great idea because you'll be wrong at least some of the time.

<comment><USER74> User agent sniffing is how we ended up with things like "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"

<comment><USER75> Hey, you weren't kidding. Mine is

      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15

</comment></comment></comment></comment><comment><USER76> Google today is a single gateway where business go to sell and users go to do anything. Its a monopoly power. Nothing will change until there are better alternatives. Binq is big but stupid. DDG is too small. Apple, Amazon, Facebook, CDNs should all create _good_ search engines, and allow SE aggregators to live.

</comment><comment><USER77> Until Google will allow me to block whole swaths of IPs in effort to lower spam getting into my Inbox, I don't care much about other upgrades.

For few months now it seems to me that Sparkpost is a favorite choice of spammers. Perhaps its the low cost or maybe its because they never ever answered to a single firstname.lastname@example.com email I send forwarding abusers content. None, zero nada! I can report someone... silence... an then 3 days new letter pops up from a new domain (but same IP) from Sparkpost.

That's why I need to be able to block whole IPs.

</comment><comment><USER78> > Then there's users begging Google to allow them to use more than 50kb of > CSS. Yes, most site's CSS is bloated. But 50kb is an absurdly small, > arbitrary limit. Stylesheets these days handle resets for normalising > behaviour between browsers, grid systems so you can lay things out without > resorting to murder-suicide, and responsive queries so that your site looks > great on mobile and desktop (and tablet and landscape and Android and > iPhone.) These essential components will take you a decent way to to the > 50kb already.

As far as I know, the 50KB limit is per page. I can't see why a typical single page should require that much CSS where the CSS included is actively used on that page. If you're going to include e.g. the CSS for every Bootstrap component on every page you're easily going to go over the limit but the whole point of the limit is to discourage you from doing that.

The OP article should only require a modest amount of CSS I think, same for most pages. People here hate on AMP a lot, but "avoid excessive CSS" is a good guideline in my opinion.</comment>


What is going on at Opera Software? - ga-vu https://www.ghacks.net/2020/01/19/what-is-going-on-at-opera-software/ <comment><AUTHOR> Love all the comments here from folks who haven't read the article and are going on about the browser. This article is about Opera's alleged fraudulent loans business. Well really this article doesn't have much of its own to say, it's mostly a rewrite / summary of this article: [https://hindenburgresearch.com/opera-phantom-of-the- turnarou...](https://hindenburgresearch.com/opera-phantom-of-the-turnaround/)

<comment><USER2> Wow, that was a wild report and a good read. The detailed look into the predatory short term load apps is a real eye-opener... the apps would read the device contact list and shame late borrowers to their employer, parents, friends... and in developing places like Kenya and Nigeria. Truly, TRULY fucked up!

<comment><USER3> It appears only OPesa was taken down so far from Google Play. OKash, OPay and CashBean are still available. CashBean's keyword stuffed app ID [1] is remarkable, this is the first time I've seen such a spammy app ID on Google Play.

[1] [https://play.google.com/store/apps/details?id=com.loan.cash....](https://play.google.com/store/apps/details?id=com.loan.cash.credit.easy.dhan.quick.udhaar.lend.game.jaldi.paisa.borrow.rupee.play.kredit&hl=en_US)

</comment></comment></comment><comment><USER4> Opera ended the day they deprecated their own rendering engine and became yet another Chromium wrapper, which we already have more than enough of.

<comment><USER5> Opera rolled out a weird always-on VPN and acceleration service built in to the browser so every page was partially rendered on Opera servers. This gave them access to the plain text of pages as sites were rapidly moving to HTTPS. Effectively moving in on the ad targeting business where ISPs used to live.

Building a rendering engine didn't really fit in to that business model.

Fortunately the China sale spooked a ton of longtime Opera users who all jumped ship. Now apparently the husk of the company has been used to grow a lending company.

<comment><USER6> I thought this was only true with Opera Mini?

</comment></comment></comment><comment><USER7> How did Opera get involved in the short term lending business? How does corporate governance for a public company allow this to happen?

<comment><USER8> From what the article states, Opera was likely acquired with the explicit purpose of making this pivot. The brand was popular in the developing world, where this sort of predatory lending is still considered socially acceptable.

</comment></comment><comment><USER9> What this really sounds like is Hindenburg Research daring Google to not notice.

Also, please switch the link to the original research, or go upvote the original ([https://news.ycombinator.com/item?id=22092095](https://news.ycombinator.com/item?id=22092095))

</comment><comment><USER10> Makes me sad. Opera was well positioned ~10 years ago to grow and innovate. And such an incredibly passionate and involved community.

IMO here's the beginning of the end for Opera when Jon resigned, the investors took the reins and his open letter;

[https://techcrunch.com/2011/06/24/opera-founder-jon-s-von- te...](https://techcrunch.com/2011/06/24/opera-founder-jon-s-von-tetzchner- resigns-over-differences-with-board/)

Good luck to the Vivaldi team in getting a bit of 'old Opera' back.

<comment><USER11> Been using Vivaldi since the day they released the technical preview and it has been a wonderful 5 years. It in my mind has been true to what 'old Opera' was and since they released the android app I have completely abandoned Chrome.

</comment></comment><comment><USER12> Not entirely relevant but; RIP Opera. It was a competent browser even after it became Chromium based, now few people trust it and even fewer people use it. Hope some of the features I remember seeing back when I used it, especially the ones in Opera GX, make it to other browsers.

<comment><USER11> It was a competent browser, but it lost everything that made it Opera. They seemingly nuked its entire feature set and it was no better than a skinned chrome.

I still remember the day, roughly 2 years later when the Technical Preview of Vivaldi launched. I don't even remember how I found it, but I've been using it since day one and it has remained a true spiritual successor to what made the original Opera what it was, aside from the rendering engine.

</comment></comment><comment><USER13> Wow, I did use Opera for years and also on mobile when in Africa with limited data plans.

Time flies, I still remember Opera 10 years ago, they probably had the best tech April Fool's I ever stumbled upon with their "Face gestures"[1].

When you had a team that could create that behind your product, you knew that the team cared and was driven by passion and excellent craftmanship.

[1]: [https://dev.opera.com/blog/introducing-opera-face- gestures/](https://dev.opera.com/blog/introducing-opera-face-gestures/)

<comment><USER14> > Time flies, I still remember Opera 10 years ago, they probably had the best > tech April Fool's I ever stumbled upon with their "Face gestures"[1].

> When you had a team that could create that behind your product, you knew > that the team cared and was driven by passion and excellent craftmanship.

Even better: the Opera speed test:

> > [https://www.youtube.com/watch?v=ZdirsXNaibo](https://www.youtube.com/watch?v=ZdirsXNaibo)

which was the Opera developer's reaction to the Google Chrome Speed Test:

> > [https://www.youtube.com/watch?v=_oarMXGq3gI](https://www.youtube.com/watch?v=_oarMXGq3gI)

</comment></comment><comment><USER15> Can't read it on iOS safari, keeps reloading.

<comment><USER16> I'm on iOS safari and it works. I do have Firefox focus installed as a content blocker, perhaps that helps.

</comment></comment><comment><USER17> Opera Mini is simply the best experience for compressed mobile web browsing on low-speed connections. I use it when traveling and when my data plan runs out for reading the news and web sites (I don't log into anything because I don't trust the provider, and they have to MITM HTTPS). I'll be sad if this goes away.

I wish there was a self-hosted solution for compressed mobile browsing that I could put on a server. It'll be hard to replace the aggressive optimizations they have done to make this possible, though it's likely I can get most of the way by inlining everything and replacing script and image tags...

<comment><USER17> After a few moments research, I found this [https://github.com/barnacs/compy](https://github.com/barnacs/compy)

<comment><USER18> It is not exactly the same. Mini runs JS on the server for you.

</comment></comment></comment><comment><USER19> Sad for the company to pivot to abusive loan schemes.

I mean I'm sure it didn't help when they switched to being yet another chromium wrapper - why pay for essentially the same browser you can get for free? That can't have helped their revenue

</comment><comment><USER20> I wish Opera would open source their presto engine. I'm guessing that isn't possible due to some licensing issues. Personally I find it unfortunate that all that amazing work will be lost. While I didn't use Opera due to it's proprietary nature, as a browser engine it was competitive for its time.

I'm having the same feeling now about the EdgeHTML engine which is now being fazed out. This engine was a breath of fresh air compared to trident. It was bringing value to the internet space.

Granted, I do realize there are perfectly valid business reasons Opera and Edge switched to chromium.

<comment><USER21> There was a source leak a while back talked about here on HN: [https://news.ycombinator.com/item?id=13417307](https://news.ycombinator.com/item?id=13417307). I'm still seeding this torrent and you may find it elsewhere. [http://superkuh.com/opera12v15presto- source.torrent](http://superkuh.com/opera12v15presto-source.torrent)

<comment><USER22> Opensource is not about having a source code but having a license to use it. You can easily get in trouble with them if you'll distribute your non-trival modifications otherwise.

<comment><USER21> Only if you involve money. If you don't it's pretty safe.

</comment></comment></comment></comment><comment><USER23> Anybody remember Operas beta feature "Opera Fridge"?

Source: [http://images.ientrymail.com/webpronews/article_pics/fridge....](http://images.ientrymail.com/webpronews/article_pics/fridge.html)

<comment><USER24> I remember using most of the stuff Opera browser offered. RSS reader was amazing, email client was great. I even used their torrent client. It was all built in the browser.

<comment><USER25> They had news and irc clients too iirc?

</comment></comment></comment><comment><USER26> ya know what. when opera presto had feature parity with chrome, developers still walled their websites with useragent checks so for your average joe nothing worked and it created a negative feedback loop of users blaming the browser and devs avoiding supporting it. what else could they do? with chromium engine opera suddenly worked (lol).. there was still a lot of value on top of that, like a native speed dial that wasnt harvesting your data, fantastic bookmark management, a free vpn (yeah not for the ultraparanoid but still useful), tons of customization options, etc. its sad opera was sold and its days are probably numbered

<comment><USER8> _> developers still walled their websites with useragent checks_

Opera was, I think, the first browser to make UA-switching a first-class feature, precisely to avoid this phenomenon. I believe at one point they even sent a fake UA string by default. This sort of thing was really not the reason they hit the rocks.

The truth is that making a browser is hard work for little reward. Keeping up with web standard was pretty hard already, for an operation running on thin margins and based in an expensive country; when Google got in the game, brutally accelerating the development of features and hammering people with adverts for Chrome, Opera struggled to compete. They found some margins in the developing world, where their bandwidth-optimizing services were popular; but targeting the low end of the market only buys you some time (if you exist because connections are bad, as connections improve people will leave you).

Eventually, their perennial search for cash ended with an inevitable sale to this or that financial shark, and here we are.

<comment><USER27> > I believe at one point they even sent a fake UA string by default.

In fact Vivaldi, the spiritual successor to Opera, just moved to a fake UA string in the latest version (masquerading as Chrome), precisely due to UA sniffing still being a thing, even with Google's sites.

</comment></comment></comment><comment><USER28> FYI: the SEC is investigating how mainland Chinese companies ever got listed on US exchanges as their accounting methods are not compatible with US requirements.

Figure 12 - 18 months before they're mostly delisted.

</comment><comment><USER29> I wished they Open Source the "Old" Opera Engine.

It was small and Fast. If I remember correctly it had the browser engine, Javascript, Email client, RSS etc all in the sub 15MB download.

</comment><comment><USER30> Opera browser is still big on Mobile

</comment><comment><USER31> > Hindenburg Research

Great name and interesting business.

</comment><comment><USER32> Well that's all unsubstantiated hearsay at this point, but I think we can all agree that Opera has, sadly, seen its day as a browser.

<comment><USER33> Using it on Android still, as it's the only browser I've found with good text reflow on zooming.

<comment><USER34> Exactly. It such a shame that neither Chrome nor Firefox provide this basic Accessibility feature out of the box. All their devs have 20/20 eyesight seemingly. And if anybody can recommend a good alternative, please tell it.

</comment></comment></comment><comment><USER35> R.I.P. Opera. Long live Pale Moon, Brave, Vivaldi and WebkitGTK. Chrome, Firefox and Edge could go f--k themselves.</comment>


Ask YC: Who's going to the Crunchies? - <AUTHOR>

To meet up or not to meet up? That is the question. <comment><USER2> That's dilemma, not question.</comment>


Social Power and the Coming Corporate Revolution - <AUTHOR> http://www.forbes.com/sites/techonomy/2011/09/07/social-power-and-the-coming-corporate-revolution/

<comment><AUTHOR> I'm not sure that the article does such a good job of talking about the value of in-person contact, which often gets lost in discussions about the power of 'social media'. In business, as in politics people still like the guy, or gal who is willing to shake their hand, and kiss their baby -- even if that's all he/she does.

Clearly the power of cheap, instant communication is powerful, but it can be incredibly dangerous when things go wrong, such as when the wrong guys/gals end up with the megaphone. Pretty well written, but otherwise standard boilerplate web 2.0 Utopianism.</comment>


U.S. Federal Government CIO tells IT leaders to trust the cloud - <AUTHOR> http://www.cio.com/article/2996268/cloud-computing/us-cio-tells-it-leaders-to-trust-the-cloud.html <comment><USER2> Sounds to me like today's largest financial institutions need to step up their game, rather than I should trust the cloud.</comment>


Adding A Game Layer To Daily Deals - <AUTHOR> http://techcrunch.com/2011/03/10/scvngr-launches-spinoff-levelup-daily-deals-meet-location-based-gaming/

<comment><USER2> Wow, a game layer. Imagine if those dowdy old airline frequent-flyer programs implemented one of these.

If you flew more, you could get some kind of "level up" that would enhance your abilities to increase your score. Maybe there would be time-limited missions you could complete. And you'd be granted some kind of socially- visible status as a reward. Now of course, you would have to "check in" to register your achievements...

<comment><USER3> I was just thinking about this tonight (we've done some marketing work with an airline).

Rather than having to wait 12 months to gain access to the lounge for instance you could gain access to it inside of a month if you check in on one of their planes once a week for four weeks.

A few of the SXSW sessions have really had me thinking about how to introduce gaming elements into everyday life like billing for my ISP, rewards from my airline or incentives from my gym.

<comment><USER4> I think the original comment was being sarcastic. Since frequent flyer programs work like he said, just not in the guise of game theory.

<comment><USER5> How is game theory related to this at all?</comment></comment></comment></comment>


Nash equilibrium - <AUTHOR> https://en.wikipedia.org/wiki/Nash_equilibrium <comment><USER2> Recently I've read an answer on Quora about why some shop say that they have guaranteed lowest prices. It turns out that the price is probably higher than the actual price, and that's a sign that other shops should follow them, set the same "high price", otherwise, that shop will lower the price and no one win. It's a good read, unfortunately, I can't find the link now.

Any suggestion for a good comprehensive book on game theory in economics?

<comment><USER3> The problem with game theory is it does not take into account human psychology and often assumes everyone has perfect knowledge. Some people will buy from the lowest priced shop even when they know they could have bought at the guaranteed price shop instead. They will knowingly walk straight past the guaranteed shop. Why? Because they are shy about asking for the lower price and do not want to make a fuss. So to avoid any possibility of conflict they made a longer and less convenient journey. Someone else might be cynical and avoid the guaranteed priced shop because they think these statements mark out the shop as underhanded. People are not always rational and do not have perfect knowledge.

<comment><USER4> I suggest you read Camerer's Behavioral Game Theory or even a book on Evolutionary Game Theory, the former does take psychology into account and the latter allows for learning. A standard game theory book also consider imperfect information, e.g. Bayesian games. The most comprehensive game theory text is probably the one by Maschler and Solan.

</comment></comment></comment><comment><USER5> A fascinating related concept is incentive compatibility (one of his variants use the Nash equilibrium).

      « A mechanism is called incentive-compatible (IC) if every participant can achieve the best outcome to him/herself just by acting according to his/her true preferences. »

[https://en.m.wikipedia.org/wiki/Incentive_compatibility](https://en.m.wikipedia.org/wiki/Incentive_compatibility)

I use this mind tool very frequently being an incentive system architect.

One interesting technology that allow IC is the vickrey auction.

</comment><comment><USER6> This can actually be used in all parts of life. The struggle is building the model around the problem you are trying to solve. The good news is the more you do it the more you can apply it to different situations. It's been really useful in my web dev career. Resolving conflicts between business and technical requirements. I sometimes feel like this is the mathematical model for some of the philosophical teachings of Buddha.

</comment><comment><USER7> One of the most remarkable thing to me is Nash's proof of the equilibrium.

The whole thesis is about 27 pages and the proof itself is 7/8 pages (double spaced) and use basic linear algebra. Even though it extends a previous result from Von Neumann (where N=2) significantly.</comment>


I bought a CD, not a licensing agreement - onreact-com http://gcn1.posterous.com/i-bought-a-cd-not-a-licensing-agreement

<comment><AUTHOR> Exactly right. You don't have a license to the CD.

If a work has been given a copyright, the government has granted the holder a temporary, limited monopoly on reproduction of that work. When you buy a CD, you will almost always see, stamped somewhere on it, (c) Copyright $year, $holder, All Rights Reserved. This is not strictly necessary, but they just want to make it clear: No Rights Granted.

The copyright holder has all the rights to the work, and you are granted none beyond "fair use" rights (quoting small portions for critique, backup, resale, etc) defined in copyright law. You _specifically_ don't have a license.

<comment><USER2> > _The copyright holder has all the rights to the work, and you are granted > none beyond "fair use" rights (quoting small portions for critique, backup, > resale, etc) defined in copyright law._

So how do you work the DMCA in there? It's legal for me to make a backup of a copyrighted work... but if the copyrighted work is 'protected' then I can still make a backup copy... but no one is allowed to sell or distribute the means to make that copy?

Couldn't the argument be made that the copyright holder is actively trying to take away my fair use rights by using DRM?

<comment><AUTHOR> Oh, well, the DMCA is bullshit, that's how.

My understanding is that the "backup" of a DVD isn't really illegal. However, reverse engineering, or circumventing a DVD's copy protection scheme is. You're guilty of hacking, not copyright violation. IANAL.

<comment><USER2> The 'technicality' is that you're allowed to create a way to circumvent the DVD's copy protection scheme, but you're not allowed to sell or distribute it. Therefore, anyone that wants to make a backup of their DVDs has to crack the DVD copy protection scheme on their own. They can't (legally) get a product to do it for them.

</comment></comment></comment></comment><comment><USER3> When will recording companies realize the issues with the current system?

I really wish iTunes operated like Steam. You buy a song, and can download it as often as you need to. You dont have to worry about deleting/losing your MP3, because you could just go download it again, no charge.

I commend bands like NIN and Radiohead, where they offered an album for digital consumption at no cost. In reality, bands make most of their money from touring anyway

<comment><USER4> Correction, bands which have become popular through radio and CD sales make most of their money from touring. Most bands with no record sales have no ticket sales either. And most bands with no record label have no record sales. You're creating a distinction where none exists. The entirety of an artist's effort goes toward their income. Whether it's direct or indirect is really not the point.

Google makes most of their money from ad sales, but if everyone blocked all ads and only used Google through web scrapers, _no one would buy ads from Google_. If you rob traffic from Google's page, you are robbing from Google, _even if they make no money from their page_.

<comment><USER3> In the end, only the popular bands make money anyway. Even if you sign with a major label, if nobody likes your music, they aren't buying your album, or your concert tickets.

My point was that a band will make more money on tour because the record label takes a huge chunk of the albums sale.

The real money is in producing music. :-P

<comment><USER4> Sure, but how many bands that aren't on (and have never been on) a record label have over a million album sales? Are there any? The simple fact is that without record labels, most artists would be even more broke than they already are. It is possible that another model for music marketing and distribution could be created, but right now, it doesn't exist. Artists need record labels; record labels need record sales; therefore, artists need record sales.

</comment></comment></comment></comment><comment><USER5> The copyright law[1] applies to everything that is created which has a original form and is in itself original (ergo not a copy).

Hence the music you buy is protected by this law.

Hence you can not ask the author to get a spare cd. Since he's not obliged to give you one. Also everything you want to do with the music is determined by the law.

[1] i am talking about the law that protects original creations, not the one where you have to pay for a patent.

<comment><USER6> "Hence you can not ask the author to get a spare cd."

That's not really the question. The question is, now that I have this scratched CD, why is it wrong for me to hop on a torrent and replace my scratched bits?

Obligation to produce a new CD would indeed require an actual contract, but "new CD" is not the same as "replacing my music".

The real problem this exposes is that the law has a concept of "source of the bits", such that "bits from your CD player" are different from "bits from a torrent you downloaded", even if they are otherwise identical. Standard reference to the "color of bits" essay: <http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php> ... and I'll basically defer the rest of this comment to that essay since I doubt I can improve on it here.

</comment></comment><comment><USER7> A very interesting and well-done course on many of the vagaries of US copyright law from MIT OCW (video lectures) that might be relevant to the discussion:

[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and- Compute...](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer- Science/6-912January--IAP--2006/CourseHome/)

Especially lectures three and four:

3) Copyright applied to Music, Computers; Napster®; Peer-to-Peer File Sharing

4) Software Licensing; DVDs and Encryption

</comment><comment><USER8> I empathize with the general frustration at the media industries' desire to have it both ways.

However, there does seem (to me) to be a logical and reasonable limit to our rights to the music we buy. While I think it's perfectly reasonable to do _whatever_ non-commercial activity I want with a CD I've purchased, I'm not entirely convinced it's useful or good to extend that to _commercial_ activity. (Say: duplicating the CD you bought and selling it for profit)

And if you're anywhere on the spectrum other than the 'end copyright' extreme, it seems that you partially agree that there is _some_ reasonable basis to the argument that a CD isn't _just_ a CD, that there is some implied contract that limits use.

<comment><USER9> _A CD isn't just a CD, that there is some implied contract that limits use._

Well, no. You should be able to do anything you want with that CD. The music on it, however, is covered by copyright, which should be protected on some level.

As far as actual copyright law, I agree that duplicating a CD and selling it is bad. I feel that duplicating a CD and giving it to your friend to hear is good (and reasonable). Some place in the middle lies taking parts of the music and creating new music out of it, which is where I find rather murky. At what point does it become too much of a sample, or at what point should royalties be owed?

</comment></comment><comment><USER10> RE: why software and mp3s are under license (in addition to copyright protection).

All creative works fixed in a tangible medium of expression get copyright protection. But without a license, they are useless. We are able to use software and mp3s only after we COPY them to our hard drives. The act of copying is reserved for the copyright holder. Without a licensing agreement, nobody would be legally allowed to transfer the copyrighted data we acquire.

</comment><comment><USER11> anyone here actually buy CDs? other than signed (and still sealed) CDs or really interesting ones like (moldover's), I haven't purchased a new CD in years...

maybe I should considering the MP3s I do buy require me to agree to Amazon's licensing agreement.

eloquent argument nonetheless

</comment><comment> onreact-com Don't buy the CD, steal it. It's more affordable than stealing music online: <http://news.ycombinator.com/item?id=802145>

;-)</comment>


Ford engineers show progress they're making toward driverless car 2021 goal - <AUTHOR> http://www.freep.com/story/money/cars/ford/2017/07/02/ken-washington-ford-driverless-car/440332001/ <comment><USER2> This seems like "content marketing."</comment>


Amazon wants to sell "every genuine product in the world." That's a mistake - <AUTHOR> https://www.recode.net/2019/2/28/18168354/amazon-marketplace-prime-counterfeit-goods-fake-reviews <comment><USER2> Amazon should be able to make this work. They just need to make this false advertising cost-prohibitive. I've never had a problem returning an item to Amazon, especially if something in the listing isn't right or the item is defective.

This should be costly to sellers since they take the hit on returns.</comment>


Why Garbagemen Should Earn More Than Bankers - <AUTHOR> https://evonomics.com/why-garbage-men-should-earn-more-than-bankers/ <comment> a-fried-egg That seems rational, however we have always lived in an irrational world where the Fed just continues printing money and the national debt continues to soar.</comment>


PolyConf 2015 – A multi-disciplinary conference for polyglot programmers - <AUTHOR> http://polyconf.com/ <comment> noir-york Shouldn't programmers be polyglot by _default_. It's like saying there is a conference for golfers who play with more than one club!

<comment><USER2> Only if you think of programming languages as an individual golf-club.

Put it this way: Is there a conference for professional basketball, baseball _AND_ ice hockey players? I'm not even aware of anyone who managed to go pro in two of those, not to mention all three.

Most programmers have a preferred domain and language. Once you scale past a pet project and have a decently sized team, specializations start to occur, especially as the code base grows beyond what one person can hold in memory.

I'm reminded of the saying "jack of all trades, master of none".

<comment><USER3> Bo Jackson was both an NFL and MLB player.

[http://en.wikipedia.org/wiki/Bo_Jackson](http://en.wikipedia.org/wiki/Bo_Jackson)

<comment><USER4> As was Deion Sanders, but the GP didn't give football as one of his sports

</comment></comment></comment></comment><comment><USER5> Do people really only programme in one language? The simple act of connecting to a database and retrieving data by definition requires knowledge of 2 languages. What I think people do do, is silo themselves onto specific technology stacks (e.g. Microsoft solutions).

<comment><USER6> I'm shocked you're asking that question. Most programmers are vocational and work for corporations. Most corporations try to force standardization. As a result, most programmers are significantly stronger in one language/platform than any other (whether they have any experience in others or not, which they usually will).

As a dumb example, when XMLHTTPREQUEST hit the streets, it was a paradigm shift in enterprise, but a pretty easy one for web developers to add to their toolbox. Years pass.... When everything became javascript, that was much harder, especially for the .Net folks who came from a VB6 background rather than a pure HTTP/TCP/CGI background. Lots of companies are still in infancy with adoption of modern front ends, mostly because their programmers are not polyglots and actively resist learning new things... and you can't just abandon hundreds of legacy apps through hiring better educated, modern web developers with the limited budget most companies have.

A few years ago we made a decision to shift from a .Net (+MSSQL+JQueryUI) stack to a Java stack, mostly for licensing cost avoidance after MS raised the price of SQL Server dramatically with 2012. More than three years later, >90% of our internal apps are still .Net and only a handful have been released on our new preferred stack (Java/PostgreSQL/Bootstrap/Angular) and probably only 10% of the programmers are competent enough to work independently using the new tooling.

This sad state is an area where there's a lot of naivete among _young_ programmers and startups. The corporate world just doesn't work in remotely the same way. ... ironically, a lot of "progressive" corporations end up creating mini-Innovation teams internally with their best & brightest, who are told to "act like a startup" and end up basically creating 75% of all the new stuff ... until it requires an interface to a legacy system and the devs outside the team refuse to cooperate out of fear.

Oh, it's a mad, mad world.

<comment><USER7> Shocked? Really?

While I'm certainly stronger in one language I'd say it's quite normal to use at least 3 programming languages daily. As a Unix guy it's even more. If I just want to write a Python hello world I need to know some Python, some Bash, some Vimscript, some Terminal I/O. Many of my projects also have Makefiles, additional bash scripts (which includes SED and AWK besides Bash). Interaction with databases, APIs, JSON or XML or INI configs, HTML, etc is also common. And let's not forget that most systems that have grown over the years have a few DSLs to interact with their tools.

So before I finish my first coffee I've probably used 6 languages already on a typical work day. I think most coders in my company are fluent in at least 10 programming (&related) languages. And while our software development team is certainly better than my last gig I still hope it's not the top of what software dev teams can be.

And your most prevalent point is that company enforces some language usage. It's often not the same if you switch. So if you have more than 5 years you probably can increase the typical programming language fluency about 50%.

Also your example about switching stacks. Your first stack had .Net, C#, SQL, JS and JQuery. Now you at least sometimes also use Java, and whatever Bootstrap/Angular require.

<comment><USER6> I know exactly what you mean and I agree, but your scenario doesn't cover most enterprise web developers, who likely live in Visual Studio or Eclipse/NetBeans/IntelliJ 95% of their day, especially if there's strict separation of duties and they aren't allowed to directly touch the DB server/admin console.

I got fed up with this state of affairs a few years ago and stopped looking for .Net or Java developers and started looking for self-described hackers, assuming that would increase the odds that they had some passion for programming and could/would/had pick up whatever tools they needed for the job. It has worked well.

As an aside, though, especially in countries like India, Brazil, Mexico, Chile, Bulgaria, Poland, and others which are low cost recipients of outsourcing dollars, "software factories" are common, and in places like this it absolutely is common for an individual programmer to literally spend their time all day, every day doing the same one type of thing. Imho, the higher the CMMI number, the worse this gets (the pinnacle is the "just write a function to pass this test. No, it doesn't matter what it's doing or what this software is for. Just pass the test.", where developers on the front line are plug & play cogs who don't even know what they're working on).

<comment><USER7> Interesting. Haven't thought about this kind of businesses and you're right, there might be many more such developers than people like me.

</comment></comment></comment></comment></comment><comment> artumi-richard Does anyone know of a conference that takes a wider view of the job of programming? It has always felt to me like the focus is all about our tools, because tools can look cool, but I'm interested in the process of starting with a messy list of requirements and getting to a completed project in the most successful way, which is often the real challenge in my work.

<comment><USER8> Yip: [http://theleaddeveloper.com/](http://theleaddeveloper.com/)

</comment></comment><comment><USER9> I almost thought they were referring to _this_ Polyglot approach: [http://en.wikipedia.org/wiki/Polyglot_%28computing%29](http://en.wikipedia.org/wiki/Polyglot_%28computing%29)

That would have been... frightening.

<comment><USER10> That's what I thought too before I clicked... but I'd certainly be quite interested in attending such a conference.

</comment></comment><comment><USER11> Nothing against this conference but on the "now have", aren't things like OSCON or Strange Loop technically multi-language cross-pollinated programming conferences? Or is the way some of the talks are about joining two languages the unique draw?

<comment><USER12> PolyConf founder here; the title is indeed misleading, OP exaggerated. There are many great conferences in the same spirit that existed before. And Strange Loop is our primary inspiration.

</comment></comment><comment><USER13> The best tool for polyglot programming is the Beaker Notebook: [http://BeakerNotebook.com](http://BeakerNotebook.com)

Set a variable in one language and use it in another, work with multiple languages on the same page, including javascript, and run them all interactively.

<comment><USER14> Hey, that's a really neat product! Thanks for linking. I've never even heard of this before and I wonder why.

<comment><USER13> Thanks! It's a joy to work on and we are hiring, especially front-end and full-stack web developers. Work on open source on github, use angular, based in NYC.

Email me for more info.

</comment></comment></comment><comment><USER15> Good conference to have in general. I'd suspect most programmers have a natural interest for different languages/paradigms but practically using them in concert often reveals subtle problems.

I have a decent background in Prolog (hardly an expert) and know it's often a good tool for the job but often shy away from using it regardless.

I hope the "Erlang in multi-lingual systems" talk (all of them for that matter) will be available later :)

"Why should you learn to program Commodore 64 this year?" sounds like the exact kind of talk I'd enjoy.

Prices seem very fair and I love that a %age goes to CodeStarter.

<comment><USER16> If you're curious about the Commodore 64 thing, the speaker is launching a series of screencasts as well: [http://64bites.com/](http://64bites.com/)

(disclaimer: the author is my friend, but still highly recommended!)

</comment></comment><comment><USER17> I did an interview at QCon this year ([http://www.infoq.com/interviews/John- Graham-Cumming-Polyglot](http://www.infoq.com/interviews/John-Graham-Cumming- Polyglot)) where I was specifically asked about 'polyglot programming'. The question totally surprised me because I'd never thought of myself like that because it doesn't seem to me that it's anything special at all.

</comment><comment><USER18> Did anybody else read through the (English language) conference website for the (presumably English language) conference, and wonder to themselves, "Why ... Poland?"

I'm not knocking Poland, but it seems strange to have an English-language conference there and not offer anything in the way of explanation for the choice.

I mean, I'm sure there _is_ a reasonable explanation (central location, picturesque setting, low costs, fits the ethos of a polyglot conference, offers the possibility of both a conference and a vacation) but I find it strange that the explanation isn't more visible.

<comment><USER19> In that case, if the conference is in, say, New York or Miami, shouldn't that then need an explanation as well?

<comment><USER18> Only if the conference is in Polish. :)

</comment></comment></comment><comment><USER7> What is a Polyglot programmer? A programmer who speaks more than his native language (e.g., for me it's German, English, Chinese)? A programmer who codes in more than one language?

<comment><USER20> Yeah, the latter.

See here [http://www.techrepublic.com/article/developers-are- calling-i...](http://www.techrepublic.com/article/developers-are-calling-it- quits-on-polyglot-programming/) for instance

Or here [http://radar.oreilly.com/2013/11/polyglot-programming- what-i...](http://radar.oreilly.com/2013/11/polyglot-programming-what-is-it- and-why-should-you-be-using-it.html)

Basically the big G is your friend?

</comment></comment><comment><USER21> Admins of the conf may want to embed this map on their page ;) [https://www.stay22.com/embed/polyconf-2015?promptembed=true](https://www.stay22.com/embed/polyconf-2015?promptembed=true)

</comment><comment><USER22> Can someone help me understand how is the polyglot approach to software development different from normal software development?

<comment><USER23> Polyglot approach involves picking the 'best' language for each micro-task and then trying to get them all to interact and play nicely to each other. The more 'normal' approach is to pick 1-3 languages that are "good enough" at all the necessary tasks.

<comment><USER22> But then wouldn't this require a bigger team with vast expertise or a lot of time compared to a more normal approach, and it will only result in marginal performance improvement, which might not be important in most of the regular projects?

<comment><USER24> "Best language for a task" isn't meant to refer to performance of code (except secondarily when the task is highly performance sensitive) but rather the language in which it is easiest to accomplish the task.

</comment></comment></comment></comment><comment><USER25> I'm interested in programming languages. But I don't know if I'm really a _polyglot programmer_. Ideally I want to be able to rely on a handful of languages for the vast majority of things that I want to do. If I'm being idealistic, maybe it would be possible to rely on two, or even just one.

But this "one" language would probably have the power to express its own EDSLs for different domains and problems (like Lisps). So in effect, maybe you could say it's many different languages in one. So why not just use many different programming languages instead of one extensible one...?

Because general purpose programming languages seem to end up feeling too monolithic when considering that they might only be used by you for _that one thing_. Consider two approaches: have one language that solves problems in domain A really well. Then you want to solve problems in domain B really well. But the first language is not suited for that. So you use a totally different language for that. Maybe it has its own interpreter/compiler/library and specification. Maybe you need to interoperate between these languages. What do you do? Inter-language communication seems to be in a sorry state, if the Unix philosophy of "strings anywhere" is the prevailing philosophy. I guess we're supposed to use Json now, perhaps? Corba is dead. I saw a thick old book about it where I work and didn't feel inspired.

Compare that to having a language where you can express domain B more clearly in the first language. It turns out that there was some friction and ceremony with expressing domain B in the first language, but being able to express this as as EDSL -- maybe by using something like macros -- gets you 90-100% of the benefits of using a totally new language. Additionally, there is less underlying complexity -- you have one language derived from the other using constructs from the original language. And ideally you can inspect and unfold this implementation; go through a few layers of macros, perhaps. Contrast this with having two _wholly separate_ languages with their own runtimes, libraries and what have you.

This might be a philosophy of building layers of languages -- actually, probably more like a tree. Or maybe a DAG if you have several implementations that express the same DSL. Contrast this with several distinct implementations of monolithic languages, which probably have no knowledge of each other (languages tend to end up shallowly similar, but subtle in many many small ways; probably Turing Complete which makes analysis tricky or at least not straightforward, certainly not reliable...). But when looked at in isolation they look simple; hey this language is really good at expressing X. It doesn't have that many user-visible constructs. Simplicity! Only when you look at the bigger picture, you see how much effort and code that goes into implementing software that is subtly different, only to give the _feeling_ of simplicity when looked at more in isolation from the whole overarching system.

Some people will look at you in horror if you suggest using a powerful and expressive language. A language that can effectively express a lot of 'languages'. They find things like operator overloading disgusting, because code should look uniform and it should be "obvious" what it is doing. Then they choose to involve 12 different programming languages on a project, because that is _obviously good engineering practice_. _The right tool for the job!_ The fact that they have to learn and deal with so many languages is apparently trivial to them. The difference between the semantics and ecosystems of a dozen different programming languages is simpler then learning about and judiciously using operator overloading, I guess.

I am not trying to diminish the need for programming languages -- they seem incredibly hard to design, and the more I read about them the more I get convinced of that. There are ever more considerations that they can choose to care about, potentially at the expense of something else immediately next to it or maybe something far away. It doesn't seem like the ones who are designing them are close to converging on designs that express many of the problems that programming languages can/should care about. I look forward to seeing more language (designs) -- hopefully ambitious ones. :-)

tl:dr; I should learn a Lisp. Code truly is data, or it should be. But not even Lisp is able to do everything with sufficiently many macros, it seems.</comment>


Precariat - <AUTHOR> https://en.wikipedia.org/wiki/Precariat <comment><USER2> I thought it was old people that voted for Brexit and Trump...</comment>


15 Internet Annoyances, and How to Fix Them - <AUTHOR> http://www.compews.com/2010/02/17/15-internet-annoyances-and-how-to-fix-them/#more-1556 <comment><USER2> One: Sites that quote a fragment of the original long enough to look like an article yet short enough to get away with it, and hide the rest behind a tiny link surrounded by "share" buttons. For reference, the original article is at [http://www.computerworld.com/s/article/print/9156959/15_Inte...](http://www.computerworld.com/s/article/print/9156959/15_Internet_Annoyances_and_How_to_Fix_Them?taxonomyName=Internet&taxonomyId=167)</comment>


Can agents learn inside of their own dreams? - <AUTHOR> https://worldmodels.github.io <comment><USER2> [https://news.ycombinator.com/item?id=16694153](https://news.ycombinator.com/item?id=16694153)</comment>


A semantic model for a substantial fragment of C - <AUTHOR> https://www.cl.cam.ac.uk/~pes20/cerberus/ <comment><USER2> I've heard many "real" computer scientists say the "C remains central to our computing infrastructure but still lacks a clear and complete semantics" line but I have no idea what they mean.

Can someone explain to me what this means to the academic-CS type? How can something with a parser & lexer not have "clear and complete semantics". If you have a computer language which has defined elements of the syntax how can you not have clearly defined meanings of combinations of the syntax?

Does someone have an example of a piece of C that is not "deterministic" (best word I have for this) to a lexer & parser?

<comment><USER3> Example of undefined behavior: What arguments will f be called with?

       int i = 0;
       f(i++, i++);

More examples here: [https://www.cl.cam.ac.uk/teaching/1415/CandC++/lecture10.pdf](https://www.cl.cam.ac.uk/teaching/1415/CandC++/lecture10.pdf)

<comment><USER2> I'd assume it would be

        f(1, 0);

Because function arguments are pushed in reverse order in C and funnily enough, GCC actually does that even though that's crazy. But clang catches it as an "unsequenced modification".

I don't think that's a good example. The C standards make no guarantees about unsequenced modifications so relying on them is the programmer not using C, it's the programmer using a language derivative implemented by their compiler.

Why do people say "C remains central to our computing infrastructure but still lacks a clear and complete semantics" when the standards are very clear about what it allows? If you use something it doesn't allow you can't blame the spec for that.

<comment><USER4> You're missing the point.

Can we agree that people are learning a programming language that they call "C", and writing text files in that language and running programs that they call "C compilers" such as gcc on those text files to produce binary executables?

You are correct to note that the programming language I'm describing does not perfectly conform to any of the documents that are ever called a "C standard". But that programming language is central to our computing infrastructure, and whether you or C standard authors like it or not that programming language is widely called "C".

That language's semantics are unclear and incomplete---even though both gcc and clang are commonly called "C compilers", they have differing behavior on `f(i++, i++)` as you found; reportedly, there's code on which gcc behaves differently depending on the optimization level option.

<comment><USER5> There is a point that you're probably missing. UB is one of greatest things that could have been "invented" in engineering. Instead of covering idiotic cases that should never happen via complex algorithms that poison the code simplicity, you can just say that these are UB and rely on your client code to respect that. If you have a registry of objects with names, you don't have to check name uniqueness, because you can state that adding the same name is UB. Like it is for removing non-existent record. If a range of function produces wrong results (anything around limits.h), don't fix it — you're probably not even able to do it correctly, just call it UB for arguments above INT_MAX/4\. I use that a lot in my projects, because it allows you to start without waiting for all sorts of these cases to be covered in callee while there are four-to-ten absolutely correct callsites that will never produce UB.

UB is not a flaw. It is an efficient engineering method. Kids will be alright, that's hard thing to learn, but once you get it, it is simple, clear and complete. If kids want to stay in a sandbox, well, we have a lot of them.

Those who blame UB probably never turned their attention to electronics, physics or chemistry. _That_ is a mess. Every time you pass wrong arguments or do something out of spec, it can explode and really hurt your foot.

Edit: typo

<comment><USER4> If you're saying that sometimes UB is a good idea, as illustrated by your examples, then I agree with you.

But if you're saying all of C's UB is good, and none if it is a flaw, I think you'll find yourself in the minority there. Do you consider integer overflow to be an "idiotic case that should never happen and poisons code simplicity"? Relying on it to be two's complement is so common that successors like Java and Go and Rust all standardized that.

If you'll concede that _some_ of C's UB is relied upon in real, important, non-idiotic code, then it follows that it is indeed important for there to be efforts like Cerberus that develop unambiguous semantics for more of C than is currently covered by C standards.

<comment><USER5> >integer overflow, two's complement

As UB is an engineering method, we need to look at it from practical point of view ONLY. In my limited knowledge, platforms with really random overflow- then-back (x+n-m) do not exist. Note it has nothing to do with n's-complement, it is just a sad consequence of (x+n)==undefined, so compiler is free to assume (x+n <= INT_MAX) and throw out some "dead" code, which is not dead, ymmw. This specific UB is about what you get in (INT_MAX + positive) use cases, and these are very strange, because irl 127+3 is 130, not -126. It doesn't even help in famous m=(l+r)/2.

Though I can see social rationale behind standardization you mentioned. Some behaviors too _suddenly_ appear undefined to newcomers who do not bother to read tfm or faq at least, and even those who program for 5-7 years still cannot explain what restrict keyword means. Maybe I'm wrong or somewhat elitist in it; today's software development is different. We have lots of programmers who hardly go further than learning "a new syntax" and we are doomed to use them as a productive force. Then these UB-clearing moves have perfect sense, that's why I mentioned sandbox languages.

<comment><USER4> I have no idea what your point is, if any.

I will note that "from [a] practical point of view ONLY", it is incredibly impractical for a compiler to gratuitously break real code that relies on behavior that deviates from spec; if that reliance is common, the practical thing to do is to support that behavior, which they do: "The optimizer does go to some effort to "do the right thing" when it is obvious what the programmer meant (such as code that does "* (int *)P" when P is a pointer to float)." \--blogpost by the second most widely used C compiler, clang/llvm: [http://blog.llvm.org/2011/05/what-every-c-programmer- should-...](http://blog.llvm.org/2011/05/what-every-c-programmer-should- know_21.html)

Which is why projects like Cerberus are valuable.

<comment><USER5> My point is that UB is almost never any bad, and when it is, there is a live case for that. There is no value in defining the undefined. Clang does what it does at internal levels for completely different purpose than supporting "real code that relies on behavior that deviates from spec". The article describes that in detail. That is completely disconnected from the value of Cerberus- thing you mentioned.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Also see the work done in the under-utilized K Framework which captures & rejects undefined behavior as well:

[http://fsl.cs.illinois.edu/index.php/Defining_the_Undefinedn...](http://fsl.cs.illinois.edu/index.php/Defining_the_Undefinedness_of_C)

Since it's K, they were able to turn it into a GCC-like compiler for you verifying things about your application. If it even compiles, you have no undefined behavior.

[https://github.com/kframework/c-semantics](https://github.com/kframework/c-semantics)

On concurrency side, it's built on top of Maude tool that an inexperienced student was able to use to find errors in Eiffel's SCOOP model for concurrency. So, it can probably handle that aspect as well.

<comment><USER7> Any write up about the errors they found? Are they a problem with SCOOP as such or an implementation issue?

<comment><USER6> My memory is hazy but the abstract suggests this is the one I read before:

[http://se.ethz.ch/~meyer/publications/concurrency/scoop_maud...](http://se.ethz.ch/~meyer/publications/concurrency/scoop_maude.pdf)

The good thing about SCOOP particularly is there was a lot of CompSci work improving on it in many ways. Most of the safer, concurrency models didn't get such attention. Example:

[http://cme.ethz.ch/publications/](http://cme.ethz.ch/publications/)

</comment></comment></comment><comment><USER8> "Its front-end is written from scratch to closely follow the C11 standard, including a parser that follows the C11 standard grammar, and a typechecker."

C front-end written from scratch sounds interesting. I cannot find the code for this front-end anywhere. Has anyone found it somewhere or maybe it's not released yet?

</comment><comment><USER9> There is also the K framework, where C semantics were specified and an interpreter is generated.

[http://www.kframework.org/index.php/Chucky_Ellison](http://www.kframework.org/index.php/Chucky_Ellison)

<comment><USER6> I didn't even see you beat me to it. You should also link to KCC when you bring it up. Developers love practical stuff they can download and use to their benefit. :)

[https://news.ycombinator.com/item?id=14012891](https://news.ycombinator.com/item?id=14012891)</comment></comment>