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.
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.
> 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?
> 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?
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?
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.
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.
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).
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).
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.
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.
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.
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.
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
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)
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.
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.
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.
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.
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.
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.
Again, this is happening. There are organizations that do black women boot camps, or training for people from disadvantaged backgrounds. Big firms have contracts with those orgs, and they freeze all junior hiring except from those sources. Hiring managers can of course interview and select candidates, but can't select where those candidates come from.
Giving black people and women more resources and outreach, and programs to specifically address some of the challenges they will face, is not discrimination.
We don't have ERGs for white engineers because, simply put, white engineers do not face any structured disadvantages in the work place. There's just nothing to talk about there. That's why we have ERGs for gay individuals, and women engineers, and black engineers. Because they face unique challenges in the workplace and education and those spaces give them the opportunity to talk about that.
If you want those programs for white people, that already exists - that's called the workplace. It's very hard to claim a minority position when you're so obviously in the vast majority.
I never said there shouldn't be programs for minorities as an option. I said that when you mandate hiring from these programs, you effectively hire worse (not because these people are inherently worse, but because you're not exposed to the full pool) and build up resentment in the team (this guy was hired only because of his/her skin color etc.)
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!
That happens. Literally authorized hiring channels are open only for those sources. All other sources are frozen. If you want to hire a junior, you can only use those programs.
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.
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.
> 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.
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...
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).
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.
Developers are terrible at writing software that solve business problems.
Developers are better at writing software the solves problems for other developers
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.
<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.
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?
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.
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.
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.
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.
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.
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.
95 comments
[ 5.7 ms ] story [ 154 ms ] threadrewrites are worth it
also: functional programming has never really mattered, and will never matter
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?
• 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.
Using Go has been more fun. Where fun means less surprises.
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.
Proportional because they are faster to read in general, and the padding makes reading camel-case faster as well.
https://github.com/ericfortis/verdanacamel
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 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)
Because that 1/3rd fake space space looks about the same size as the proportionally-sized real spaces you have elsewhere.
- Commonjs should be actively deprecated
- Dev interviews should have live coding sessions, face to face
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.
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.
We don't have ERGs for white engineers because, simply put, white engineers do not face any structured disadvantages in the work place. There's just nothing to talk about there. That's why we have ERGs for gay individuals, and women engineers, and black engineers. Because they face unique challenges in the workplace and education and those spaces give them the opportunity to talk about that.
If you want those programs for white people, that already exists - that's called the workplace. It's very hard to claim a minority position when you're so obviously in the vast majority.
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!
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.
> 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.
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.
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.
If you haven't taken professional engineering exams, and passed, you're not an Engineer.
STOP IT! </RANT>
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.
I agree that many software developers are not software engineers.
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?
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.
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.
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.
"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.
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