How to gain traction in two sided markets - <AUTHOR> http://joel.is/post/39659497239/how-to-gain-traction-in-two-sided-markets

<comment><USER2> Two-sided markets and platform competition have been popular topics for microeconomic theorists since around the 2003 work of Rochet and Tirole[1] (IMHO, Tirole will win the Nobel Prize in the next 3 years). These two helped put together much of the generality left out of Baye and Morgan's 2000 paper[2] that looked at information gatekeepers on the Internet.

In the late 1990s and early 2000s, economists really began to look at the Internet (Hal Varian, Google's Chief Economist is probably the best example -- see his 1998 book "Information Rules"[3]). They tried to tackle issues like price dispersion in a homogeneous goods market on the Internet (that is, why does price dispersion still exist in an Internet market for a homogeneous good?) and other problems of consumer information heterogeneity, consumer search, and so on. Starting in early 2000, economists began to take interest to the "gatekeeper" model of Internet prices -- a website that would aggregate prices across online retail sites. "If a consumer just has to go to one site to become informed about all the prices in the market, then consumers can costlessly become informed about all the prices in the market by going to the gatekeepers site" many microeconomists said. This led many researchers to look into the model of fees charged by gatekeepers to retailers who wanted to have their prices posted on the site.

Eventually, Tirole et al realized a way to generalize the concept of a two- sided market by describing it as a platform where the owner of the platform receives revenue from two [or more] sources (i.e. buyers via advertising and sellers via gatekeeper fees), hence making the general distinction between a multi-sided market and the the classic supply/demand market model. Today multi-sided markets are used to model almost all forms of platform competition.

From my perspective, research on the economics of the Internet hit a bit of a slump in the late 2000s as [too] many economists instead focused on macroeconomic issues during the bubble, but has grown in interest quite a bit again over the last 3-5 years with the rise of social networking and similar app/mobile platforms. So much of this research relies on fundamental models of two-sided markets, that I encourage anyone curious about really hot microeconomic theory topics related to the Internet and start-up industry to dig into platform competition.

[1] _Platform Competition in Two-Sided Markets_ , <http://ideas.repec.org/p/ide/wpaper/654.html>

[2] _Information Gatekeepers on the Internet and the Competitiveness of Homogeneous Product Markets_ , <http://papers.ssrn.com/sol3/papers.cfm?abstract_id=215548>

[3] _Information Rules_ , <http://www.amazon.com/gp/product/087584863X/>

</comment><comment><USER3> I'm not sure if I'd consider Facebook's model to be two-sided, at least their startup model. I'd consider two-sided markets to be businesses like eBay or Airbnb.

I remember reading something on Airbnb (it might have been a Mixergy interview) and one of the takeaways for building a two-sided market is to employ promotional tactics that are not scalable. If I remember correctly, Airbnb went to New York City and started knocking on doors to drum up listings. Obviously, such a sales tactic at scale would be extremely expensive and prohibitive, but when starting out, you need that level of intimacy to get off the ground. I believe the other example from that article was a babysitting service where the founder went around town and plastered fliers where appropriate.

</comment><comment><USER4> Another typical strategy is the "girls get in free" nightclub strategy. Although ultimately it might be possible to make money from the market itself, in the early days it's almost certainly the case that whichever side is harder to attract probably needs to get the service for free.

</comment><comment><USER5> A third way, which is more like what Facebook did is to get a chunk of the market signed up all at once and hold them there until network effects take hold.

If you add all the photos for Harvard students, that is the chunk.

<comment><USER6> Facebook isn't two-sided. The consumers are producers and vice versa.

At the very least isn't any more two-sided than Google Web Search. Advertising on Facebook (and Google) were added way later to monetize and already successful product traction-wise.

A two-sided market is one where the buyers and sellers (or any combination of counterparties) are generally mutually exclusive from one another and dependent on the existence of the complementary counterparty for the market to provide utility.

</comment></comment><comment><USER7> Relevant is Fred Wilson's Single User Utility: [http://www.avc.com/a_vc/2012/12/single-user-utility-in-a- soc...](http://www.avc.com/a_vc/2012/12/single-user-utility-in-a-social- system.html)

</comment><comment><USER8> I like the single-player mode vs. multi-player mode analogy. That's a useful way to think about it.</comment>


New paper claims that the EM Drive doesn't defy Newton's third law - <AUTHOR> http://www.sciencealert.com/new-paper-claims-that-the-em-drive-doesn-t-defy-newton-s-3rd-law-after-all <comment><USER2> This paper is highly, highly questionable.

First, if the exhaust is photons, you have a photon rocket. These are easy to build: any light source will do. In special relativity, a photon, like any other massless particle, has momentum p = E/c, or roughly p = E * 0.003 N/MW. The article claims the EM drive gets 0.4 Newton/kW, so the numbers are an order of magnitude off.

Second, the paper says "also when photons attain thermodynamic balance with matter in the cavity, their number is changing, but the photons themselves do not vanish for nothing at absorption to the walls and they do not emerge from nothing at emission from atoms constituting the walls." Photons are bosons, and bosons _do_ get freely created and destroyed. Where do you think the photons in the light from a flashlight (incandescent or otherwise) comes from?

Third, if you don't like perturbation theory and you don't like thermodynamics, you can calculate the force carried by an electromagnetic field directly. Zero field gives zero force.

So, sure, if you're willing to ignore a lot of very well-tested physics, you're welcome to believe this paper.

[the actual paper is at [http://scitation.aip.org/content/aip/journal/adva/6/6/10.106...](http://scitation.aip.org/content/aip/journal/adva/6/6/10.1063/1.4953807)]

<comment><USER3> I would add that photons, like all other particles, don't have identity. They're 'ripples' in the electromagnetic field; if you cancel them out, then you don't get a ghost photon. You just get no photon.

<comment><USER4> >cancel them out

Do you mean destructive interference? because the photons don't go anywhere, they don't disappear, the energy of the wave function and hence the photons remains the same.

Other than a photon being absorbed there is no way to "cancel out" a photon, you also don't really have a way to cancel out light with destructive interference because some where else there will be a constructive interference, if we could just "cancel out" light we would have cloaking devices by now ;)

<comment><USER2> > Do you mean destructive interference? because the photons don't go anywhere, > they don't disappear, the energy of the wave function and hence the photons > remains the same.

Not quite. If both waves are plane waves, the interference could be destructive everywhere or, depending on the setup, destructive everywhere except between your sources. If you calculate the time-averaged power needed to source the waves, it'll sum to zero. And there are no photons in the far field.

<comment><USER4> Yes quite, plane waves physically don't exist in reality they are a mathematical idealization.

Again you can't make an "anti laser".

</comment></comment></comment></comment></comment><comment><USER5> > _" But if scientists can verify that these paired photons really are being > pushed out the back, sh/t's going to get real for EM drives, because it'll > help engineers design better cavities and produce even more thrust."_

That sounds to me like an easier way to test the theory than building an interferometer sensitive enough to detect gravity from photons (as the article suggests). Just build a cavity according to models based on the theory and see if it works better!

<comment><USER6> Exactly. I look forward to the improved EMDrive, if they can build it.

<comment><USER4> If that's the case why not just use a flashlight? The thrust that is given out by photons is over 1 order of magnitude less than what we are getting from the EM drive.

Unless these are some kind of special photons which would mean much bigger news to the world of physics than a slightly more efficient photon rocket.

I would love to be able to dismiss this paper but the University of Helsinki is a fairly reputable university, and this paper just makes me want to scratch my head because the physics is more or less on the level i can comprehend but I've read it twice now and I still keep thinking "Whaaaa?".

</comment></comment></comment><comment><USER7> So this paper's foundation seems to be the idea that 2 photons can propagate in the same direction with the same wavelength and phase exactly 180 degrees off. As such, the net effect on the EM field would be 0, so they wouldn't interact with anything through the EM force and could pass through the walls of the chamber, escaping the device and acting as propellant. Importantly, the photon pair, they say, still caries energy even though it doesn't interact with anything.

My question for anyone with a background in this is, is this bunk? It doesn't square with my intuition. Suppose we have two plane waves in the EM field propagating like these photons, exactly out of phase, how would this be different from _no_ plane waves in a completely empty space? Where's the energy in this photon pair scenario? If it doesn't interact with anything, in what sense could it possibly have energy?

Moreover, what would the production of a pair look like? They're claim of it having energy is important only in so far as it is a release of momentum for the drive, so the formation is the key part. Suppose there's just the first photon - is emitting the second of the pair equivalent to just absorbing the first one? In which case, their claims that photons don't just "vanish for nothing" aren't valid.

Edit: Oh and that stuff about Gauss Bonnet ("Geometry at any point along an action can be recapped by signed curvature.") - I do research in related areas of math and could recite Gauss-Bonnet without reference, but I have no idea what they're trying to say. Gauss-Bonnet is a statement relating the global topology of a surface to its curvature, what surface would they even be considering here and how would its topology matter?

Honest question: is this representative of how physics papers are written in terms of style? Sentences like "It is no new idea that inertial effects are immediate, because the vacuum resists changes by embracing everything" make me wonder how physicists communicate.

<comment><USER8> No, it is not typical physics paper (physicist here). Little is clearly defined. E.g. phase shift in what --- if the meaning is the same as in standard EM/QED, what is it the authors exactly propose (probably they don't work in this framework if they reject photon number change), and can the replacement they propose predict something correctly? Overall, the paper reads like a word salad, as the explanations are all over the place.

At least the second author of the paper is known also for other bunk, so grains of salt recommended.

<comment><USER7> Thanks for confirming what I suspected.

</comment></comment></comment><comment><USER9> I can't read this in any way that doesn't just mean, "Destructive interference". Given that... NO EXHAUST, no reaction mass, no momentum exchange.

<comment> T-A I've only scanned the paper quickly (and it does look a bit unusual for a physics paper) but I think there is an obvious answer to that: it's not perfect destructive interference. You can imagine two photons with opposite polarization starting out together and propagating in _almost_ exactly the same direction. As they go along their merry way, they diverge. Eventually, far away, you have two well-separated, ordinary photons. But close to the source, you have near-perfect cancellation, and so negligible interaction with the cavity walls, as the authors would have it.

<comment><USER10> If this were the explanation, they should get a thrust to powered ratio that is lower than the theoretical maximum with the currently accepted physics laws.

The theoretical maximum is 1/c = 0.0033 mN/KW, but all the "interesting" experiments get more, for example 0.4 N/KW = 400 mN/KW.</comment></comment></comment>


Two small ideas for improving HN - <AUTHOR>

I made a mockup of two possible methods for dealing with multiple, often over-the-top, submissions on popular topics (Color funding, Apple TOS changes, etc). These tweaks don't address quality of comments or submissions directly, but would leave room for different submissions and mitigate the need for critical comments about poor titles and duplicate submissions.
Alternative titles: Users can submit an alternative title for a submission. If the alternative title gets more than X percent of submission's overall score it becomes the new title.
Merge requests: Users can submit a merge request by providing another submission ID or URL to merge with. Merge requests show on both posts. If the merge request's score becomes more than X percent of the lower-scoring submission's score, then the lower submission is merged into the higher-scoring one, maybe with small markers on merged-in comments to show that they were merged in, just in case the two submissions had a slightly different focus.
Mockup: http://min.us/lmLZve <comment><USER2> Clickable link: <http://min.us/lmLZve></comment>


Convincing C programmers to switch to C++: A look at human behavior (2016) - <AUTHOR> https://blog.kareldonk.com/convincing-c-programmers-to-switch-to-c-a-look-at-human-thinking-behavior/ <comment><USER2> A good example of human behavior in TFA as well as the talk it cites is how deeply convinced they are that C++ is objectively always better than C; they don't even try to suggest that there could be a tradeoff and _sometimes_ C would be better. Of course the guy in the talk makes a living from C++ consulting; another part of human behavior is it's hard to convince someone of a truth which threatens their paycheck.

And I'm not here to argue how terrible C++ is (I've done enough of that elsewhere), but only that "behavioral" arguments cut both ways, and are usually little more than an ad hominem attack and/or some good old marketing tricks rebranded as "behavioral science."

<comment><USER3> And a good example in the comments here is how few people are talking about what the article is actually about (human behaviour) but instead there's mostly anti-C++ reactions. The aversion to C++ is so strong that an article that only casually is about C++ must be attacked for the perceived C++ advocacy. The article isn't really about C++ advocacy at all.

It really doesn't matter if C++ is better or not. The article doesn't really even try to talk much about that at all. No matter what C++ may do, what it may change, what it may improve, how it may perform, how it can be simplified; it's almost impossible to convince C programmers to try C++ (or golang, or Rust, or D).

The article really is about how it's almost impossible to change someone's mind on _any_ topic. Anyone who likes to engage in internet discussions is well aware of the phenomenon.

<comment><USER4> The article is a 4,000 word diatribe about how stubborn, irrational people refuse to see reason, without at any point admitting the possibility that these backward, incorrigible C holdouts could be right in any way.

<comment><USER3> It's not about C holdouts being unreasonable at all. They're only mentioned in the first three paragraphs of the article. The article isn't about C or C++. It's about why you and I are arguing right now: we're both irrational.

<comment><USER4> > It's not about C holdouts being unreasonable at all. They're only mentioned > in the first three paragraphs of the article.

That's not true; they are mentioned several times in the first big bullet list. Also the Dan Saks talk he discusses several times throughout the article is specifically about talking to C programmers about C++.

But regardless of whether he is speaking about something specific (C vs. C++) or in the abstract (rational vs. irrational people), he is making the same flawed presumption: that certain choices (like C++) are unquestionably better than other choices (like C), and that if people can't see this then the only possible explanation is some kind of cognitive impairment.

The whole argument presumes that the author is smarter and more rational than other people. He might not even realize he is doing this, but other people can most definitely pick up on it.

<comment><USER3> > The whole argument presumes that the author is smarter

Aha, so that's why everyone is posting comments about how terrible C++ is. The author is coming across like an ass, so we must attack that which he appears to be defending: C++.

I don't really pick up on the bad attitude (probably because I have it too), and I don't really care that much to defend C++ or C. I went through the article, noted a few references to whatever psychological studies were there, and decided to read those later. I don't really care if C or C++ is "better". I barely use either anymore.

</comment></comment></comment></comment></comment></comment><comment><USER5> If we were discussing two languages Strawberry and Kiwi, and I had a large, established codebase in Strawberry and a bunch of programmers who are experts in Strawberry, it would be a hard sell to get me to switch to Kiwi even if Kiwi were better than Strawberry in every conceivable way and backwards compatible with it to boot:

\- Learning to use a new system effectively takes time and energy. Are you 100% sure that the benefit of the new system is great enough to offset these costs?

\- Hybrid codebases have higher maintenance costs than homogeneous ones. If Kiwi mixes with Strawberry seamlessly, maybe that burden is lower—but the more true that is, the harder it is to believe that moving to Kiwi confers a large advantage.

In this specific case, I could believe that C++ by seasoned C++ users leads to demonstrable net gains. But it's easier for me to believe that switching to Rust or Haskell would confer _higher_ gains, corresponding to the higher risk and higher cost of switching. So I think it's not that people are irrational about avoiding C++. I think that C++ is in an awkward place on the hill between C and things better than C++. If you _need_ something better, you will go to something with better tradeoffs than C++; if you don't need something better, you just live with your existing C codebase.

<comment><USER6> One of the major problems I have with C++ is that for any non-primitive data type, there are way too many choices of mutually incompatible classes that people have developed. Even strings. There are things out there that use char[], std::string, CString, APString (#*&!), ...

<comment><USER7> Aren't char[] strings and CStrings the same?

<comment><USER8> I think dheera meant CString class from MFC, not a "plain C string".

I'll also add QString, AnsiString, BSTR and glib::ustring to the mix :)

</comment></comment></comment></comment><comment><USER9> In a lengthy piece about rational arguments, you would expect somewhere in there someone would actually present a rational argument for switching beyond "it's modern."

I mean, maybe the actual details of the case for switching are slightly beyond the scope the author intended to write about, but simply starting with an assertion that "modern = better, therefore people should have already switched if they were rational" and treating that as self-evident strikes me as highly arrogant and logically fallacious.

<comment><USER10> It's kind of amazing to me that OP's 4000-word article doesn't mention -- even once -- the relative complexity of C vs C++.

<comment><USER11> Be careful comparing complexity. C might look simple, and C++ might look complex but I have never seen a char __* in C++ to mean 2d of jpg images in memory.

C++ is more complex, because it covers more concepts. But when you get simple safe and to reusable things from that complex the difficulty is reduced.

What is the right way to store and unknown amount of things in C?

There are about a million ways to do and every project will implement their and about half will work. Of that half maybe 1 in 10 will have an API that is intuitive to the reader, and depending on the reader that 1 in 10 will be different. Now what if what you an associative container instead?

With C++ just using std::vector, because this is a solved. (or map/unordered map for the associative container).

This continues on with libraries. Every API needs to have a large series of questions answered every time you pass a pointer. Because C has no concept of ownership who is supposed to delete it? Without const references extra caution to distinguish const pointers and pointers to const things, why is this important? Without templates writing an API that works on multiple types involves dealing with void* at run time, presuming you don't want to actually use anything in the data.

C looks simpler because it is smaller. C++ is easier and simpler because it has already dealt with many of the hard problems.

<comment><USER12> LOL, C++ developers complain about C developers being impervious to reason, yet can't admit one of the most blindly obvious problems with C++. Plenty of language manage to be more expressive than C++ while being far less complex. C++ is an uncritical grab bag of features. If you don't carefully design features to complement each other you can C++ style complexity.

C simplicity is real. It makes it easy to write compilers. Compare with the enormous complexity of writing a C++ compiler. This is actually quite important as any software development needs tools. Writing tools for simple languages is easier. Writing tools for C++ is next to impossible. Most of my C++ career I have never had proper refactoring tools. I haven't even been able to use a lot of C++ features because it has taken so many years for all compiler writers to implement all the features.

I can't think of a single other language where it has been so many years of lag between a language specification and it being widely adopted among major compilers.

The simplicity of C makes it easy to interface C with a huge number of other languages. C++ can't interface with almost anything. It is just way too complex.

A much saner superset of C, is Objective-C which can actually interface very easily with other languages.

<comment><USER11> You are lumping me in with some strawman who insulted you, then you insult me calling me "impervious to reason". You are not interested in a real exchange of ideas.

I will respond to your points in the spirit of open exchange anyway, but if you continue to be rude it will just shine a poor light on C programmers as a whole. Since I feel you ideas are lacking factually this might seem like an attack, it is not an attack and I even ask for more information on points with merit.

I have pointed out that elsewhere in this thread that the standardized C ABI is perhaps the only thing I like about it. C++ can seamlessly use this, but not by default (which is a weakness of C++). So anything C inter-operates with C++ can too. So your point that C++ inter-operates with less is entirely without merit. Using this I have interoperated with Lua and Ruby from C++, it works well.

To push interop further there are several tools like SWIG that seek to allow exchange of rich objects between languages (rich objects that C doesn't even have), and these tools work. I have written code that throws exceptions from Java an catches them in C++ (and vice versa of course) and things of similar complexity in a few other languages.

It feels fantastic to have low or 0 cost abstraction around passing complex objects between systems and have all the code that does that strongly checked at compile time (And covered in Unit tests too that but that could be done in C too, I just don't see it often).

As for tooling, I again think your points are largely without merit. The are plenty of tools for both languages and there are plenty of simpler languages with less tools. It seems to me that the amount of tooling is not related to complexity but rather popularity of the language.

A language that is functionally driven by one vendor and supplanted by that vendor with a newer language (swift) is not a reasonable solution to most problems. I am curious about we makes it interop better than interop with C++, what does it do right that C++ does wrong?

<comment><USER13> > it will just shine a poor light on C programmers as a whole.

Hey now, most of us have nothing in particular to do with this guy!

</comment></comment></comment></comment></comment></comment><comment><USER14> > The C++ language is an improved version of the older C language (it's a > superset of C),

The first statement is arguable and the parenthetical statement is false. C99/C11 have language features that C++ hasn't adopted, which makes it somewhat obnoxious to support C++ from C codebases that use them. One example is the "static" keyword used in array parameters.

<comment><USER15> or designated initializers.

</comment></comment><comment><USER10> In C++, "return (x);" isn't equivalent to "return x;" [0].

But according to OP, it's not C++ that's irrational, it's the programmers who don't want to use C++.

[0] [https://twitter.com/sigfpe/status/857748171778252800](https://twitter.com/sigfpe/status/857748171778252800) [EDIT: corrected broken link]

<comment><USER11> Your link doesn't work for me. Can you perhaps just explain the difference? A twitter link is hardly a canonical source.

<comment><USER16> There are some trailing characters in the link. But the tweet is

> decltype(auto) f1(){int x = 0; return x;}

> decltype(auto) f2(){int x = 0; return (x);}

> Latter, not former, returns reference to int.

</comment></comment></comment><comment><USER17> How to convince them:

\- Show them how classes makes things easier (automatic object management, some operator overloading, etc)

\- Show how the STL makes most things easier (arrays, maps, etc)

How not to convince them:

\- Show uses of excessive/pathological inheritance

\- Use of templating beyond the basics

\- Insist they use C++ functions for every single thing

\- Insist they OOify every interface in their code

\- Creating giant classes (structs) with a getter and setter for every field with no control or validation

\- Going crazy with operator overloading

<comment><USER12> Why would that convince them of C++ and not any other modern language like D, Rust, Swift, Go or Nim?

I really can't see what C++ has to offer anybody. It is a horribly complex language, which doesn't interface with anything except C.

<comment><USER17> I wouldn't, but C++ is an improvement over C in most situations and will fit situations where modern languages won't run

</comment></comment></comment><comment><USER18> > In fact, Saks found that quite often logic, facts and the truth were simply > not sufficient enough to convince people. Instead, people reacted in a very > irrational and emotional way, and kept sticking to and defending their > beliefs.

You start criticizing people for not believing you when you have _one example_ comparing two _different programs_ implementing an unspecified task on an unspecified compiler. This is ridiculous.

I mean, for crying out loud, your headlining video is a talk by a person who admits that he _hasn 't done the thing he's trying to convince people to do_.

He says things like this:

"You don't want to wait for the market to take care of this, you would like to take some proactive steps to be able to make more of the people who should be using C++ willing to use it."

in the context of aerospace, which clearly he has no authority to speak on, since he misses one of the fundamental reasons why C++ is not popular or even acceptable in much of aerospace: implicit allocation. Implicit allocation is incredibly dangerous for high assurance systems. You really need to know exactly how much memory can be allocated, when, and what state the exact allocations will put the allocator in. C++ has some facilities to manage this, but man, it is easy to drop a plane from the sky by assuming that your allocation did what you wanted instead of verifying it.

</comment><comment><USER19> I do not fully agree with the premise that C programmers don't know what's best for them and need to be educated to switch to C++. I do agree that C++(14++) isolated is a better programming language in many ways compared to C. The problem is that a programming language seldom is used isolated, but is part of a toolchain or is used in an environment with other technologies.

In this situation, C is a much better choice because most other languages have nice interoperability with C, but seldom, if ever, with C++. For example, as an iOS developer I can use C and C-libraries very easy with Swift, while inter opt with C++ is not possible at all and probably never will.

The main thing keeping me away from C++ is that it does not have a stable common ABI. This makes it very nearly impossible to use C++ to create and distribute a shared library. I even believe Google developers internally are prohibited from creating C++ libraries for this reason. So I'm sticking with C for low level stuff. It's a perfect glue language and fast. For higher level stuff, why use C++, when you can use Swift, Java, Haskell etc etc?

</comment><comment><USER8> Well, I've tried plain C in one project. The compiler didn't complain when I did some invalid casts, didn't complain when I forgot to return values from functions, provided some warnings against using some undefined functions, but compiled the units anyway (failing on linking stage), I had to write my own implementation of vector (probably buggy and slow), and probably I've forgot to free memory in some situations because C doesn't support smart pointers and automatic cleanup through RAII. Lots of times I felt I'm programming in some dynamic language that doesn't support types, because types are so weak in C. This means that lots of bugs were caught in runtime, not compilation step. Trying to use a hashmap meant I had to pull additional dependencies.

Disclaimer: I don't _love_ C++, I think it has lots of problems, but saying C++ is wrong, while C is right suggests to me that lots of people didn't take time to actually learn C++ but have strong opinions on it.

<comment><USER13> > because types are so weak in C

You can get nominal typing in C by wrapping your primitives in single-element structs. Slight syntactic overhead, no runtime overhead. In my C code, I try to avoid passing primitives between functions. It worked out well on my last large C project.

</comment></comment><comment><USER10> Scott Meyers points out that one of the simplest possible refactorings is "rename method". To rename f(), you need to know what f() is, and in C++, f() can be any of 7+ different things! [0] It's extremely complicated to determine which thing it is.

But according to TFA, people who prefer C are just being emotional and irrational.

[0] Scott Meyers. Things that Matter - DConf2017 [@27:51] ([https://youtu.be/RT46MpK39rQ?t=27m51s](https://youtu.be/RT46MpK39rQ?t=27m51s))

<comment><USER11> In some obscure technical sense you might be correct, that identifying some piece of code is hard, but that little of C++ obscurantism is rarely why code isn't easy to read.

With C++ it easier to express higher level concepts. I can have a map of strings to some class instance. Then I can use some string to lookup class instances. There are simple idiomatic ways to do this. They are short to writes (<10 lines), they will have decent performance and will be low on bugs and clear ownership semantics.

With C it is common to have an array of pointer to pointer to void pointers. To get associative lookup it might be even worse and have functions that need to pointer to pointers, with who knows what ownership model and what idioms in use.

</comment></comment><comment><USER20> "If you're arguing, you're losing.". That is a quick way to stop any discussion. The reason I am not using C++ is because C already does everything I need:

\- _Easier to write code generators for_ : I use libclang to read in annotations that will generate new code according to where the annotations are being used. If I have to take care of every edge case and new features added to the latest C++ standard it would make the code generator more complex.

\- _Using plain old data structures_ : My code generator generates new code to be able to work with the plain old data structures which data can be interleaved or non-interleaved using data-oriented design. Classes will not add that much value.

\- _C compilers are easier to write_ : I integrated the tiny C compiler inside my program to be able to compile C code on demand. The C code can then use the code I've already written.

\- _No name mangling by default_ : I dynamically load a lot of plugins and do not want to bother with binary incompatibilities all the time (if compiled by different compilers like the tiny C compiler for ex.).

\- _I mostly use libraries written in C_

\- _Low-level access_

If I need concepts or meta-programming etc. I can already use Nim or write my own code generator, else I would rather choose something different than C++.

To be more on-topic. Confirmation bias. On The Internet you can find confirmation of something being true about almost every topic. Whatever people believe is the truth, it will not change the reality. Which programming languages are better is a very difficult thing to measure because there are many factors to consider. Being used to a certain programming language can be a good reason not to change.

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

Update: added some explanations, and more on-topic

<comment><USER8> You're using C in a cool way, but:

1) By using libclang to parse your own annotations you're kind of using your own fork of C language, not the standard one. You can't really bring your annotation parsing engine to some company to work on an existing C project,

2) C++ also uses plain old data structures, using 'class' does not magically introduce any overhead in structures, unless you start using virtual functions, but nothing forces you to do it,

3) I think that by stripping name mangling you actually _increase_ binary incompatibility, because without mangling you can't know what ABI was the function compiled against. Which compiler was it? What are the arguments? Is it MS ABI or UNIX ABI? Nobody knows for sure even if it seems to work correctly for some set of arguments. Disabling mangling sure is convinient at the beginning, but brings problems and incompatibilities at later stage.

4) Given that Windows or macOS kernel drivers are written in C++ (more or less), low level access is possible in C++ as well.

<comment><USER20> I am aware that all of this is possible in C++ as well and for many things C++ might be the better choice (more standardized compiler hints instead of using pragmas, generics and templates etc.).

What I meant is that C++ does not add anything for me personally.

POD-structures are all I need and the way I fetch/store the data may require the struct layout to be interleaved or non-interleaved (depending on the platform / architecture I am targeting for a specific build) requiring different code to be generated to access them.

I do not need to disable name mangling or add 'extern "C"' everywhere (I still do in case the code will be used from C++) when I just use plain C.

I like the many new features added to C++ like concepts, lambdas etc. but for these I prefer to use Nim (they just added complete concept support as well).

</comment></comment></comment><comment><USER21> People aren't rational actors for a reason: Sometimes things are easy to argue for but aren't that great in practice. And so by following your heart instead of your head, you sometimes make seemingly illogical but objectively better decisions. And I think that there is a case to be made about how C++ is efficient in theory, while C is effective in practice.

<comment><USER22> > And so by following your heart instead of your head, you sometimes make > seemingly illogical but objectively better decisions.

And sometimes you make seemingly illogical decisions that end up being objectively worse decisions. The problem is that we don't really have a way to quantify our emotions usefully, which means we can use them accurately and are forced to allow for enormous amounts of error in our calculations when we provide any level of significance to them. That's why they are often seen as detrimental to rational decisions, not because they don't matter (obviously emotions do), but because including them sometimes leaves us no better off than flipping a coin (are the downsides really that bad, or is your fear of change in this instance vastly overwhelming the other considerations, and in an unwarranted way that you aren't entirely aware of?).

<comment><USER21> While you have a point that they might sometimes be counter-productive, I think that emotions are decision drivers which operate on a higher abstraction level and are a way for the mind to compile vasts amounts of experience and deliberation into a single really fast circuit able to perform split-second decisions. So I think that they are mostly correct. But it's really too bad that we cannot retoractively introspect them and quantify their grounds.

<comment><USER22> I agree, but possibly in a different way. The idea of interoception[1] (which I'm not sure how accepted it is) basically means that your feeling are just your body using a heuristic to assign a feeling to a physical state of your body (that is, there is no universal feeling for anger, just a physiological response you've trained your brain to think of as the concept of anger. Some culture's literally do not have certain feelings). Your body is changing physical states based on some subconscious reasoning (often remembered response), and your brain is then interpreting that physiological state broadly and assigning an emotion to it, and it doesn't always get it right (which is why we get angry or anxious sometimes and aren't exactly sure why).

If that theory is true (not sure, I literally just learned about it this morning[1]), your emotions do have weight in something like this, but it's filtered through multiple lossy abstractions and has a propensity for false positives. That's a much less rosy interpretation of how useful they are, and if true, means we might be far better off trying to cultivate a better understanding of the nuances that are causing those reactions and assessing them rationally (to the degree possible) than to using the lossy abstraction itself with any significant weight.

1: [http://www.pc.rhul.ac.uk/sites/lab/index.php/research- themes...](http://www.pc.rhul.ac.uk/sites/lab/index.php/research-themes- projects/interoception/)

2: [http://www.npr.org/podcasts/510307/invisibilia](http://www.npr.org/podcasts/510307/invisibilia)

</comment></comment></comment></comment><comment><USER23> In the sense that OOP is often used in very stupid ways (dunno about C++ but in other languages, have a look at PHPUnit it is the best example of misunderstood OOP) I can understand C programmers. Golang is also very simple for a reason

<comment><USER24> I agree, but moreover: You can also do nice OOP with C. Take a look, for example, to COS (C Object System) which implements OOP on top of your C compiler. The object system itself is inspired by CLOS (Common Lisp Object System) and Objective-C (in turn inspired by Smalltalk). It also allows 'automatic' allocation by reference counting.

[https://github.com/CObjectSystem/COS](https://github.com/CObjectSystem/COS)

Paper: [https://arxiv.org/abs/1003.2547](https://arxiv.org/abs/1003.2547)

</comment></comment><comment><USER12> Talk about the cat calling the kettle black. C++ arrogance and hypocrisy at its finest: Wondering why C programmers can't be reasoned while being impervious to any reasonable argument themselves towards the many modern alternatives to C++.

Why on earth should a C developer chose C++, when they could chose Go, Rust, Swift and Nim instead? And if you really insist on an old language I'd rather use Objective-C than C++.

Only reason to ever pick C++ is that you got a sizable existing legacy C++ codebase. That is why I am stuck on C++.

A C developer by definition doesn't have legacy C++ code to deal with so there is no reason to pick C++.

Saying C has no benefits over C++ is rather ignorant. Complexity has a real cost. For most of my C++ career that has been reflected in an utter lack of functional tools for manipulating C++ code, e.g. doing refactoring. Refactoring C code is a lot easier, as a regexp search and replace is far more dependable, since there is no function overloading.

</comment><comment><USER25> >* Based on research by Kahan et. al., Saks mentions that otherwise intelligent people will likely misunderstand data if understanding it challenges their preexisting beliefs.*

While this happens, it's also an empty argument that can be applied to everything.

How about the author there misunderstands his own data on C++ because it challenges his preexisting beliefs (that C++ is "de facto" better)?

It goes downhill from there fast, to argue that those pesky people who dare to not want to use C++ are irattional, conditioned from childhood, etc (those willing to use C++ are not, because of course C++ is the only reasonable choice a programmer can ever make between C and C++).

> _In fact, Saks found that quite often logic, facts and the truth were simply > not sufficient enough to convince people. Instead, people reacted in a very > irrational and emotional way, and kept sticking to and defending their > beliefs. People's basic reaction was "show me all the data you want, C++ is > still undesirable."_

The problem in the paper is that some BS arguments and numerical data in favor of C++ (which I'm assuming they have -- they fail to mention any of them in this article) are conflated for "THE truth".

Sorry, author, but you are not showing people "THE reality", you're showing them some arguments and some numbers.

The programmers you are talking to (those that have tried both C and C++) are the ones that have actual empirical experience from actual reality on what C++ gets them -- and whether its worth the tradeoffs they've seen.

For one, there's an ergonomic factor in language and API design (it's usability) which can be highly subjective -- and syntax/api usability is one of the big reasons people dislike C++. This issue cannot be shot down with any "objective" argument or numbers table....

</comment><comment><USER26> C++ offers too many options for how to do things. C is a nicely restrained subset. The end.

<comment><USER27> In the words of Dennis Ritchie, "If you want PL/I, you know where to find it."

</comment></comment><comment><USER28> Perhaps we need an article called "Convincing people to stop using C++ already."

</comment><comment><USER29> Why do programmers feel the need to convince other programmers to switch to a different language? How does it affect Programmer A, a C++ programmer, whether or not programmer B prefers to use C? I like both C and C++. I also like Objective-C, Ruby, and Python. Each one has its place--and if I'm starting a new project, I'll use the one that makes the most sense to use given the project's requirements--or a mix of them if it's appropriate. If I'm joining a project in-progress, I'm happy to use whatever language has already been chosen. Why get into religious wars?

<comment><USER30> According to Alan Kay, programming is a pop culture right now. So people want to preserve the investment in the language of their choice by maintaining or improving its pop status.

</comment></comment><comment><USER31> At a cultural level, when you have to convince somebody of something, isnt that generally a bad approach if you want somebody to change their view?

Though, Keeping thIngs Simply Stupid, is really the only lesson one has to know/learn. When C++ has a specific function go with C++, when C is sufficient use C. If a bash script is sufficient use that.

If people could just show why something is cool in what situation, instead of why something should be used over something else. And this includes guides 'how to switch desktop OS' too.

</comment><comment><USER32> Already discussed in HN: [https://news.ycombinator.com/item?id=12573886](https://news.ycombinator.com/item?id=12573886)

<comment><USER33> as well as [https://news.ycombinator.com/item?id=51451](https://news.ycombinator.com/item?id=51451)

</comment></comment><comment><USER34> This reminds me of Godel's proof - A formal system (axiomatic system) cannot be complete and consistent at the same time!

Each side of the argument have their own set of premises/axioms to come to certain conclusions but there are always unknown truths which people tend to ignore. if there are no unknown truths then the argument should be contradictory

</comment><comment><USER35> I've noticed that the best way to get programmers to use a different language is to build something they want to use in that language.

I could talk to my perl programming colleagues for days about the advantages of python over perl, but what got them to switch was boto, since we were moving to aws.

</comment><comment><USER36> C and C++ have a lot of wiggle room when it comes to implementations. I prefer C (when possible) just because there's less surface-area for arbitrary behavior (which is already more than enough arbitraryness).

I'm writing this mostly as a plug for DJB's proposal for a "boring" C compiler: [https://groups.google.com/forum/m/#!msg/boring- crypto/48qa1k...](https://groups.google.com/forum/m/#!msg/boring- crypto/48qa1kWignU/o8GGp2K1DAAJ)

<comment><USER37> The kcc compiler is really good at being predicatable. A formal semantics of the language gives warnings whenever undefined behavior occurs.

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

</comment></comment><comment><USER37> The talk starts off with

        "If you're arguing, you're losing." — Mike Thomas

No, no, no.

A shouting match doesn't help anybody. A civilized exchange of arguments does. And the establishment of evaluation criteria is a very good basis for __listening to the other __.

The not-arguing approach often times results in "let me show the merits of my technology without listening to your requirements / evaluation criteria".

C is different from C++ because it targets different use cases. So it needs to be evaluation in the context of use cases. End of story.

</comment><comment><USER38> But in the table I see, pair-compared, C is faster than C++. Am I interpreting this wrong?

<comment><USER14> Yeah — it's a little confusing, but the multiples are how much slower they are than the fastest. Bigger is worse.

<comment><USER11> It becomes less confusing when realizing each line is a multiple of the fastest run time.

If the fastest one took 100s, then the one taking x1.57 took 157s.

<comment><USER14> Isn't that what I said? :-)

<comment><USER11> Yeah, I read your post once, then I kept trimming and rewording my post, and was left with that heap.

I shouldn't have made either of these posts.

</comment></comment></comment></comment></comment><comment><USER39> I like to think of C# as what C++ _should_ have been.

<comment><USER40> No, a garbage collector is a non-starter for a lot of what C and C++ get used for.

C# is more what Java should have been (which lines up pretty well with the history of C#).

</comment></comment><comment><USER41> C++ impregnates the tissues, and then it hardens and settles like silt. It makes your aorta stiffer than a hockey stick. Whereas C caresses your insides, leaving nothing behind but its scent</comment>


Kill the SIM Card - <AUTHOR> http://blog.atomicinc.com/2015/03/10/kill-the-sim-card-2383/

<comment><USER2> 'kill the sim card', What poppycock.

Considering the sim card has a bunch of secrets that identify the sim card to the network more than just a user/password, and frankly more secure. I consider this article very naive and poorly researched.

The phone network isn't comparable with wifi. There's complicated handoffs so your phone doesn't drop calls/network connections between cells. I know the author is in the USA where connection drops appear to be quite common, but in the rest of the world it's not.

The phone network is old and cranky, I agree with that. I mean, we're using a low latency fixed length packet switched system that could barely carry voice and using that to route packets that are variable length and doesn't really care about the real time aspect of the phone system.

 _headdesk_</comment>


As Surface Goes On Sale Today, Microsoft Seeks to Reinvent The Tablet - <AUTHOR> http://www.wired.com/gadgetlab/2012/10/as-surface-goes-on-sale-today-microsoft-seeks-to-reinvent-tablet/

<comment><USER2> This looks like Zune all over again. Let's go over some points. First the UI has been around for a few years on phones and has yet to catch on at all. Market share has actually shrunk even with positive reviews from the technorati. Data point 2: I'm seeing lots of comments on how the pricing is "worth it" because you get a full computing experience... err no, the RT model is ARM based so it will only run native metro apps. The fact that geeks reading tech sites get this wrong should be a huge warning sign for MS. Think of how confused a normal customer will be when trying to figure out what runs on what? Point 3: MS office Touch enabled as a throw in for free, great until you actually try to use it. Instead of re-imagining from the ground up for a touch interface (Apple Style), they decide to hack on a touch mode and call it a day. All reviews have been deservedly scathing. The silver lining if your a MS fan is this will be the end of Ballmer. I assume the reviews should be out within a week, should be interesting.

<comment><USER3> Windows Phone not doing well in the market is not an indication of the success of the UI. Most reviewers praise the UI.

<comment><USER4> Well, it certainly could be. There are reasons that exist as to why the phone hasn't been successful, and that has to be considered as a possibility.

<comment><USER5> Anyone with half a brain knows that that is not the reason. Microsoft came way too late to market with a 1.0 version product while everyone else was 3 or 4 revisions deep.

edit: a few more thoughts

The mobile phone industry had become an echo chamber, then Apple came in and made a clean break, dropped the cruft everyone else was clinging to and pushed the envelope. Apple changed the mode and completely shook up the market, Google was the quickest in responding while Microsoft was clearly caught completely off guard and is finally putting its best foot forward, but they are very late to the party.

<comment><USER4> That's some really revisionist history there, but don't be afraid to share some actual data instead of hyperbole.

<comment><USER5> Microsoft was busy with Windows Mobile 6.5(1) which after many years of revisions was complicated to use and in dire need of a complete reboot. Motorola was living high off the Razor (which I purchased at launch at $300) creating a million different versions of it until they watered down the brand name.

Apple even teamed up with Motorola to do an iPod phone(2), which I think stands as the poster boy of what was wrong with the industry at the time, the echo chamber I refer to, everyone was so caught up with refining the innovations of the past that they ended up blind sighted by the original iPhone and scrambling to catchup; Many say that Google was finally able to do that with the Jelly Bean release of Android, the much more polished look of the OS combined with Project Butter for an overall very refined experience. In Microsoft's case it's clear Windows Phone 7 wasn't what it need to be necessitating another reboot of the mobile OS, maybe the shared Windows kernel, Direct X, native SDK and product integration Microsoft is promising will be the push it needs.

The funny thing is I think Apple as of late is falling into the same trap the mobile phone industry found itself in before the original iPhone. Most everything out of Apple lately is iterative and not innovative; it's very difficult if not impossible to keep an innovative streak going and not get bogged down on endlessly refining the original innovative product.

From the wiki (1) "Ballmer also indicated that the company "screwed up with Windows Mobile", he lamented that Windows Mobile 7 was not yet available and that the Windows Mobile team needed to try to recoup losses."

(1)<http://en.wikipedia.org/wiki/Windows_Mobile_6.5>

(2)[http://www.engadget.com/2005/07/03/say-hello-to-the- motorola...](http://www.engadget.com/2005/07/03/say-hello-to-the- motorola-e790-apple-itunes-phone/)

<comment><USER6> I agree with many of your points, but want to point out that Apple's goal was not to introduce the iPhone and then continue to innovate it, it was to perfect it; which they are very close too. Furthermore, Techies want innovation, general consumers want design and function that works and looks good, period. They don't give a crap that you can touch your phones together and transfer a playlist, or "innovation" as some would call it. My prediction is Apple's next innovation will not be in the phone or music industry and it may not come for a while.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The only Surface I'm interested in is the Pro version. Without access to the wider world of Windows software, I'll just keep using my ASUS Transformer. Based on the lack of a release date and likely significantly higher pricing for the Pro I'll probably just end up buying someone else's hybrid Windows 8 solution (eg. ASUS seems like a good bet based on my positive experience with the aforementioned Transformer).

I may be wrong due to my tech geek biases but I think leading out with the "RT" model is a mistake. The only super-compelling thing Windows 8 tablets bring to the table for me is the possibility of running "real" Windows software when using it as a laptop.

<comment><USER8> I think that is a big tech geek bias. It's really hard (impossible) to put ourselves in the shoes of the non-nerd, but we should try. I don't think the non-nerd will care as much as you do, or if at all. I think that leading with the RT model was actually a great call, because it will jump start the market of tablets that can only use modern apps and then in turn give a lot of incentives for developers to make them. If they led with the x86 surface, then the app market would have been a lot smaller come end of year.

<comment><USER9> Non tech geeks are going to buy the iPad though, surely. They are about the same price and the iPad is a far more elegant and simple solution. Chances are that the non tech geek will also own an iPhone/iPod Touch and the ability to share apps and music etc. is definitely going to appeal.

At the price MS has this I am finding it hard to see who it will appeal to except tech geeks and maybe corporate.

<comment><USER8> "They are about the same price and the iPad is a far more elegant and simple solution." - Elaborate. You didn't give any substance at all and that's an empty statement. How is it more elegant? It is an accessory. You can bet that the Microsoft marketing blitz will pound on this. They will drive home the point that you can write your term paper on your surface. I guarantee it.

The only good argument against the surface right now is pre-existing ecosystems. People have apps/music/etc purchased on other ecosystems and that makes it tougher to drive home adoption among these 'entrenched' customers. But if the product is appealing enough, that can be overcome. The jury is still out on whether people will drop their iPads in favor of Surfaces.

<comment><USER10> Haven't we put the "it's an accessory" bit to bed yet? It's awfully tired.

Also, the second someone needs to use that keyboard's bizarre-o trackpad to drive the software to write their term paper, you can bet the utility of having "traditional" apps on your tablet is going to be more carefully considered than simply assumed.

The argument against the surface remains that when you need a tablet, a 'full desktop OS' is not a feature you care about. And when you need a 'full desktop OS', the surface may not be a very good one.

So the comparison will, again (and as it almost always does) hinge on what people need or want these things for and how good each product is at performing those tasks in reality.

Also, pretending that all the iPad brings is ecosystem is just as silly as flatly stating the iPad as more elegant.

<comment><USER8> We, as a collective community of tech industry members, have put it to bed. But that isn't at all true on the consumer side. For example: In one of my classes today, we were talking about how we're going to be taking our exam online. We come into class, bring our laptops, and write out essays and submit them. The teacher explicitely mentioned not to bring a tablet, even going further as to saying that doing that would be silly. A girl who usually brings an iPad to class on a regular basis agreed with the professor and mentioned that "yeah, it's better for consumption". That in itself, proves to me that it has not been put to bed yet.

And on the ecosystem thing I agreed with someone else who posted below that I meant more than that.

</comment></comment></comment></comment></comment></comment><comment><USER11> Battery:

iPad 42.5-watt-hour clearly mentioning browsing time (its called confidence on your quality).

Surface RT 31.5-watt-hour Pro 42-watt-hour.

WiFi+Cellular:

iPad Yep.

Surface WiFi only.

Weight:

iPad 1.44lbs to 1.46lbs.

Surface RT 1.5lbs and Pro 2.0lbs.

Applications:

iPad Rock solid platform unified.

Surface Choose between RT and Pro messed up ARM and x86.

For me I think Microsoft has done same mistake again, introduce "complexity" and if you look closely they are actually selling you a "not a gorgeous quality stuff" for same price as iPad. I don't see Microsoft dominating the market! Just getting a market douche on stage that makes you hear sound of click with no quality in product pisses me off!

So ya Microsoft is reinventing in fact "reimagining" how to create mess in Tablet world!

<comment><USER12> Thank you for this completely level-headed and unbiased comparison of the two products. You clearly outline all the relevant aspects of each product instead of just cherry picking to make one product look better. I know I can trust your comparison because you state only the facts and are careful to not play favorites.

<comment><USER11> LOL thanks for sarcasm but Yep believe it or not, Memory cards, and USB support has not hurt sales of iPad before. I am actually pissed of at the ecosystem split (ARM and x86), I had high hopes maybe so thats why I was pissed off on Microsoft claiming to re-invent!

<comment><USER13> > Memory cards, and USB support has not hurt sales of iPad before.

How could you possibly know?

</comment></comment></comment></comment><comment><USER14> You can:

* get it with a keyboard for the same price as an iPad of the same storage

* get it without a keyboard for $100 less than an iPad of the same storage.

Seems fair :D

<comment><USER15> Except that Microsoft has zero brand recognition in this category. Why on earth would anybody choose this over an iPad for the same $$? I half expected MS to be dropping these things from helicopters.

<comment><USER16> Because you want to run Windows software on it. Microsoft also had zero brand recognition in the GUI market when they launched Windows.

<comment><USER17> That would be OK, except that Windows RT does not run Windows software. It runs only software from MS App Store, i.e. Metro apps plus preinstalled Office. That's it.

iPad and Android tablets have much more software available.

<comment><USER18> Saying "that's it" right after mentioning that Office comes preinstalled is being unfairly dismissive. That's a really big deal.

<comment><USER19> My brother in law, who is a foreman for a crew of painters on Disney property, has been waiting for this, specifically for office. I've often suggested that he could just collaborate on documents (and they do this often) through google docs ... but office/windows is entrenched, and he'd love it if he had access to office on a tablet.

</comment></comment></comment></comment></comment></comment><comment><USER20> I see the Surface as a great replacement to netbooks. I'm not sure if I'll get one yet, but a lightweight, small laptop that is not at all a pain to take with me anywhere is still a useful thing.

I got a lot of use out of my 10" MSI netbook, and at 1.5lbs with a great keyboard/cover system, this could fit in as a nice replacement for that, without nearing the cost of a Macbook Air. The ability for it to double as a tablet for light internet browsing makes gives it some added value, as well.

I think that a key market for this will be for people who could use a tablet and a laptop, but can't justify purchasing both a decent laptop and a tablet. Of course, as the price of a good Android tablet moves closer and closer to an ultra-affordable $99 price point, this advantage may disappear pretty quickly.

It will be interesting to see how the market responds, and how much people enjoy using the hardware. It's different enough that it has a real chance to make a dent in the market.

</comment><comment><USER21> Here is a killer feature on Surface: Host Mode aka USB-OTG

 _But it also has a USB port and a cover that doubles as a keyboard; it works with a wide range of other devices, like printers and external hard drives; and it will even charge up your phone._

Edit: I don't know tablets ;)

<comment><USER22> Android tablets (3.0+) also support USB host mode afaik.

<comment><USER23> How does that help if the tablet does not have a full USB port that is powered? Fiddling around with another power adaptor and cable is pretty annoying.

<comment><USER22> I don't know about you, but almost all Android tablets I've seen have one (or two.) This (rather popular low-end tablet in India): <http://www.hclmetablet.com/>, for example has one too. It's a regular USB port and no adapters are required.

</comment></comment></comment></comment><comment><USER24> So they're going head-to-head with iPad on price and they have few third party apps or games. Obviously this was a wonderful strategy for Palm, RIM, Android (before 2012), Fusion Garage (ha!), HP's slate, etc.

Also, the T30 is seriously long in the tooth at this point. The A5, A6, Qualcomm 8960, Exynos 4 all beat it on GPU perf, and most of them beat it on CPU perf. $500 for a T30-based computer? No way!

</comment><comment><USER25> As the first public release of Windows for ARM processors, Surface RT is probably going to have rough edges for quite some time, not to mention limited software support, so it makes sense that they're being conservative with the pricing. If they dumped them on the market, they'd still get pummeled by poor reviews, their margins would be nil, their partners would be irate, and they'd have a much bigger support issue on their hands. The people they really need to be buying these at launch are developers who want to bet on a future market for Windows RT apps, at least until they've had a chance to fix some of the bigger bugs.

</comment><comment><USER26> I haven't been this excited for a Microsoft product...perhaps ever. Then I saw the price and thought "We've been down this road before (HP Touchpad). You can't sell Apple competitors at Apple prices."

As soon as the Touchpad dropped to $99 they couldn't stay on shelves for even the first day. So let's find a compromise where the company still makes money. $299? It's just odd that the company who won the PC Wars by enabling manufacturers to win on price seems to have forgotten the only one of the 4 P's that they could have had over Apple.

<comment><USER27> $499 is probably pretty aggressive- MSFT doesn't have the supply chain magic or economy of scale that Apple has. I suspect they aren't making much/any money at $499... But I think you're right that they need to buy market share with a lower price-- they are too late to the game to get a foothold otherwise unless the product is near magical.

<comment><USER28> "MSFT doesn't have the supply chain magic or economy of scale that Apple has."

I keep seeing the supply chain thing mentioned a lot. Microsoft has been in the hardware game for a long time, and the XBox has had been around long enough and shipped enough volume that MS probably has people just as competent at managing the logistics of consumer device delivery as Apple. Apple might be just a smidge better at but it's like comparing Wal-Mart to Target, Wal-Mart (Apple) maybe the #1 but Target (MS) is a logisitical behemoth in its own right to the point where the supply chain alone does not decide the winner.

<comment><USER29> "I keep seeing the supply chain thing mentioned a lot"

Because it is very important, at the same price Apple could be getting 40% profit and MS barely getting break even.

It does not matter how much Xbox they ship, but how many tablets they are already shipping, and Apple is selling millions and it has been doing for years.

this already happened with macbooks and ultrabooks, ultrabooks has been loosing money at the same price ranges because they got late.

</comment></comment></comment></comment><comment><USER30> > It was responsive and impressive and, well, weird. Keys fired well, but > other aspects, like the track pad or pressing keyboard combinations, felt > odd.

Due to (supposed) focus on productivity, Surface has piqued my interest, but there's no way I'm going to order one without putting my hands on the touch keyboard first. Microsoft has not done a good job showing me how it works or convincing me that it is _better_ than the on-screen keyboard I'm currently using (compare to Apple's iPhone keynote, etc.).

</comment><comment><USER31> I was rather hoping the keyboard would be included with the package. I think Microsoft can ill afford to charge so much for an accessory that is pretty much a USP for their tablets.

<comment><USER14> Eh, in a way it kind of does? What I mean is I think of it as "you can pay less without" because if you get it WITH the keyboard then it matches the iPad price. If you get it without, it undercuts iPad by $100.

I think that's fair.

<comment><USER32> I don't think it is fair to say it undercuts the price - the cheapest surface matches the cheapest ipad 3 at ~$500, while apple still offers the ipad2 for $400.

The surface does offer more storage at the $500 level, but the ipad has a higher resolution screen.

</comment></comment></comment><comment><USER33> I love my Microsoft keyboard, I use it with my MacBook Pro all day long at work (I do NOT like the standalone Apple keyboards). If they came out with a keyboard cover for the iPad I'd buy one, and I'm willing to bet it would be a huge seller. As for the Surface tablet itself, I'll be blown away if it ever makes it as high as the #2 tablet. Only their usual pigheadedness will keep them from actually succeeding in "reinventing the tablet" by releasing one.

</comment><comment><USER34> Hey, I'm an avid MBP, iPad, iPhone user and I love them, but I think this is really going to be big for Microsoft. There are many, many people who are completely immersed in a Microsoft world. These people use iOS and Android devices because they are the only viable options. I foresee this being a huge blow to Apple, which will (hopefully) wake them up a bit and focus back on innovating a bit more again.

</comment><comment><USER35> At that price, with a relatively low res screen... Dead On Arrival.

</comment><comment><USER36> > _"Microsoft instantly becomes the third major player in the tablet market, a > market where it is taking a fundamentally different approach than its > rivals, Apple and Google."_

I'd put Amazon in the group of Microsoft rivals...at this time, at least. I could see Amazon moving to a Windows platform. A clear roadmap and development partner would be consistent with Amazon's core business.

<comment><USER37> Amazon clearly wants full control over their own OS. Why would they go with Windows?

<comment><USER38> > Microsoft clearly wants to be in the hardware business and to make money > this way > Amazon clearly wants full control over their own OS.

You keep saying things are clear but provide absolutely no proof of this.

What if Amazon doesn't want full control over their own OS, but just wants a good enough OS and hasn't found one yet?

What if Microsoft doesn't really want to be in the tablet hardware business but just wants to give other OEM's a reference design?

Both are just as possible as what you propose.

</comment></comment></comment><comment><USER39> I think this is going to be absolutely great college and high school students, but I don't know how eager people will be to buy a Surface as a Christmas present compared to a Summer purchase for school.

Time will tell, I guess. It's not like people knew what the hell they were going to use an iPad for, when it was first announced.

</comment><comment><USER40> 64 GB with Black Touch Cover - $699.00

32 GB with Black Touch Cover - $599.00

32 GB without Black Touch Cover - $499.00

</comment><comment><USER41> I've not seen the major complaint yet in any of the HN articles.

Microsoft has traditionally made software, and rebranded things like mice and small peripherals. They only 'recently' got into the xbox, but that was different for it was a game system.

Now, with them being a computer dealer now, where does that leave Dell, HP, and other manufacturers?

<comment><USER42> As mentioned by someone in another thread, one possibility is that Surface is partly meant to set the bar for third-party manufacturers.

It's high enough make the competition (Dell, HP, etc) put out good products that won't tarnish the new Windows platform image. But not so high as to make third parties not want to bother competing.

This was a problem with early Android. There were so many poor devices that the entire Android brand was hurt (but since recovered).

<comment><USER37> I think that's just smoke screen. Microsoft clearly wants to be in the hardware business and to make money this way. They are envious of how easily Apple can make a ton of profit with a lot less "market share". I don't think they really care what happens to the manufacturers, if in the end they make more money on hardware than they do through licensing.</comment></comment></comment>


Kotlin is like TypeScript - <AUTHOR> https://gi-no.github.io/kotlin-is-like-typescript/ <comment><USER2> I think we get it, every languages are like Kotlin!

<comment><USER3> Quite opposite - Kotlin is like every language ;)

</comment></comment><comment><USER4> TypeScript has structural typing, that is a HUGE difference.

<comment><USER5> Ya, I'm not away of any other popular OO language that goes this route. The implications of structural sub-typing are huge, though I guess many programmers wouldn't be able to call it out.

<comment><USER6> Scala has it. With Shapeless, you can go all crazy with it.

</comment></comment></comment><comment><USER6> "Happy languages are all alike; every unhappy language is unhappy in its own way".

</comment><comment><USER4>
        name: string;
        constructor(name: string) {
            this.name = name
        }

You don't have to do this in TypeScript either, you can just do

        constructor(public name: string) { }

Also, the "Empty collections" section doesn't do the same thing, the collections you created in Kotlin are immutable.

And the TypeScript ones have the value `undefined` (unfortunate that strictNullChecks doesn't catch things like that [https://github.com/Microsoft/TypeScript/issues/8476](https://github.com/Microsoft/TypeScript/issues/8476)).

And for some nitpicking, please be consistent with your semicolons, either use them or don't use them, but don't mix it randomly like that.

<comment><USER7> Some of the TS examples also include an external library (lodash) to compare features; not sure if that's an apt comparison.

</comment></comment><comment><USER8> Why this comparison?

<comment><AUTHOR> Kotlin, Swift, and TypeScript have modern features like type inherence, null- safe, closure, and are supported by big company.

<comment><USER9> > _modern features like type inherence, null-safe, closure_

This is one of the more annoying problems with our industry. People rediscover solutions from 60s and 70s and sell them as if they were new and revolutionary...

<comment><USER10> Still waiting for web developers to rediscover 90's RAD tooling.

<comment><USER4> I don't think we're ever going to go back to that. Those UIs were pretty static, i.e. you only created the "initial state" in the UI designer, and then modified it during the application run-time (sometimes even creating new widgets in code), or attached some kind of data-binding models to it.

With the popularity of things like React, you now have a powerful way to express how the UI looks in every state, not just the initial one.

<comment><USER11> I'm 100% we are.

Step 1: People realise that Electron apps look different and do not fit the OS.

Step 2: Big company invests and creates a library that supports Win/OSX looks.

Step 3: Same big company creates a RAD type tooling for it.

We present you a revolution - Big Corp. RAD Tooling 2020 a la Borland Delphi 2007.

<comment><USER4> _> Step 1: People realise that Electron apps look different and do not fit the OS._

This is not an issue for most people. I like to use Spotify (the desktop app) as an example - it's a pretty good looking app, works nicely, and yet it uses an HTML-based UI.

Microsoft's own UWP also looks vastly different than native Win32-based apps.

The resource usage and slowness of Electron apps is a problem, but that is caused by using the entire browser runtime. When it comes to the capabilities of a UI framework, one of the questions I ask is "Could you build something like Spotify's UI with this? How difficult would it be?".

<comment><USER12> I really wonder whether something like electrino.js solves the problem of apps being a memory hog. So far just a demo preview AFAIK, but they nailed the problem of binary size pretty well.

I guess the question boils down to whether a single tab in a browser which is properly managed by OS can compete with a good old native desktop app.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> derived from Swift is like Kotlin: [https://github.com/Nilhcem/swift-is-like- kotlin](https://github.com/Nilhcem/swift-is-like-kotlin)

<comment><USER13> I guess that the next one will be: "Kotlin is like Rust", or perhaps there should be "Kotlin is like Go" first?

<comment><USER14> Why not do "Kotlin is like PHP" or "Kotlin is like Visual Basic 6" immediately?

<comment><USER2> Could be fun.

<comment><USER10> You mean like Go is like Algol?

[http://cowlark.com/2009-11-15-go/](http://cowlark.com/2009-11-15-go/)

</comment></comment></comment></comment></comment><comment><USER15> This is getting ridiculous

<comment><USER12> Kotlin getting love, this is nice, although in a very peculiar, syntax- comparison type of way.

</comment></comment><comment><USER16> Is this Kotlin the new "Erlang" of the HN' first page?

</comment><comment><USER17> I wonder what's the oldest and/or most maligned language that you can use to make a similar comparison that's still somewhat valid...

</comment><comment><USER18> "for index in 1–5" is like "for let index of underscore dot range 1–6" in the same way Lisp is like COBOL.

</comment><comment><USER19> Kotlin is like Swift

Kotlin is like TypeScript

that infer

TypeScript is like Swift

am I getting right? or Is there anything else?

<comment><USER20> Type script is like c#? Scala is like c#?

Is go like scala?

Everything is C (or lisp).

</comment></comment><comment><USER21> Kotlin is also like Kotlin

<comment><USER12> Now, are there languages for which that doesn't hold true?</comment></comment>


Designing Command-Line Experiences - <AUTHOR> http://neovintage.org/product/design/2015/10/01/designing-command-line-experiences/ <comment><USER2> "Progressive enhancement" doesn't need to be borrowed back from web design. In user interface design, catering to multiple levels of user expertise is an ancient concept. This can be an actual mode variable in the UI. In expert mode, you see more options. In command lines, you don't see _anything_ , so this doesn't seem to apply directly. The program being given command line inputs isn't even running until you hit Enter. An expertise variable could be used to adjust the language and level of detail in the help strings and man pages, and to influence what is available when you invoke Tab completion (i.e. don't complete on options or sub commands that the novice wouldn't know about).

Since man pages are driven by nroff macros, the man page aspect of this seems within reach. A macro could expand a section of text only if some user expert level is greater than 2, and that could come from an environment variable.

<comment><AUTHOR> That's a great idea. Allowing for discovery at the command line is one of the biggest challenges I've faced. Your solution is definitely a good way to accomplish that and one I hadn't thought of. Do you think that the mode variable is a common enough pattern that advanced users would know to do that right off the bat?

</comment></comment><comment><USER3> Tenants are not tenets.

<comment><AUTHOR> That's what happens when I proof read too fast.</comment></comment>


Ask HN: Making a Product out of Client Project Is Ethical? - <AUTHOR>

Hello, I am a developer and about 7 years ago my company was contracted by a company to develop a travel solution. There were no exclusivity agreements or other clause binding myself or my company from developing similar software for another client.
Now years later there has developed a great interest in the software developed and my company is now in the process of modifying the original software to be a SaaS offering.
We've spoken to our company lawyer and they've assured us there's no legal ramifications from this.
However, we can't help but to believe the client will feel we are now making easy for new competitors to get the software that is a critical part to this type of business succeeding.
Question is should we continue with our plans of making the software an SaaS or never develop a piece of software similar to that which we've developed. <comment><USER2> I'll give this a shot, since the only two people that already answered as I'm typing this ignored your question completely. He didn't ask if it is within his legal right, which is what you seem to be stuck on. He even mentioned that their lawyers assured them there would be no legal ramifications. The question (s)he asked is whether or not this is ETHICAL.

As to the person that suggested he "do whatever is in his best interest within legal limits": there are other things in life besides money. This may not be true for everyone, but it's clearly at least somewhat true for OP, since (s)he asked this question in the first place.

Now, as a freelancer, I have been in your shoes a few times before, when I could have easily adapted the client's project and published it as a SaaS. I imagine it may be even easier for you, since you represent a company, that probably has the funds to also properly promote and advertise a SaaS project, not just develop it.

So, it may go against the collective opinion, and the term "ethical" can be somewhat subjective, but I will argue that no, it's NOT ethical, despite you being well within your legal rights. When somebody pays for a project, they are already taking the huge risk that the project will fail spectacularly. For them having to worry that their contractor will also just take their project, repackage it, and come into direct competition with them, well, this is simply not fair. Reusing code is one thing, simply tweaking their project and releasing it on your own is quite another.

Also, not only do I think what't you're doing is wrong towards your client, I think what you're doing is actually hurting all of us. Freelancers and software companies alike. If every software contractor would start repackaging their customers' products, pretty soon no one would have enough trust in any of us, and for good reason.

Now, you may say, as others have already said in this thread, "If they don't want this to happen to them, they should protect themselves in the contract", and this is a valid argument, as formal logic goes. However, the relation between customer and contractor shouldn't be one where both sides have to always stay on their guard, always expecting for the other side to screw them somehow.

Somebody might also argue that it's also not fair towards you if, for every project you develop for a customer, you close a door in your potential future, and this is also a valid argument, but it's not what I'm saying. Again, there is a substantial difference between applying the things you learned about the client's business in a project in a different segment within the same market (I am using very vague terms, I know, but it's only because I don't know the details of this particular project), and using their own project to compete with them, after they paid you to develop it.

We sure love hating on soulless corporations that will stop at nothing for profit, yet when it's us that are doing it it's suddenly ok. How about we treat each other with some basic dignity for a change? If you think a customer's idea is worth implementing for yourself, don't use the guy simply as a way to fund your own projects. Refuse their project if you think you would like to do something similar yourself. And if you already developed it for them, move on, there will be other ideas.

<comment><AUTHOR> Thank you for answering from the ethical point of view. A piece of information I left out was that before beginning the project the option to develop the software with exclusivity was offered however the client insisted they didn't want it as it was too expensive for them.

Additionally the software is not so unique that there aren't alternatives in the market (online etc.) actually there are at least 15 other competitors in the space using other software/solutions.

In any event we intend to meet with the client sometime this week to discuss if they want to purchase the rights to the software as there are existing competitors in the space who wants a similar software.

Some in the company has said that to make it more "ethical" the other clients will pay for "development" i.e. providing us with their requirements and building according to their spec but my thinking is this is just a justification.

</comment></comment><comment><USER3> Normally you put these kind of things in a contract beforehand. Nobody signs here anything in Holland without wanting to have some kind of exclusivity... The game is to get such a contract so they don't benefit direct competition and you have a valuable business model that can operate horizontally over the entire market. Exclusivity for the entire market (all niches, at all times, in all product forms) is extremely expensive, so they never want that. :-) It's even possible to come up with revenue from the SaaS offering feeding back to them thanks to them being one of your first customers in a pilot.

That all being said, I don't know the specifics of your contract and your relationship with your clients or verbal agreements of people in your company with this client.

<comment><AUTHOR> There's no agreement outside of the contract that says we were contracted to write the software according to provided specifications. But you are correct we offered an exclusivity to the client but they were not interested in paying the price.

Ultimately, I believe the company(dev shop) has decided to sit with the customer and offer exclusivity or some kind of partnership on the software one last time this week take it from there.

</comment></comment><comment><USER4> Companies recycle code all the time for other projects... in fact I've seen it written in a lot of contracts the the company that wrote the code owns the code and they just license it to the client.

</comment><comment><USER5> Continue making it unless your client signs a more expensive exclusivity contract with you.

And what do you mean by "ethical"? Do whatever is in your best interests within legal limits.</comment>


DOJ subpoeans Twitter records of several WikiLeaks volunteers - <AUTHOR> http://www.salon.com/news/opinion/glenn_greenwald/2011/01/07/twitter/index.html

<comment><USER2> Here's the PDF of the court order.

[http://www.salon.com/news/opinion/glenn_greenwald/2011/01/07...](http://www.salon.com/news/opinion/glenn_greenwald/2011/01/07/twitter/subpoena.pdf)

</comment><comment><AUTHOR> The title on this submission was originally "Wikileaks supporters", not volunteers. This differs from the title of the article, but not from the information which Wikileaks has shown, which I included in a comment here. It's not just "volunteers".

</comment><comment><AUTHOR> It doesn't look like the scan linked includes a list of the accounts served, but Wikileaks says it's a lot: <http://twitter.com/wikileaks/status/23583311813156865></comment>


Finnish PM Marin calls for 4-day-week and 6-hours working day in the country - <AUTHOR> https://www.neweurope.eu/article/finnish-pm-marin-calls-for-4-day-week-and-6-hours-working-day-in-the-country/ <comment><USER2> Keynes conjectured reduced workload (or the equivalent: ever rising compensation) would be the natural consequence of increased productivity. What went wrong seems to come from at least two things he did not expect.

Firstly, rather than continuing the trend of increasing political power in the early post war period, the productive classes, including employees, have lost political power relative to the ownership classes and thus control of resource allocation decisions.

Secondly, outside tech and a few other vibrant sectors, capital sits idles or is used unproductively (for example in real-estate speculation) or even to destroy wealth (for example through expanded rent seeking). This is relevant because in these cases the increased wealth from increased productivity is just wasted rather than being used productively or at least spent on quality of life.

It's nice to see that somewhere, a few people are trying to address that first issue.

<comment><USER3> I think it's also worth pointing out that, while gains in productivity from increased automation that Keynes predicted would contribute to a 15 hour work week may have been realized, the CEO-to-worker compensation ratio has risen quickly. Because of this, the gains would not have been distributed evenly.

"From 1978 to 2013, CEO compensation, inflation-adjusted, increased 937 percent, a rise more than double stock market growth and substantially greater than the painfully slow 10.2 percent growth in a typical worker's compensation over the same period." [0]

"The CEO-to-worker compensation ratio was 20-to-1 in 1965 and 29.9-to-1 in 1978, grew to 122.6-to-1 in 1995, peaked at 383.4-to-1 in 2000, and was 295.9-to-1 in 2013, far higher than it was in the 1960s, 1970s, 1980s, or 1990s." [0]

[0] [https://www.epi.org/publication/ceo-pay-continues-to- rise/](https://www.epi.org/publication/ceo-pay-continues-to-rise/)

</comment></comment><comment><USER4> > In neighbouring Sweden, where the 6-hour-day has already been applied since > 2015, results showed that employees were happier, wealthier and more > productive, as they were still fully paid and customers were more satisfied.

I am Swedish and am puzzled by this. What is it refering to?

<comment><USER5> It was an experiment: [https://www.bbc.com/news/business-38843341](https://www.bbc.com/news/business-38843341)

<comment><USER6> i think we need to mention that the experiment failed and was not implemented.

<comment><USER5> I wouldn't call it a failure just because it wasn't implemented more. It had many benefits over a 40 hour work week.

</comment></comment></comment></comment><comment><USER7> I care less about workday length than the number of work days. 4 day workweeks make much more sense. At least in the workplaces I've been in Friday is already this no man's land of a day where people phone it in or work from home as is.

<comment><USER6> yeah, but they're still working right?

<comment><USER7> depends on the company and individual

i think as is it is at most a half working day for a lot of people and yet you're expected to treat it like a full day

with a true 4 day workweek then you can focus on working 4 "real" full days

<comment><USER8> Who's to say that Thursday won't become the new Friday though?

<comment><USER9> I'd like to see extended four day working tests to see if Thursday becomes the new Friday.

</comment></comment></comment></comment></comment><comment><USER10> No, she or her coalition has not demanded for a test run.

That "utopia" was introduced in August (four months before Marin became PM) as a proposal for the future.

<comment><USER4> Thanks for clarifying. I will put that site on my personal "do not trust" list.

<comment><USER10> And just to add, "utopia" was the wording Marin herself used. Of course she supports the idea but I assume she does not see it as a realism in very near future.

Yes, the site made its way to my do-not-trust list as well.

</comment></comment></comment><comment><USER11> Whenever this sort of policy comes up I wonder about the effects at the extreme ends of the spectrum.

If you're in a position to opt-out of this sort of policy and become more competitive as a result, then this can be great for you because you improve your position relative to the others.

A bit like how people talk about capping incomes, seeminly not realising that this cements pre-existing owners of wealth further.

Right now I'm sort of in an OK position, but ten years ago I would have told you - I don't want a 4-day week, because you're ahead of me, and I want to catch up with you.

I mean, ultimately there's nothing stopping most people negotiating a 4 day week. It just seems to be the case that "most" people accept whatever job is thrown at them, so if you're unskilled, it's difficult to convince an employer of anything even slightly unusual. Fixing _that_ situation (e.g. giving people leverage of some sort) is the way to go, IMO.

</comment><comment><USER4> I think it makes sense to work less for many reasons. But some politicians propose it like it would cost nothing, or that the costs would be eaten by the employers. To the voters it is proposed as "work less and get paid the same". I think that is dishonest.

<comment><USER5> It worked for the weekend. With increases in productivity, I don't see any reason why reducing hours couldn't work again today.

In 1940, when the weekend was implemented in the United States, the real GDP per capita was 10,027.46. Today, it is 58,024.99.

With a 5.8x increase in productivity, we should be able to work significantly less then we did in 1940.

[https://www.multpl.com/us-real-gdp-per-capita/table/by- year](https://www.multpl.com/us-real-gdp-per-capita/table/by-year)

<comment><USER8> But people also demand far more from their lives. Nowadays people want to have a TV, a phone, a computer, lots of software and entrainment on these devices etc. Our cars are much safer, our food is safer, we have far better and more healthcare etc.

<comment><USER12> > Nowadays people want to have a TV, a phone, a computer, lots of software and > entrainment on these devices etc

That's not where the money goes. That stuff's nothing. You can get working TVs all day long for peanuts on Craigslist. I just last week grabbed a hell of a used business workstation PC on Ebay and threw in an SSD for funsies, under $200 total including the brand-new SSD. Thing screams for all normal tasks. Will probably last years. Basically nothing in the scheme of things. Can someone on a low income reasonably buy one on a whim? No. But having a TV, phone, and computer is _not_ why people are poor.

Housing, medical care, child care. School (see also: housing costs). Those are expensive. Our modern conveniences are nothing in comparison.

</comment></comment></comment></comment><comment><USER13> I would love to see different industries use different business hours.

I'd like a dentist to be able to go to the bank, a banker to visit the dentist, without automatically having to take time off of work to do so.

<comment><USER14> I have real difficulty seeing how such a system would work in practice?

<comment><USER13> Helps but doesn't fix problems. The 8 am or 5 pm slot at the dentist would still fill up awfully quickly. But working hourly I always had trouble getting any self-care or errands done, as did all of my coworkers.

I dunno if this is an example or a counterexample, but there was a lumber/hardware store near my old house that would close at 4, which sounds nuts unless you know that it's a favorite among professionals. Most times if you don't know until 4 that you need a material it's too late to do anything about it anyway. Doesn't help me though, trying to do a temporary repair on anything. Have to schlep across town to the Home Depot after rush hour to get anything done.

</comment></comment></comment><comment><USER15> Most productive time of my life I worked 3x13s each week covering the weekends for a 24/7 team, and had 4 days a week to myself. I was able to do so much in my life, improve my skills and really be more productive at work and a better person just from having the free time to explore. I don't know that working more/less hours each day has ever really mattered to me, but working less days per week can be life changing in a very positive way. It'd be great if we could all do 4x10 or 3x13s.

<comment><USER16> Agree with you (and others who've made similar points). Hours/day is way less important than days/week. With free days you can do significantly more with yourself, whereas if you work 6 instead of 8 hours, work still takes up most of your day and you can't plan much around it.

</comment></comment><comment><USER17> I can only hope this catches on in the US!

> In neighbouring Sweden, where the 6-hour-day has already been applied since > 2015, results showed that employees were happier, wealthier and more > productive, as they were still fully paid and customers were more satisfied.

Whoa! I did not know that this was already a thing. Well, here's hoping more orgs in the US take notice.

<comment><USER6> the experiment failed and was not continued.

and unfortunately they fail because of costs and a globalised world.

for example china's 996 model would eat europe whole if this ever got implemented over there.

<comment><USER18> I doubt 996 is as effective as a normal 955 model and if it is it is probably short lived.

<comment><USER6> my problem is this: what if 996 is the most effective system but can only be applied in certain systems, such as some china factories?

</comment></comment></comment></comment><comment><USER19> While we're at it, let's close most offices for the entire month of December. Nobody's really working anyway.

</comment><comment><USER12> This or (especially) 3x8 is what I've thought is about the "right" amount of work to count as full-time when you're selling your labor, for some time now. It's past the tipping point where your employer stops dominating your entire week, but still enough to remain good at whatever you do at work, with enough multi-hour time blocks to still get plenty accomplished.

</comment><comment><USER20> regulated work hours are not the solution. the change of paradigm should be - people being paid for outcomes, not for hours sitting in a chair. To do that, govts would have to create (or allow creation of) the infrastructure for freelancing to become the most viable lifestyle choice.

<comment><USER9> We have some real problems with health insurance for the self employed. Other than that freelancing is currently a very good option in the us.

</comment></comment><comment><USER16> I think these sorts of pushes can only gain traction in a country with a very extensive welfare system. Hard to imagine this working in the US, for example. People would simply figure out a way to work more in order to get ahead and compete with others. Seems to me that a more socialist form of government is a required backdrop for this to mean anything.

<comment><USER21> Is the current 40hw/8h socialist? Do you prefer employment law to not set age limits so 10 year olds can mine again?

Socialism is something else not to be confused with labor standards or water safety or building code rules or parking fines or mail delivery.

<comment><USER16> You're letting your true colors show here by getting all bothered by the term socialism. It's a form of government, nothing more nothing less. I didn't say anything about how I felt about socialism, nor did I say anything to suggest there not be age limits for labor. What an absurd straw man.

I stand by my original point that if the goal of such proposals is to reduce total time spent working in absolute terms that the success of such proposals depends greatly on the form of government that exists in the country it's being proposed.

<comment><USER21> Socialism isn't a form of government. Democracy is a form of government.

Socialism is a set of principles a party might adopt to run on.

<comment><USER16> You're right, that is more precise. Thanks.</comment></comment></comment></comment></comment>


Show HN: FWBer, open source AdultFriendFinder clone (NSFW) - <AUTHOR> https://fwber.com <comment><USER2> holy shit that is some old school php.

<comment><AUTHOR> Yeah what do people use now?

</comment></comment><comment><USER3> love the retro styling

<comment><AUTHOR> Thanks!</comment></comment>