Recent submissions

Comment · 4 years ago
> writing imperative code in functional languages almost invariably sucks.

I don't agree at all!

Haskell is extremely pleasant for imperative programming. There's a learning curve for sure, but you get a lot in return. (STM is one small example). I would much rather write imperative Haskell than Python.

It does gets messy when you start writing really low level code (direct pointer manipulation, etc). And it sucks for small scripts (too much project boilerplate, small standard library). But those are the only real pain-points.

Comment · 4 years ago
I don't think this is accurate at all.

Debugging in a strict FP language is pretty much exactly like debugging in an imperative language. Debugging in a lazy FP language requires somewhat different approaches, but still does not have the problems you are implying here.

> In the end, the result is wrong, good luck finding where.

This is not true. If this was true, nobody would be able to build significant things in FP languages.

> Optimization aside, what you code is what the computer runs.

> But then you end up with something that doesn't look at all like what your wrote.

No, you can trace code down through the compiler transformations and generally understand what is going on at each level of abstraction.

Compilers for imperative languages are just as "magical".

Comment · 4 years ago
Functional programming doesn't actually compete with imperative programming.

In practice, functional programming is a way of organizing imperative programs. Kind of like how OO is a way of organizing imperative programs.

Almost all applications written in Haskell use the IO monad quite a bit, for example. Large Haskell projects generally use a lot of C libraries, and sometimes even directly include C code for performance sensitive bits.

Comment · 4 years ago
Billions of people in this world would agree unreservedly with the sentiment in question. Only a very specific class of people would have a negative reaction to this.

If you don't want to "hang with that crowd" then there's nothing to worry about here w.r.t filter.

Comment · 4 years ago
I find this phrase "Automatic Currying" that people are using in this thread to be very strange.

It implies that `(add 3)` is being magically converted into `(\x -> (add 3 x))` by some fancy front-end feature.

But no, `add` is just a function that returns a function.

This pattern is core to the entire paradigm of functional programming, all the way down to the lambda calculus.

All functional programming languages are essentially just fancy syntax around lambda calculus. They have different implementation strategies (strict vs lazy), different type systems, and they have been extended with different primitives (floats, operations on floats, etc).

But at their core, they are all just lambda calculus.

In the lambda calculus, there is ONLY functions, and all functions take one argument. There are no tuples. So, multiple arguments are implemented with the pattern in question. For example:

mul = (λx. λy. λz. x(yz))

Comment · 4 years ago
Compiling functional languages to other high-level language s generally has pretty awful performance compared to simple native compilation. Even compiling to C has it's limitations.

The fact that Go has a nice compiler doesn't really help, because the code generated by the functional compiler will have usage patterns that are very different from what the Go compiler is designed around.

Comment · 4 years ago
Smoking decreases appetite. A lot of people who quit smoking gain significant weight.
Comment · 4 years ago
You have been intensely socialized to behave like a robot in person. To wear a mask and not do anything that stands out.

People expect this, so doing anything "off script" around other people makes them EXTREMELY uncomfortable. If they are strangers, they usually "filter you out", pretend they don't notice, and create distance. If they are associated with you, they will immediately begin pressuring you to stop in increasingly less subtle ways.

Everything about our social interactions is completely scripted. We are choosing between pre-approved scripts that we learned movies and shows. In our public behavior, we are literally just executing software that has been uploaded to our brains.

You mostly don't notice this because that's all you've ever known. However, if you deliberately force yourself outside the script YOU WILL NOTICE, and you will notice very, very intensely.

As a consequence, most of the "interesting" people that you meet in real life are hiding, taking on the same exterior behaviors as everyone else.

Comment · 4 years ago
I don't have a big-picture answer for you, but I'll point out that there are a lot of performance-relevant details that are different between the two protocols.

A torrent is basically a filesystem, dumped into a single large bytestring, broken into constant size chunks. Then there is a fairly small swarm of nodes trading those chunks. Most of those nodes are trying to download everything, and want to saturate inbound/outbound pipes.

- IPFS is a single massive DHT for advertising who has what for every single blob in the entire network. Most nodes have a tiny subset of that data.

- IPFS does not use a constant block size.

- IPFS uses a "multihash" instead of hard-coding a specific hash function. This adds parsing time to hashes, and means that hashes are not a consistent size, and they have sizes that don't fit cleanly into words.

Those are just some details that I happen to know off the top of my head, but you start to see the picture. In every architectural trade-off, IPFS goes for the more general thing, instead of the performant thing.

Comment · 4 years ago
> just to make a few white crypto bros happy.

Causal racism

Comment · 4 years ago
Of course there are a cultural leanings at every "place". What kind of people frequent that place?

HN is no different. Anyone can come here and make any argument.

Comment · 4 years ago
My personal view on Transgenderism is that it should be seen in basically the same way as drug addiction.

Drugs also occur naturally and many people dabble in them without much harm. But drug addiction is truly destructive, and almost impossible to escape from.

We shouldn't be encouraging people that we care about to sterilize themselves, or treating the path to that lightly.

This view is quite unacceptable within the dogma.

Comment · 4 years ago
> but it seems like a fairly trivial one to me.

I don't see the difference as trivial.

The reality is that, across many cultures, there are men that have a strong desire to abandon the masculine role and to live quasi-female lives. The Thai and native american understanding matches this reality.

Our culture-makers decided to apply a specific dogma to this phenomena, and to propagate that dogma by force. That dogma has effects on society and was implemented because of it's effects on society. (For example, reality does not imply that this phenomena should be tolerated or that efforts to minimize it are pointless, but the dogma does)

Now compare this to the original topic. It was claimed that belief in God is stupid, and for stupid people.

However, almost every culture has some sort of concept of god(s). When people interact with god(s), something consistent is happening inside their experience. It is a real phenomena (like the Third Gender stuff is a real phenomena).

Christianity takes this phenomena and captures it inside a specific set of beliefs. God is all-powerful, all-knowing, all-loving. He sent his son to die for your sins. Blah, blah.

These beliefs form a dogma. However, the reality of the god-phenomena does not justify the god-dogma. And, when people argue against the belief in God, they argue against the specific dogmatic god-construct that exists in modern Christianity.

But Christian culture is built on the god-dogma. So, christians reject people that reject the dogma, and continue to accept the dogma in the face of critique.

This is a direct parallel to the Transgenderism dogma. That's what I'm arguing. Almost all smart people submit to dogmas.

The reason why smart people are suddenly rejecting the Christian dogma (after submitting to it for centuries) is that they are strongly incentivized to do so. And you can see that in how smart people are simply submitting to new dogmas, instead of now rejecting all dogmas.

The move away from Christiantity isn't a triumph over dogma, it's just a new religion taking hold.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton