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 · 2d 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 · 2d 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.
kazinator · 1d ago
By saying that is 1/3rd of a space, you are pretty much saying that the true, full space is the one found in a monospaced font.
Because that 1/3rd fake space space looks about the same size as the proportionally-sized real spaces you have elsewhere.
efortis · 2d 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
bravesoul2 · 1d ago
You win. That'd drive me nuts. I reckon I could handle proportional as I have programed in windows notepad! But that space. I'd never know if it were a space or a fake space.
MountainMan1312 · 2d 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
gooodvibes · 2d ago
Rust has a horrendous developer experience and companies and teams investing in it are making a huge mistake.
thrance · 2d 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.
const_cast · 2d 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 · 2d ago
That’s an interesting point—what makes you think that’s the case?
MountainMan1312 · 2d 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.
3dsnano · 2d 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.
d00mB0t · 2d 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.
bravesoul2 · 1d ago
Gödel's Incompleteness Theorem just means what it says about mathematical proofs. It implies nothing about AI or human intelligence. Unless you have a good logical argument that it does?
whytevuhuni · 2d 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 · 2d 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?
lemonwaterlime · 2d ago
Software engineers should use formal risk management tools like FMEA (failure mode & effects analysis) like engineers in any other discipline.
AnimalMuppet · 2d 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.
drrob · 2d ago
That AI is utterly dreadful at coding, and I can't fathom how anyone is getting any productivity gains out of it.
kazinator · 1d ago
To get the code you want out of LLM/Diffusion AI, you have to literally treat it as a smart text editor that understands English and the syntax of the language you are working it. The expenditure of keystrokes is easily worse than if you just wrote that code yourself in the first place.
lcnPylGDnU4H9OF · 1d ago
I have two and, judging from colleagues’ reactions, I am unsure which is more unpopular.
The font size in my text editor/terminal is 22 pt (I think; it might be 24). I want to avoid eye problems when I am older and I believe avoiding strain on them when I am younger will make that more likely.
My lines of code are no longer than 80 characters because reading vertically is faster and less error-prone than reading horizontally. (100 characters is also acceptable.) This has nothing to do with old software except as far as it introduced the 80-character limit at all. However, it is somewhat related to the font size, given a larger font means fewer characters per line, but they are otherwise independent choices.
kazinator · 1d ago
I experimented working with large fonts when I was in my early 20s. I discovered that it turned out to be bad for the eyes. I believe I understood the issue. I was able to continue to read text fine in spite of not taking any breaks for hours or even not blinking for long periods, letting the eyes dry out. Sure, the text would get blurry, but because the font was so large, that wasn't an impediment.
So while I did confirm the obvious readability of large characters, what you actually want is a small font which is not readable unless your eyes are relaxed and moistened by sufficient blinking.
croqueton · 2d ago
TypeScript is too much work for not enough reward.
bravesoul2 · 2d ago
Typescript is a neat idea running atop a cursed language (JS)
Using Go has been more fun. Where fun means less surprises.
jemiluv8 · 2d 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 · 2d 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 · 2d ago
I agree re: correctness, but I couldn't live without Code completion.
eimrine · 2d 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.
bravesoul2 · 1d ago
You can fully compile a Lisp program too right?
eimrine · 17h ago
then it stops being Lisp program.
nineplay · 2d 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.
sexyman48 · 2d ago
Programming is a one-person job.
mikewarot · 2d 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 · 2d 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 · 2d 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.
kazinator · 1d ago
The problem is that "rigour" is defined by a religious belief in some particular set of OCD habits.
nicbou · 1d ago
No? Rigour means setting up systems and countermeasures to ensure a certain standard of quality. It's the science of delivering reliable software.
drrob · 2d ago
I agree, but I still call myself a software engineer...
msgodel · 2d 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.
dcminter · 2d 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 · 2d ago
Perhaps this is an unpopular fact rather than an unpopular opinion. Here is an example of HN commenters trying to dismiss it:
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.
bravesoul2 · 1d ago
I agree. When I started my career I thought of myself as a programmer. The idea of engineer didn't cross my mind.
zzo38computer · 2d 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 · 2d 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.
subsection1h · 2d ago
The most useful programming language is Bash.
const_cast · 2d 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.
bravesoul2 · 1d ago
Are you sure? Is it bash or terminal and coreutils
ndsipa_pomu · 2d ago
It's the duck tape that holds systems together
kazinator · 1d ago
In case you're not making a deliberate duck joke, you should know that it's "duct tape": tape for assembling sections of air duct piping.
ndsipa_pomu · 1d ago
The original term "duck tape" appeared in the Oxford English Dictionary in 1899 - it was called that due to it being waterproof (c.f. "water off a ducks back") though it was a non-adhesive cotton tape, so different to the modern product. During WWII, Johnson & Johnson were given the job of producing the tape (for securing ammunition boxes) with self-adhesive properties and thus the modern duck tape was invented. After the war, the tape was mass produced and one of the common uses was to wrap air ducts, but the term "duct tape" didn't enter the dictionaries until 1965, although the term "Ductape" was trademarked in 1960 by Albert Arno Inc - their product was a flame-resistant tape that could withstand temperatures up to 204 °C. Note that modern "duck tape" is not heat resistant and it's generally considered dangerous to use on ducts as it can release poisonous fumes and catch fire.
However, "duct tape" is a term that is frequently used to refer to "duck tape", but is surely a misnomer as it's not suitable for use with air ducts (arguably not suitable for use with ducks either) and yet it is waterproof (like a duck).
kazinator · 1d ago
People who say "duck tape" today are mishearing "duct tape", and not referring to a water-resistant, non-sticky wrapping from the 19th century.
Duct tape (the non-heat-resistant, flammable type) is in fact used for ducts anyway.
ndsipa_pomu · 1d ago
Not necessarily as Duck Tape is a well known brand in the UK. Also, using it for ducts is prohibited in California and by building codes in other places (according to Wikipedia).
timeattack · 1d ago
GenAI should not exist, all development of it should be ceased immediately. Freed time, resources and brainpower should be invested into development of precision tools which do not require boilerplate to be produced at scale.
curtisblaine · 2d ago
- Code format / conventions should not be customizable
- Commonjs should be actively deprecated
- Dev interviews should have live coding sessions, face to face
bravesoul2 · 2d ago
Naming things well (and renaming them as new information evolves) is massively important. As important as tests.
MountainMan1312 · 2d 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...
throwaway314155 · 2d ago
Like many comments in this thread and contrary to the question posed by OP, this is a fairly _popular_ opinion.
bravesoul2 · 2d ago
It's not that often I see a "just fix naming" pr though. People would rather put up with it in general.
throwaway314155 · 1d 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).
mikewarot · 2d 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.
dcminter · 2d 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.
jemiluv8 · 2d ago
Developers are terrible at writing software that solve business problems.
Developers are better at writing software the solves problems for other developers
MountainMan1312 · 2d ago
I really only solve problems for myself
curtisblaine · 2d ago
Law penalties on spam / scamming should 10x harsher.
curtisblaine · 2d 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 · 2d 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 · 2d 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.
snackernews · 1d ago
Flash was an unreasonably effective way to build web apps.
bravesoul2 · 1d ago
I'll take a smoke of that! Especially Flex!
Damn you got me wondering if I can vibe code a Flash app.
oldpersonintx2 · 2d ago
rewrite your code every four years
rewrites are worth it
also: functional programming has never really mattered, and will never matter
mike_hearn · 2d 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.
You should be able to prototype with your whole codebase.
thrance · 2d ago
Premature optimisations are often fine, actually.
kazinator · 16h ago
Knuth might agree, because what he actually wrote was:
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."
3% could pass for often, in the context of something that is discouraged.
AnimalMuppet · 2d 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 · 2d 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).
curtisblaine · 2d ago
DEI hiring mandates destroy teams.
mierz00 · 2d ago
I’m curious if anyone has witnessed this happening, and why it was DEI that was the problem?
curtisblaine · 1d ago
I've seen it.
> From what I've seen, it means that the hiring pool for junior developers is locked into programs for disadvantaged minorities (for example black / female). This means that if you want to hire a junior, you must hire from those pools. How this is not a disadvantage for people outside those pools I don't understand.
roland35 · 2d ago
Yup this is a dumb one. Dei != mandates or quotas
const_cast · 2d 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.
Jensson · 1d ago
Not all DEI initiatives do all of those, but all of those are DEI initiatives. Do you are wrong, yes affirmative action is DEI, as are hiring black people because they are black. Those actions are done for DEI reasons, so they are DEI policies.
const_cast · 1d ago
It is illegal, and has been illegal for quite some time, to hire individuals do to their status as a protected class. Nobody is getting hired because they are black. The reality is these are perfectly qualified individuals.
This rhetoric that black people are being hired and they're unqualified is just not true. There's a lot of qualified people vying for a position, and some of those people will be black and some of them will be hired. That doesn't mean they're hired because they're black.
There's this sort of strange implication that if someone is hired and they're a minority, they must not be qualified. But nobody makes the same argument for white people - we just assume that white people are qualified if they're hired.
This systemic racism is why DEI was implemented in the first place. Merely mimicking that rhetoric is not a stab as DEI - quite the opposite.
curtisblaine · 1d ago
From what I've seen, it means that the hiring pool for junior developers is locked into programs for disadvantaged minorities (for example black / female). This means that if you want to hire a junior, you must hire from those pools. How this is not a disadvantage for people outside those pools I don't understand.
roland35 · 13h ago
The problem with your statement here is the "you MUST hire from those pools".
That is not happening. We can hire anybody. Basically, LOOKING at new sources is good! That doesn't mean at all we lower the bar or exclude white men. Of course, for basically all of time it has been a good ol boys club white men hiring their friends up to this point so not sure what the problem even is!
const_cast · 1d ago
Right, it's not a disadvantage because this isn't happening.
If you look at the statistics, black individuals and women make up an extremely small proportion of software developers. White men are not disadvantaged, I'm sorry to say.
For the record, I myself am a white man. The reality is that simply having a white-sounding name makes your likely hood of getting hired go up by over 50%. I'm not going to sit here and act like I'm some sort of victim because some people got together and made an ERG for black engineers. Who cares.
Proportional because they are faster to read in general, and the padding makes reading camel-case faster as well.
https://github.com/ericfortis/verdanacamel
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)
No comments yet
Because that 1/3rd fake space space looks about the same size as the proportionally-sized real spaces you have elsewhere.
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
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.
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.
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?
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?
The font size in my text editor/terminal is 22 pt (I think; it might be 24). I want to avoid eye problems when I am older and I believe avoiding strain on them when I am younger will make that more likely.
My lines of code are no longer than 80 characters because reading vertically is faster and less error-prone than reading horizontally. (100 characters is also acceptable.) This has nothing to do with old software except as far as it introduced the 80-character limit at all. However, it is somewhat related to the font size, given a larger font means fewer characters per line, but they are otherwise independent choices.
So while I did confirm the obvious readability of large characters, what you actually want is a small font which is not readable unless your eyes are relaxed and moistened by sufficient blinking.
Using Go has been more fun. Where fun means less surprises.
If you haven't taken professional engineering exams, and passed, you're not an Engineer.
STOP IT! </RANT>
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?
I agree that many software developers are not software engineers.
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.
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.
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.
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.
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.
However, "duct tape" is a term that is frequently used to refer to "duck tape", but is surely a misnomer as it's not suitable for use with air ducts (arguably not suitable for use with ducks either) and yet it is waterproof (like a duck).
Duct tape (the non-heat-resistant, flammable type) is in fact used for ducts anyway.
- Commonjs should be actively deprecated
- Dev interviews should have live coding sessions, face to face
Here is a sample folder structure (from memory, not exactly the same):
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...
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.
• 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.
Damn you got me wondering if I can vibe code a Flash app.
rewrites are worth it
also: functional programming has never really mattered, and will never matter
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
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."
3% could pass for often, in the context of something that is discouraged.
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.
> From what I've seen, it means that the hiring pool for junior developers is locked into programs for disadvantaged minorities (for example black / female). This means that if you want to hire a junior, you must hire from those pools. How this is not a disadvantage for people outside those pools I don't understand.
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.
This rhetoric that black people are being hired and they're unqualified is just not true. There's a lot of qualified people vying for a position, and some of those people will be black and some of them will be hired. That doesn't mean they're hired because they're black.
There's this sort of strange implication that if someone is hired and they're a minority, they must not be qualified. But nobody makes the same argument for white people - we just assume that white people are qualified if they're hired.
This systemic racism is why DEI was implemented in the first place. Merely mimicking that rhetoric is not a stab as DEI - quite the opposite.
That is not happening. We can hire anybody. Basically, LOOKING at new sources is good! That doesn't mean at all we lower the bar or exclude white men. Of course, for basically all of time it has been a good ol boys club white men hiring their friends up to this point so not sure what the problem even is!
If you look at the statistics, black individuals and women make up an extremely small proportion of software developers. White men are not disadvantaged, I'm sorry to say.
For the record, I myself am a white man. The reality is that simply having a white-sounding name makes your likely hood of getting hired go up by over 50%. I'm not going to sit here and act like I'm some sort of victim because some people got together and made an ERG for black engineers. Who cares.