I just installed Brave. Then I realized it doesn't allow Chrome extensions? I have so many ranging from email notifiers to cookie opt-outs to my own custom extensions for security and usability (like one that colors usernames on HN, for example)... how should I give all those up just to use a different browser?
eBay is only in the buyer's favor in terms of refunds. It doesn't actually go after fraudsters who refund you immediately to make you shut up after you call out their counterfeits and whatnot.
No, it absolutely is not. OOP has lots of well-known unique characteristics such as inheritance, dynamic dispatch, polymorphism, encapsulation, etc... as well other less-frequently-noticed semantic differences like the fact that the message-passing follows a subroutine model (which may be more difficult to appreciate if that's the only thing you're used to). Yes, you can do OOP in C, but just making a struct and defining procedures to operate on it doesn't imply any OOP.
> OOP has lots of well-known unique characteristics such as inheritance, dynamic dispatch, polymorphism, encapsulation, etc...
OO just means that you have a semantic entity, the object, which contains data and to which you associate code. Your main tool to work with is this object; just like in FP your main tool to work with is the function to which you associate data through closures and currying. Likewise, in logic programming your main tool is the constraint. And these aren't relevant to the language. You can do both OO and FP in most mainstream languages.
> dynamic dispatch
is just allowing to associate a different implementation to the same function name. Every languages that have some kind of function pointer allow this.
> polymorphism
is in almost every language, including FP.
data Tree a = Empty | Node a (Tree a) (Tree a)
is polymorphism. C++ templates are polymorphism. Rust traits are polymorphism.
> message-passing
is only relevant if you adhere to Alan Kay's vision of objects. I personally don't (even if the guy coined the term).
A lot of misunderstanding in what you wrote, but to comment on two parts:
> Every languages that have some kind of function pointer allow this.
It doesn't seem like you're reading the discussion. The claim the parent made was that "every time you do {X}, it is OOP". My reply was "yes, you can do OOP in C, but OOP implies far more than just {X} (it implies {Y}, etc.); merely {X} does not imply OOP".
You reply with "languages that have function pointers allow {Y}". Well yes, they do allow {Y}. Most/all of them in fact probably allow OOP in full. Nobody suggested such languages don't allow OOP (in fact I said the opposite about C). What does that have to do with the entire discussion and argument? Your argument isn't even wrong... it doesn't even compile.
> message-passing is only relevant if you adhere to Alan Kay's vision of objects. I personally don't (even if the guy coined the term).
This 100% completely misses the point of what I said. Replace it with "procedural call" if you're allergic to "message passing". The point I was making was we're talking about subroutine calls: you call a procedure and wait for it to produce a single value as the resulting output before proceeding. Again: if you're not used to other paradigms then that might be why you're missing my point here and adversely reacting to superficial things like the nomenclature. Whether you dress it as message passing or anything else has nothing to do with the issue.
> yes, you can do OOP in C, but OOP implies far more than just {X}
maybe it was not clear, the point I am trying to get across is that "OOP implies far more than just {X} " is incorrect; OOP doesn't imply any of inheritance, dynamic dispatch, run-time polymorphism, etc. I took function pointers as an example of why "supporting dynamic dispatch" is irrelevant for categorizing programming languages as OOP / not OOP (and I would even say that doing such a categorization is in itself a worthless idea).
> you call a procedure and wait for it to produce a single value as the resulting output before proceeding
I must admit my ignorance : which languages except prolog don't work like this ?
> I took function pointers as an example of why "supporting dynamic dispatch" is irrelevant for categorizing programming languages as OOP / not OOP.
Again, like everywhere else in your comments, you're conflating and confusing the language with the model/paradigm and keep trying to shove a language into a programming paradigm. Firstly, you can do OOP in assembly and yet it's not an "OOP language". The language is quite independent of the paradigm. Secondly, who was even trying to categorize languages here? You keep thinking the argument is about categorizing languages and then refute a nonexistent discussion...
> I must admit my ignorance : which languages except prolog don't work like this ?
Again: the discussion is not about trying to shove languages into categories; it's about programming paradigms. You can use the same language to code in multiple paradigms.
Look up "actor-oriented programming". It's a different model meant for concurrent processes, i.e. it's not a subroutine model since you don't need to wait for the procedure to finish and produce a result before continuing.
There are lot of "models of computation" out there (probably a better search term than "programming paradigm", btw) and people go so far as to do PhDs on these. I suggest looking around and not assuming everything is some trivial variation of OOP or FP or DP (declarative programming) or whatever you saw in undergrad.
What is object oriented programming? My guess is
that object oriented programming will be in
the 1980s what structured programming was in
the 1970s. Everyone will be in favor of it.
Every manufacturer will promote his products
as supporting it. Every manager will pay lip
service to it. Every programmer will practice
it (differently). And no one will know just
what it is.
Tim Rentsch, "Object Oriented Programming", SIGPLAN Notes, v17, n9 (1982).
OOP is all about the nouns while FP/procedural is all about the verbs. That's it really: are you modeling your system in terms of objects (nouns) or behavior (verbs)? It is super easy to tell just by looking at the names in your code. Semantic features only play supporting roles, they don't define the paradigm.
Is not saying hello when you see someone that you would normally be expected to say hello to not considered "rude"? It is to me, but it's not obnoxious...
What I would be afraid of is if these folks work in groups and they hear about the one guy who dared to go after them. Then you might get one of them arrested but your life might be under threat from a dozen others. Is it really worth it?
Would they pursue something like counterfeit software licenses or gift cards mailed via USPS, if the scale isn't as large (like <$100)? Asking since it's happened to me on smaller scales before, but the amount is smaller and I'm not sure how to prove I received whatever I received...
I once had the USPIS hunting for a $10 monthly subscription box of snacks when it was signed for at an apartment building but my friend never received it. Got a call from a gruff-sounding agent promising to look into it and everything.
I don't think I ever got a follow up after that, though...
Several studies have shown that the net health benefit of bicycling to/from work is large even when you account for accidents. Not hard to believe when you hear it halves the risk of cardiovascular disease, which is the most common cause of death in the US.
E.g. these authors find the health improvement statistically increases your life expectancy by up to 14 months, while traffic accidents statistically reduce it by up to 9 days. That's a ratio of 47 to 1.
I don't think people think in terms of life expectancy. Do you? Is a 1% chance of dying on your next ride and otherwise living 100 years equivalent to not riding your bike and living 99 years to you?
Edit regarding your comment: Oh, I see why you're confused. I didn't need to do the math because I was talking about a 1-time bike ride as an example to just get the point across -- it's already scary for 1 ride. But if you want the actual math for a lifetime, there's a ~1/5000 lifetime odds of dying in 1 year of biking. That's still pretty damn high. I don't know about you but I'd rather just give up on the 78th expected year of my life and lose the 0.1% chance of dying in the next 5 years.
I'm assuming you didn't do the math there - in your hypothetical scenario I'd likely be dead within a year if I rode a bike every day. Then I obviously wouldn't do it.
But the point of bringing up the statistic is to check "is this risk worth worrying about, to the extent that I'm not gonna do thing X"? That's what a rational person does in all situations - is the risk of flying so high that I shouldn't go on holiday? No. Is the risk of falling if I climb that cellphone tower so high that it's not worth it for the view? Yes.
It sounds like we're agreeing? I was also saying, just like you, that the choice is not based on the statistics. The parent one is the one that used the statistic to justify the choice of biking.
Usually they will forward the case on to the relevant department as long as you stay involved and apply pressure. There's nothing stopping you from personally contacting the relevant department, either.