4 ms·
Absolutely, because it keeps you from wasting time. Computer programming is applied analytic philosophy and unfortunately very few people realize this. For exam
by sedachv 9y ago
Absolutely, because it keeps you from wasting time. Computer programming is applied analytic philosophy and unfortunately very few people realize this. For example, if more people knew about the shortcomings of Platonism, we wouldn't be wasting time on idiotic fads like OO patterns.
- pasabagi 9y agoCan you expand on this? To me, Plato seems like a fairly good fit for the computer world. I also think that, from the perspective of analytic philosophy, OO patterns make some kind of sense - since they allow us to clarify problems as being subsets of more general ones.
- ptrincr 9y agoI'm sure that most people who have studied OO would find many similarities with Plato's forms. The same could be said of Spinoza's attributes, however the latter is much more abstract (to say the least). Without digressing too much from the topic however, I think OO has it's place. Sometimes it's rather like constructing scaffolding prior to building a small dog house, unnecessarily complex.
- empath75 9y agoI’d think that inheritance makes oo closer to Aristotle’s categories.
- sedachv 9y ago> Can you expand on this? To me, Plato seems like a fairly good fit for the computer world. That is exactly the issue - computing is the closest thing we will ever have to Platonic Idealism. You can create simple, elegant, symmetric worlds. Many people instead assume that whatever poorly designed programming language is around at the moment is the be-all, end-all Platonic world that they must inhabit, and then proceed to come up with all kinds of dumb workarounds because the programming language does not model whatever they are trying to express, all the while patting themselves on the back for being clever and creating "abstractions." OO patterns do not make any kind of sense. There is no "generality" or "abstraction" about Singletons or Factories. They are made-up nonsense terms for ad-hoc techniques people hacked together to work around the problems they had trying to apply certain classes of OO languages to modeling certain kinds of problems in the real world. So the contrast should be between different philosophic schools - if patterns (and OO inheritance) is like Platonism, what would materialism be? I think DSLs and DDD is a kind of materialist view on computer programming. And DDD's emphasis on clear and precise naming and concepts is very much what analytic philosophy is also concerned with.
- pasabagi 9y ago>OO patterns do not make any kind of sense. Isn't this a matter of perspective, though? I've been thinking recently that programming languages are kinda like hexidecimal numbers or logarithms - essentially shorthands that allow us to handle stuff the human brain isn't built for. In this sense, object oriented thinking shouldn't be any worse than any other kind of thinking, provided the practitioner finds it useful for making the problem at hand tractable. I can see there would be two obvious problems with this kind of relativism - if there were performance implications, or maintenance implications. But I don't see OO stuff causing these in and of itself.
- EugeneOZ 9y agoShould people work on OpenSource at all after reading Niccolò Machiavelli?
- machiaweliczny 9y agoYes.
- nickpsecurity 9y agoOr seeing it in practice as capitalist technologists practicing the alternative accumulated enough wealth to buy politicians who passed patent laws allowing FOSS developers/companies to be put out of business, regulators who may penalize new services on Internet, and API rulings in court to reduce interoperability with or escape to FOSS alternatives? I think the default should be commercialized variants of either flexible shared-source or open source whose players pull together in lobbying and media to advance FOSS interests like their opponents do to advance lock-in and anti-competitive practices. Otherwise, the game continues with one side playing aggressively using every strategy available, the other side mostly is on the bench, and probability favors one side dominating in that for a long time.
- igravious 9y ago> Computer programming is applied analytic philosophy A program may direct its attention to any sort of digitally represented piece of information–as computer science progresses the things that can be represented expand over time. What in the main analytic philosophers care about are philosophical concepts which are a subset of all knowledge. Therefore by this reckoning computer programming is not applied analytic philosophy. You are also suggesting that there is some sort of pure/applied distinction within analytic philosophy. That's unorthodox. If there were such a distinction though you're suggesting that software engineering might be the way we take philosophical formalisms and apply them to the world. I think philosophers would argue that philosophy already does that.
- sedachv 9y agoHere is a definition of analytic philosophy from Wikipedia (https://en.wikipedia.org/wiki/Analytic_Philosophy https://en.wikipedia.org/wiki/Analytic_Philosophy): "As a philosophical practice, [analytic philosophy] is characterized by an emphasis on argumentative clarity and precision, often making use of formal logic, conceptual analysis, and, to a lesser degree, mathematics and the natural sciences." That is exactly what you do when you are doing computer programming. So computer programming is the practice of applying the techniques of analytic philosophy to computers.
- igravious 9y agoNo it is not. Read your own excerpt. analytic philosophy is a philosophical practice; computer programming is a software engineering practice. They are not the same thing. That's not to say that the practice of philosophy couldn't be done digitally. I'm sure over time more and more of it will. But to go from there to applied analytic philosophy is computer programming is nonsensical.
- nullpunkt 9y agoI find your reasoning quite short-sighted.
- gglitch 9y agoI'd also like to hear more about what you mean. I imagine 'Platonism' refers to his theory of the forms, which as an example of abstraction seems pretty useful, if taken in his case to an extreme. He seems pretty solid on modeling problems without getting caught up in implementation details, at least.
- nullpunkt 9y ago+100000000