Hacker Newsnew | past | comments | ask | show | jobs | submit | dlwj's commentslogin

Same, the people who are crazy about react are often the people who never understood MVC originally, writing terrible apps in older frameworks like Backbone with jquery code shoved into the render() function and the model event system used as a global pub-sub for everything.

React's virtual DOM is a hands off implementation detail that forces understanding of MVC. People can't asks= "How do I put the thing in the place", b/c that's automated by the virtual DOM. Instead, they are forced to understand that they need to describe the end state. Which is something that even an older framework like Backbone tried to do, with the end state being you only having to care about your models with the rendering automated.

Progression of (frontend) MVC started with Backbone, with manually wiring up models and view render functions so that the model changes could drive the UI. It's a specific implementation of pub/sub with the published events being a certain set of model changes. (add/change/delete/...)

(Redux is pub/sub with a security guard logging your actions and only giving you specific vetted actions to combine. Also, functional goodness.)

Angular 1 went with a polling approach that negated much of the boilerplate in backbone but was not performant (and bad docs, new things to learn, etc..) but also showed many people a cleaner paradigm of writing UI code. The trap with angular was putting everything in the controller just like the trap with backbone was putting everything in the render function.

React uses a virtual DOM so the thing to render doesn't need developer input. It's automatically inferred from the DOM diffs so the developer can focus purely on describing the UI. This is the forcing function that forces people to put down jquery and actually learn MVC.

Once this is understood, you can get into managing more complex models that actually mutually affect each other that may necessitate something like Redux. (Also, somewhere along the way, OOP become unpopular and functional stuff became hip)

JSX btw, is just an extension of javascript to create DOM elements in a less ugly way. Angular and Vue went from the other direction and extended HTML to support javascript functions. It's "<div v-for="a in apples">{{a}}</div>" vs apples.map(() => <div>red apple</div>)" It's personal preference in many ways. (You'd actually need to know a fair bit of functional js though to write concise non-ugly JSX that doesn't bury the meaning of your UI description)

The main issue I have with react is that it seems much more like a lifestyle than a tool that gets out of the way. When people list out their reasons for liking react I'm mostly just hearing "because facebook, facebook, cool, cool, facebook" just like angular was driven by google before the angular 2 marketing fiasco.

And there IS truth in it. The background philosophy driving React is actually a philosophy of functional programming which has real merit. In the real world though, with many people knowing only how to use jquery, React may help you explain to them how to understand MVC, but you're going to have a much more difficult time shoving the functional lifestyle that comes with it down their throat. But hey, if you're in the facebook sphere of influence or want to be a part of it, go for React. (Also, if you're a new grad who doesn't have the baggage of jquery)

Paradigm shifts often take a much longer time horizon than expected and often require an "earthquake" for newcomers to upset the established ideas. React and Typescript were in background mode for quite a while. The non-backwards compatibility of angular2 drove people to React, and I think Java programmers getting into web development and Satya Nadella being cooler than Balmer gave typescript a good boost.

In the end though, I don't really want to be comparing hundreds of different hammers to build my house. I just want to build a house. And hey, hopefully I have more skills than being a builder so that when entire houses are 3D printed I can still find a way to justify my existence.


Using Kim Malone's radical candor framework http://www.kimmalonescott.com/

The preferred quadrants are:

Radical Candor > Obnoxious Aggression > Ruinous Empathy > Manipulative Insincerity

The "defaults" are men being obnoxiously aggressive and women being in the ruinous empathy quadrant. Mean become radically candid by caring more, and women by challenging directly.

The defaults however give men the advantage with women in a more harmonizing role.

This is because the typical metaphors company act by are aggressive. The most obvious one is war or sports, but even a less aggressive one like trade requires a sort of aggression in haggling.

The defaults favor an affinity for competition and aggression because we primarily live in a world of scarce resources and requires drawing a line in the sand and watching over it with spears. Our 1st world cushy lifestyles are basically subsidized by people in poorer countries being willing to work more for less. (as indirectly as possible to assuage guilt as much as possible) In a purely equal world, China and India become leaders of the world (again) and everyone gets 30K. Is that something people in the U.S. really want?

A person with high empathy might feel guilt and be compelled to enact this situation. What mostly happens though is that these decisions are delegated to more aggressive and competitive people. Assuaging personal guilt while still reaping the benefits of disparity.

If companies start ingesting more empathy, their actions naturally tend to become more harmonizing, creating fairer conditions. But this ONLY is desired if the total wealth is enough for each person. As larger companies act at a global scale, the global wealth isn't enough for this empathy to be acceptable.

Smaller companies which act in a smaller sphere DO benefit from empathy though. They have to be indirectly subsidized by excess wealth from the environment they are embedded in. Knowing your hipster barista's name is only possible if the business of selling high priced artisanal coffee is viable.


Somewhat related, there's a very good post here: http://lesswrong.com/lw/l8/conjuring_an_evolution_to_serve_y...

It's about the unintended side effects of trying to be a 'Natural Selector'. One example is selecting individual hens on egg output to create a breed of high-egg producers. The result was mean chickens which had gains b/c they were very aggressive. The breed needed to have their beaks clipped otherwise they would kill each other. When productive groups rather than productive individuals were selected though, they got the desired effect. (Though in another example I can imagine selecting for mean group behavior)

Another example was trying to selectively evolve animals that would self-limit reproduction. (to avoid overpopulation and resource over-consumption) The end result was selecting for cannibalism.

In organizations, the equivalent of propagating a feature are the hiring stage and the promotion stage. Whatever you hire for, or promote for, will be the trait that's optimized. Whatever the side effects may be... (e.g. Enron)


"I came, things got better, I left, things got worse. What do you think that says about me?"

Whether it's an engineer, or a manager, or C-level executive, this is very easy to achieve by borrowing from the future. Very difficult to solve I think.


You forgot politician


This article is mostly about scheduling, but a bigger issues is actually amount of actual work. (Ignoring cases where amount of perceived work is important like in Japan)

A “reasonable” amount of work basically always comes down to what someone is willing to sacrifice. A cushy work week is basically always subsidized by other people. It’s often very indirect, like a factory in China. When this information is forcefully shoved in a person’s face, their moral compass gives them no other choice but to protest against the Foxconns of the world.

Unions formally define what is reasonable, but there is also a cultural form of unionization. In the U.S. H1B’s implicitly acknowledge this possibility. They look to join teams that have this cultural unionization. If half of the non-H1B’s go home at 5, management cannot force overtime from everyone else without it being egregious. This disappears when the team is mostly H1B’s or even if the manager him/herself went through this process. (Startups, rather than look for H1B’s, look for “culture fit”)

Cultural homogenization allows a shared definition of reasonable-ness without needing formal structures. With a non-homongenous culture, the “lazier” cultures lose out to the more “hardworking” cultures. The “lazier” cultures would like a rule that says “You must eat out at least one a week, and enjoy a movie, and NOT let your money compound for your children.” Otherwise, the culture that is more willing to work hard effectively undermines the desire to live comfortably of other cultures. In the Bay Area, western culture simply cannot compete with Chinese culture when it comes to housing bids. It’s 1 couple vs an entire family of savers.

There should obviously be a law to prevent Olympic athletes from taking a super-drug that will allow them to win a gold medal and then drop dead afterwards. But should there be one to prevent parents from overworking for their children?

IMO, when the amount of wealth in the world reaches the point where everyone can live comfortably if it were evenly divided, a casual lifestyle will naturally emerge. Prior to that though, there will always be people more willing to work hard. In order for a cushy lifestyle to be sustained, there must be an explicit border or wall (physical or otherwise) that divides people into homogenous cultures. People in each group must be willing to work around the same.

In the U.S. sweatshop and factory conditions are protested against, but in those same countries, they are prestigious jobs that can lift a family out of an agrarian lifestyle into technical or knowledge work. The willingness to fight over pennies subsidizes the casual picking of dollars. With China moving towards picking up dollars, there is no longer a large enough penniy-picking population to sustain it. (Which is why China internally subdivides into a 1st world portion and a 3rd world subsidizing population).

With globalization comes cultural mixing. A large portion of Trump voters realize this threat to their lifestyle (and many have probably already been affected and have trouble making ends meet) and think that re-establizing cultural zones will fix the issue (with a literal wall…) but it won’t. Solutions to questions about how to work and live comfortably without solving the global wealth distribution problem basically are all forms of indirect subsidization, making it zero sum. (Aside, religion can actually be used as a force to sub-divide a population into a culture that desires less, allow them to subsidize a smaller population that want to live more comfortably)


There's an interesting series of tweets here: http://us1.campaign-archive1.com/?u=78cbbb7f2882629a5157fa59...

It outlines a model of "supernova" companies. Companies that initially earmark such a large market that they implode, creating the materials for many other companies. AirBnB for example is just a small chunk of craigslist. Twitter may be in the process of exploding, being unable to capture or tame the reaction.


Disappointing article. This for example:

> Twitter "failing" to own the revolutions it obviously took mainstream (messaging, chatbots) isn't a failure really if viewed that way

Twitter in no way made messaging mainstream. It had absolutely nothing to do with it. Twitter's peer to peer messaging system being so horrific is one of the reasons it failed (WhatsApp, Snapchat, etc. took advantage of that screw-up). ICQ, AOL, MSN messengers, MySpace and Facebook, all did drastically more to take messaging concepts mainstream (the messengers had hundreds of millions of users before Twitter even existed). Twitter was late to the party and showed up with the wrong solution.


IMO React is popular because it forces people to understand MVC. I've actually never seen a Backbone app where views render based on the model. It's too easy to just ram in jQuery in the render function. A lot of new frameworks just try to reduce Backbone's boilerplate of manual model-view event binding in different ways, dirty watching, virtual DOM, etc...

Even flux is basically organized pub/sub. Instead of shouting out what you're doing, you're logging your actions in a logbook. Also, instead of arbitrary actions, you can only combine certain pre-approved actions. It's a natural extension from using globals (too messy) to shouting out your intent while basically using globals (too noisy, still kinda messy) to what I've described above. (still kinda messy, but can be traced and unit tested easily)

Flux/Redux and whatever still doesn't help you solve problems that truly reduce complexity like how to organize scope or what abstractions to use.

There are tons of good frameworks out there, and it's rather disappointing to me that people don't realize that the basics are the same and insist on everyone jumping on the same bandwagon (that just happens to be supported by a rich large company).


Employees these days have a paradoxical role to fill. On one hand, the value in an employee is the ability to solve a problem. On the other hand, they have to market themselves as passionate people. The only way to do so is to exclaim interest in interesting subjects which often are directly tied to company concerns.

Say a company needs good testers. I would find it very hard to sell myself as a passionate tester. Instead I would say something that's actually interesting to me like AI or machine learning.

In order for something to be interesting, it has to be somewhat unknown. How can you be interested in something you have completely mastered and know everything about. It just becomes process for you.


IMO there is a limited market for mature ideas that is often much smaller than the previous prediction. When startups start meeting this boundary, instead of reigning in expectations and become an efficient tool serving a small market, it's "go big or go bust" with desperate attempts to validate the previous market size predictions.

Sooner or later, you're bumping into the markets of other companies and it's impossible to compete against them b/c you're using your weaknesses against their strengths.

There is only so much money and attention (time) in the world for people to spend on things. The low hanging fruit in developed countries has already been plucked clean so it's quite hard to 'grow' new markets. Your new tv series better be REALLY good if you're competing with game-of-thrones and breaking-bad.

Interestingly enough, the Chinese companies actually have many more features and are often better (for their users) than the american counterparts. The population is more homogenous and has more of a crowd mentality. Network effects are huge. Monopoly-like companies also prevent too much fragmentation meaning technology as a tool becomes standardized. Rather than 20 different things competing for the attention of everyone, there is one big company with apps that do everything that is trusted and reliable and thus the 'best'.

While american companies compete for slices of a certain size of pie, one chinese company owns the entire huge pie. As long as the users have pie, they are happy.

In allocation of limited resources, this usually fails as equal distribution of resources leaves everyone poor which creates huge incentive for corruption and hoarding. For abundant resources that can be duplicated infinitely and have network effects to boot this is perhaps a better strategy.

After all, it's all about everyone having an abundance of pie, not who has more or less pie.


One of the theories I have is that the best jobs in the U.S. require you to be culturally american. The U.S is great in that it is far more meritocratic than other countries but at the highest levels you still need to be culturally american.

This helps with things like understanding other people's motivations as well as day to day rapport which builds up into deep camaraderie.

People who are culturally un-american expend far more energy building rapport in this american way. (e.g. dealing with the "How's it going." exchange.)

The advantage is the the cultural natives don't need to wear "masks" while cultural non-natives are required to keep their masks on at the correct times, draining energy that could have been used for thinking/maneuvering.

Chinese and American culture for example have different default states for friendship amongst co-workers. Americans treat all people in a friendly manner but distinguish between co-workers and true friends. Friendship is not the default and is sought out based on mutual compatibility.

In Chinese culture though, friendship based on environment (school, work) IS the default. Through their eyes, American's are two faced while from the other side, they are just trying to avoid awkward forced friendship.

Another theory is that this difference in culture creates an exponential acquisition of skills in communication and selling yourself as well as avoiding awkward situations. Since these social skills are a constant part of life growing up, it is a natural strength in adult life.

Chinese culture tends to structure growth of their children in a "follow the rules, memorize all the textbooks" way so Chinese children only start their social skill education in adult life.

So to sum up...American culture creates people with stronger social skills because there isn't a "God" to tell you which road leads to heaven that you can diligently follow heads down. Immersion into American culture helps increase social skills the longer you are in it. Obvious acceptance of it (rather than avoidance) may make you seem more "coachable".


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: