796 karma · joined December 29, 2016
Vivian: I haven't heard anything about another Biosphere.
George: That's because it's underwater.
Vivian: This is insane.
George: Is it?
Vivian: Yes it it.
George: Well, it's all for charity, so what's the difference.
Is that actually the conventional wisdom?
But I think the criticism here is a bit sharper and more pointed than that. The author isn’t expecting Reach to do something for which it was never intended, I think. Instead, they’re saying that the abstractions (hooks in particular) that have evolved over time expose unhelpful interfaces that either conceals too much information, encourage poor patterns that lead to bugs, inefficiencies, etc.
In other words, the criticism isn’t of React’s explicit decision to offload responsibility outside the scope of outputting UI, but rather that it’s evolved to make handling of those responsibilities more challenging.
I think that’s a bit more serious than the former critics and worth at least considering. For my part, I’ve found little substantive advantage to hooks and do think they hide a lot of bugs by making implicit things that should probably be (and, once upon a time, were) more explicit.
The “kanban” interfaces definitely originate from Toyota. Scrum was influenced by Toyota’s management techniques, among others. I believe other familiar concepts, e.g. “kaizen” or continuous improvement, also originate from Toyota.
Do you use this strategy for implementing recursion? Are there consequences or trade offs?
For others who are curious, see
1) https://stackoverflow.com/questions/25228871/how-to-understa..., and 2) https://raganwald.com/2013/03/28/trampolines-in-javascript.h...
TCO is technically in the ECMAScript specification (since 2015) but hasn’t been implemented across browsers or runtimes (with a few exceptions).
Dr. Axel has written a good explainer of TCO in the context of Javascript here https://2ality.com/2015/06/tail-call-optimization.html
This isn’t a theoretical position even remotely attributable to Marxists.
For example, I was a member of the organizing committee for the union at my last job where I worked as a software engineer. After the union was recognized, members held an election for all the union's leadership positions as well as for the members of the bargaining committee that negotiates the contract with management. Bargaining sessions between the union and management is completely open for any member of the union to attend. The committee publishes reports to the membership after each bargaining session on the items discussed. Presuming the union and management come agree to the terms that would go into a contract, that tentative agreement is sent to the members of the union to vote on and either accept the terms, or to reject them, in which case the union and management will continue to bargain a new tentative agreement.
What you're describing "tell me I'm signing up for something that I have no idea how it will turn out" is actually what happens when you accept any new job you take. When you accept a job offer, you know a few things, e.g., your salary and benefits, your manager, etc. But there's a lot you wouldn't typically know, e.g., how performance is evaluated and how promotions and raises are determined, what your workload would be and what protections you might have from overwork or excessive discipline or unfair termination.
What a union provides is not only a voice for everyone in the workplace, but for collectively bargaining and making clear the the conditions and treatment you can expect in your workplace.
“Capitalism was created” by whom? What about exceptions, such as Chile under Allende?
It fascinates me how much remains familiar, despite the radical changes that have taken place in computing and software development over the last half century.
While software engineers enjoy relatively advantageous working conditions compared to workers in other occupations and industries, overwork/exhaustion (also known as "burnout"), discrimination, a lack of due process in discipline/terminations (i.e., "at-will" employment), etc. remain commonplace within the industry and field. While software engineers have some measure of professional leverage with which to advocate for themselves, the inequality of power between employer and worker within the workplace remains unresolved. Collective bargaining and unionization directly addresses that imbalance.
I work as a software engineer and also volunteer with an organization called the Tech Workers Coalition in New York[2] that aims to educate people in our industry about the labor movement and provide resources to help people learn more about successful organizing and their legal protections in the workplace.
Several unions, including the Office and Professional Employees International Union (OPEIU)[3] and Communication Workers of America (CWA)[4] have devoted greater resources to helping workers in the tech industry organize in their workplaces.
Throughout the history of the tech industry, there have been attempts to organize unions[5]. Many of those efforts have been unsuccessful. These failures have been explained in some cases as the result of the industry's "seductive" allure[6] or the stubborn individualism of professional programmers[7].
I don't believe that either are useful explanations. An alternative explanation, offered by the sociologist Peter F. Meiksins, is that organized labor in the United States entered a rapid state of decline beginning in the late 1960s, just as the modern technology industry and software profession was beginning to grow[8], i.e., software engineers and tech workers weren't joining unions because very few people were joining them in general, not because of any unique aversion.
There has been new, though extremely modest, growth in union activity in recent years, especially among younger workers in industries like healthcare and digital media (an aside: I was a member of the organizing committee of a union at a digital media workplace). With some renewed in the labor movement, it makes sense that software engineers and others would be looking toward unions and collective bargaining as a way to gain a stronger voice in their workplaces.
PS. I also gave a talk on tech workers and the labor movement at EmpireJS in 2018 that might be of some interest[9]
[1] https://www.wired.com/story/how-kickstarter-employees-formed...
[2] https://techworkerscoalition.org/nyc
[5] https://archive.scienceforthepeople.org/vol-8/v8n1/rumblings...
[6] https://news.google.com/newspapers?nid=1356&dat=19831225&id=... "The union-free workforce is…the result of a mystique as likely to seduce production workers as millionaire entrepreneurs."
[7] https://www.computerworld.com/article/2589356/programmers--a...
[8] https://engagedscholarship.csuohio.edu/cgi/viewcontent.cgi?a...
"Bargain as a team" is called "collective bargaining" is called a "union". Just avoid the indirection and call the thing by its name.