Modernism, PoMo, and Performativity are not aesthetic trends. They are philosophical trends. Philosophy affects the ways that people view the world and hence how they go about solving problems and making judgments. Humans are not rational economic actors and so their decision processes are not driven by rational economic factors, their decisions are based on personal and philosophical factors. Sure, there's a trend to desire money because money is necessary for economic interactions. But economy is not the source of that drive, the desire for those interactions is. People consistently make decisions which are not in their economic best interests because of funny things like "morals", "community", "aesthetics", "happiness", "curiosity", and "fulfillment". The economist would say that these people are buying these traits, because that simplifies their conception of the world to only include monies, but the fact that people do not enter into these decisions rationally and cannot put a consistent price tag on these traits or even consistently measure levels of these traits, this is enough proof for me that the economist's model of human behavior is wrong. It is wrong because it ignores the human factor in human behavior.
Certainly decisions about programming language design and implementation are guided by engineering limitations, but they are driven by far more besides. Every language has an agenda. Whether that agenda is to solve a particular domain naturally, to solve it with programs that are fast, to solve it in a particular way, to be a general tool for many domains, to provide a dynamic model of computation, to provide a safe model, to provide a bare-metal model, to open new avenues of thought, to model the real world, to resemble natural language, to be derived from minimalist principles,... every language has an agenda, and few of those agendas simply acquiesce to engineering limitations. Engineering explains how, it does not explain why bother.
If not C++ / Java / Python / Ruby what else ? and more importantly how will it help me meet the real software delivery needs ? This question is unanswered.
This question is not one I aimed to answer. Of all my rants, this one aimed only to express the fact that the OO paradigm has failed, a conclusion which even I have only reluctantly come to over the years. Implicit in this is the requirement that a new paradigm must be proffered, and hence all the people devoted to OO should explore new options rather than waiting for the economical language to change.
If you want me to sell you something, today I'll sell functional programming, tomorrow who knows. Will it save the world and make it easy to gain venture capital? No. Will it be forced to evolve over time to handle emergent problem domains and new architectural designs? Yes. Will it fail? That depends on what the criteria for success are. OO claimed to solve modularity and reuse, and we see how that worked out. The criteria FP sets for itself are still in flux, but one universal claim is the ability to catch more errors at compile-time thanks to a powerful and theoretically correct type system. This is already a reality and getting better all the time. True parametric polymorphism and the concomitant code reusability is another common claim we've already reached.
The question of what the "best" language is, is not one that can ever be answered. The definition of "best" is evanescent and ever changing as it co-evolves with a world and society that continues to grow, change, and adapt. In terms of formal power they're all Turing-complete. In terms of expressive power it depends on what you're trying to express. Is Polish or Swahili the better language for poetry? Is Tzotzil or Ainu better for discussing logic? Furthermore, the very idea that such a thing as the "best" exists belies a modernist perspective still trying to shoehorn the world into a Grand Narrative. There is no such narrative, there is no single goal that we're all approaching, some ahead, some behind, some coming from different angles. If culture and art and philosophy are to complex for modernity, so too is programming which is at once culture, art, and science.
Re: This is what I learnt from this post
Date: 2008-09-05 09:21 am (UTC)From:Certainly decisions about programming language design and implementation are guided by engineering limitations, but they are driven by far more besides. Every language has an agenda. Whether that agenda is to solve a particular domain naturally, to solve it with programs that are fast, to solve it in a particular way, to be a general tool for many domains, to provide a dynamic model of computation, to provide a safe model, to provide a bare-metal model, to open new avenues of thought, to model the real world, to resemble natural language, to be derived from minimalist principles,... every language has an agenda, and few of those agendas simply acquiesce to engineering limitations. Engineering explains how, it does not explain why bother.
If not C++ / Java / Python / Ruby what else ? and more importantly how will it help me meet the real software delivery needs ? This question is unanswered.
This question is not one I aimed to answer. Of all my rants, this one aimed only to express the fact that the OO paradigm has failed, a conclusion which even I have only reluctantly come to over the years. Implicit in this is the requirement that a new paradigm must be proffered, and hence all the people devoted to OO should explore new options rather than waiting for the economical language to change.
If you want me to sell you something, today I'll sell functional programming, tomorrow who knows. Will it save the world and make it easy to gain venture capital? No. Will it be forced to evolve over time to handle emergent problem domains and new architectural designs? Yes. Will it fail? That depends on what the criteria for success are. OO claimed to solve modularity and reuse, and we see how that worked out. The criteria FP sets for itself are still in flux, but one universal claim is the ability to catch more errors at compile-time thanks to a powerful and theoretically correct type system. This is already a reality and getting better all the time. True parametric polymorphism and the concomitant code reusability is another common claim we've already reached.
The question of what the "best" language is, is not one that can ever be answered. The definition of "best" is evanescent and ever changing as it co-evolves with a world and society that continues to grow, change, and adapt. In terms of formal power they're all Turing-complete. In terms of expressive power it depends on what you're trying to express. Is Polish or Swahili the better language for poetry? Is Tzotzil or Ainu better for discussing logic? Furthermore, the very idea that such a thing as the "best" exists belies a modernist perspective still trying to shoehorn the world into a Grand Narrative. There is no such narrative, there is no single goal that we're all approaching, some ahead, some behind, some coming from different angles. If culture and art and philosophy are to complex for modernity, so too is programming which is at once culture, art, and science.