I am sorry, but I can not disagree with you more about Kuhn's "The Structure of Scientific Revolutions". Its about resistance to change and not scientific truth and, as such, it has generally applicable. At its crudest, its about the old, vested guard being unwilling and/or unable to move with the changes; the intransigent, causing great damage and delay, either get slowly pushed aside or die off. Its lessons are applicable to a broad spectrum of endeavors, not just the Sciences. I recall when Kuhn's book came out, the resistance to his ideas in the scientific community, rather self-referentially, was a demonstration of his thesis.
In addition, it has nothing to do with *the truth*. Science is not about *the truth*. Its about what works; how well it explains the current observations and the accuracy of its predictions. If you want to listen to people talk about *the truth*, find an alter. Rather, Kuhn addressed the bumpy road that leads to scientific advancement disputing the idealization of an orderly, reasoned progression. He discusses the political, sociological and cultural resistance to change in the context of the advancement of science. To resolve this point, simply show me where on the Kuhn's book Wikipedia page it mentions *the truth*; its about resistance to change. So, one can ignore this insight into human behavior, both the individual human and humans in organizations, and risk becoming the problem rather than the solution, or one can embrace it, go Meta and surf the shock wave. Its not so much a matter of one's chronological age but rather of one's the ability to remain young. Would you rather sell flavored water or change the world? Resistance to change is the key. When C++ came out the entrenched in the C community resisted. When Java came out the entrenched in the C++ community resisted. Now, with Scala the entrenched in the Java community resist. Fine. History may not repeat itself, but people do. Lastly, I still maintain that project coding standards are the key. I have throughout stated that without appropriate standards, there are features of Scala that, with the current crop of programmers, could lead to hard to understand and maintain systems. But that such a caveat to Scala's use is no more or no less important than requiring standards for Java or (especially) C++ projects; nothing new here. When Scala is taught broadly in colleges, the strictures of such standards can be relaxed. Currently, its a self re-enforcing chain: Not enough Scala programmer, Risky to have a Scala project, Too few Scala projects, Too few Scala jobs, Few programmers willing to learning Scala. My small contribution is to manifest a Java-like Scala web framework easing, in a small way, Scala's adoption. Richard On 01/07/2011 09:30 AM, Jonathan Locke wrote:
Kuhn's "The Structure of Scientific Revolutions" has to do with people denying *the truth* when there are radical paradigm shifts in knowledge. I hardly think Scala qualifies for this analogy. Most of what Scala does has already been done in one form or another. What it represents is the application of long-existing knowledge from universities to *industrial* problems. As did Java. I do not deny that Scala is better than Java in terms of its abstract approach to a variety of problems that Java doesn't and probably never will solve well (and these are problems that I am excited to see solved). What I am saying, however, is that your idea that it's going to get widespread adoption is very naive regarding the contexts where it would need to be applied. I think Scala is going to become difficult to follow in the absence of these magical coding guidelines (which are always bent or ignored) much more quickly than Java does, which means it is going to prove exceptionally hard to manage on a large team. Which is going to make it difficult for managers to chose Scala (they don't want to make their own job harder or riskier). They have to understand and be comfortable with all these deep and dangerous features and techniques. Which really means that they have to be fairly top-flight coders. I don't know about you, but relatively few of my bosses have been this intellectually adventurous or willing to take on risk (and for good reason: they are there (unfortunately perhaps) to produce business results, not technical excellence). I think Scala's forte is going to be allowing very small teams where everyone understands all aspects of Scala fairly deeply (i.e., you'd better understand monads and Scala's type system fully because SOMEONE on your team will use a feature or technique if it exists!) to produce amazing results *very* quickly. That is something of a revolution in itself, but I think it will be a cottage industry relative to the size rest of the software industry. This is not necessarily a bad thing. If you want to work with smart people, Scala is going to be a pretty quick way of identifying smart people! I know this from experience: I can't even understand on several readings a lot of my friend Greg's posts about Scala and monads and mathematics. I would need to go back to graduate school in math and I'd probably need an IQ upgrade to boot. I know this sounds awfully Dilbert (and maybe that's who I've become), but at a mid-sized or large company (which is where most people work), what you want in a language is something that protects you from your co-workers. In my experience, even the "advanced" features of C++ and Java have consistently been abused and even wrecked whole projects. All this said, Scala is probably a god-send to small startups and university spin-offs. And I think it's an important stake in the ground because it references a future wider-scale industrial software revolution that eventually will occur when someone more practical sits down and figures out how to pack Scala's features (and some things it didn't address) into a language that's as easy to learn and read and work with as Java. My advice to you is this: don't get caught up in the politics of technology adoption. You will only find yourself frustrated and disappointed because at the end of the day, it's a business world not a technology world. Instead go find the cool kids and hack away in Scala on some crazy new startup that really will change the world. Odds are you'll beat the pants off your Java-based competitors on time-to-market. And if you're wondering why I don't do that, it's because of all this green paper stuff they keep throwing at me. Maybe I really have gotten old. Jon "Less is more." http://www.amazon.com/Coding-Software-Process-Jonathan-Locke/dp/0615404820/
-- Quis custodiet ipsos custodes