Ask HN: What is your strongest contrarian opinion?

60 points by shamoo ↗ HN

386 comments

[ 3.6 ms ] story [ 338 ms ] thread
I have hundreds of them. Watch this post get blasted into /dev/nullian.

1a) There never should have been a Covid lock-down, nor should there have ever been a vaccine created.

1b) People's income tax rates should be based on how healthy they keep themselves and how healthy they eat, their lack of smoking and drinking and if they are parents, how healthy their children eat and how much exercise all of them get.

(comment deleted)
Sounds like it would require a huge surveillance apparatus. Oh, wait...
1a) The former I can understand an argument for even if I disagree with it. The latter seems balls-out ridiculous though; are you against vaccines in general or just ones for diseases that kill a lot of people?

1b) I'm going to guess you're from a country with a socialized health care system?

The idea that a leaky vaccine might create selective pressure to encourage a more resistant COVID virus isn’t all that far fetched. It doesn’t mean we shouldn’t have created the vaccine but a few months of clinical trials isn’t going to answer the right questions.
1a - Lockdown wise - 100% with you - Don't put all society on hold to protect the vulnerable. Protect the vulnerable and leave everything else alone; vaccines - should of been created but give only to those that wish it or those "at risk" and only after proper testing. Don't use everyone as lab rats. 1b - Yes please.
The whole "vulnerable vs. non-vulnerable" debate is null once you actually understand how viruses work, though. The whole point of preventing spread was to also prevent mutation/variants - the same reason why everyone getting vaccinated is important.
There was proper testing of vaccines. You only ever need six months of it.

https://bostonreview.net/science-nature/andrew-l-croxford-lo...

And its a myth that the virus only affects some neat tidy subpopulation like those over 70.

Places like Idaho are rationing care in their hospitals where the ICUs are full of unvaccinated younger COVID cases. Care for COVID patients is also resource intensive and requires weeks in the ICU which makes its impact on the hospital system disproportionately high for every single case.

https://www.npr.org/2021/09/17/1038180254/all-the-hospitals-...

Doctors are now deciding who is going to die by denying people medical care because there isn't enough to go around and practice the kind of triage that that we haven't even practiced in war zones for a long time.

I believe the topic of this thread was to post contrarian ideas, while also implying that they would be at least somewhat smart ones.
On (1a) I’m sure the vaccine argument will rile folks up but here we are in 2021, with half of the population fully vaccinated, and cases and deaths are at similar or greater levels as they were for most of 2020.
Well yes, but who is dying, the vaccinated or the unvaccinated?
I agree with incentivizing health in general. Doing so without providing healthcare seems wrong.

Doing so through income tax rates is muddling the issues. The rich would hire dieticians and trainers just to save money. If public health is actually a priority, those kinds of services would be subsidized.

Pair Programming as a first-class citizen is stupid.
What does this mean? As in, "Pair Programming as a mandatory thing is stupid"? That's sensible, otherwise this is hard to parse. It's a tool/technique, like rubber duck debugging with a person present to bounce ideas off of in real-time. It works for some people, it doesn't for others. Use it if it works for you, don't if it doesn't.
That's reasonable. But there are companies out there that pair 100% of the time - no code is ever written by a single person. Sounds like hell.
What would make it hell for you?
I think GP is referring to the 100% pair programming being hell. Pair programming all the time would be hell if you didn't get to choose your partner and/or you needed time away from them for any reason. Do you really want to spend every moment programming sitting next to some other person with one of you driving and the other speaking? Every moment? Maybe if you find the right partner (I had a couple colleagues who, for all practical purposes, were always paired with each other). But good luck finding that in every office you could ever work in.
> mandatory

Pretty much that, or as the first place to go every time, for every card, by everyone. I agree with you: it's a useful tool, but it should be natural and any policy around it should be mutable.

Pair Programming is always suggested by the worst programmers.
I sometimes suggest pair programming to help my colleagues when they are blocked. Does that make me a bad programmer?
(comment deleted)
Most high school students shouldn't go to college. It's not very contrarian here, but outside of tech circles in the US it's very unpopular. Hated even.
Software created using taxpayers’ money must be released as Free Software: https://publiccode.eu.
Is this contrarian? I'd imagine this is actually an incredibly popular opinion shared by basically everyone except government software contractors and some associated officials.
And it's technically how things are in the US. If US federal employees write some software, it's technically in the public domain. Classification levels may cause it to be hidden. It's when a contractor develops it that it starts getting murkier, the terms of their work determining ownership and, consequently, copyright.
If it was "incredibly popular", this petition would have much more than 30k signatures...
It is unpopular among university and research institutions that get federal grants. Also development companies that win contracts to create government websites/backends.

I agree with it, but it would disrupt a whole industry.

What about software for F18s or missile defense systems?
My view: They should (and when written by government employees are) be public domain. But they ought to be classified to an appropriate level if they contain information that warrants classification.

Where possible, the programs should be written in a more data-driven manner, where the actual classified portions are contained in data files that are separated from the program source code. This permits you to release the source code without issue (it tells you very little about the actual systems), and then you only have to keep classified the data used by the program and assembled (data + executable) system.

If the program cannot be properly separated from something warranting classification, modular programming is the solution. Divide the program into an unclassified and classified portion. Keeping the former in the public domain and visible (at least with no more than a FOIA request, ideally with less effort) and the latter properly secured.

This doesn't work, because the complexity and reach of the systems are themselves sensitive information about capabilities.

Even the un-classified stuff is mind-blowing, including thinking about how to even begin running/building a system like that. Software code would reveal way too much of that, even after being sterilized.

It does work. It's called software engineering, you separate concerns between subsystems so you can assemble them separately and with alternative implementations of the other subsystems. Like if you have a classified (for whatever reason) subsystem you can provide an alternative implementation that at least lets you build the system, possibly doing what amounts to a no-op or some bare-minimum version (perhaps slower and stupider using public algorithms if the classified algorithms are classified for some key mathematical or physical insight).

Regarding running/building, sure, it's harder. But mostly because of expense, the specific examples were military and US DOD and its contractors buy compilers. So buy a license for Green Hills or similar and you can build it. Buy an ARM development board and you can run it. "ARM?!?!?" Yes, ARM. Embedded systems in the modern era (that is to say, after 2000 but starting sometime in the 1980s) use off-the-shelf chips, perhaps hardened versions for things like satellites. "Hardened" doesn't necessarily change the architecture, mostly just ties them to an old version of it. If the software is from pre-1990 there's a good chance it is running on a bespoke architecture, but after that point, and certainly after 2000, it became rarer.

Now, whether they will release the code is another matter. Doing this determination requires good upfront engineering or a lot of analysis before releasing it. But good engineering has been known to happen from time to time, even by the government. More practically, though, the software will mostly be developed by contractors who will retain the copyright and so it won't be public domain.

If software is released for a sub-system that enemies don't know exists, or for a senior system that makes calls to that sub-system, damaging information is being revealed right there.

Even just exposing data structures will reveal capabilities by virtue of the data created by them.

If an fighter pilot's battlefield/ situational awareness software makes calls to 4 known methods of battlefield communication, and also to an additional unknown one, then that reveals info, even without knowing anything else about it.

Maybe you're intending that all of these types of inquiries, or data sharing capabilities be redacted or sanitized somehow, but that seems like a huge undertaking in itself, especially if you expect a working product.

And then what would that resulting skeleton product's remaining value be, for the extra effort put into releasing it?

Besides potentially helping other countries close the capability gap.

1. If revealing their source code breaks security, then it's security by obscurity, which does not work.

2. Every similar law has exceptions concerning classified information.

Security by obscurity works fantastically when used intelligently.

S-by-O got a bad reputation due to people imagining it was the last word in security, when it really is just the beginning.

Passwords are literally purified security-by-obscurity.

I can't think of any security technology or method that doesn't have a security by obscurity component. Or that isn't enhanced with an additional layer of it.

Passwords are not security by obscurity: https://security.stackexchange.com/questions/147378/password....
The page you linked to doesn't contradict what I wrote.

It does suggest that a common usage of the term "security by obscurity" can mean security ONLY by obscurity. Which I made clear was not my usage.

The other mis-use of the term is the opposite overreaction is to forget that obscurity does remain an indispensable component of practical security. Its most common form being as a password (or biometric) used to unlock an otherwise impenetrable (for practical purposes) system.

Without an obscured backdoor (password, biometric, ...) the an otherwise completely secure system would not even be accessible to its owner.

Free software doesn't require you to give a copy to anyone who asks. It just means that if you do give someone a copy, it needs to include the source code and certain legal rights. Presumably, the US isn't going to give copies of software for F18s or missile defense systems away like candy, so I don't see why this requirement would be a problem for those things.
Shouldn't everything created using tax payer money should be released for free - software, research, data collection etc
Does that include all US military technologies/secrets paid for by the US government?
Oh? If you add large bug bounties we could do war virtually?
Only thing I would change in this proposal is to make it Apache, BSD or MIT licensed instead of free software (which implies GPL), or at least make sure libraries are packed up as LGPL instead of bundling everything under (A)GPL.

I know for sure this is a controversial point of view, but to me it is obvious (even if I can see the reasoning behind hard-line Free Software advocacy).

(What would probably do more good for both Open Source and Free Software in my opinion would be to get rid of CLAs as far as possible since they create a unhealthy relationship where the strong part is constantly tempted to relicense contributed code.)

Package managers are a terrible paradigm for distributing software.

https://news.ycombinator.com/item?id=28407598 - Recent overview of the argument against

https://news.ycombinator.com/item?id=17441773 - I come away appropriately looking like an idiot in this one because I made many wrong assumptions about Haiku's package system, however I still maintain it was a bad decision

https://news.ycombinator.com/item?id=17268775 - Some more argumentation about how to do things better

https://news.ycombinator.com/item?id=24776127 - Related

https://news.ycombinator.com/item?id=19937228 - Vaguely related

I know I have several more, but there doesn't seem to be a good way to search one's own post history on HN. (This statement has since been made obsolete by CRConrad)

> there doesn't seem to be a good way to search one's own post history on HN.

Depends on how you define a "good" way, but surely https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... -- and the possible permutations of search terms and filtering and ordering -- isn't all that bad?

You must admit that having it hosted on a different domain and apparently not linked to from anywhere (at least as far as I can see) makes it pretty undiscoverable.

That said, I had a hunch complaining about it would bring someone out who had a better solution than I did, and it worked, so thanks.

It's not directly linked, but it is where the search box at the bottom of every page will take you. Algolia was a YCombinator company and since, at the time, HN had no built-in search they piggybacked on them to add the capability.
Holy crap, I have never in my life noticed that search box.
TIL there's a search box on HN.
Wow. There IS a search box, how have I missed that?
Heheheheh... Not one, but three people.

But yeah, it is funny how it's kind invisible down there.

Thank you for the links! I've been trying to figure out what is wrong with package management and how to do things better. I'm reading your links now.

Also, thank you for labeling them.

The moment you turn 18 your parents owe you nothing. For better or worse I was kicked out multiple times as a teenager, and evicted, all before turning 18.

I'm well aware that I'm simply not owed anything. However the worst human beings I've ever met are the 20 to 30 year olds who are still being taken care of by their parents, but don't appreciate it. They relentlessly complain about how poorly their being treated. A free place to live at 25 is great treatment as far as I'm concerned.

I learned the hard way these folks just think everyone in the world owes them. They treat having a job as optional. They create endless amounts of unneeded chaos.

As a related point, you need to set extremely high standards for anyone you enter into a relationship. You can't think oh it's okay, I really like this person, it's fine that they don't want to work. Nothing good comes from associating with people like this.

With that said I've been exceptionally lucky in the last few years. Almost everyone I've dated recently has been independent and career driven. The girl I'm currently dating is easily everything I've ever wanted in a partner, she has a master's, knows 3 languages, and has a great job.

As a parent, I think my duty is to teach my kids all important life skills as much as possible so that by the time they are an adult, they don't need us for much (except support if needed). I see a lot of young kids these days who are clueless and not sure what to do. Some of it I would tie back to parents not exposing them to enough things. But who knows.
While free will is often debatable, I think at a point it's up to an adult to decide what that adult wants to do.

If you at 24 decide you don't want to finish college and you don't want to work, that's your right. I definitely would blame parents who enable this behavior and don't just kick the kids out.

As far as I'm concerned, if I meet someone in their late 20s or early 30s who still doesn't want to work, I don't really care what their problem is. I don't need to hear a backstory about how their bosses mean to them when they were 19 and they swore off working forever.

I simply know people like that can cause very real damage to my life and I see to avoid them. I have found insurgent cities there's a far higher concentration of these folks, which led to me moving a few years ago. Again, I don't care why Billy or Mindy doesn't want to work. I just know I'm not letting them in my life.

1. Taxes should be for a MVP minimum viable product for government.

2. Government should be 100% transparent in time of peace and offset by 1 year in time of war.

3. All government content creation should be public domain.

I agree with 2 and 3, but can you explain 1 more?
Sounds like a no bloat government. Problem is who defines that? Does it mean no police, no public healthcare? Minimal laws? Not sure.
I use the term 'bien pensant' as an epithet. I think if you "chew your food" intellectually speaking, you're going to come to some surprising conclusions that will not match conventional wisdom and that's nothing to be afraid of.
strongest: - Anyone (Male or Female) that hurts kids should be executed no matter what country they are in. Hunt them down like animals if needed.

Others that would cause some heated debates.

- All transportation should have a weight multiplier to the base price since every kg adds to the fuel usage. Nobody should have to pay out of their own pockets for you.

- Social welfare should not be free. There are low skilled jobs that can be done by most. Missing both arms and other serious things are valid reasons not to do anything. Arachnophobia is not- I can vouch for this one personally. Panic attacks and all.

- Immigrants (like me in UK) should not have a right to vote until they get citizenship. This is the proof that you actually understand the country you live in.

- Election campain "propaganda" should be legally binding

- Voting should be done with "personal" digital security certificate. Anyone involved in electrion fraud should have all assets confiscated and put in prison

- Prisons should not be "free meals". You either work or study for a qualification in a field where there is a skill shortage.

- Internet should be declared public utility and nobody should have the right to kick anyone off it. In most civilized countries you're as good as dead without it.

- All platforms that reach the level of google search in peoples life should be declared public utility and punished for biases and manipulation of any kind.

- All big + small taxes should be merged into one (for example 50%)

> - All transportation should have a weight multiplier to the base price since every kg adds to the fuel usage. Nobody should have to pay out of their own pockets for you.

So all poor people will have to be as skinny as possible with consequences for their health.

No, so people hauling heavy loads have to pay, and not everyone else.
And I thought that my not liking Rust was contrarian...
> All transportation should have a weight multiplier to the base price since every kg adds to the fuel usage. Nobody should have to pay out of their own pockets for you.

I don't think it would amount to much. A lot of the cost is per seat, no matter the weight.

> Immigrants (like me in UK) should not have a right to vote until they get citizenship. This is the proof that you actually understand the country you live in.

Isn't that already the case?

I'm on the fence for allowing non-citizens to vote in municipal elections. After all, it's mostly local policy that's debated and, by living there, they are directly impacted by it.

- What kind of hurting and to what degree? Does slapping kid in the face just once counts? What about psychological torture? What happens if we get this wrong, can we "unexecute" someone?

- that would a pain to charge and enforce.

- if someone has the means to pay for their own welfare, why would they be eligible in the first place? Isn't providing for those without means like the whole point of social welfare?

- many citizens have no understanding whatsoever of how their country work.

- you can only bind reality through law to some very limited extent. Suppose Winston Churchill had promised "four years of peace"...

- that seems harsh...

- internet is most certainly a public utility.You can, however, live without it.

- I think that's a good idea.

- That too.

> Isn't providing for those without means like the whole point of social welfare

That is indeed the point of it and should be applied to disabled/sick, etc like it already does. That doesn't prevent them from doing various jobs that the government needs to give a paycheck for and are either low skilled or can be part time. For example answering calls in a reception, or even doing first line support over the phone.

Some of the common answers that make me differ:

> Social welfare should not be free. There are low skilled jobs that can be done by most. ...

Most people are not able to do anything productive for the society, expect for in a limited number of positions. It would be more expensive to provide a job for everybody (training, commute, supervision). Many jobs are cheaper to automate than have a human to do it without paying salary. Many others are simply not worth doing at all.

> Election campain "propaganda" should be legally binding

"When the Facts Change, I Change My Mind. What Do You Do, Sir?"

> All platforms that reach the level of google search in peoples life should be declared public utility and punished for biases and manipulation of any kind.

Why would anybody build a platform like that, then? Punishing for any biases sounds like a hard task as well, as the main use of a platform like google search is the "bias" to include more useful results. Moreover, this kind of thing would become a political too rather quickly. I agree on the idea level, but I don't see any way to do this well.

> Many jobs are cheaper to automate

This is 100% true but the point was that you're spending the money anyway. There are always roles that are too expensive to automate and where a human mind is worth 10 machines(ex:for converting archives to digital, translating older texts).

> "When the Facts Change..." that is what courts are for. Good are bad they are the only system we have for sorting out problems like this

20% of most populations have an IQ below 83. It is pretty much impossible for anybody with an IQ of 83 or lower to do a job. So it is OK for those people to starve to death?
I don't believe for a minute that it's pretty much impossible for 1 in 5 people to have a job.
Ask the US military. They won’t recruit anybody with an IQ below 83. Even though the US military try to recruit as many as possible. And then check the IQ statistics. They found out the hard way that soldiers with an IQ lower than 83 are more dangerous to the US military than the enemy.
Why wouldn't they be able to pick up a call and open a support ticket? or scan old books (press the button style). I do understand you point though. There wouldn't be enough for all of them. You can keep helping them and only use them when needed.

At the end of the day it's about having workforce available when needed that you're already paying for and not having to pay someone else. Whether you have to use it or not is a different matter.

> - All transportation should have a weight multiplier to the base price since every kg adds to the fuel usage. Nobody should have to pay out of their own pockets for you.

To avoid accidentally encouraging healthy-weight people to become underweight, I'd suggest one change to this: make it only apply to the amount that people are overweight by. For example, a 5'6" person who weighs 155lb or less wouldn't pay any surcharge, one who weighs 160lb would pay a surcharge on 5lb, one who weighs 200lb would pay a surcharge on 45lb, etc.

Having a range with no surcharge is a great way to do it and keep it healthy and fair indeed. Nice one man.
> Immigrants (like me in UK) should not have a right to vote until they get citizenship. This is the proof that you actually understand the country you live in.

This is how it is in the US. As a non-citizen immigrant I can understand this point of view. On the other hand, it's taxation without representation which is what Americans originally fought for.

You lose a day off your life everytime you declare a String variable.
why? I'm newish to programming so this is over my head.
I think mbfg may be referring to this https://devcards.io/stringly-typed
indeed. The simpler a string is to use, the more abused it will be. Programmers, forever, have used strings to represent other types, including really complicated types, with machinations of various appending formats; eg: PROJECT-33/3293, where code is built to pull apart the string to get values. This is awful. Strings are not type safe in the loose sense of the word. (Nothing is intrinsically mandating the format, so invariably you will find other code doing PROJECT-33-3293, or PROJECT/32/3293 or whatever.) This is especially seen as map keys, rather than just using a first class, class. An obviously especially bad form of this is, String key = storeId + partId;

as you can't differentiate between 12 + 3 and 1 + 23, but the compiler won't tell you this.

Finally, although not particularly important, all this string formatting parsing is far less efficient than just simple bean classes.

It is all done for the laziness of the writer.

Donald Trump was a president with good intentions.
I would argue at least better than those before and after...
I knew I would get downvoted for this, but whatever. ("We didn't ask for those types of contrarian opinions.") To explain my rationale, I read Fear by Bob Woodward and found Trump to be a more sympathetic character than one might expect. Whether you think he's incompetent or whatever, I thought the book really highlighted his sincerity.
What was in it that made him more sympathetic to you?
It was quite a while ago that I read it, but I was struck by how adamantly he refused to budge on economic and military issues (e.g., free trade agreements and Afghanistan). Despite having 99% of his advisors screaming that the consequences of his decisions would be disastrous, he believed (like many others) that some things are generally bad for the country, no matter what statistics were presented to him. His efforts were often stifled by existing bureaucracy and his own advisors.

I guess I'm more sympathetic because it seemed that his actions were a result of general distrust of experts and the status quo, not of malice. That should be something that a thread filled with contrarians should be able to appreciate at some level.

C is a good language, Rust is overengineered and rarely the right tool (in contrast to how often it's used), Go is a dumb language.

Fight me.

It's expected that on HN you give your arguments first.
Not if I scream louder. I automatically win in that case.
(comment deleted)
I'll fight on the first one, don't care or know enough about Rust for the second and will agree on the third.
C is hard.

Very very hard. In fact, as a teenager I tired C++( I know it's not exactly the same, but lower level languages are difficult) and found it so hard I stopped trying to learn programing for years.

JavaScript, specifically Unity's implementation was my first programing language. Even today, it's my go-to language to get something done quick. Anything larger, like a video game for example, I'll use C#.

Even of C was amazing 30 years ago, we have better tools now. You can make 200k writing C#, Python or JavaScript. Why make life hard with a low level language !

> Why make life hard with a low level language

Because I'm designing an operating system. None of those languages can do that.

Also, I'm a maintainer of 2 of the top 10 packages on npm. Javascript is not a language I usually jump to when I care about performance or (extreme) portability.

Lastly, C++ != C. They're similar and somewhat compatible, but entirely different at the same time.

>Lastly, C++ != C. They're similar and somewhat compatible, but entirely different at the same time.

I acknowledge this, but they're both very difficult if you're starting with that. To reframe my argument I'd say no new programmer should use a low-level language as it's so difficult you might just give up.

The vast majority of jobs will not require you to build an operating system. I think it's a matter of what your goals are. If you want to build a website or a game, use a high level language, get it done fast and move on of your life. If you want to find a job, you're going to have much better luck using higher level languages and you'll still make just as much as an embedded C engineer ( if not more).

For your specific use case,yes you need something like C.

Since this is a discussion of contrarian views, here's mine:

Your statement regarding C and C++ for beginners isn't strong enough. No new programmer should program, period. That is, they should not be set in front of a computer to type out even a single line of code that is meant to be executed.

They should be taught to think algorithmically, to express their intent in clear and precise language without the aid of a computer to evaluate what they've written and verify it for them, instead relying on their own mind.

This doesn't need to last for long, perhaps just the first few weeks of instruction, but it should be present. The alternative is what I've seen throughout my career of people coding first and thinking later. They become dependent on the compiler, the type system, the test suite to do even the basic thinking for them. Those are useful tools (and essential once your programs start to take on any significant scale), but if they're what you reach for first, you're not thinking.

And new people to programming should spend more time thinking and less time typing. In a college or high school course, this means assignments that require actual coding should be every 1-2 weeks, at best, and the rest of the assignments should be written. Again, having them express their understanding of the program's algorithms and data structures in clear and precise language first, before they ever type anything up.

>This doesn't need to last for long, perhaps just the first few weeks of instruction, but it should be present.

This assumes you're learning in an academic environment. I taught myself programming just because I wanted to make some video games. I've done very very well career wise. I will admit I do lack some fundamentals, but I can still get things done.

I'm absolutely unashamed to rely upon modern conveniences. Yes I need the strong type system C# provides for any bigger project. I practically need autocomplete, particularly with C# to get anything done.

If it's small I can hack it out in JavaScript. I still remember the three lines of code you need to stand up with NodeJS.

One of my friends needed a small app done last year, I was able to build it for him and flutter in about a month. In fact modern programming languages are so much easier, I reckon this friend if he put the time into it could have built his own application in a few months. The old guard of Computer Science tendsl to have a very strange gatekeeping to them.

Overall, I'd like programming to be less of a foreign thing to the general public. If you learn a little bit of python to reformat some old phone contacts you have, you're very much a programmer. Like not every single person with a driver's license can drive a big rig, not every programmer will be able to build their own operating system from scratch.

I was also self-taught, I started at 8 with BASIC based on source listings in my elementary school math textbook. I read them, typed them, then when I wanted to make my own programs (because I couldn't use the computer whenever I wanted), I wrote programs down and reasoned about them on paper (admittedly not well, I was 8, but I got better). Through high school this was how I programmed. It wasn't until college that I had essentially unfettered access to computers (though only desktops and remote servers at the time, I didn't have a laptop until near the end of my college career).

And I did say this was a contrarian view. Georgia Tech's CS 1301 (when I took it, numbers varied) was taught this way through Spring 2001 or 2002, and then they switched to Scheme (SICP) and then Python (not sure what, if any, textbook).

So what about the folks out there who don't have access to formal education ?

I do definitely see your point, I've had times where I'll write so much code and then later I'll realize it would have made much more sense to carefully plan out what I actually wanted to accomplish.

Continuing with my contrarian idea, I'd encourage them to take the same tact that I did. The BASIC listings in my math textbook were really no better or worse than what you'd find in magazines of the time or a BASIC manual. Of course, these days listings aren't organized and published in the same manner so I'm not sure what resources I'd point someone towards, but I'd still encourage the same approach. Whether self-taught like us or formally educated (but most formal programming education doesn't seem to use this approach, it starts with trying to get you typing ASAP).
There's nothing wrong with immediately typing. It would be a good idea to teach more programmers to think twice and type once.

Then again for my personal projects I find it the most fun to dive in head first, and fix whatever issues I run into later.

Occasionally I'll take a hybrid approach, where I'll immediately jump in and try to hack together a really bad prototype. Figure out what worked and what didn't, and then rewrite the code from scratch later. I sincerely enjoy programming so this has been very fun for me. And there's nothing like turning a hobby into a career!

Completely disagree. The best way to learn programming is hands on. I taught myself assembler programming, Pascal, C, C++ etc. as a teenager by simply reading a book and trying out things on a computer. If I can do it anybody can.
> I'd say no new programmer should use a low-level language as it's so difficult you might just give up.

Some schools still teach C and C++ as intro languages. I would not recommend it for a self-learner but in an academic setting it works.

I don’t understand why people think that C++ is hard. I mean you can make life hard for yourself, and printf is basically a pit in hell, but other than that, it is really easy and approachable. I find JavaScript incredibly confusing, unless you stick to the “good” parts, but then you lose all the library’s.

Idk, I like being closer to the metal I guess? It is comforting somehow. Not comforting like machine code ( which I love but hate to use ) but still, not having a clue what I am actually asking to have happen is very anxiety producing.

It's probably the syntax, which is designed to be similar to mathematics. Self-taught programmers will probably struggle to adapt to BNF if they don't have a strong mathematical foundation.
I agree. I taught myself C as a teenager and easily moved up to C++. Yes C++ is a kitchen sink language. But that is a GOOD thing. You can pick and choose the parts you need to get the job done. No limits.
My CS curriculum at school was basically data structures and algorithms in C++. I really appreaciate that that's how I got started and I think it made things easier later on.
C is easy. I learned it as a teenager just reading the K&R book and playing around with a compiler. I had no aces to the internet, no stack overflow etc. Lots of fun.
"Go is a dumb language." "Fight me"

I like Dumb languages. Next.

I think Go is a great language, with some dumb decisions.
I thought this was the mainstream opinion of Go, outside of its own community?
I actually agree, though I would personally add stuff to C to make it a better foundation. I also want a boringcc C compiler, like djb asked for.
At least writing REST API in Go is much easier compared to Rust.

Since you are writing OS (which Go is not designed for), what's your thought on Pascal or Ada?

the obsession of programmers with languages is remarkable. Imagine if mathematicians spent most of their daily lives arguing if the leibnitz or the newton notation is better, and proposing new, slightly differently curved symbols every month. I think it just shows that the field doesn't have productive results to show so it's preoccupied with meta discussions.
RISC-V’s success won’t benefit the end user, only spare designers a licensing fee they can well afford. After recompiling everyone’s software and dividing a huge unified ecosystem the end result will be some political victory with no material value.
Isn't there some chance someone will manufacture laptops that people can have 100% confidence don't contain hardware-level backdoors?
100% confidence no way, not yet, but arguably it’s a small step in that direction. Building hardware with no backdoors is impossible unless you’re talking 70’s era technology. There’s a long list of reasons why
(anonymous for obvious reasons)

Psychological therapy is the snake oil of the 21st century. See an actual doctor instead.

I say this having recovered from a suicide attempt.

There are many things medication cannot do. Psychotherapy is often not about coming up with novel surprising changes, but rather providing alternatives behaviors to help you do what you most likely already know you should be doing. I'm sad it didn't work out for you, and I don't think everyone should be in therapy. But psychotherapy is overwelmingly proven to work.
I kind of agree, although honestly I don't think doctor's are much better. Both suffer from the problem of 90% of them being just good enough at their job to handle the easy stuff and utter crap at anything else.
I agree with this, but the truth is that you basically are buying a friend who will keep your secrets secret.
I think therapy is basically paying somebody to listen. Which is a great service if you don’t have anybody really listening to you in your life.
God exists - not just as a word or an idea; He is Someone who is actually there.

Go is a good language for many uses (contra junon). C++ is also a good language for at least some uses, but requires more care to use well.

Cheap food is killing us.

AGI is a mirage, and the singularity is a fantasy.

> God exists

> AGI is a mirage

This is a contradiction. If God exists and He created us, then we are AGI.

I see your point. But that isn't what is conventionally meant by "AGI".

By the way, if the "universe is a simulation" people are correct, then we are also AGI (in your sense).

> that isn't what is conventionally meant by "AGI"

It's the same thing. AGI is possible to create in this Universe, if we were created.

I couldn't disagree with OP more about God being a person or AGI being a mirage, but just because a being not subject to the laws of the universe was able to create an intelligent entity within that universe does not necessarily mean that any inhabitants of that universe or natural forces within it are able to replicate that feat.

But I'm also guessing OP's meaning probably invokes a non-material source of intelligence, i.e. a soul, and that by "intelligence" they mean something more like "consciousness", something that experiences the world as opposed to an action-reaction construct like an algorithm or machine.

> a being not subject to the laws of the universe

This is only one possible understanding of what God may be. The OP did not say this was their understanding. But you make a good point anyway.

> This is only one possible understanding of what God may be.

Yes, this is true, I'm making some assumptions based on their declaration of belief in a personal God.

I like to see the world through a similar lens, one that turned me from an atheist into a theist:

I believe this universe is a quantized simulation. The evidence for various forms of Planck quanta make this abundantly clear.

Simulation implies a simulator.

Therefore, God exists, in some form or another.

Which God are you talking about? Zeus? The Sun God? Plenty to pick from.
Computer security can be solved by using capability based security. Virtual Machines and containers are just improvised crude versions of it.

We've got about 5 more years before everyone catches on to that fact, and things start to get better.

The insecurity of general purpose computing has been a major factor in the walled gardens that most people stick to when using the internet.

People don't realize the freedom we had back in the MS-DOS days when you could write protect your OS and try ANYTHING in almost perfect safety.

Computer security cannot be solved as long as the users don't understand the decisions they are making, so that will never happen. Walled gardens exist to remove those decisions, so that users can't hurt themselves.
Imagine a wallet with cash in it... Ariel opens her wallet and takes out a Hamilton ($10 USD), and hands it to Beth. The most she can lose is the $10.

In this scenario, the most Ariel can lose is that $10, no matter how evil Beth is. If Eva manages to impersonate Beth, still the maximum loss is $10. In no manner can the balance of Ariel's wallet be lost.

If you have an operating system that never hands over the wallet to an application, but instead uses capabilities, in a clear and transparent manner, then the user is quite capable of doing the right thing, as millennia of experience have shown.

Our current crop of OS choices don't even make it possible to select and built a capability on behalf of the user. There is no "wallet" analogy without capabilities. We're living in a world where you must hand over your wallet to anyone to complete a transaction... which is nuts.

Computer security cannot be solved with any technology unless you want to fix everybody in the world to be "good players". This will always be a hopefully balanced game between people trying to protect a system and people trying to get access to it/information.

As long as there will be people that want to hack a system, that system will never be secured 100%.

Here is one example: There is such a thing as hacking air gapped systems. So there is no amount of containers that you can add to protect you from bad actors.

The more a language or paradigm is touted as some amazing revelation by a small group of people, the less likely I am to like it. Rust, Julia, Haskell, pure functional programming, lisp-for-lisp's sake etc. I develop an instant negative reaction to what looks like a cult from the outside.
You don't even learn them enough to be able to articulate an argument against them? You just reject them outright?
I've played around with each of them. I'm not criticising them technically - they all have great aspects and can teach you a lot even if I think on the whole they're overrated. My reaction to the communities that they have makes me less likely to engage more with each of the languages.

I also know that some of these languages have very well regarded communities - that's why this is my response to OP's question.

I’ve used Haskell and Racket (lisp), and while they’re great for learning fun new ways of coding and very specific use-cases, they’re terrible general-purpose languages.

I’ve also used Julia, albeit less, but i don’t really see the “amazing-ness” of it. Although I come from a typed-languages background with a good IDE, so I can definitely see how it’s amazing to someone coming from Python or R.

Rust honestly is IMO a great language and a huge step from C++. But again, it’s not the end-all, I still usually pick Java / Kotlin or something else unless performance really matters.

Julia is great because it's fast and you can develop everything in a single language. Take PyTorch or TensorFlow for example. They are hard to understand because they are a mix of C++ and Python.

Whereas Flux.jl is a pure Julia library and performance is comparable. There are even efforts to build a pure BLAS replacement in Julia, and performance is comparable to FORTRAN. If you are into scientific computing, this is amazing because it lets you operate at a much higher level, close to mathematics.

I'm working on my own programming language since 2013 so I am thinking about programming quite a bit. So here is the summary of those years:

* All programming languages suck. We are not there yet as humanity. I can not think outside of the box enough to make the breakthrough that should be made, at least as of now. While looking at other programming languages, I see the same issue: inability to express thoughts in concise and straightforward manner. Unsolved issue.

* The only idea in programming that I consider definitely good is pattern matching. Note that I'm talking about the concept here. No particular implementation strikes me as "yep, this is it": be it limitation to strings only (regex) or syntax-only implementation (preventing composability of the patterns) or some other sh*t.

Have a nice weekend!

> All programming languages suck.

I'm not sure this if is a contrarian opinion, but this is one of my biggest career takeaways. Every programming language I have used for an extended period of time turned out to suck. Whenever I find a new programming language that doesn't suck, I end up using it enough to discover the specific way in which it sucks. So I've inferred that every programming language I haven't extensively used, and doesn't seem to suck, will just end up sucking in some way I will ultimately discover.

> specific way in which it sucks.

This

I don't have objective data but it seems that I'm reaching the "they did what?" pretty quickly when I read about yet another language. Don't need to start using it even.

The good(?) news is that this has helped me get over my instinct of, "I don't want to use this language because it sucks".

You want me to use Java? OK, as long as we're using Java in a situation where the specific way in which Java sucks is a smaller issue than the specific way in which any alternative language would suck.

Resonates. I typically say that my programming language should just suck less than others for intended use cases.
Not all thoughts are concise and straightforward. That's not a problem that can be solved.

Concision by itself is not something to optimize for, since it usually leads to misunderstanding at scale.

> Not all thoughts are concise and straightforward. That's not a problem that can be solved.

My observation is that inexperienced programmers have this kind of mess in their head. No programming language can help with that. Hard to tell because I'm not sure what exactly you mean.

> Concision by itself is not something to optimize for,

Concision is one of the aspects. Too much and the code is unreadable. Not enough and code is too long. In both cases mental effort grows and maintainability suffers.

I think is as much a claim against PEOPLE and their ability to understand problems and inability to think logically as it is any language itself.

The other flaw: the presumption that solutions can only be linear sequential - languages are written into linear sequential files which contribute "keys under the street light". And no we haven't figure out any better way. But we don't acknowledge the problem either.

You seems to assume that it is possible to design a programming language that doesn’t suck for some people using it. I am pretty sure that is impossible. Just look at the many “X sucks!” mixed with “X is the best!” Posts on HN. A great example is X = Lisp.
I see what you mean. I am more focused on personal perspective (all languages suck). It's good to be more aware about the perspective. I'll also try to look from the suggested perspective too. Thanks!
I think Bjarne Stroustrup is right: “The only programming languages nobody complains about are the programming languages nobody use” :)
Computer science degrees are a waste of time and money unless you want to go into academia. If you ignore FAANGs you can get a very comfortable job as a developer after a bootcamp & internship.
I think some recruiters filter out people who don't come from a CS background. I think maybe something like a diploma route that concentrates on the CS courses are a better choice. You still get the proof but avoid those garbage irrelevant courses you are forced to take.
See the “ignore FAANG” part :)
The thing is that I don't know which one filters out :/ (I'm pretty sure it's not just FAANG and I know in some country they completely ignore anyone that doesn't have a university degree). But anyway I do feel that my CS education right now (just a few courses into a graduate diploma) ONLY serves as some push for me to complete my study.

I'm interested into CS but not that interested to devour everything on my own, so taking some courses is helpful on that perspective.

I worked at the FAANGs and a non negligible number of people either dropped out of college or have no degree.
Are they new hires? Is everyone has 0 connection inside?
Bootcamps have failed one after another. The most well known, Lambda, is even desperate enough they will "loan" you a new "grad" for free to try to get you to hire one [0]. And that's not even scratching the surface of what's wrong with bootcamps in general, like having instructors barely a few months ahead of students giving out lectures and grading assignments [1].

I can't say I've seen anyone straight out of a bootcamp that was a great hire. I guess these online coding schools might cater to motivated teenagers that are interesting in trying out CS before enrolling in a proper degree. The few good hires I've seen were all STEM grads that decided to take a bootcamp after graduation, or CS grads that were not confident in their ability to enter the marketplace. They could have probably achieved the same thing with a bit of self study or a few electives in college.

[0] https://lambdaschool.com/the-commons/announcing-lambda-fello...

[1] https://nymag.com/intelligencer/2020/02/lambda-schools-job-p...

My argument against this would be that a lot of the things you learn in a CS degree are really interesting and useful, but hard to force yourself to learn if you don't have to. The big one for me is the ability to do proofs in mathematics and theoretical CS, which translates rather well to hard programming problems. Without being tortured with it in college, I doubt I would have ever bridged that gap.

There is certainly a subset of people that do like to solve these problems, and don't like to go to university, but I would assume it is rather small.

The other thing, which is probably less true in countries where you have to pay for university, is that people who join the job market very early view everything in monetary values. My university buddies would do things just because it sounds interesting or hard or could make a positive difference in the world, while my friends who joined the labor market immediately after school are much more focused on their career development and salary.

I agree, that why I added the caveat “unless you want to go into academia”
I think I would agree, but with the caveat that the hiring companies need to change how they view credentialization. Right now many companies will just toss your resume if you don't have a BS+.

I have a BS an MSIS. Most of the information isn't used in my job.

How can I work in domains like HPC (not run of the mill work, but not really “academic” either) without having formal education expose me to the the scale and infrastructure needed?

FWIW I don’t have a degree nor do I believe the average CS program is worth the money (US context ofc)

Do you mean that a "college degree is a waste of time and money unless you want to go into academia"?

If you had to decide between dropping $X for a computer science degree, and $X for e.g. some liberal arts degree, are you suggesting that the liberal arts degree is a better investment for a career as a developer?

I'm not sure if you're making a statement about how things should be or how they are. Because pretty sure 90%+ companies still value computer science degrees.

Automatic software updates are a terrible idea. Not only do they make systems and devices less reliable but they are a vector for a malicious entity (Maybe even the vendor themselves, see Apple & CSAM)
Automatic security updates are important.
Unfortunately they're not propagated through different channels
In a reasonable OS, e.g., Debian, they are.
Not every OS is connected to the internet...

Not every OS connected to the internet can afford the risks of bad updates (which are far more common than proponents think/claim)

Debian package management doesn't have to rely on an internet connection. You could have the source of the security updates be a cd or USB stick or something with no problems
I hate automatic software updates. Is there a large contingent out there who loves them?
Anyone who has to be the family IT person. Though it's a love-hate relationship. On the one hand, automatic updates (particularly security related ones) keep my family members' systems, well, up to date and secured. On the other hand, UI changes mean I have to go and update my own systems and figure out where that damned option or button moved to so I can help.

Since user interfaces (in particular) are not cleanly separated from the underlying system on personal devices, updates end up deploying both. I'd love for my family to get an updated browser or messaging client that only addresses issues around, say, the SSL implementation or HTTP or Unicode handling that specifically address security concerns. And then separate updates that alter the interface which become (somewhat) opt-in updates (though eventually they will be effectively mandatory). But that's not the reality of software development.

Me, within reason.

A major version change (eg UI rewrite or API breakage is an exception).

I don’t get the constant breakage the rest of HN seems to get, so there is no reason to pay the cost of manual updates.

I only mind when they make the software worse or hurt whatever i’m trying to do, e.g. more slowdowns or making some feature harder to use (and not just moving it somewhere else, actually removing it or adding steps). Or if the update fails to download and leaves my software in an unusable state.

But if your app updates with minimal inconvenience, good for you. In fact it comes in handy when the update adds new features or improves performance.

I agree, and people do tend to disagree, and not just because of security. Forced non-security updates for paid software should simply be mostly-illegal. For non-networked software, and most changes for networked software, it's a no-brainer. For breaking server API changes... you sell it, you have to support it let's say for 10 years.

I suspect having this requirement would also greatly improve API design...

This thread is supposed to be for strong contrarian opinions - stuff that you actually believe, that you think others don't. Most replies aren't really doing that. (Yes, this is my actual answer. I do expect that others will object to it.)
It would be useful if you listed which posts exactly are not contrarian and tell why you think so.
(comment deleted)
I like The Prequels.
Wow, that's actually a very contrarian opinion both in the general population and HN's demographic.
Yes. And I'm not young. I knew the original trilogy very well when the prequels came up.
This is me, except with the Game of Thrones ending ;P
I love Game of Thrones but was afraid to watch the ending because I couldn't find a single person that like it. Not there's hope.
Just don't. It's not worth it. Pretend it was cancelled
Well that just makes you a donkey. Sorry, I'm generally trying to be polite on here even to people supporting outrageous opinions like the usage of torture or the death penalty. But supporting the last season of GoT is going one step to far, how could you reach such a depraved opinion?
Why such a confrontational rhetoric just for a TV show?
My poor attempt at making a joke about the benignness of the opinion compared to the other things being discussed in the thread. Being german and having drunk a couple of beers probably didn't help.
Get out.

Revenge of the Sith was good though.

Me too. The podrace was amazing.
Phantom Menace was not bad kid's movie.
Repeat violent criminals should have the option (and be encouraged) to have elective castration to reduce their sentencing. This will hopefully reduce their violent impulses and reduce their progeny.

Relatives should be somewhat culpable for the repeat violent crimes of their parents/children/siblings, anyone who shares at least 50% of their genes. With, of course, escape clauses if they're distant, estranged, or never heard of them.

Religion should be as personal as sexual behaviour.

(comment deleted)
Have you read Neanderthal Parallax trilogy[1] by Robert Sawyer? It portrayed a culture that had some of your views regarding crime and culpability of relatives.

[1] https://www.goodreads.com/series/40828-neanderthal-parallax

Yes, that's where I got the idea. I'm sure there's plenty of reasons it wouldn't work when attempted in a real world culture, let alone the resistance from getting laws about it passed.

Such lovely and fun ideas in that trilogy! Second IMHO only to the Culture novels in terms of semi-realistic deep social world building.

Culpability of relatives for unrelated crimes exists in North Korea. Does anyone else have an example of countries that do this.
I think I remember hearing that it existed to some extent in Old German areas. Naturally it would have faded out as enlightenment ideas about freedom and science spread.
Compulsory education that assumes each kid is a uniform widget to be produced is a terrible way to develop people. People think so little of children and their capacity to learn, engage, and understand that they compel them to spend some of the most dynamic years of their life learning about things they don’t care about that they promptly forget in adulthood. Kids are natural learning machines and we murder that natural curiosity and capacity for mastery through school.

I think there are better ways. We cannot, for example, teach kids about democracy in environments that give kids often less agency than prisoners in prisons. Democratic schools like Summerhill, Sudbury or unschooling are good starts. Kids at those schools have control over their schedule: if they want to keep a more structured schedule, they can, if they want a more relaxed schedule, sure. Each kid also has a vote in how the school is run, including in a judicial system for administering discipline.

At the very minimum, ending age segregation policies at schools would be a good start for more dynamic learning.

Compulsory education is not about developing kids as people. It's glorified daycare.
I generally agree with this, and I also think it implicitly serves a few other purposes in addition to being daycare. High school gets people used to the idea that they will spend their lives following a schedule and producing things. It also promotes the idea that we live in a community and teaches us about interacting with one another; (probably not in the most effective way). There’s also an element of teaching us about or maybe indoctrinating us into a particular system of work/reward which our society is supposed to operate under.
> We cannot, for example, teach kids about democracy in environments that give kids often less agency than prisoners in prisons.

> Each kid also has a vote in how the school is run, including in a judicial system for administering discipline.

That's admirable.

>judicial system for administering discipline while I don't agree entirely with you, this is something I would love to see implemented. The disciplinary measures usually taken in schools are never consistent and always done in a case to case basis so, I never thought they could ever be fair