Hacker News new | past | comments | ask | show | jobs | submit | vcarl's comments login

Phenomenal answer. No, you don't need it, but if you build something long enough you'll avoid a couple categories of common problems by starting with it (and choose a different set of common problems)


I like to think about framework choices as choosing which kind of problems you are okay with experiencing. This choice can be made from a product perspective much easier


> all this VR/AR hype has yet to deliver something... anything... anything at all

…in the consumer space. There have been some really incredible tools I've seen in industrial or medical spaces, and I think that's unlikely to change in the near term.


I’ve seen cool demos and proof of concept of professional tools but don’t know of any that have traction and good retention. Do you have examples of tools with significant adoption?


I'm not sure breadth of adoption and retention are the right metrics here — the use cases I've heard about are highly specialized, so I wouldn't expect it to be massively and quickly adopted, the same way it took a long time for robotic surgery tools or CAD to become widely used.

I've heard of it used in e.g. surgeries, for visualizing data like MRI scans, or building schematics for electrical/steam/wastewater/etc but don't know of specific instances where products are used.

This looks like a good overview of efforts in the medical space: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8455774/

And this looks like an okay high-level survey of use in manufacturing and construction: https://www.sciencedirect.com/science/article/pii/S240589631...


I know that the Tech Workers Coalition (TWC) has done some significant organizing against Amazon, in the form of protests/drawing media attention, and in deeper/less visible aspects that more directly work towards warehouse worker protections. Definitely a good group to reach out to if this is a cause that's important to you.


One significant change since that era of unionization is that programmers can't actually shut down the business with a strike. If programmers stop working, that doesn't actually directly impact revenue—if a group of factory, warehouse, or service workers strike, then the business halts until the strike is resolved. SRE/Ops could take down revenue generation, but that starts to be something with legal liability. Laws prevent businesses from hiring new workers to break a strike, but if you sabotage the code, then my understanding is that there could be criminal charges against you.

That's not really relevant in the context of Amazon's _warehouse_ workers unionizing, but I think it's an interesting constraint for us as software developers.


I don’t work at AWS bit I think youre being a bit optimistic about the level of automation most services have. If there are no SREs present for a month, things will break at even the most sophisticated tech shops.


I meant this as a commentary on the strike as a tactic for tech workers generally. SREs and Ops are the teams that seem most able to effectively use a strike to disrupt revenue, to be sure. Many services, though, would be able to operate for months or longer without intervention.


Your statement that ‘Laws prevent businesses from hiring new workers to break a strike’ is not legally correct. The Mackay Doctrine (from the US Supreme Court in NLRB V Mackay) explicitly formulates the right of employers to hire replacement workers. There are some requirements on this action by employers but just wanted to get the legal facts out there.


Cheers for the correction, though I'm loathe to learn that's the state of labor law.

> Mackay Radio has been called "the worst contribution that the U.S. Supreme Court has made to the current shape of labor law in this country."

> Nearly every criticism of Mackay Radio is aimed at the Court's "duplicitous distinction" between firing and permanently replacing striking workers.

Interesting, too, that the decision apparently contracts the laws it was interpreting. This is a grim section to read[0]. Reading this, it seems like the case was approached with a predetermined result in mind, and apparently 2 of the justices declined to participate.

[0]: https://en.m.wikipedia.org/wiki/NLRB_v._Mackay_Radio_%26_Tel...


Tech is a depreciating asset, if you don't have programmers adding to that asset, you will eventually no longer be a tech company.


There’s an interesting nuance to that though: I have built a lot of one-off tools for my clients that get the very occasional update, but basically continue to hum along maintenance-free. A month or two ago I finally was given a chance to shut down an Ubuntu 10.04 server because the client decided they no longer needed the tool that was running on it; the software outlived its usefulness. Could they have invested money into improving it? Maybe. Would it have been a good investment? Really hard to say.

There’s a big labour dispute going on in my city right now. 700-odd refinery workers are locked out (the employees announced a strike, the refinery locked them out to prevent unpredictable disruption), and the refinery is running on a skeleton crew of replacement workers. Because of blockades put up by the picketers, the refinery has chartered a fleet of helicopters for emergency transport. Additionally, the replacement workers are living in a camp on-site. Overall, the refinery was running at about 80% capacity, and even when factoring in the additional overhead from the camp and helicopters, their profit margins apparently went up due to the reduced labour costs of not having to pay the entire 700-person staff.

Then the demand for refined petroleum products dropped dramatically due to COVID. I haven’t heard much about what’s going on now profit-wise, but they have dropped production significantly. We’re now into month 5 of the lockout, and it’s the workers that are demanding to go back to work, not the refinery bending over backwards to try to get them back.

All in all, I guess what I’m getting at is... don’t assume you’re not replaceable just because you built the engine that makes money for your company. Any company worth its salt has an established Business Continuity Plan that addresses what to do in a whole number of disasters, and labour disruptions are in those plans.


>a group of factory, warehouse, or service workers strike, then the business halts until the strike is resolved

Well indeed I am suggesting a warehouse worker that we as software engineers support financially


Web assembly is generally an optimization, not an app alternative. Think of it the way you would the C bindings Node.js has. If you've got a compute-heavy code path, writing it in C (or Rust etc) and shipping it as web assembly could be a dramatic perf improvement, but there's not really a substantive benefit to writing your entire app with it.


> but there's not really a substantive benefit to writing your entire app with it.

Amendment: Perhaps it's debatable what "substantive benefit" would be, but writing the whole app in it is a huge benefit if you really want to do that. That is to say, for years people wanted to write Web UI stuff in various languages, this also allows for that.

So while the concrete performance boost may not be meaningful in writing an entire web app in C, Rust, Go, Python or w/e - to the developer happiness the boost may be huge for those devs that want it.


Well, you still can't do that—WASM doesn't have DOM bindings, you'd still have to ship out to JS. I believe that's a goal, so yes eventually that could be a benefit, but not at the moment.


Fwiw, you can - just perhaps with not pure WASM and perf.

My next app I'm planning on using a Rust WASM DOM framework, and I know there are some in Go as well. This is primarily for developer UX.


DOM bindings are kind of irrelevant when one has WebGL.

One example among many ramping up

https://platform.uno/


Rendering UIs in webgl is fairly user-hostile. No accessability, no extensions, no custom styles, ...


Yes it keeps coming up, yet Flash will have its revenge.


For a smallish subset of use cases, maybe. But replacing the DOM with a canvas-based UI for general use would be reinventing many of the problems of Flash.


Many designers and game devs see it otherwise.


Gamedev is a separate topic. As for designers, they are on the opposite side from users in the tug-of-war of control over content rendering. I don't believe they should get 100% of their way.


Gamedev falls squarely into my "smallish subset of use cases". It does legitimately need non-DOM UI, but it's not a huge part of the Web (yet).

As for designers, thank you for finding a much more diplomatic phrasing than the one I was about to write.


WebGL bindings are on the same footing as DOM bindings- they're not an alternative in this sense, because insofar as we have one we already have the other.


No because accessing WebGL contexts directly from WebAssembly, specially WebGPU ones, is something that keeps coming up in some Chrome presentations.

And thanks to many, including HN readership, Chrome and Safari are the only browsers that many businesses care about nowadays.


What I'm saying is, the feature/mechanism that lets WebAssembly call WebGL or WebGPU is exactly the same one that lets it call DOM APIs. The same implementation work supports both.


I looked into their WebAssembly demo, but it doesn't seem to use WebGL, just a regular DOM (with an ungodly number of elements).


That was just an example, maybe not the best one.

I should just have linked something done in Unity instead.


Uno uses DOM bindings, not WebGL.


Another benefit is initial page load times, if your page has a lot of JS it can take a pretty significant amount of time to parse it.

i.e. Figma said it reduced page load times by a factor of 3, though they were using WASM to replace existing asm.js code.

https://www.figma.com/blog/webassembly-cut-figmas-load-time-...


Another benefit I suppose is that you can choose from many more languages. Whether that is substantive or not depends on the person, I guess.


That's a use case, but there are many others, as the article mentions, like lightweight isolation for server side apps or writing your frontend app in a different language (not pragmatic today, but could be in the future).


This reads like you're equating collective bargaining with salary negotiation, but there are a ton of other dimensions where negotiating as a group would be beneficial. I've worked at a number of companies where I was well paid, but had an expectation of overtime. The environment of crunch produced a product that was so unstable I had to be on call, and was occasionally awoken in the middle of the night by things that would never have made it to production if there had been industry-standard practices in place.

That's where collective bargaining could come in handy in software. There needs to be some recourse for when shitty companies abuse its employees.


Vocational training absolutely could be done in tech, web/app development is much closer to carpentry than it is to computer science in my view.

Unions are definitely complex, it's not a silver bullet to solve issues in the workplace. But at its core it's a group of people negotiating as a unit: the rest is just the natural evolution of a group where some power has been attained. More members means more organization needed to keep everything straight, and more organization means more barriers to joining. Once there's a real structure to the power a union gets, it's subject to the same people problems as an other organization.


Carpentry/electrical/plumbing/factory product and process is very standardized, but IT is still quickly evolving and requires adaptation and innovation, making it harder to predict how well someone will handle a new problem based on previous work.

Welders or house framers take designs from engineers and (mostly) work to spec. I have to be the architect, engineer, and builder, usually only based on the approved visible UI, or rough description of a problem.


True, but one difference is that the market for carpentry talent is local. So, a company that is supporting a union in city X has a reasonable expectation of benefiting from its training.

With remote work, computer science is much more global, so someone could easily be trained by a union and then go work for a company that doesn't support the union.

Interestingly, this is one of my Dad's main complaints about unions these days: That our city trains great carpenters, but then they are recruited away to non-union areas.


> Interestingly, this is one of my Dad's main complaints about unions these days: That our city trains great carpenters, but then they are recruited away to non-union areas.

Why do they take the offers? I don't want to write anything bad about your father, but I think people wouldn't leave if they were paid well / felt good all around at their current job?


Seems that a fix for that would be to attach a loan/bond to the training that gets repaid by cash or by credits for working at a member employer.


Unions were started in part as a response to indentured servitude. I'm not sure that would fly, politically.


Purdue does something similar without requiring you work for a specific employer.

https://www.purdue.edu/dfa/types-of-aid/income-share-agreeme... (Income Share Agreements)

https://www.npr.org/sections/money/2019/03/29/708152566/epis... (Episode 903: A New Way To Pay For College)


The AMA basically does the same thing in certifying schools and capping spots (which allows the schools to charge several arms' and legs' worth of tuition)


Strong unions could do vocational training in software but the private sector is doing a more than reasonable job of that and their incentives are to increase supply, not restrict it. Lambda School has only existed for two years and is already educating an appreciable fraction of the software engineers in the US.

One of the economic failure modes of strong unions is excessive credentialisation and a dualised labour market. I’m most familiar with unions in Ireland and we definitely have some of that. A plastering apprenticeship is either three or four years. Learning to plaster is at most a six month job. Se situation with tiling. For a knowledge worker example more directly relevant to programmers the teachers’ unions really push credentialisation and dualistation. During the recent economic downturn the government wanted to decrease the wage bill so the teacher unions doubly shafted aspirant teachers. They negotiated a doubling in the length of teacher certification, from a one year Higher Diploma in Education to a two year M.Ed. and a lower pay scale for teachers hired after a certain date. Education in pedagogy doesn’t even have any demonstrable effect on teacher effectiveness so this was pure waste with no benefit. Even before that in Ireland a permanent job as a teacher is fantastic but it will take the average new graduate of a teacher training programme at three to five years of substitute work, with no paid holiday or other benefits to get one, if they ever do.

In the U.K. with its easier entry and lower credential requirements [1] getting a job is easy but the working conditions are comparatively dreadful.

Unions generally make things better for those on the inside by making them worse for those on the outside.

[1] Do you have a psychology degree and want to teach Math? Do a conversion course and you can.


Not sure where "tying pay to tenure" came up, unless that's how you view what unions do? A union just means a group of employees negotiating as a unit, what changes they ask for isn't dictated in advance.


>Not sure where "tying pay to tenure" came up,

This is how basically every union workplace in the US works. The pay-scale becomes very rigid. Why would tech be different?


> This is how basically every union workplace in the US works. The pay-scale becomes very rigid.

How do you address, other than dismissal, the existence of the SAG and other unions for industries with vastly varying pay levels?


Surely a next-gen labor union based in the tech industry could find a new way to fight ageism without mandating a seniority system. Why does tech have to act the same way as before? I thought we were supposed to be innovators?


The status quo is pretty good, good enough that I (and a lot of people) don't want to make that bet.


When there is a proposal that is suggested, there are proponents and detractors. That is tautological. Blankly insisting that things are good enough is just as empty as blankly insisting that things aren't.


> This is how basically every union workplace in the US works.

Well, in that the vast majority of union jobs are either public sector blue-collar, or both, sure.

Non-blue-collar, private-sector union jobs don't work that way, though they often have firm minimums (like SAG-AFTRA “scale” pay.)


Bob Glickstein wrote a really phenomenal writeup https://medium.com/interstellar/understanding-the-stellar-co...


That "worst sentiment of 2018" comment was directed specifically at

> Things like that (CSS into JS/ typed JS/Elm) are done because the developers are not competent enough in their field, and instead of learning about it, they try to create their own solution for it

Broadly calling developers incompetent because they've developed/use tools that you don't like is not "disagreement," it's just an ad-hominem. It has no place in a technical discussion.


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

Search: