Indeed. But the feeling of well-being is not absolute, but relative to you socio-economic context. The average American is manitudes better off now than 200 years ago, in absolute terms. But are they just as many magnitudes more happy? No. Depending on study, happiness is significantly less.
It's not at all clear that maximizing absolute quality of life is the best ultimate goal.
It doesn't give out reliable information and its "creativity" is questionable. Most of the excitement about it has to do with anthropomorphizing a robot that "feels" like an intelligent conversation partner, but it's not. Beyond toys, that is.
Similar to crypto. It isn't actually useful as a currency or to store value. Most of the excitemeny had to do with fake "freedom" dreams of the anarchically-leaning crowd and misunderstandings of what it is and isn't. Beyond toys, that is.
ChatGPT has real value to me. Ive been using it for my d&d games and to do some simple writing stuff that I hate. It costs me nothing, and I don't have to gamble to use it. Its value over crypto for me and my friends is exponential. Stable Diffusion has been even more valuable for me and I get to run that on my own metal.
>Most of the excitement about it has to do with anthropomorphizing a robot that "feels" like an intelligent conversation partner, but it's not
Literally no one I know that's excited about ChatGPT cares even one bit about the conversation aspect. No one I know is excited by the fact that it's a robot to talk to... They are excited by the fact that you can feed it code and errors and it can debug for you or you can give it code and it can write relevant documentation. Or you can give it tabular data and it can make charts and do basic analysis...
If you can't see the utility then maybe you should question your own creativity.
Sam Altman’s isn’t claiming ChatGPT will make you rich.
When you start using it, it tells you it’s a research project.
Even in its current form, it’s useful for a narrow set of uses.
It’s entirely conceivable that ChatGPT successors will be able to incorporate signals of fact vs opinion, and also authoritativeness of a source, into their training.
So yeah, ChatGPT is a toy, but that’s not bad for a research demo. But it has a lot of potential, and can help people in practical ways as it improves.
And suddenly you care a lot about the "how", not just the "what". Voiding the whole "but it's declarative!" argument.
At least in imperative code the "how" is explicit. In functional code it's implicit and you need intimate knowledge about compiler and/or runtime to know what's going to happen.
I kind of agree that it's possible to slightly overstate the declarativeness argument. Functional-style JavaScript is not that declarative. Not in the way SQL is.
But also, writing imperative code doesn't guarantee explicit performance characteristics. Whether you mutate references or not, you still need to know which operations are fast and which are slow.
In JavaScript, concatenation, [...array1, ...array2], is non-mutating and slow. Adding an element to the end, array.push(x), is mutating and fast. But adding an element to the beginning, array.unshift(x), is mutating and slow. So even if you're sticking to mutation, you still need to know that push is fast and unshift is slow.
And yeah, sorry, "in JavaScript" is not quite right. I meant in my browser. This is not part of the spec, and it's not mentioned in the documentation. Is it the same in other browsers? Who knows. To me, this is just as much "you need intimate knowledge about compiler and/or runtime to know what's going to happen".
This year it's slow. I wouldn't count on that being true in five years. I mean, it might, it might not. There's a risk in optimizing too much for current conditions. You can easily end up over-fitting for the current set of coincidences, and end up with less readable code that's actually slower in the long run.
But by all means, measure and improve until it's fast enough.
You never know what the compiler is going to produce until you look at what it actually produced, whatever language you are using.
Unless there is clear evidences upfront that the project will be a piece of software where local performance is highly critical, it makes sense to favor code readability and maintainability over optimality.
Of course, you can have different level of code quality whatever the paradigm retained. Most languages out there will allow you to mix different paradigms anyway.
Given this fact, we would surely better served with an article like "When to favor expression in each paradigm available in your favorite language".
> Unless there is clear evidences upfront that the project will be a piece of software where local performance is highly critical, it makes sense to favor code readability and maintainability over optimality.
Sure, but let's also not confuse "optimal" with "reasonable". One of the major challenge of modern programs is how slow they are at every level. Very often, this bad performance can be attributed to a style of programming that tries to completely ignore that the program will run on a real machine with real hardware. A little bit of mechanical sympathy (e.g., operations that make good use of the CPU caches or don't confuse the branch predictor) can yield a program that is 10x faster than a naive implementation, with little to no loss of readability or maintainability. (In fact, as noted by Nelson Elhage [1], faster programs enable simpler architectures, which helps make them more readable and maintainable.)
In FP languages, programmers face an extra difficulty: the distance between the code they write and the machine code that will be executed is greater than in languages like Rust or Go. They will need to be knowledgeable about the language, its libraries, and its compiler to avoid the pitfalls that could make their programs slower than would be reasonable (e.g., avoiding unnecessary thunking in Haskell).
> the distance between the code they write and the machine code that will be executed is greater than in languages like Rust or Go.
First of all, one of those languages is not like the other (Go is closer to JS than to Rust) - second, we really can’t reasonably guess at the produced assembly, even C compilers do some insane transformations leaving the code nothing alike the original, let alone more expressive languages.
I completely agree. That functional style actually favors readability and maintainability is a quite strong claim which I read often but it's usually lacking evidence.
In my experience, software engineers "think" imperatively. First do this, then do that. That's what we do in everyday life (open a random cooking book..) and that's also what the CPU does, modulo some out-of-order and pipelining tricks. A declarative style adds some extra cognitive load upfront. With training you may get oblivious to that, but in the end of the day, the machine does one thing after the other, and the software engineer wants to make it do that. So, either you express that more "directly" in an imperative style, or try to come up with a declarative style which may or may not be more elegant, but that this ends up more readable or maintainable is on the functional proponents to prove.
Maybe we have different mental models and that’s what drives this conflict? I certainly wouldn’t say that first do this then do that is my primary mental model, in small blocks yes, but once you get past even 1 file that breaks down. Once you introduce threads or the network these assumptions have to go out the window anyways.
It’s funny you mention recipes, because i’ve always been frustrated by traditional recipe descriptions that muddle concurrency and make it difficult to conceptualize the whole process. E.g. the table structure here is superior to step by step http://www.cookingforengineers.com/recipe/158/Dark-Chocolate...
The network is the prime example for forcing serialization of events.
Tbf, I agree with the recipe criticism. Would be neat with a dependency graph instead of a step-by-step list of things to do when baking a cake. Would have saved me a lot of headache in the past. (The table in your link expresses a tree, which is probably sufficient for most purposes.)
> In my experience, software engineers "think" imperatively
I hear this often. In the past the claim used to be that they "think" object-oriented. This is a thinly veiled argumentum ad naturam.
> ... on the functional proponents to prove
Prove your own claims before you demand proofs from other people. And by prove I mean really rigorous thinking, not just superficially seeking confirmation for the things you already believe either way.
Not necessarily. If the current "default" is imperative, then the burden of proof is on the functional advocates, because they're the ones advocating for change.
Burden of proof is very relevant if neither side gave an argument.
People are doing A. Someone says "Do B instead!". "Why should we do B?" "Well, why should you do A?" At the end of that extremely unproductive exchange, what are people going to do, A or B? They're going to keep doing A, because they were already doing that, and nobody gave them any actual reason to change.
So "burden of proof" isn't meant in the sense of this being a formal debate, with rules. It means that, when ahf8Aithaex7Nai said "Prove your own claims before you demand proofs from other people", that ahf8Aithaex7Nai is wrong. OOP is the current default in terms of the bulk of professional programming; if FP advocates want that to change, it's on the FP advocates to provide reasons, not on the OOP advocates to prove the correctness of the status quo.
Right the status quo works. Computers are serving us. The only question of course is whether rigorous adaptation of FP would make them work even better.
The proponents of status quo only need to prove that the existing approach works and is useful. And I think that is proven already by the very existence of status quo. It wouldn't be there if it wasn't somehow useful.
As weird as it sounds, but even when performance is not a deal breaker for individual users, on high-traffic sites the sum of all energy wasted on unnecessary/unoptimized computations can become so large that it becomes an actual ecological concern. It's a completely new thing that we should keep an eye on.
Is it really when we literally waste countries’ energy usage on bitcoin and such? Computers are surprisingly low in energy consumption on the grand scale of things, especially compared to their usefulness.
Really? Only one application of computers --- Bitcoin --- wastes countries' energy usage and yet it doesn't make sense to optimize software for ecologic reasons?
No, but there are plenty much higher targets before going after computers, especially compared to the insane value they produce. Like, is that single server running all the logistics of a country’s train network “inefficiently” really significant compared to.. the inefficiency of even a single train?
Crypto uses vast energy as a feature, a side effect of maintaining a competitive environment as part of proof of work (other staking mechanisms are different). You could not optimize this to use less energy.
Please name one other sentient, human-equivalent intelligent species.
Animals are awesome and I am indeed amazed by how smart some of the species are. Not a single one is near human level, though, and won't be for millions of years, if ever - which is not at all guaranteed, it's very much possible that human-level intelligence is evolutionary mistake/accident.
Let me know when you find an animal that can do e.g. lambda calculus and relational algebra like a human can. Since this has nothing to do with anthropocentrism, the same argument will be made - we have to preserve this species on another planet to ensure that intelligence doesn't disappear from the observable universe in case something happens to Earth/its biosphere.
> we have to preserve this species on another planet to ensure that intelligence doesn't disappear from the observable universe in case something happens to Earth/its biosphere
And why would such disappearence be bad? Really, honest question. Is there some inherent greater good to adher to by preserving intelligence, no matter how narrow it's being defined in this thread?
It could just cease existing. I don't see the problem.
"For instance, on the planet Earth, man had always assumed that he was more intelligent than dolphins because he had achieved so much --- the wheel, New York, wars, and so on --- whilst all the dolphins had ever done was muck about in the water having a good time. But conversely, the dolphins had always believed that they were far more intelligent than man --- for precisely the same reasons."
Yeah sure. If they had the ability to learn math but chose not to, it might be true. They don't, though - and I bet there is more than a few dolphins that'd like to do more if they could.
All living creatures have genes, why humans in particular?
Don't dogs and dolphins have offspring?
Aren't they intelligent?
And why not plants, which are the real reason why Earth life forms can exist on the surface of the planet?
But most of all, if you have children, would you really want for them an horrible life on a Mars colony where they would grow up in a labor camp like life and develop such weak bones that they could never live the red planet to visit Earth?
Well, a cat should live just fine on say an O,Oeill cylinder[0] or a surface level Lunar or Martian hab (possibly a large dome or huge cavern). They might have to adapt to the low gravity or the side effect of spin gravity, but the environment should eventually be pretty similar otherwise.
> Well, a cat should live just fine on say an O,Oeill cylinder[0] or a surface level Lunar or Martian hab
sounds pretty sad for a lion or a moose and frankly impossible for a shark or a whale.
Science fiction is nice, but transporting wild animals for months in a spaceship to a desert planet with no water and oxygen?
Forget about it!
Hard sci-fi actually addressed the issue and the outcome is always the same: there are no animals in space, except some domesticated small ones. There are no wild animals in Asimov works, no wild animals in Dick, no wild animals in Lem or Clarke, no animals either in recent works, the Expanse for example.
There are humpback whales in Star Trek IV: The Voyage Home though :)
The myth of the Noah's arc is just a myth, if we'll really move into space because our planet cannot sustain humanity anymore, we'll be the only species to survive. We, some plants we'll use as food and viruses/bacteria living inside us. Maybe we'll have perfected cloning technology and will try to resurrect them if the conditions arise.
But even then, how many people do you think could live in such a dome?
1,000? 10,000? 100,000?
Would we share the little precious oxygen with rats or mosquitos?
How do your scifi stories solve social issues like the breakdown of civilization following events like civil wars caused by events like the Capitol storming?
In other words, isn't the threat to the human species mostly within itself, and finding solutions to those issues much more impactful (and attainable) than dreaming of building such fantasy structures?
Aside from the realization that society wouldn't work differently on Mars either. Look around you. The fraction of idiots in a society on Mars is unlikely to be lower than here on Earth.
"In other words, isn't the threat to the human species mostly within itself, and finding solutions to those issues much more impactful (and attainable) than dreaming of building such fantasy structures?"
Society will break down, once there is no more hope.
Good sci-fi stories, like a colonisation of mars (like in the mars trilogy from Kim Stanley Robinsons) gives people hope, that a different world is possible, therefore (helping) preventing that breakdown in the first place.
This is the reason, why so many otherwise smart people ignored reality and signed up for Mars One for example. It is the dream of having the chance to start over in a clean way.
"The fraction of idiots in a society on Mars is unlikely to be lower than here on Earth. "
And when you have colonists with that altruistic mindset, then yes - the idiot rate of that society has the potential to be significantly lower. This is why people would sign up for one way tickets - exactly to get away from the idiots here on earth.
But yes, a real mars colony is very far away and would likely stay a hellhole for a long time, until either terraforming becomes realistic, or big domes, that protect enough from radiation, but gives people freedom to move in sunlight.
No one wants to go to mars, to become a mole in a bunker, even though this is what the beginning most likely will be. It is the dreams, that attract us Mars enthusiast. I would argue, if there would be more people dreaming, instead of mindlessly watching netflix over and over, there would be a better chance to make those dreams real. Also here on earth.
Ok, but you do care about their well-being. And their well-being will depend on their offspring, etc.
I would not be comfortable knowing, that the children I helped bring into this life are doomed in the long run. That would be pointless to me, there needs to be a way forward, whether it is mars or something else.
1000 generations into the future? People to whose genome you contributed 2^-1000, i.e. almost nothing? Who know neither your name nor care about it? Like you don't really care about your ancestors 1000 generations ago? Or 100,000 generations?
I don't get it.
Basically: Let's face it, when we're dead then we're dead. That's it. You have your life. Trying to achieve some sort of immortality or higher purpose by creating offspring is just as futile as praying or paying some quack to help you with afterlife matters.
"Basically: Let's face it, when we're dead then we're dead. That's it."
If you feel that unconnected, than yes, that was it to you.
And sure, I will be dead one day, too and my name forgotten. That doesn't mean, my life was without purpose nor significance, because I do feel part of something bigger. Progress of humankind and the spreading of life and consciousness in general.
I don't know the names of my ancestors, but they are of significance, as without them, I wouldn't exist and without me, neither would the 1000. generation after me.
There are probably at least 20 stereotypes/organizations objectively more dangerous than "crazy MAGA freak with a gun", but congratulations, you've contributed to political divisiveness on a tech-oriented forum!
And why would anybody care? Will you or anybody who will know about you be alive at that point?
There are millions if not billions alive today who are suffering from war, famine, dictatorships. And climate change is just making that worse. It would be more reasonable to help those souls instead.
> What do you think the effect of putting an output on Mars will be on Climate Change? I'm thinking negligible in comparison.
If you are seriously saying that getting 20k people to Mars is impacting Earths climate less than getting them to Mars then you need a reality check.
Hint: You can't not just not walk there, but anything apart from sunlight to support life isn't there which even Antarctica has in abundance (oxygen and water).
Emissions per human on a Falcon 9 (assuming 4) : 106
Emissions for a Starship launch: 2700
Emissions per human on a Starship launch (assuming 100) : 27
Emissions per year for America: 5,000,000,000
Emissions per year for a single American: 15
Emissions per for for a single American over an 80 year lifespan: 1200
----
I don't know if people don't really appreciate how many people there are, overestimates rocket pollution, or just like some person reads something on the internet, somebody else repeats it, and nobody at any point bothers to see if what anybody is saying makes any sense. Rocket launches are such a nothing-burger in terms of emissions that yes sending people to Mars (assuming they stay for a while) would definitely be a net reduction in emissions.
For some fun tangential data, to match the current emissions of the US, alone, you'd need to launch about 12 million Falcon 9s. Last year was the biggest year, for space, by far with a whopping global total of 178 orbital launches. So the entire global pollution impact, for that record breaking year, was equivalent to ~5,000 Americans.
> seriously saying that getting 20k people to Mars is impacting Earths climate less than getting them to Mars
It impacts the pristine nature of Antarctica less. You’re also ignoring motivation. There are smart people motivated to see Mars. (Maybe not to settle. But to visit. The same way one may be curious to visit Antarctica without wanting to live there.)
>If you are seriously saying that getting 20k people to Mars is impacting Earths climate less than getting them to Mars then you need a reality check.
no I'm saying their excess heat generated in a polar region will be more detrimental than the excess heat generated on Mars will be. Among other things.
Basically that the day to day living in the area being damaged is going to be more damaging than the one off transportation. That said I haven't done the calculation, but since I was the first one to even bring it up I doubt anyone has done it either.
> no I'm saying their excess heat generated in a polar region will be more detrimental than the excess heat generated on Mars will be
This is not how climate works, not at all. The issue isn't “the amount of excess heat”, it's about how many shit-tons of greenhouse gases we would put in our atmosphere by sending those people to those two places.
And given you need to send more stuff on Mars to make it livable than on Antarctica + the fact that you'd send them with freaking rockets instead of boats, it's going to be several orders of magnitude more damaging.
> If you are only selecting a single row, a join will be instantaneous.
Exactly. It's not like the join materializes explicitly in memory.
This has all been known for decades since the beginning of relational databases. That's why taking a DB class is valuable, or at least reading a good DB fundamentals book.
It's not at all clear that maximizing absolute quality of life is the best ultimate goal.