Hacker News new | past | comments | ask | show | jobs | submit | hudon's comments login

> smart people are naturally attracted to complexity like moth to a flame

I think the general inclination here towards static typing is due to this, rather than any evidence that statically typed languages lead to higher quality software. Engineers just love puzzles. I'm also looking at you, Rustaceans...

runs for his life


I’ve seen some variation of this accusation being thrown around for years- and frequently by people who I regard as smart, capable developers. On the other hand, having worked with languages all over the spectrum of static typing- I’ve also seen first how how high the bar really is for benefiting from static types before you hit diminishing returns.

The best answer I can come up with is that people just seem to have differently wired brains. For me, static typing- even fairly sophisticated static typing, is simple. It makes the code simpler, easier to reason about, easier to refactor, and with a sufficiently expressive type system it lets you build things in a much more intuitive way than you could otherwise. It’s not about solving puzzles for the sake of them- types remove a big part of the puzzle by letting me explicitly write things down- and letting the compiler keep track of the details.

Certainly plenty of people don’t see it that way, and I’ve heard a lot of people make similar arguments about dynamic typing being simpler and more expressive. I don’t think they are lying but I see a big pile of inscrutable pain when I work in large dynamically types codebases.

I know I’m right about my experience, and I trust other people are right about theirs, so there must be some significant divide in how we conceptualize code that makes one persons elegant simplicity another’s intolerable complexity.


Nothing to add, except for a sincere appreciation for how you eloquently and impartially summed up the divide.


I don't agree with this - types do not imply abstractions, and simple types make simple code.

Every tool has the potential to be misused in accidental complexity.


I don't know, man — I see a lot of TypeScript developers who lean hard into generics (I am occasionally one of them).


When I've seen this (and found myself doing it) it's been because we're trying to do something with TS which we would have done easily in JS.

But the JS function we would have written would have required someone using it to read and understand it, and the TS function (without using 'any') needs to fully express what its inputs and outputs can look like.

Because of this TS actually tends to guide me towards writing more "Grug brained" code, because I refuse to use 'any' (and throw away TS benefits) and using generics usually requires a trip downstairs for a fresh cup of tea.


Because generics are actually a powerful tool for simplifying the data flow. They make it possible to promise not to do anything specific to and based on the data involved.


This is a very simplistic approach to simplicity. Simplicity is not just counting the number of characters you see. A function in a statically typed language may have a signature that says 'it takes an integer and returns an integer'. That is very simple. A function in a dynamically type language says 'this can take something, anything really, and returns something, anything, really. That is very complicated and unspecified even if it takes a few characters less to type.


I agree, but for complex type systems versus Java-style type systems.


It isn't at odds, since in both cases (euthanasia and medically-prolonged end-of-life), it is the human person that is trying to control the ultimate outcome of life. The Catholic approach is to say "let God decide".


I guess to me it sounds like it's at best orthogonal to the idea of dragging out life; sometimes it drags out longer than it might otherwise have to, sometimes it ends much earlier than it would otherwise have to. I think my confusion was over mentioning "opt out of medical treatments" right after "we don't have to drag out life" in a way that sounded to me like it was calling them equivalent, and from my perspective, sometimes forgoing medical treatments can itself drag life out longer than someone might want.

Ultimately it sounds like we mostly agree that people can make personal decisions for themselves about their medical care; I just found the way you described it above fairly confusing.

(edit: I apparently missed that the response was from a different person than I originally responded to)


The Catholic approach is economical: it's expensive to keep dying people alive if you need resources to do so, but a religion promising eternal paradise is going to have a real propagation problem if a significant number of adherents commit suicide - and trying to carve out euthanasia exceptions wasn't going to play well to medieval peasants.


If economics ruled the Church, there are many dogmas that do not "play well to peasants" that could be dropped tomorrow for the sake of propagation.


This is an odd take considering the Catholic church via the Vatican was one of the most powerful and wealthiest organizations in Europe for many centuries, able to topple monarchs.


The point stands: if your argument were true of the Catholic Church being ruled by money and doing whatever it economically can do to propagate, the Church would behave much differently than it currently does. But, the Church is not doing everything economically possible to propagate today, so there must be some other ruling principle.


"economics" doesn't mean "money", it means the allocation of resources.

You're treating this whole idea as though there's a nefarious organization deliberately managing things (which there is in some cases, but the why is unacknowledged).

But a cell in your body has an energy economy that means it adopts certain strategies based on it's constraints.

Similarly, successful religions have an economy of beliefs that they have to adopt based on constraints. Almost all religions portray an afterlife, so all religions have a problem where they need to stop people short-cutting to get there - otherwise they promptly stop existing. But then they also have followers with limited resources so they also can't preach infinite life-extension since that undermines the afterlife narrative, and is economically unfeasible for followers (particularly since you also need to collect donations to your church to keep the organizational structure running).


A belief is economical if it exists today, and existing beliefs are economical. This tautological line of reasoning doesn't help explain the Catholic approach to anything.


What's tautological? How are the Branch Davidians doing? Heaven's Gate?

I note you keep insisting "they would change beliefs" but you've neglected to ever include what changes you think would obviously disprove this hypothesis.


To say that disabled people's lives have no value is vile, but that is not what he's saying. It's the unnecessary prolonging of suffering that Ivan Illich speaks against, the pressure to do everything humanly possible to eek out any extra week on one's lifespan, even if that extra week is a miserable one spent in agony. Now that is not to say that we should just jump off a bridge at the mere sight of suffering, but rather discern how our life is meant to be lived while letting go of our need to control everything.


I understand that argument, and respect the choices of people who choose not to be hospitalized at the end of their life but to die at home, but that's not the same thing as claiming that it is wrong to "extend the suffering of cripples". I can kind of excuse the use of the nasty slur "cripples" given that this interview was decades ago, but the strong implication is that he thought that disabled people just sat around suffering and would prefer not to have the medical technology needed to keep them living.


A move from SPA means business logic moves to the backend and becomes hypermedia-driven, so the correct comparison if you want to think about type safety is if the backend server is type-safe. htmx is mostly declarative and its correct use could be statically checked with basic tools--it's not meant to contain complex logic.


I think the point is we chose a life of separation/distance, and now we whine about the relative discomfort of magically flying in the air thousands of miles in a few hours to cover that distance. Instead, we could either choose not to live so far apart or choose to accept the consequences of our actions.


Considering all the layoffs, the closed positions, and job listings suddenly skewing heavily towards "staff" engineers, we are in a buyers' market (ie. the employers have all the leverage right now).


Even Autopilot can't be trusted in my experience. I've had it slam on the breaks countless times when the light changes (going under an overpass or through a tunnel). I've had it swerve over yellow lines, or onto the shoulder, or into a turning lane while I wasn't planning on turning. The only time I ever use it is when I'm going straight on a highway and I need to blow my nose... then I quickly turn it off.


or through a tunnel

No doubt that lead to this: https://news.ycombinator.com/item?id=34327763


It only seems to solve it in theory. However in a world of centralized mining where devs have high influence on how forks are treated, the double spend problem is still a problem. This is because what distinguishes forks can be their “validity”, not their proof-of-work, and fork validity is decided by humans and subject to politics and fraud.


Value is always decided by humans. The question is, is it decided in a distributed way via general consensus, or in a centralized way that exposes you to the whims of unaccountable bureaucrats?

Bitcoin devs can do whatever they want, except that there is no law putting them in charge so if they attempt to commit fraud they lose everyone's respect which was the only thing giving them any power, and they get replaced by someone else. Which they don't want, which keeps pressure on them to behave well.


Devs can commit fraud without anyone knowing is my point, actually. Picture a scenario like the 2013 Bitcoin fork but with a twist: a dev introduces a bug that allows a transaction to spend bitcoin without corresponding inputs, and triggers it while in the next block spending Bitcoin to buy a coffee, then after a few more blocks for confirmation, publicly announces the bug and the need to move off of the most-work chain. Miners and devs all agree that mining on top of the most-work chain with the bug doesn't make sense and move all the mining to a minority fork that has the bugfix. Minority fork overtakes the buggy fork. Malicious dev has his Bitcoin back and spends them a second time somewhere else. No one's the wiser.

We can argue about the game theory and what exactly would happen if this was attempted today, but the point remains that double spend is possible and the Bitcoin white paper does not address this issue because it assumes Bitcoin code is set in stone. As soon as you consider that the protocol evolves and is subject to human manipulation, the white paper's guarantees all go out the window. This includes the 21 million bitcoin "limit".


The white paper assumes that you don't have a malicious device. If someone can modify the code running your device, they don't need to double spend, they can just directly steal your cryptocurrency.


Yes, there are other ways of stealing besides double spends. We're in agreement there.

And I think we can both further agree that someone that isn't us modifies the code of the Bitcoin node we run on our devices. Unless you're still running Bitcoin 0.1, but then you're actually not on the "Bitcoin" network as we know it today. There are pressures outside of your control that make it so that you have to update your node, and you have to run new code you probably haven't reviewed or approved yourself.

The only way to make Bitcoin work as defined by Satoshi is to have the code be 100% perfect and then not touch it, and that ship sailed a long time ago.


What is this supposed to be a detriment relative to? If someone compromises your device then they can also transfer all of the money out of your bank account, use it to buy gold bullion and be on a beach in a non-extradition country before you get your next bank statement.


Yes, fraud also exists when you use real currency, and your bank will refund you for fraudulent charges. What's your point?


"Your bank will refund you for fraudulent charges" doesn't prevent fraud, it puts the cost of fraud insurance into the cost of banking. Which may be significantly less efficient when the user or anyone other than the bank is the lowest cost avoider for preventing fraud.

They also won't refund you for fraudulent charges unless you report them quickly enough.


You've drifted off-course. We were talking about whether or not double spends are possible in Bitcoin and now you're arguing about how banks deal with fraud refunds. peace!


It prevents double spends under a set of assumptions. One of the assumptions it makes is that the Bitcoin code on your device faithfully implements the system in the paper. It doesn't claim to be the thing that causes that assumption to be valid; you have to ensure that using separate means.


Therefore, Bitcoin code has to have been always free of bugs (malicious or accidental). That has not been the case and will not be the case. The assumption doesn't hold, and double spends are therefore possible.


Considering the _incredible_ amount of scams and rugpulls in the crypto space, some run multiple times by the same people, that would seem incredibly optimistic.


it's possible to train yourself to resist against intrusive thoughts. If you indulge in them, your resistance goes down and they reappear more often and stronger. It's like a muscle.


To think the top-voted comment is one approving of child porn, and your comment is getting downvoted... we've truly come to a bad part of the slippery slope.

To answer the grand-parent: the victims of this behavior are yourself and the society you live in. The answer to "what happens to my virtue and my relationships if I indulge in AI-generated child porn?" is not "nothing", and the society which tries to experiment with this will reap the whirlwind.


> the top-voted comment is one approving of child porn

Fake child porn. Or do you think the real victim of child porn is morality, and the abused children are such an insignificant detail it's not even worth distinguishing between fake and real child porn?


How does one train an AI model for this? What the heck is your defense for someone engaging in this?


How do you train an AI model for making a cabbage with the face of a man? This is tangential however - South Korea bans all fictional child porn, not only that generated by AI.

https://old.reddit.com/r/midjourney/comments/16w12j8/just_a_...


Let me make it clearer then: Children are the ultimate victims of sexualizing children.


Wow, an even broader category! First it was putting raping children and filming it, and generating fake pixels, in the same bucket, and now you put both of those, and countless other things, under the vague description of "sexualizing children".

Why is this bad? Well, let's look at how one might fight child abuse: find lots of CSAM online, put it through facial recognition and other digital forensics, try to find the children involved, or see if the IPs sharing it are plausibly involved with children, or use sting operations where police pretend to be children online. Then use regular policework to follow up. In the end you may end up saving a child from a very bad situation.

Now how do you fight "sexualizing children"? I don't know, awareness campaigns? Go after porn artists drawing young characters? Make a classification office, such as in New Zealand, to decide which media gets censored... maybe eventually you'll catch someone actually abusing children, but your target is so vague, your efforts so unfocused, most of your manpower is wasted.

To give an analogy: In a campaign to ban dumping toxic waste into rivers, you are the person saying "actually this is the fault of capitalism, we should fight that instead".


of course the category of victims of watching the sexual abuse children (ai generated or otherwise) is broad. It's a terrible thing.

You definitely do not fight sexualizing children by normalizing the production of child sexual abuse material. Come on now.


I question the motives of people who wax philosophic about this subject matter. Of all the gray areas of the law - one thing any normal person would find revolting is someone's attraction to minors. Now I've opened the door to people who will say "it's ok in X country because minors are 8 and younger" or some shit. Only on HN would this be controversial, what is it about this? Not the first time this debate has happened here with a similar refrain "but no actual children were harmed!". Ok, if you ignore how this source material is generated, predatory behaviors these people exhibit otherwise. It's a severe for of antisocial deviant depraved behavior - normalized here on HN.


There’s a difference between “approving of” something and thinking it shouldn’t be a crime. What’s your feeling on the first amendment? Do you approve of hate speech?


Laws have to be taken in the context of the culture in which they exist. If the culture is one in which it is normal to produce and watch the sexual abuse of children (ai generated or otherwise), then that culture should definitely not have a law that enshrines the tolerance of this behavior.

And yes, if you allow for the spreading of child porn, you approve of it with your silence. If, on the contrary, you believed it were wrong, it would be your duty to do something about it, such as making it a crime.


I don't even care - the HN crowd is uhhhh, how do I say... quite on the spectrum. Jumping to defend RMS, saying it's totally ok just because he's autistic. Didn't really expect much to be honest given past discussions here, just a lot of enablers and fetish pushers. There was even a ton of support for some caught in Thailand with underage people, and jailed in Australia I believe, people jumping to defend him here because he wasn't in Australia to break Australian law (really, they were just gas lighting their own deviances)


Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: