Good god, I hope not. When I saw the title for this article I thought for sure it was referring to errors caused by the aggregation of questionable digits resulting from machine precision floating point operations, not something as simple as type conversions. Excel has been the bane of my existence for years because testers keep trying to use it to verify results from a data processing framework I wrote where the operations for some use cases involve 20+ digit decimals. No matter how many times I explain to them the concepts of machine vs. arbitrary precision, decimal precision vs. accuracy, rational vs. decimal representations of numbers, etc. the spurious 'rounding error / does not match the XLS' bug reports just keep coming. Drives me nuts. The idea that scientists may be making the same mistakes with important research is kind of scary.
Then again, I am usually shocked by the amount of error considered tolerable in the scientific / EE applications of the framework. The real anal retentives are the financial use cases, which tend to include 'penny allocation' algorithms for distributing fractions of pennies left as remainders from dollar amounts in the 10s of millions, and they absolutely will file a critical severity issue over a.00000000001 discrepancy.
Objective science to prove the superiority of a programming paradigm, something which is subjectively ambiguous, which you disingenuously demand as if it exists (it doesn't), with every intention of rejecting it on tautologically 'reasoned' subjective grounds (AKA bullshit)? Yes, that is a thing you made up, and then tried to use it to push goalposts around so many times you don't even remember what argument you are failing miserably to refute.
Re-read this travesty of rhetoric over again if you need a reminder: I never so much as mentioned the merit of OO relative to whatever lunatic scratchings you call coding, because that would be as idiotic as your 'I like hammers, screwdrivers are stupid' arguments, I am simply here to point out that you don't know what the fuck OO is in the first place, much less have anything coherent to say about it. Every tool has a proper place and use, and making relative value judgements between them is something fuckwits do when they only know how to use one thing. Sometimes they are so magnificently stupid that they demand that others prove with 'science' that one is better than the other.
Now, you will be happy to hear that my actual argument is something for which I actually do have scientific proof, which you were so kind to provide in the form of your bumbling manifesto. Tell you what, post a submission here linked to your blog and let everybody know how you've rooted out this terrible OO hoax perpetrated on the industry. I'm sure you'll receive nothing but support and praise for your well-reasoned ideas, and that nobody else will do as I am currently doing and start slicing it up into hilarious quotes of the day to amuse the team.
Oh, you mean the nonsense thing which has never existed and you made up to move goalposts around? No thanks, I'm far too absorbed now with my new favorite humor blog. It's this comedic genius who wrote a satirical masterpiece exploring what happens when extreme hubris coincides with extreme incompetence and a touch of mental instability.
No I'd rather read your stuff, thanks. I Googled it, and I have to sincerely thank you - the first screen length was enough to ensure me that just because I am out of John Oliver episodes, I will not be lacking for entertainment for a while. Also the last few weeks have been a crunch for the team, and I am 100% serious when I say that I will be holding a morale meeting tomorrow so we can all enjoy it. Thank you for making this slog have a worthwhile destination.
Oh man, now I am dying to read this blog. If this circular gibberish is what you come with when pressed, I really want to see what you can do when you take your time. Link, please.
You are responding to "Anonymous". So how exactly do you assign multiple conversations to one person?
Because writing styles and personal agendas are distinctive. But who cares about that, because now here you are with an actual user account repeating the same disgusting agenda.
And probably more who don't say anything at all because there is a bit of a witch hunt when it comes to everything related to this. If you are ever accused of anything like this, I expect you will find that logic and fact will go right out the door, and you will suffer regardless of the outcome.
Bull. Fucking. Shit. Read this again:
despite the fact that VIEWING A PICTURE IS AN INNONCENT CRIME...for an activity that didn't harmed anyone.
This is not a statement about false accusation, having pictures planted or innocently stumbling on something. This is a rationalization for why such an action should be acceptable. It isn't. 'Viewing' and 'activity' are not passive words. And stop calling it 'this'. It's 'actively viewing child pornography'. Insert that in your comment instead of 'this' and re-post it if you feel so strongly about it - your shitty attempts at semantically softening the issue are not convincing anybody, and clearly illustrate that you yourself know you are wrong and need to obfuscate with vague language.
IMO, what you see does not define who you are, what you think or how you feel.
Nice try again using the passive 'see' not 'view'. You have obviously spent a lot of time convincing yourself that 'this' is not a crime and that people who do 'this' are not in need of serious help. Nobody else is falling for it.
In 15 years of working with OOP I have never heard it sold primarily on the basis of domain modeling, and anybody who had done so would have been laughed out of the room. You seem to be confusing the common entry-level examples of 'automobile/car/truck', 'bookstore/book', etc. as representing some kind of mission statement on what OOP is about, which makes about as much sense as assuming from 'hello world' that it is about scripting. Had you stuck around long enough to learn design patterns, you would have found that these (poorly devised) initial examples cease to play a role rather quickly because OOP is about managing logic, not model entities.
"Reuse" was a close second
Better, but a vast oversimplification. I would give you more credit if you weren't 2 items into this enumeration without mentioning a single actual OOP principle.
"fitting the way humans think"
Humans do not think in compartmentalized regions of internally consistent logic assembled into 'correct by construction' higher level constructs. They are irrational and perfectly happy to proceed with actions and assumptions while lacking proof that they are valid or even while staring contradictory evidence in the face. This is the polar opposite of OOP.
I used to blog heavily on OOP and followed that stuff closely
In other words, "trust me, I'm smart". Snarky jabs aside, I would like to read these blogs, because to be honest everything you have said so far has been nonsense to me.
by my estimates
Would that be the 'real science and real numbers' which you directed me to acquire earlier without citing any references?
Now whether that "should be" the main thrust is another matter, for I'm just reporting on human interest level in that spot; not tool value.
Oh OK, so your actual thesis is 'people use tools incorrectly sometimes and that is bad'. On this we agree, but I'm still not sure why you felt that it was an appropriate entry into a discussion on OOP, within which nobody had mentioned domain modeling until you showed up. Here's a reminder:
It turns out OOP can be a pretty good tool for name-space management in many cases, but it has stunk at domain modelling
This is the kind of sentence that makes me feel absolutely confident in ending a candidate interview immediately and knowing that I have made the right choice.
Oh I see what's happened here. You think 'Object-Oriented Programming' and 'Object-Oriented Domain Modeling' are the same thing. Now I'm the one who's embarrassed for even engaging with somebody who has their concepts so backwards. You're wrong on both counts really, but being as how you don't understand either one well enough to distinguish them I suppose I should not be surprised.
That, or somebody at Slashdot could write the single line of JS necessary to prompt you for confirmation before navigating away when you have a comment edit in progress. Why everybody seems to think this is a browser problem is beyond me.
The police and society at whole have no sympathy for "child molestors", despite the fact that VIEWING A PICTURE IS AN INNONCENT CRIME...for an activity that didn't harmed anyone.
I've seen you seed this unsubtle agenda into other comments before (or, God help us there are more than one of you out there trying to rationalize child porn to yourselves). It is clearly something in which you have a personal stake. Get help.
Trump will run the USA like a business, that's why he has my vote, although he hasn't announced privatisation of vast parts of the government yet, which I would really like.
Ah yes, Trump the living Rorschach test. Apparently while we are meant to be ignoring all the insane things he says as sarcasm or nonsensical jokes, we are also supposed to be inserting all of our greatest policy desires between the lines. I guess I've been holding my Trump wrong this whole time. Let me just flip this around and...oh! Now it's a pretty butterfly! Go Trump!
...in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defense, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity...
Not exactly the best charter statement for a profitable business.
Based on our previous conversation I already know this to be a disingenuous request, and frankly you should be embarrassed to have made it. I'm not going to run a CS101 workshop for you. Read a book, come back when you can demonstrate a working understanding of what OOP actually means, and I will be happy to have an earnest debate about its merits in various use cases. As the person claiming that the majority of enterprise middle-tier application developers in the world are doing it wrong, the burden of proof is on you. And no, popularity does not equal merit, but it is perhaps something you should consider before claiming something you don't understand to be bunk just because apparently you have not found a use for it in your limited domain.
No I get that, and you're not wrong per se, but if either domain modeling or namespace management is what you looked for in OOP you severely missed the point. If I were to make a list of the things for which I find OOP useful, neither of those would be on it.
Wrong. TOCs for these services have clauses stating myriad reasons why they may drop you, and they are typically phrased in such a way as to be effectively arbitrary. The only reason ISPs don't invoke these clauses as often as Twitter is that it takes law enforcement involvement to tie an online action to an ISP customer in the first place. Harassment is chief among the reasons your phone company might drop you, and the only reason this is less common is that troll types generally don't have the balls to make direct contact with their target. These services are not holy bastions of 'free speech' (as in the freedom to be an aggressive prick to others) either, they just have fewer incidents of revoking access.
OK, now we are just talking past each other. As I said already, I am in full agreement with you that HTML is a clusterfuck. You solicited options (I assumed 'stop using HTML' wasn't a viable one) , I suggested one, you rejected it. No biggie. Good luck (not sarcasm).
Don't read too well, huh? We never chose a DB to begin with, and never will. We deliver to customers who already have their own RDBMSs of various flavors, and we can do so freely because we kept the business logic in the middle tier, where there is not one single line of code that knows anything about which RDBMS platform it is talking to. This is also why I am having a ball right now seeing how blindingly fast it goes running against Cassandra. But yeah, everybody have fun re/writing all your procedural DB cruft.
Of course those frameworks have crazy kludge on the inside - that's the point of the abstraction layer. It's not their fault that the implementation of the HTML standard is a ruinous disaster, they just help you mitigate that and free your own time to do what you are actually being paid to do.
You may not have noticed that I did not enter this thread in defense of HTML as the holy grail of UI, I was responding to your solicitation for other ideas. You have a lot of reasons for why enterprise-level frameworks with dedicated dev/support teams will always suck because the standard is so busted, and yet somehow these are also reasons why you are better off trying to solve the same problems yourself. I don't follow your logic, but hey - do as you will, you are not on my budget.
I don't really want to try to debate this with you further (I get enough of that at work, and I know it is futile), but I just want to say this since you seem like a smart guy and there is a remote possibility that it will be received as honest advice, not a slight: this is a classic case of not-invented-here syndrome. If there were a DSM-IV entry for it, these would be the textbook rationalizations about how 'framework X has a subset of things I don't like' or 'tool Y may lose support' or 'too many layers'. People who come to budget arbitrage and architectural review with these types of arguments tend to have their R&D funding cut where I work. In the end, we are responsible for delivering software with high-level functionalities on a fixed timeline and budget, not being proud of writing our own TCP socket interfaces. The quantity of software demand in the world is beyond what can be achieved if we don't leverage the tools and experience of others.
Well, I can tell you that I have used it to implement a web application that is complexity-wise on par with an IDE and I have observed none of these things. I also like it because largely, when it is deficient in some area, it is fairly easily to get down under the covers and tinker. But, like I said, there are plenty of other frameworks out there - my point is that abstracting yourself from the DOM is a good thing if you are worried about browser cross-compatibility. For anything of a relatively large scale, I don't think it is worthwhile to deal directly with the DOM any more than it is to write your own XML/JSON parser, hand code AJAX requests, code directly against the JMS API, etc. Somebody else has already spent more man-hours than you will ever have at your disposal on making abstraction layers to these things, and with some judicious evaluation up front, their foibles tend to outweigh the cost and risk of roll-your-own.
You are preaching to the choir - perhaps you meant to replay to Creimer?
By the way, even simple addition is not as axiomatic as you seem to think. You don't get to jump right to "fact of math" - that is just the kind of shortcutting that lets people like Creimer think they have an inroad with their 'faith' derailments. 2+2=4 is not an axiom, it is a statement. Statements require proofs, and the axioms of that proof are waaaay lower level than you think.
A substantial (100s of pages) portion of Principia Mathematica was devoted to proving that 1+1=2. Or, check out the number theory proof in Godel, Escher Bach for why a+b == b+a. These statements are not as easy to prove as you think without making assumptions. Don't forget that all these things you call 'fact' had to be built up and proved, otherwise your bold claims of fact really do take on the appearance of faith.
In the context of your initial statements regarding the 'faith' of science:
It takes faith to believe that 2 + 2 is 4. The word "because" isn't a good answer.
Your posting of this Sagan quote shows that you have profoundly misunderstood what he meant. The contradiction to your apparent interpretation is right there in the quote.
Maybe you should stop trying to throw out progressively more inane one-liners and platitudes and actually read what people are writing. There is an interesting discussion you are missing.
still use Excel to do the crunching
Good god, I hope not. When I saw the title for this article I thought for sure it was referring to errors caused by the aggregation of questionable digits resulting from machine precision floating point operations, not something as simple as type conversions. Excel has been the bane of my existence for years because testers keep trying to use it to verify results from a data processing framework I wrote where the operations for some use cases involve 20+ digit decimals. No matter how many times I explain to them the concepts of machine vs. arbitrary precision, decimal precision vs. accuracy, rational vs. decimal representations of numbers, etc. the spurious 'rounding error / does not match the XLS' bug reports just keep coming. Drives me nuts. The idea that scientists may be making the same mistakes with important research is kind of scary.
Then again, I am usually shocked by the amount of error considered tolerable in the scientific / EE applications of the framework. The real anal retentives are the financial use cases, which tend to include 'penny allocation' algorithms for distributing fractions of pennies left as remainders from dollar amounts in the 10s of millions, and they absolutely will file a critical severity issue over a .00000000001 discrepancy.
Objective science to prove the superiority of a programming paradigm, something which is subjectively ambiguous, which you disingenuously demand as if it exists (it doesn't), with every intention of rejecting it on tautologically 'reasoned' subjective grounds (AKA bullshit)? Yes, that is a thing you made up, and then tried to use it to push goalposts around so many times you don't even remember what argument you are failing miserably to refute.
Re-read this travesty of rhetoric over again if you need a reminder: I never so much as mentioned the merit of OO relative to whatever lunatic scratchings you call coding, because that would be as idiotic as your 'I like hammers, screwdrivers are stupid' arguments, I am simply here to point out that you don't know what the fuck OO is in the first place, much less have anything coherent to say about it. Every tool has a proper place and use, and making relative value judgements between them is something fuckwits do when they only know how to use one thing. Sometimes they are so magnificently stupid that they demand that others prove with 'science' that one is better than the other.
Now, you will be happy to hear that my actual argument is something for which I actually do have scientific proof, which you were so kind to provide in the form of your bumbling manifesto. Tell you what, post a submission here linked to your blog and let everybody know how you've rooted out this terrible OO hoax perpetrated on the industry. I'm sure you'll receive nothing but support and praise for your well-reasoned ideas, and that nobody else will do as I am currently doing and start slicing it up into hilarious quotes of the day to amuse the team.
Oh, you mean the nonsense thing which has never existed and you made up to move goalposts around? No thanks, I'm far too absorbed now with my new favorite humor blog. It's this comedic genius who wrote a satirical masterpiece exploring what happens when extreme hubris coincides with extreme incompetence and a touch of mental instability.
No I'd rather read your stuff, thanks. I Googled it, and I have to sincerely thank you - the first screen length was enough to ensure me that just because I am out of John Oliver episodes, I will not be lacking for entertainment for a while. Also the last few weeks have been a crunch for the team, and I am 100% serious when I say that I will be holding a morale meeting tomorrow so we can all enjoy it. Thank you for making this slog have a worthwhile destination.
Oh man, now I am dying to read this blog. If this circular gibberish is what you come with when pressed, I really want to see what you can do when you take your time. Link, please.
You are responding to "Anonymous". So how exactly do you assign multiple conversations to one person?
Because writing styles and personal agendas are distinctive. But who cares about that, because now here you are with an actual user account repeating the same disgusting agenda.
And probably more who don't say anything at all because there is a bit of a witch hunt when it comes to everything related to this. If you are ever accused of anything like this, I expect you will find that logic and fact will go right out the door, and you will suffer regardless of the outcome.
Bull. Fucking. Shit. Read this again:
despite the fact that VIEWING A PICTURE IS AN INNONCENT CRIME...for an activity that didn't harmed anyone.
This is not a statement about false accusation, having pictures planted or innocently stumbling on something. This is a rationalization for why such an action should be acceptable. It isn't. 'Viewing' and 'activity' are not passive words. And stop calling it 'this'. It's 'actively viewing child pornography'. Insert that in your comment instead of 'this' and re-post it if you feel so strongly about it - your shitty attempts at semantically softening the issue are not convincing anybody, and clearly illustrate that you yourself know you are wrong and need to obfuscate with vague language.
IMO, what you see does not define who you are, what you think or how you feel.
Nice try again using the passive 'see' not 'view'. You have obviously spent a lot of time convincing yourself that 'this' is not a crime and that people who do 'this' are not in need of serious help. Nobody else is falling for it.
It was the main thrust as promoted and taught.
In 15 years of working with OOP I have never heard it sold primarily on the basis of domain modeling, and anybody who had done so would have been laughed out of the room. You seem to be confusing the common entry-level examples of 'automobile/car/truck', 'bookstore/book', etc. as representing some kind of mission statement on what OOP is about, which makes about as much sense as assuming from 'hello world' that it is about scripting. Had you stuck around long enough to learn design patterns, you would have found that these (poorly devised) initial examples cease to play a role rather quickly because OOP is about managing logic, not model entities.
"Reuse" was a close second
Better, but a vast oversimplification. I would give you more credit if you weren't 2 items into this enumeration without mentioning a single actual OOP principle.
"fitting the way humans think"
Humans do not think in compartmentalized regions of internally consistent logic assembled into 'correct by construction' higher level constructs. They are irrational and perfectly happy to proceed with actions and assumptions while lacking proof that they are valid or even while staring contradictory evidence in the face. This is the polar opposite of OOP.
I used to blog heavily on OOP and followed that stuff closely
In other words, "trust me, I'm smart". Snarky jabs aside, I would like to read these blogs, because to be honest everything you have said so far has been nonsense to me.
by my estimates
Would that be the 'real science and real numbers' which you directed me to acquire earlier without citing any references?
Now whether that "should be" the main thrust is another matter, for I'm just reporting on human interest level in that spot; not tool value.
Oh OK, so your actual thesis is 'people use tools incorrectly sometimes and that is bad'. On this we agree, but I'm still not sure why you felt that it was an appropriate entry into a discussion on OOP, within which nobody had mentioned domain modeling until you showed up. Here's a reminder:
It turns out OOP can be a pretty good tool for name-space management in many cases, but it has stunk at domain modelling
This is the kind of sentence that makes me feel absolutely confident in ending a candidate interview immediately and knowing that I have made the right choice.
Oh I see, it's a max depth thing. Guess I've never had a tedious debate go on this long before.
Domain modelling is how OO was "sold" to us for roughly the last 2 decades
Sure you did, by making the utterly ludicrous statement that domain modeling was the main thrust of OO.
Note to Slashdot: apparently replying from a notification replies to the parent, Weak.
Domain modelling is how OO was "sold" to us for roughly the last 2 decades
Sure you did, by making the utterly ludicrous statement that domain modeling was the main thrust of OO.
Oh I see what's happened here. You think 'Object-Oriented Programming' and 'Object-Oriented Domain Modeling' are the same thing. Now I'm the one who's embarrassed for even engaging with somebody who has their concepts so backwards. You're wrong on both counts really, but being as how you don't understand either one well enough to distinguish them I suppose I should not be surprised.
That, or somebody at Slashdot could write the single line of JS necessary to prompt you for confirmation before navigating away when you have a comment edit in progress. Why everybody seems to think this is a browser problem is beyond me.
The police and society at whole have no sympathy for "child molestors", despite the fact that VIEWING A PICTURE IS AN INNONCENT CRIME...for an activity that didn't harmed anyone.
I've seen you seed this unsubtle agenda into other comments before (or, God help us there are more than one of you out there trying to rationalize child porn to yourselves). It is clearly something in which you have a personal stake. Get help.
Trump will run the USA like a business, that's why he has my vote, although he hasn't announced privatisation of vast parts of the government yet, which I would really like.
Ah yes, Trump the living Rorschach test. Apparently while we are meant to be ignoring all the insane things he says as sarcasm or nonsensical jokes, we are also supposed to be inserting all of our greatest policy desires between the lines. I guess I've been holding my Trump wrong this whole time. Let me just flip this around and...oh! Now it's a pretty butterfly! Go Trump!
...in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defense, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity...
Not exactly the best charter statement for a profitable business.
Based on our previous conversation I already know this to be a disingenuous request, and frankly you should be embarrassed to have made it. I'm not going to run a CS101 workshop for you. Read a book, come back when you can demonstrate a working understanding of what OOP actually means, and I will be happy to have an earnest debate about its merits in various use cases. As the person claiming that the majority of enterprise middle-tier application developers in the world are doing it wrong, the burden of proof is on you. And no, popularity does not equal merit, but it is perhaps something you should consider before claiming something you don't understand to be bunk just because apparently you have not found a use for it in your limited domain.
No I get that, and you're not wrong per se, but if either domain modeling or namespace management is what you looked for in OOP you severely missed the point. If I were to make a list of the things for which I find OOP useful, neither of those would be on it.
Wrong. TOCs for these services have clauses stating myriad reasons why they may drop you, and they are typically phrased in such a way as to be effectively arbitrary. The only reason ISPs don't invoke these clauses as often as Twitter is that it takes law enforcement involvement to tie an online action to an ISP customer in the first place. Harassment is chief among the reasons your phone company might drop you, and the only reason this is less common is that troll types generally don't have the balls to make direct contact with their target. These services are not holy bastions of 'free speech' (as in the freedom to be an aggressive prick to others) either, they just have fewer incidents of revoking access.
Oops - thought you were mocking the very idea of wanting to switch in the first place. Good afternoon, my own petard.
OK, now we are just talking past each other. As I said already, I am in full agreement with you that HTML is a clusterfuck. You solicited options (I assumed 'stop using HTML' wasn't a viable one) , I suggested one, you rejected it. No biggie. Good luck (not sarcasm).
Don't read too well, huh? We never chose a DB to begin with, and never will. We deliver to customers who already have their own RDBMSs of various flavors, and we can do so freely because we kept the business logic in the middle tier, where there is not one single line of code that knows anything about which RDBMS platform it is talking to. This is also why I am having a ball right now seeing how blindingly fast it goes running against Cassandra. But yeah, everybody have fun re/writing all your procedural DB cruft.
Of course those frameworks have crazy kludge on the inside - that's the point of the abstraction layer. It's not their fault that the implementation of the HTML standard is a ruinous disaster, they just help you mitigate that and free your own time to do what you are actually being paid to do.
You may not have noticed that I did not enter this thread in defense of HTML as the holy grail of UI, I was responding to your solicitation for other ideas. You have a lot of reasons for why enterprise-level frameworks with dedicated dev/support teams will always suck because the standard is so busted, and yet somehow these are also reasons why you are better off trying to solve the same problems yourself. I don't follow your logic, but hey - do as you will, you are not on my budget.
I don't really want to try to debate this with you further (I get enough of that at work, and I know it is futile), but I just want to say this since you seem like a smart guy and there is a remote possibility that it will be received as honest advice, not a slight: this is a classic case of not-invented-here syndrome. If there were a DSM-IV entry for it, these would be the textbook rationalizations about how 'framework X has a subset of things I don't like' or 'tool Y may lose support' or 'too many layers'. People who come to budget arbitrage and architectural review with these types of arguments tend to have their R&D funding cut where I work. In the end, we are responsible for delivering software with high-level functionalities on a fixed timeline and budget, not being proud of writing our own TCP socket interfaces. The quantity of software demand in the world is beyond what can be achieved if we don't leverage the tools and experience of others.
Well, I can tell you that I have used it to implement a web application that is complexity-wise on par with an IDE and I have observed none of these things. I also like it because largely, when it is deficient in some area, it is fairly easily to get down under the covers and tinker. But, like I said, there are plenty of other frameworks out there - my point is that abstracting yourself from the DOM is a good thing if you are worried about browser cross-compatibility. For anything of a relatively large scale, I don't think it is worthwhile to deal directly with the DOM any more than it is to write your own XML/JSON parser, hand code AJAX requests, code directly against the JMS API, etc. Somebody else has already spent more man-hours than you will ever have at your disposal on making abstraction layers to these things, and with some judicious evaluation up front, their foibles tend to outweigh the cost and risk of roll-your-own.
You are preaching to the choir - perhaps you meant to replay to Creimer?
By the way, even simple addition is not as axiomatic as you seem to think. You don't get to jump right to "fact of math" - that is just the kind of shortcutting that lets people like Creimer think they have an inroad with their 'faith' derailments. 2+2=4 is not an axiom, it is a statement. Statements require proofs, and the axioms of that proof are waaaay lower level than you think.
A substantial (100s of pages) portion of Principia Mathematica was devoted to proving that 1+1=2. Or, check out the number theory proof in Godel, Escher Bach for why a+b == b+a. These statements are not as easy to prove as you think without making assumptions. Don't forget that all these things you call 'fact' had to be built up and proved, otherwise your bold claims of fact really do take on the appearance of faith.
It takes faith to believe that 2 + 2 is 4. The word "because" isn't a good answer.
Your posting of this Sagan quote shows that you have profoundly misunderstood what he meant. The contradiction to your apparent interpretation is right there in the quote. Maybe you should stop trying to throw out progressively more inane one-liners and platitudes and actually read what people are writing. There is an interesting discussion you are missing.