Ask HN: What's your most unpopular dev opinion?

15 Sourabhsss1 62 5/31/2025, 7:32:16 AM

Comments (62)

efortis · 21h ago
My programming font. It’s proportional and uppercase letters have a 1/3 of a space of left padding.

Proportional because they are faster to read in general, and the padding makes reading camel-case faster as well.

https://github.com/ericfortis/verdanacamel

hackernews1134 · 10h ago
I absolutely love this. I did not understand a single thing in your description of the font “proportional and uppercase letters have a 1/3 ….”, and clicked on your link to see it for myself.

In the example I initially assumed your font was the Jetbrains example and thought it was ugly and unreadable. Then when I saw the next example I read it with no effort and almost immediately internalized that the mini-space is not and the wide-space is.

Are there any default fonts that do this on most systems? Mac, Windows, iOS, etc. that I can use if I don’t have access to install a font. I am often on shared devices and this would be a game changer if my first experience is what I think it is - easier and more enjoyable reading.

(Going to install it now on my iPhone to experiment it as a default daily driver)

jemiluv8 · 19h ago
Yeah. You're a unicorn. That font hurt my eyes and twitched something in my brain. I often experience something painful in my brain and eyes whenever I switch fonts and theme.

No comments yet

rkomorn · 15h ago
I kinda like it but how often do you mistake spaces and the padding? I guess your spaces are a little wider but I find it hard not to see the capital-preceding space as an actual space.
efortis · 14h ago
Fun fact: my coworkers who use “Show whitespace chars” in their IDE find the padding too distracting. So for them I switch my font before sharing my screen.

I got used to the padding in a few minutes, the first version had a 1/4 space padding and then I pushed it to a 1/3.

To me, the main problem is tabularized alignment. So I don’t use it for example on nginx.conf

MountainMan1312 · 17h ago
I kinda like it. The left padding definitely messes with my head but I think with a tad less space I could get used to it
3dsnano · 19h ago
very few of us are engineers or trained to think like one. most of us a tradespeople who know how to make digital things.

as a trade we have gotten lazy and complacent. many of us have figured out how to look the other way while making software that does terrible, terrible things.

we deserve to have our trade destroyed by LLMs.

lemonwaterlime · 19h ago
Software engineers should use formal risk management tools like FMEA (failure mode & effects analysis) like engineers in any other discipline.
AnimalMuppet · 10h ago
Some software engineers should use FMEA or such. Probably more than think that they should. But not all - it's overkill for much software. There should be an informed decision made, based on the kind of software it is... but maybe that's just an extremely informal FMEA.
d00mB0t · 1d ago
Rust doesn't belong in the Linux kernel. eBPF turned Linux into a microkernel. systemd is terrible and bloated. IPv6 addresses are convoluted. Gödel's Incompleteness Theorem proves we'll never have Artificial General Intelligence.
whytevuhuni · 1d ago
> Gödel's Incompleteness Theorem proves we'll never have Artificial General Intelligence.

What is your definition of AGI? Is natural general intelligence something you think brains are physically capable of, or is some non-physical aspect required?

thrance · 17h ago
> Gödel's Incompleteness Theorem proves we'll never have Artificial General Intelligence.

And yet the brain exists, is it magical? Or is it that Gödel's theorem has nothing to do with intelligence, which is mostly a big pile of heuristics anyway?

drrob · 23h ago
That AI is utterly dreadful at coding, and I can't fathom how anyone is getting any productivity gains out of it.
zzo38computer · 9h ago
Programming languages (and many other programs) should not insist on using Unicode. Unicode string types (especially as the main string types and character types of the programming language) are harmful more than GOTO is, because GOTO won't affect API calls to libraries, while data types do affect API calls to libraries.

Although many programming languages try to avoid the problems of C programming language, some of these things that they try to avoid are not really so bad, and they often make it worse in other ways, anyways.

Computer programs should not have too many dependencies.

You should not use one character set for everything.

You should not use computers for everything, either.

ASN.1 DER is not a bad file format (and is often better than using other formats; I think DER is generally better than BER and CER, and is also generaly better than JSON and CBOR and others).

I also think that systemd is no good, but many people believe that (although also many people think that systemd is good).

Furthermore, HDMI is no good, and USB is no good, and UEFI is no good, and Unicode is no good.

X.509 client authentication would handle authentication better than 2FA, WebAuthn, OpenID, etc. (It can also be used for authorization as well as authentication, and this authorization can be partially delegated to yourself and/or others, therefore making fine grained personal access tokens unnecessary.)

TLS should not be mandatory for connections that do not require authentication (e.g. read-only access to public data), but TLS should still be allowed for any connections whether or not they require authentication. If you are only using the connection to download a file, and the contents of the file is not changing, then knowing the cryptographic hash of the data will be better than using TLS, although you can do both at once if you want to (these are not mutually exclusive).

For security within a computer, capability based security with proxy capabilities is a good way to do it, at the level of the operating system (rather than within a programming language or in a single program).

Programmers should not only program in modern computers, but should also program in old computers too.

1vuio0pswjnm7 · 9h ago
These are quite good, IM(non-dev)O. Perhaps this shows shows that popularity, e.g., of opinions, is not necessarily an indicator of quality.

Popularity matters in the case of advertising. Advertising happens to be Silicon Valley's only "business model". Silicon Valley and software developers in general seem obsessed with popularity.

This is one of the better questions for "Ask HN". Commenters who try to argue against the opinions only serve to support the notion that the opinions are unpopular.

eimrine · 1d ago
Lisp is a king of PLs, those who do not write in Lisp are just ruining our world because FOSS values are effectively lost if bad guys can use GPL code which becames elusive after compilation. Lisp program which does not share its source code can not share full set of properties which are expected from Lisp code. Some devs really understand how it is inevitable to be fully FOSS for the sake of preventing digital feudalism, but no one claims that all software must be not only FOSS but also written in Lisp.
gooodvibes · 17h ago
Rust has a horrendous developer experience and companies and teams investing in it are making a huge mistake.
const_cast · 10h ago
In the group of all languages, Rust definitely has a very poor developer experience. In the group of high-performance compiled languages without a garbage collector, Rust is definitely the most ergonomic and it's not even close.
leandot · 17h ago
That’s an interesting point—what makes you think that’s the case?
thrance · 17h ago
Hard disagree, I know of no language with a build system as robust and easy to use as Rust's. I have never seen a failure to resolve dependencies in the 8 years I've been using the language. Strong typing also makes it harder to push bugs.

In fact, 90% of the bugs in the product of the startup I work for come from the (typescript) frontend, instead of the larger (rust) backend.

mikewarot · 19h ago
<RANT>Most "Software Engineers" AREN'T ACTUALLY ENGINEERS... it's illegal in many states to use that title if you're not licensed with the state's Professional Engineering Board.

If you haven't taken professional engineering exams, and passed, you're not an Engineer.

STOP IT! </RANT>

gooodvibes · 18h ago
I can see being annoyed by a software engineer calling themselves "engineer" without the qualifier. But almost nobody does that, it's always "software engineer" - take it as a whole term instead of getting hung up on the word engineer being in it.

And if a person

1. lives in a jurisdiction where the restrictions on the "engineer" label don't apply

2. has a job and the job title in their contract is "software engineer"

what should they do according to you - not use their actual job title out of reverence for the professional standards of people with a different profession in a different country?

nicbou · 18h ago
I'd say that engineering is in this case a mindset. It means bringing rigour and precision to the craft.

I agree that many software developers are not software engineers.

msgodel · 7h ago
Eh.

The reason you call people engineers is that they certify/sign off on designs/releases. It's bureaucracy + technical knowledge. For the sake of efficiency they're usually also the ones who create the designs. IME this is what the difference between software developer and software engineer means.

No there's no licensing board, that's probably a good thing IMO, if there was any more policy involved than we already have software would probably be worse.

Also in my state CS grads are allowed to sit for the FE if they want. No one does this of course.

drrob · 18h ago
I agree, but I still call myself a software engineer...
dcminter · 18h ago
Upvoted because I disagree with this (I presume your downvoters also disagree).

My degree course actually had the option of converting to a BEng from a BSc if you so chose once you'd done your industry year.

1vuio0pswjnm7 · 16h ago
Perhaps this is an unpopular fact rather than an unpopular opinion. Here is an example of HN commenters trying to dismiss it:

https://news.ycombinator.com/item?id=37233321

The so-called "software engineer" may not have a university degree. They may have only worked for employers who themselves were college dropouts.

Tradespeople with only a high school education have licensing requirements; they can all themselves professionals. The so-called "software engineer" has no licensing requirements.

Using computers, software and the internet as a Trojan Horse to collect data and provide advertising services, unlike trades and other licensed professions, is mostly unregulated. The behaviour that so-called "software engineers" routinely engage in is the entithesis of professionalism.

HN commenters often express disdain for formal education. Perhaps it is too difficult for them to complete the requirements to become licensed professionals. Generally, liability for use of the "software engineer's" work product, i.e., software, is disclaimed in softwaare licenses or "terms and conditions" attached to websites or mobile apps. The so-called "software engineer" has no meaningful legal responsibility to software users.

How can software today, so-called "modern" software, be so bad and getting worse. Perhaps this is how.

croqueton · 23h ago
TypeScript is too much work for not enough reward.
bravesoul2 · 20h ago
Typescript is a neat idea running atop a cursed language (JS)

Using Go has been more fun. Where fun means less surprises.

jemiluv8 · 19h ago
I like go a lot. Not just for the lack of surprises but having go-fmt alone helps avoid a lot of bike shedding that limits extraneous stress.
jemiluv8 · 19h ago
Disagree. Try working on a large project with 3-4+ engineers and you'd come round to the conventional wisdom of TS. But yeah, TS is more a developer tool than a language anyways.
curtisblaine · 20h ago
I agree re: correctness, but I couldn't live without Code completion.
sexyman48 · 17h ago
Programming is a one-person job.
subsection1h · 23h ago
The most useful programming language is Bash.
const_cast · 10h ago
Perl can do everything bash can do but faster, more portably, safer, and somehow more readable. There's legitimately zero reason to use Bash outside of Bash being the the thing you happen to know.
ndsipa_pomu · 16h ago
It's the duck tape that holds systems together
bravesoul2 · 20h ago
Naming things well (and renaming them as new information evolves) is massively important. As important as tests.
throwaway314155 · 15h ago
Like many comments in this thread and contrary to the question posed by OP, this is a fairly _popular_ opinion.
bravesoul2 · 2h ago
It's not that often I see a "just fix naming" pr though. People would rather put up with it in general.
throwaway314155 · 21m ago
Yeah - it's probably a "cultural" thing (as in per-team/codebase opinions change). I see a lot of "naming things is hard" comments on HN and my first internship in college was for a Java position where verbose (perhaps overly so) naming is encouraged. I've brought that mindset with me to other jobs and found plenty of likeminded folks but I assume it's also true that there are far more people who simply don't care (as much).
MountainMan1312 · 16h ago
I'm on this team as well. Been trying to explain this to the guys at work (fabrication/CAD work). They argue that "we already do have a system, we put projects in the customer folder".

Here is a sample folder structure (from memory, not exactly the same):

    /Customer/Project/:
    ./.190   -   STEEL  -   QTY  - 3 -   CUSTOMER - PART#.dxf
    ./.190 STEEL - QTY 1 - CUSTOMER - PART# DO NOT ETCH BEND LINES.dxf
    ./LEFT SIDE    BRACKET B.sldprt
    ./PART 3.sldprt
    ./PRJ001.sldprt
    ./PRJ002.sldprt
    ./PRJ401.sldprt
    ./ALL PARTS PUT TOGETHER.sldasm
    ./FINAL ASSY.sldasm
    ./STEPS ASSY.sldasm
Keep in mind they also have a /Customer/Project REVISED - USE THIS/ folder, a /Customer/Project 4-13-24/ folder, and a /Customer/Project UPDATED/.

They also have (ON PURPOSE!) a system where they have 3 sources of truth so if any of them don't match we have to stop what we're doing to double check what's actually correct :|

While they didn't take my suggestions on this particular thing, my expertise has been noted for when there's a need for printer troubleshooting...

mikewarot · 19h ago
Computer Security was solved in the 1970s with Multilevel Secure Systems and Capability Based Security.

Security doesn't require making computers unusable, either.

If we had the collective will, we could eliminate cyber-security as a profession within a decade, as an un-necessary thing of the past.

But... that's not gonna happen.

jemiluv8 · 19h ago
Developers are terrible at writing software that solve business problems. Developers are better at writing software the solves problems for other developers
MountainMan1312 · 17h ago
I really only solve problems for myself
dcminter · 23h ago
Well, these should get me in trouble here fairly quickly...

• Modern Java is a good language.

• It's ok not to be polyglot.

• Debugging should not start with the debugger.

• If you can't express yourself clearly you probably can't think clearly.

• HN should support Markdown :)

Some exceptions for all of these, of course.

mike_hearn · 13h ago
That's fun. I try to always have at least five unpopular opinions. You never know when unpopular takes can turn into competitive advantage.

Here are some:

1. Pure capability based security doesn't work and such ideas are a dead end. [1]

2. Companies writing eng blogs about trying to to scale Postgres should just rent an Oracle Database instead. [2]

3. There are no approaches to concurrency any better than others. Locks are just as good as actors.

4. Inheritance is a good language feature and languages without it have made a mistake. Exceptions are a great language feature and languages without them have made a big mistake!

5. People should write more desktop apps.

A lot of opinions being posted to this thread are actually quite popular opinions, but I'm sure most/all of the above would be considered obviously stupid by most developers.

[1] https://blog.plan99.net/why-not-capability-languages-a8e6cbd...

[2] https://news.ycombinator.com/item?id=44074506

MountainMan1312 · 21h ago
I like Free Software / Open Source but I can't stand the idea of companies using my stuff for parasitic purposes, and I can't believe taking a stance against evil gets projects ostracized from the "freedom" community.
skydhash · 19h ago
You should be able to prototype with your whole codebase.
nineplay · 7h ago
AI and LLMs are really useful tools and engineers need to stop being all-or-nothing with them. They can't write code, they can't design code, but they can be used to make your code or designs better. Some people are turning up their noses on principle and they are missing out on a lot of useful functionality.
curtisblaine · 19h ago
Law penalties on spam / scamming should 10x harsher.
curtisblaine · 20h ago
DEI hiring mandates destroy teams.
mierz00 · 3h ago
I’m curious if anyone has witnessed this happening, and why it was DEI that was the problem?
roland35 · 19h ago
Yup this is a dumb one. Dei != mandates or quotas
const_cast · 10h ago
During this political cycle I learned pretty much nobody knows what DEI is.

No, it's not affirmative action. No, we aren't hiring black people because they're black. It's mostly outreach and employee resource groups. It's completely harmless and no, it doesn't make white people disadvantaged.

thrance · 17h ago
Premature optimisations are often fine, actually.
curtisblaine · 20h ago
We shouldn't only reject bots, we should feed them incorrect information on purpose in order to degrade the systems they are feeding.
lbhdc · 18h ago
While that sounds fun, I think this misses that egress (typically) isn't free. Returning 403 and no content is cheaper. If a crawler is generating a lot of traffic dynamically generating content will make that crawl even more expensive for the operator.
curtisblaine · 17h ago
I'm not referring to dynamically generating junk content: I want to generate incorrect but plausible static content on purpose and serve it only to bots, in order to maximize AI mistakes.
curtisblaine · 20h ago
- Code format / conventions should not be customizable

- Commonjs should be actively deprecated

- Dev interviews should have live coding sessions, face to face

oldpersonintx2 · 1d ago
rewrite your code every four years

rewrites are worth it

also: functional programming has never really mattered, and will never matter

AnimalMuppet · 9h ago
1. People think differently. Some languages suit some people better than they suit other people. The language you're so enthusiastic about, that feels like a revelation to use, is one that fits you. Others don't share your enthusiasm, not because they're dumb, not because they haven't tried, but because the language does not fit them.

2. There is no "best" language for all people or all tasks - not Haskell, not Lisp, not Python.

3. People who answer "what's your most..." with more than one response should learn to count.

Um... oops.

zzo38computer · 4h ago
I agree with 1 and 2. But, with 3, sometimes "your most" isn't always clear or known which one is the most, or it is more useful to mention more than one anyways (like you and many other people (including myself) did).