My feeling was always that it was deep hierarchies that were the real problem. But people don’t always articulate it that way!
FishFace
- 0 Posts
- 26 Comments
You can also just refer to the principles; at this point OOP is more of a buzzword with too much association with enterprise Java
Great article.
A lot of people are on the “composition over inheritance” bandwagon now, but I’ve honestly not seen a situation where I felt that inheritance was used and was the wrong choice. (Though most of my experience is in python where there’s no diamond problem, mixin classes are common, etc)
What I noticed is that everyone seems to agree that inheriting implementation is useful, because you have that with traits in rust (which are agreed to be good, afaik), so in languages without traits, it seems reasonable to want to use the next best thing
FishFace@piefed.socialto
News@lemmy.world•Human brains have 5 distinct 'epochs' in a lifetime, study findsEnglish
4·2 days agoThey say that fitting different degree Polynomials robustly identifies inflexion points seeing 10, 30 and 80. I think they only went for a higher degree because it was “visually underfit” at lower degrees, ie no scientific basis.
This is already after the dimensionality reduction which has its own arbitrary choice that affects what inflexion points you can identify.
This definitely smells like “we threw some data into a bunch of statistical analysis without thinking about it and wrote down anything that looked publishable”
FishFace@piefed.socialto
Open Source@lemmy.ml•Any opensource alternatives to imgflip/kapwing for creating memes?English
1·3 days agoIf you want an open source tool, you’re not going to have a proprietary font in it, are you?
But you’re right that I hadn’t thought about the borders.
FishFace@piefed.socialto
Open Source@lemmy.ml•Any opensource alternatives to imgflip/kapwing for creating memes?English
1·3 days agoThe image editing part is already solved. The problem is the massive library of templates, which are copyright some unknown person, hence a legal liability. If you need to upload your own template you may as well use GIMP - it’s not like it’s hard to create a few text layers after adding the template. Prepositioning them and scaling them isn’t that big a deal.
FishFace@piefed.socialto
News@lemmy.world•National Parks to raise fees for millions of international tourists to popular US parksEnglish
11·3 days agoIstanbul makes a lot more sense as I’m sure Turkey’s average wage is lower than that of many tourist countries. But the USA is a very rich country, and charging high fees will put people off.
FishFace@piefed.socialto
Programmer Humor@programming.dev•What are some of the worst code you have seen in a production environment?English
11·4 days agoPresumably every so often there’s a dispute because 0 + (0.3 + 0.3 + 0.3) - 0.3 - 0.3 - 0.3 is not equal to 0 (in floating point arithmetic).
FishFace@piefed.socialto
News@lemmy.world•Campbell’s Soup VP mocks ‘poor people’ who buy its food in secret recordingEnglish
6·4 days agoI googled this and found “no more than four cans a week”
Weird that anyone capable of understanding “test suite” is incapable of understanding that LLMs don’t make progress when not generating tokens
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
1·4 days agoGetting it on the third guess is not the brag you seem to think, and I’m still not engaging with you on the rest.
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
1·5 days agoI mean how can you define a sensible way to subtract Infinity from an array, or add an object to a string?
TypeError.
There are also various sensible ways, for example if you have an array of floats, subtracting Infinity from the array could result in an array of the same length as the original, with each value being negative Infinity. But in general inhomogeneous types should not be addable without careful thought to create a type system which is consistent and coherent. That is exactly what JavaScript did not do.
It doesn’t “handle bad code gracefully”; it handles it in a way that’s hard to reason about and hence hard to work with.
The way JavaScript defines it is predictable
You literally just failed to predict it, so I don’t think there’s any point continuing this conversation.
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
1·5 days agoOperator overloading is a perfectly reasonable feature in a language to make use of and to assume works. If it is not going to behave sensibly, it should be an error, not nonsense, because having it work for strings but not other sequence types is surprising, and surprising is bad.
As I said, the fact that you didn’t know the result means that JavaScript’s type system is opaque and hard to understand. You might have understood that there are some things you “shouldn’t do” but being hard to understand is a bad aspect of a language even if it doesn’t prevent you from writing correct, good code.
By way of analogy, thing of a language which, like JavaScript, doesn’t require semicolons, but they are accepted. Except, if you use a semicolon after the last statement in a block, that statement never gets executed. Your reply is like saying, “just don’t use semicolons - they’re not needed” instead of acknowledging that an element of the language which is prone to causing mistakes is bad design.
FishFace@piefed.socialto
Linux@lemmy.ml•780k Windows Users Downloaded Linux Distro Zorin OS in the Last 5 WeeksEnglish
2·5 days agoAll the information I found about the “creative suite” is that it’s Krita, Kdenlive, Darktable, etc.
FishFace@piefed.socialto
News@lemmy.world•In Geneva, US and Ukraine officials report progress on ending Russia's war but offer few specificsEnglish
1·5 days agoPutin wants a Ukraine that is completely subservient to it. Ukraine wants to retain its independence and sovereignty. All the “deals” that the US talks about are ones that hand Russia its war aims: a rump Ukraine without any plausible guarantee that Russia will not resume attacks. If Russia can resume attacks at any time, it can pressure Ukraine into adopting policies favourable to Russia, instead of those in Ukraine’s best interests; in other words Ukraine will be subservient to Russia and not be sovereign.
It’s basically as simple as that: why would Ukraine stop fighting, and even grant concessions to Russia like territory it hasn’t managed to conquer, in order to become a puppet regime of Russia, the very thing it has been trying to resist this entire time? The only reason would be if they are unable to continue fighting effectively and so have to choose between a slow, damaging defeat and a cleaner surrender. But this isn’t the case! The fight has been more or less in a stalemate for ages.
Too many people, including in governments, do not understand (or are just unwilling to recognise) that it is about a fight for sovereignty, not a question of how much territory Russia gets in the end. If Ukraine is left unable to, for example, pursue a closer relationship with the EU because of the threat of Russian aggression, is left susceptible to Russification through Russian propaganda so that Ukrainian culture risks being snuffed out, there is no point in doing a deal.
It’d be like if there was someone in your house who has just beaten you up and says if you ever so much as speak to Barbara again he’ll kill you, and the police come and say “look, just give him your wallet and both of you stop fighting!”
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
1·5 days agoA language’s deficiencies are rarely obvious when everyone is writing it perfectly.
But a coherent type system gives the programmer confidence - for free. Do you know what
[1] + [2]is in JavaScript? Do you know what type it is? JavaScript teaches you that it has operator overloading for built-in types but then it behaves in such a dumb way you can’t use it.That’s explained by a desire to be extremely lenient, but it’s not justified by it. Programming langauges are generally not made by idiots, so every bad decision has an explanation.
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
0·5 days agoML is a very new field and so most programs are not mature, and indeed they can have you messing around with venvs and such.
But most python software people actually used is packaged by a distro already.
FishFace@piefed.socialto
Programmer Humor@programming.dev•It was best as a silly toy language in the 1990's...English
01·5 days agoJust look up the video entitled “wat” which is mainly about JavaScript

It sounds like you’ve picked an axe to grind rather than talking about the article.
Do you have something relevant to say or just vague nothingness to rant about?