Ask HN: What are your contrarian views?

57 points by davnicwil ↗ HN
There are lots of smart people in this community who are deeply specialised in all sorts of domains.

I'll bet there are some fascinating counter-consensus views at the edges on what the future holds in these domains.

Let's hear them!

What do you think is true in your domain that most of your peers don't?

238 comments

[ 2.5 ms ] story [ 290 ms ] thread
Neural nets are a dead end. Fitting a new model to some problem advances our understanding of the problem not one jot, the best that you can do from there is stumble around hoping for a better fit.
- they're not used for understanding a problem, they're used for getting accurate predictions (more accurate than alternative methods)

- they can be useful on their own without providing a path to something much more advanced

You can’t get to the moon climbing progressively higher trees.
Ok but there's nothing on the moon
What if a problem is just an incomprehensibly complicated series of differential equations and a formal breakdown is simply impossible but a neural net adds value in parsing it?
> advances our understanding of the problem not one jot

Do they claim to do this?

I suspect the hangup is they are seen as part of artificial intelligence or machine learning, where intelligence and learning are words with existing baggage for many people.
Long terms we're almost certainly going to replace NNs with more robust first principles ideas for the things they solve, but short term you can't really argue that they're not solving things in computer vision that weren't possible to reach a few decades ago.
Hot take: No one knows what the future holds in AI. 15 years ago, people thought that neural nets were dead, but they've come back vindicated and with a vengeance.
I would call that a matter of perspective. Most things, of course, are exactly the same. I see a huge amount of anti-Apple rhetoric on HN, to the point where I think I could sometimes make an argument that Samsung and Google are paying people to post here. But probably it's just the usual -- the keyboard interface removes the filter on people's thoughts and opinions.
As someone who dislike all the big guys, and only really likes positive Linux/FOSS news (if I'm honest), I have tested it thoroughly. Apple is the most protected brand, followed by Microsoft. Google, Amazon and Facebook don't seem to have any natural supports or shills... that I've seen. They probably do though - why wouldn't you?

Edit: it should be clear that I'm speaking anecdotally, right? I obviously can't say for certain.

I don't see that Apple is more protected, I just see stronger opinions in both directions. I think some folks just need to be contrarian, and they perceive the world to be filled with Apple fanboys. So they have to be the antifanboy and balance it out. Same thing happens with Tesla. Microsoft to a lesser extent.

The recent AirTags discussions have really exposed the phenomenon. The amount of disinformation is pretty incredible, which in turn brings out the pro-Apple folks who feel like they need to correct the facts. So it gets pretty heated.

(comment deleted)
Is that how you see it? I think you're giving Apple more credit than they deserve. They pay people to promote their stuff.
> They pay people to promote their stuff.

That sounds plausible. Do you have evidence they do it more than any other large consumer-oriented company?

Who cares how much they spend? We already know they exploit poor working conditions to build iPhones, maybe they get a really good deal on the biggest army of internet shills. All that matters is that they do it. Once is too many.
I haven’t seen a particular pro Apple stance, but I do see it with China posts.
If you type literally anything negative but true about Apple, it will be downvoted into oblivion. I haven't tested China, but I wouldn't be surprised.
Sorry, but that's just bullshit. Most Apple threads here are full of criticism that isn't downvoted.
When you say "shills and astroturfers" are you referring to paid advertisers? To be sure, there's a lot of paid advertisers trying to shill products on HN, but I really doubt that Apple has to pay people to defend them.

I think people just naturally tend to promote things that align with their values and rip things that don't. Most technology has no real core values, so they don't inspire much passion either for or against. Only certain things really inspire a lot of passion. Apple is one of course with their design emphasis and they inspire a lot of passion both for and against. Crypto is another. 37signals/basecamp was one of those I guess. Rails was definitely another. All of these things had some outlier values that inspired passionate arguments. Emacs and VIM. Etc.

You can definitely see an anti-fanboy effect with Crypto. If you're a marketer and want to farm upvotes on HN to build up fake accounts, just go in a random crypto thread and type some vapid criticism like "Sure it's great if you love money laundering" even if the criticism is out of context and you'll instantly build up your account.

Very interesting that your original comment was flagged...
Thank you for saying that. It's rather lonely on my high horse sometimes so I appreciate the acknowledgement.
I hadn't really seen examples of apple astroturfers personally, but now I'm practically convinced it's the case.
I think the reason people see this is that different groups value different things. Apple perfectly fits many people's values, but the group that have different values can't understand that someone else might other values.
Their values! Slave labour, poor working conditions, e-waste, consolisation of computing, etc?

Sorry what values do huge corporations have?

Did you misread my comment?

What people value in a product, not corporate values.

> Sorry what values do huge corporations have?

I didn’t say they had any.

I see. That wasn't clear to me earlier.
(comment deleted)
To me this isn't contrarian. (They work for Rustlang / Mozilla too.)

There are also many political shills and astroturfers here.

Embedded systems: Rust, checked C and other languages or methodologies designed to act as a "safer" alternative to C will see little real impact in the near to medium term future. Code running on microprocessors in medical, industrial and automotive devices will continue to be C99 (at best) for a very very long time.
I have the feeling you're right, but why do you think this is?

As someone not working in those industries, it would seem an obvious choice to move to a safer language, so there must be something I'm missing?

It's a combination of things. The first is the lack of expertise in existing companies and lack of available hires. Rust is new and has a steep learning curve. I work in a company with 7k+ engineers. Our Rust interest group has less than 20 members and most are beginners. I have never seen Rust mentioned on CVs even once when hiring for Embedded positions.

The second reason is lack of tooling - specifically Functional Safety toolchains that can be used for ISO26262 projects. There are plans by Ferrous to develop one, but it will take years to gain any adoptions [1].

[1] https://ferrous-systems.com/ferrocene/

I agree with what you're saying completely and have said so on HN in the past. It's my opinion that Rust won't break through the embedded world until the toolchains are there and I don't see an incentive for the vendors to do that work in the first place.
Tradition and machismo. Also, cost savings if there is a slightest chance that C or assembly produces smaller code. Source: I have worked with embedded software specialists. Including the type who just writes the whole thing in assembly because compiler can't optimize the first C effort.
a thing you’re missing is the cost of code recertification.

tens of thousands of dollars and several months of QA per release means that thanks very much but we’re going to keep using what we have because yours looks nice i’m sure but we don’t care.

As someone who doesn’t write C regularly, or work in those areas, I am curious if you wouldn’t mind explaining how you arrived at this conclusion?

Are you just hinting at the fact that these industries are slow to evolve, or is it something specific about the languages?

Aside from the immaturity of the talent pool and tooling I mentioned in another comment, I think the embedded domain is incredibility slow to change.

My team have in the last decade spearheaded initiatives like adopting Agile, C++ (subset) use, Git (as opposed to SVN/proprietary) and extensive use of modern code hosting and CIs and we've met with a lot of resistance in our company (and those we work with). I've also interviewed lots of experienced embedded engineers, e.g. automotive, who have never heard of Agile or used Git.

I think it's a fear of change (risk) and also that the embedded engineering domain is so closely tied to hardware development, which is even slower to change.

This sounds like wishful thinking at best. I work for a company that builds very power-efficient microprocessor devices with all the firmware written in c. There has been talk about migrating to rust for a while and now some of the code is even being written in rust. Someday it will be 100% rust.
I would love to work in a similar company but I can't see Rust challenging C any time soon with so few Rust developers available and no functional safety compiler on the market.
I agree with this. The ideal language has a minimum amount of complexity while also being human readable. C has stood the test of time because of its simplicity. You cannot reduce the complexity of a system by adding more complexity.
As much as I wish you were wrong, from what I see in avionics, I suspect you will be right. Many of the companies developing these products simply do not pay enough or have a suitable company culture to attract top-quality software developer talent. These companies will ride out legacy practices and mindsets for as long as they can get away with it.
hypermedia is the right way to build most web application:

https://htmx.org

javascript is a bad front end scripting language for light use cases:

https://hyperscript.org

I like htmx but there are a bunch of things that seem wasteful. Maybe I just haven’t learned them yet. For example, if I just want to calculate the values from two fields on a button click, I don’t want to make a round trip to a server app for that when a single line of js will do.
I think that’s what something like hyperscript (or alpine or vanilla js) would be recommend for
Data portability > decentralization.

The recent trend towards decentralization of tech is great, but if data is not portable then its just a different centralization.

For ex. Matrix/Element is great as an example of decentralization, but since you cant do much with the data if you want to go to something else, its still lock in.

I think of Matrix with it's many bridges as relatively portable. This might be chat-specific as I don't think of chat as requiring long term storage of messages. For example, slack search is basically a joke.
We will never achieve true fully autonomous driving cars in our lifetime.
I don't think this is that controversial within the HN crowd. Every company but Tesla is working to drive safely only within a monitored geofenced area.
it isn’t so controversial now. as someone espousing a similar stance for at least the last 12 years, it’s only been the recent couple years that folks wouldn’t try to shout you down for noting how far out self-driving seems to be.
Indeed, because deep-learning typically has only up to 95% accuracy, and this simply doesn't cut it if you need to make several decisions every second (times fleet size).

You can do a lot with LIDAR, but you can't recognize e.g. traffic lights with absolute certainty.

Remember that autonomy and "intelligence" aren't necessarily related.

We could probably have a fully autonomous auto fleet with current/available technologies, if we adapt the roads, rules and such.

Human-like autonomous driving might not happen but getting from a to b doesn't strictly require that.

People hate me for this one :) But, I think that companies don't need product managers if they have great UX and tech people.

PS: I am saying this as a former head of product management...

This one I struggle with. I feel like captain obvious stating that someone needs to represent the business/mission objectives and manage accordingly. That’s a completely different swim-lane than most tech/UX folks are focused on. (Not that everyone shouldn’t share similar perspectives).
I can't really agree with this, possibly for the wrong reasons: What I've always appreciated most about (good) product managers is that they act as a buffer/filter between management/sales and development, "one of our important sales wants this easy feature ...".
Having a sales team incentivized to the extent where it can demand engineering time for features that are specific to one customer -- and not benefit the product and customer-base long term -- is not too dissimilar to an organizational software security vulnerability.

You have to build the organization to be resilient to the types of incoming requests that it will receive. Some sales leads could -- intentionally or accidentally -- lead your organization and product down a path that limits future potential or causes cultural damage.

One of the ways to counter this is simply to spend more time collecting requirements and discussing the topic both internally and externally. Benevolent partners shouldn't want to rush to determine the shape of a feature.

Another slightly-less common counter would be to make the entire process more transparent. That could be difficult for some partners who might want to collaborate on the basis of creating a unique advantage that they'd like to achieve ahead of competitors. However, increasingly, I think that the cost to hide or obscure such plans is becoming greater than the benefits.

(and yep, none of this suggests anything about whether product manager roles are required or not: I think that's more to do with the size of the organization and whether specialization is required. my point is mostly that, regardless of scale, the organization needs to guard itself against misaligned incentives)

I was thinking about this yesterday that at my next company that I may not have PMs and just work with our Eng's. We've had incredible PMs in the past but I do wonder how necessary they are with a team that has focus and knows what to build (better than I do at most times).
Thinking back to my experiences at smaller companies this might make sense given a lot of product (and engineering) work was just picking low hanging fruit. At a larger company now both product and engineering work seems to require “deeper” effort such that I’m less inclined to think I could do what product does nor do I want to spend the bandwidth.
> companies don't need product managers if they have great UX and tech people

1. if these great UX and tech people do the product management themselves?

2. who does product and customer discovery?

3. Is it highly likely that the UX and tech people will know how to do product and customer discovery well - for example ask questions and carry out research the right way?

HTTP status codes are important.
So are verbs!

GET requests should not modify server state outside of caching and should be idempotent!

(non-tech view) Fooling yourself is easy. (Contrarian because I think we are taught otherwise when young.)
(comment deleted)
IPv6 is way further out thank people think.[1]

Sure, things can work okay server side if you're with a top 10 cloud provider, but support gets abysmal quick as you move further from the top.

[1] I'll define this as "the majority of home users perform the majority of their day to day web actively almost exclusively over IPv6"

In 2020 when my provider still gave out a /64, I recall (via Ubiquity router stats) at least 60% of our household traffic was IPv6. Not "exclusively", but a majority. Most traffic overall was streaming services.

Now I have better service (reliable 1gb fiber) but no IPv6. Once providers are better motivated, I predict a jump.

Agree with issue on server cloud provider support though, sadly.

I think you need to narrow down your definition of "home users" to computer users, as most mobile devices have an ipv6 stack that works pretty well and transparently for their users.
'Microservices' are a terrible idea.
Microservices are a terrible idea when they are "micro". 1-team-1-service is good.
Agreed re: terminology. The term micro makes everyone attempt to make too many tiny services. Gotta be micro!
I will agree to a point. "Micro" isn't the way we should go, more of a "Macro" approach. Instead of a small service that handles one function, give me a medium service that handles a specific domain, e.g. OAuth, data retention, marketing concerns, etc. And with that said, lumping everything into a single monolith is a bad idea.
"Let's take the hardest thing in programming: factoring your system correctly, and place a network connection in the middle of it."

-t.thoughtLeadersInTech

A more pedantic thread title is "What are your contrarian views that you feel comfortable sharing?"

People probably aren't going to share the truly interesting insights that deletes a business competitive advantage they have or say something that risks getting them cancelled.

Quadcopter-style drones won't be useful for much beyond carrying cameras. The applications will basically stop at military reconnaissance, search and rescue, and mapping. Some applications in the film industry, but as a percentage this is tiny.

Other applications are like trying to stick a round peg into a square hole.

Is that really contrarian? Are there people who think quad-drones will be used for literally everything you can imagine, including flying cars?
I think they can deliver burritos. But legislation in the US means that if I was starting a burrito delivery company I would focus on ballistic delivery methods.
Just make sure the burrito launcher looks like a gun.
Maybe the bubble has popped and this isn't such a hot take any more.
Excel is an adequate replacement for most enterprise crud apps.
Thats backwards - most of enterprise apps tries to replace excel spreadsheets that already exists (90% of my work starts with "we have this home cooked execel over here - can You make the data more accessible for managers ...")
That’s probably true from your perspective, but not backwards from mine.
I agree that perpective matters - what I wanted to say here is that from my perspective the enterprise applications that You are thinking about are like this because they are somehow direct or indirect descendants of excels. The proper ones (old school ERPs from SAP, Oracle or MS) would crumble under their own weight if implemented in excel (and I have seen stuff done by "Citizen Developers" that tried to achive just that and it was a sight to behold).
This. I would add that Google Sheets is even better. It's less feature-rich than Excel but makes up for it by being shared. It's the most powerful business management tool I've ever used.
I used to know a guy who made a living making Excel VBA apps for small businesses. In terms of what the business needed, it was as good as any other approach would have been.
A few SQL statements + ad-hoc spreadsheet analysis can also potentially be way more achievable and powerful within a couple of spare hours than using weeks+ of engineering resources to build in-house reporting tools (that frequently end up over-fitting to specific requests).
front end development is 99% of the time useless. We would be a lot better with using the old school way with html generated on the server.
I almost wants it to be true, but then I remember who is paying for server perfomance and who is paying for js working its magic in browser. I firmly believe that in world of SAAS You are leaving a lot of money on the table if You are not using users spare processing power.
Remote working is a temporary blip enabled by covid and a shortage of tech workers. Next recession you'll see people return to the office for at least 3 days/week.
Yep, sadly, I totally agree with you.

Some/Many employers are really attached to controlling their employees -> so they want to see them on time, at their job etc.

Nobody will rebel, when told to come back at work and stop remote working.

A lot of people are already so dependent on the system that they will fight to protect the idea: "Oh but it's important for social life to actually go to work". As if, it is literally impossible to meet people in other places than work.

Why? Remote saves money.

I bet next recession companies extend their life by ditching the office and in extreme cases laying off staff and replacing with staff from lower cost of living areas who can work remote.

> I bet next recession companies extend their life by ditching the office and in extreme cases laying off staff and replacing with staff from lower cost of living areas who can work remote.

Bingo. Remote working is a cost cutting measure. Only those companies that can afford to return to the office are doing so.

> Next recession you'll see people return to the office for at least 3 days/week

Next recession you'll see even more companies go remote as the recession forces cost cutting and rent/commute and their related insurance costs are cost centers that can be removed.

Remote working is a cost cutting measure. Only those companies that can afford to return to the office are doing so.

- C++ is a good and powerful language

- Managers must also be programmers

- Managers should set timescales for projects, not the people under them

> Managers must also be programmers

Probably one of the biggest factors I’ve seen in predicting the success of a software team.

Sky high salaries in tech aren’t justified by the industry’s absolute contribution to society. Related: pushing the message that folks should constantly be looking for more money and switching jobs is a net harm.
Let me take this one on. Salaries are determined by competition but lets ignore that for a second and focus on the ever elusive concept of Value. With a few clicks I can deploy code to billions of people. This impacts is historically unprecedent. The only historical parallel I can think of is extremely famous authors like Mark Twain.

Its like the difference between being a farmer with a plow and having an army of farming robots. The productive multiplier is astronomical.

To gain an appreciation for natural productive multipliers you could play games like Factorio.

Well the good or bad news is that nobody is paid based on their contribution to society. They are paid according to the market.

Bless, or curse, capitalism.

Working for FAANG means you are directly contributing to a lot of the socioeconomic issues currently afflicting society.
This is a contrarian view only on HN.
It is not a contrarian view on HN.

That's one of the problems with asking people for their "contrarian views".

There is zero marginal utility to Git commit messages beyond two or three words.
Apple's move to Swift and away from Objective-C won't be viewed as the no-brainer obvious decision with positive results 10 years from now, at least when both technical and business merits are considered. It will be compared in a similar light to Microsoft's big push to .NET in the early 2000s where they lost their way for more than a decade.

Apple's shift to Swift has caused a lot of software to be rewritten. It's not obvious that the reduction in software correctness bugs which Swift provides offsets the kind of bugs that are the result of rewriting software. Apple's software rewrites have introduced very little tangible benefit to the end customer while creating lots of software gremlins which are very annoying to them. Worse, focussing engineering resources on rewriting existing apps in Swift vs pushing the apps forward in terms of UX and features have allowed competition to catch up and surpass Apple in several areas that do matter to customers.

In hindsight, there will be a lingering question of if it would have been better for Apple to have continued to evolve Objective-C further in ways that could have provided similar technical benefits to Swift's introduction. At best the shift to Swift will have been seen as a necessary evil that exposed Apple's flanks. At worst, it will have been considered an unnecessary technical exercise that may have been started as a way to retain top technical talent, but even failed long-term in that respect.

I don't know anything about the business results of Swift, but as a developer I love writing in it. And thats pretty important too, keeping devs happy
Agreed, but there's a higher baseline mental overhead due to increased complexity of Swift that Objective-C doesn't have, at least once you get past the weird square bracket syntax. This is mental overhead that distracts from the actual problem needing to be solved.

Swift isn't alone in this respect. I think TypeScript is another example of a language which started out claiming to offer a better experience than Javascript only to become very complex. I'm sure that this added complexity helps some programmers some of the time. But just like CISC was a dead end and all computer chips are essentially RISC-based today, I suspect the pendulum may have swung too far in terms of adding features to some of these developer-friendly languages.

But, it's a contrarian view for a reason. I'm just somebody who fell in love with the simplicity of Objective-C almost 20 years ago, before the iPhone was a thing. So I may be looking back at things with rose tinted glasses.

I couldn’t quite get behind the initial assertion but I agree with this one, that Swift results in more complicated, clever code. Objective-C though had more convoluted, “unsafe” code (think swizzling and nil checks). I think in the end Swift requires less unit testing and is (usually) easier to read and make assumptions which increases velocity, doubly so if you can avoid being fancy (looking at you Generics).
Unfortunately, Swift is a completely different language with the completely different runtime. I wish they took the Java/Kotlin approach and used the same runtime.

However, it is far easier to read and learn than objective-c. All of our new software is written in Swift and we will never go back to objective-c.

An undergrad degree is no longer a good investment.

Specialized training, certifications and real world experience are a better use of time and money.

> An undergrad degree is no longer a good investment.

In any field, or just for people that want to develop software?

Good clarification.

I’m only familiar with the tech industry (software, marketing, design, etc.).

Any piece of technology meant to enable personal liberties and privacy ends up with scammers and criminals as its primary use case.
Address Sanitizer brings 85% of the memory safety that pure Rust offers without having to rewrite your C/C++/FORTRAN in pure Rust.
Can you link to an example case where Address Sanitizer has been used to find and resolve a bunch of memory safety issues in a codebase?

(it seems likely true, and with a success rate like that, improvements rather than migration of existing codebases would make sense. just keen to find some supporting success stories :) I found some cfengine ASAN examples but nothing hugely conclusive yet)

> The Chromium open-source browser [1] has been regularly tested with AddressSanitizer since we released the tool in May 2011. In the first 10 months of testing the tool detected over 300 previously unknown bugs in the Chromium code and in third-party libraries. 210 bugs were heap-use-after-free, 73 were heap-buffer-overflow, 8 global-buffer-overflow, 7 stack-buffer-overflow and 1 memcpy parameter overlap.

https://static.googleusercontent.com/media/research.google.c...

Nice, thank you!