|
Unfortunately the actual NetCraft[^] data doesn't present such a rosy picture. The expansion of IIS is limited to low volume/idle sites. The active and 1M biggest site lists show MS has remained flatlined at a ~12% for the last two years while Nginx continues to eat away at Apache's share.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Yeah, I kinda figured there might be some creative statistics involved. Also, I can't see IIS taking from Apache, but other things chopping into Apache. People aren't *that* likely to move away from Linux hosting.
TTFN - Kent
|
|
|
|
|
I have never been convinced by TDD myself and I have expressed my opinions on the subject repeatedly in the past (here and here for example) so I can’t say I’m unhappy to see this false idol finally being questioned seriously. In my day, our code crashed, and we liked it!
|
|
|
|
|
In the article TDD is dead. Long live testing. and a subsequent response The pitfalls of Test-Driven Development, both authors, in my opinion, are missing the mark by a mile. In the real world, walking into an existing code base, the reason you need TDD (but can't use it) is because programmers didn't spend sufficient time on good architecture practices, resulting in code that is an entangled morass of intertwined concerns, and yes, as one of the author's points out, because the code itself was never intended to be tested except through, at best, acceptance test procedures (most likely the pen and paper variety -- with the developer watching in the background hoping he rolls a 20.) There is an overall lack of attention paid to designing a component with sufficient abstraction that it can accommodate changing requirements, and little or no attention paid to separating (decoupling) the behaviors between components such that component A shouldn't ever care about what component B is doing. We have a philosophy of refactoring with "just get the minimum to work" to blame for that -- the days of thinking about architecture and abstraction are long gone.
The metaphor of building a sky-scraper is inaccurate because anyone building a sky-scraper would know that you can't make the walls of the first floor so weak that they can't support a second floor. Except it is accurate because, not paying attention to the requirements and living in a "do the minimum work" philosophy, promoted by the likes of Kent Beck's Extreme Programming and Martin Fowler's refactoring philosophies, this actually is exactly what ends up happening, and thus TDD is an absolute necessary fallout of a broken coding paradigm. A more accurate metaphor would have been, the requirements called for a single story building, then the requirements changed. Again, with sufficient abstraction up front, the straw-bale walls could be replaced with titanium reinforced hay quite easily.
As for Rails (or rather Ruby, or rather any duck-typed language), TDD is again essential because duck-typing allows for variances in the behavior at runtime, both of type and function calls. The non-strictness of duck-typing is leveraged in lieu of good object-oriented design--why create sub-classes when I can just pass in an instance that quacks just like the other "ducks." While object-oriented programming cannot be done well without object-oriented design (and yes, I've seen both the "P" and the "D" done horribly and have done it horribly myself) a duck-type language allows the programmer to completely eliminate the "D" -- class, method, quack, quack. Perhaps we should take a clue from the name, "duck-typing", that it is actually quackery, and like medical quackery, promises rapid "feel good" development that you end up paying for in little fragments of time running unit and integration tests because you didn't do the necessary up front design, you haven't clearly abstracted how the rules are handled, you haven't clearly decoupled the behaviors of complex systems to identify the dependencies (which all complex systems will have.) If you add up all the time spent running those tests (which of course spawned whole new technologies to run those tests faster and faster) you will discover that over the lifetime of the product, you spent far more time watching little green bars (or red ones) than you would have spent on solid up-front architecture, particularly in the areas of abstraction. But nay, it quacks, and it's fast. At first.
As for "the industry's sorry lack of automated, regression testing", here, let's not blame the programmer directly even though they consistently over-promise and under-estimate, but rather, let's blame a culture, yes, starting with "the geek" but also placing responsibility firmly on the business practices of management and the continually demonstrated lack of understanding of the importance of regression testing, and the time & cost that developing regression tests and even more costly, maintaining those tests, requires. As with essentially all other aspects of our society, we are living in a constant tension between short-term gains and long-term investment (TDD can be considered an investment) and we all know which side is winning. We have a culture that rewards quick results and punishes the methodical and (seen as) slow thinker. Some of this may be justifiable due to market pressures and real budgetary constraints, but what is lacking is the consciousness to balance planning and activity. So what we have instead is a knee-jerk culture oriented to quick results (Extreme Programming and Refactoring) which, to support a broken development paradigm, demands TDD as the "fix", but nobody seems sees that.
When one of the author's writes "I have yet to see a concrete illustration of how to use Test-Driven Development to test a back-end system interacting with a 20-year-old mainframe validating credit card transactions" I laugh because I have done just that -- CC validation systems all have the means of simulating transactions, it's actually trivial to write TDD's against such systems. Yes, the author does have a point that much of the "...source code [encountered in legacy systems]...was never designed to be tested in the first place...", but again, that's missing the point -- TDD is clearly the wrong tool for those systems. TDD works best in an environment:
- lacking architecture,
- most likely using duck-typing languages,
- and, most importantly, one that has started from ground zero with testing as one of the coding requirements.
This is independent of whether it's a 200 line gem (as in Ruby library as opposed to a "great thing") or a 100 million line application. If those 100 million lines were written with the intention of being unit / feature tested, then there is no problem. Except that it's TDD and probably not well architected out of the gate. And let me be clear that TDD, when applied to a well architected application, is a perfectly valid and beneficial practice, but then TDD is also simplified because it ends up testing behaviors, not architectural flaws and geese trying to pretend to be ducks.
So, is the failure TDD? No. The failure is in a culture entrenched at all levels of software development that says that Extreme Programming and Refactoring can replace thinking and it's brothers "design" and "planning." We have Kent Beck and Martin Fowler (I commit sacrilege in criticizing the gods) to squarely blame for that "regression", excuse me, "story." And it's those two aspects (pun intended) of programming that should be given the boot, not TDD, which has a validity in and of itself under the right conditions.
modified 11-May-14 18:40pm.
|
|
|
|
|
Mango zitango! You're only two sentences short of an article there.
Marc Clifton wrote: The failure is in a culture entrenched at all levels of software development that says that Extreme Programming and Refactoring can replace thinking and it's brothers "design" and "planning." Bless you.
TTFN - Kent
|
|
|
|
|
Kent Sharkey wrote: You're only two sentences short of an article there.
Well, you hit a nerve, especially since I just came out of a two day intensive pair-programming sessions where all of these issues were rearing their ugly heads (quite subtly, mind you) but after write that monster, I realized I needed to put it on my blog.[^]
Kent Sharkey wrote: Bless you.
Did you know that I'm now an ordained minister? No, of course not. Through one of those "we ordain anybody" websites. I can now officiate your wedding or your death (is there a difference???)
Marc
|
|
|
|
|
Amen to that!
A hammer is a great tool, but it won't help when you need to take the screws out...
|
|
|
|
|
tl:dr
...ok, I did a bit and I agree that Agile development using TDD is a bad idea. I always thought Agile/Scrum was good for Project Management but Extreme Programming and TDD was going too far.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Oh gosh, I wish I'd said that!
Currently stuck in a situation where "we should be doing TDD - so we're going to write tests from now on" has me tossing up between shaking my head ruefully and crying.
Is it only the software industry where techniques, patterns etc. are continually belittled by people either not using them at all, or at least not using them properly?
If I hear one more person say "Oh, we tried <scrum|agile|tdd|di|mvvm|wpf|...> at my last company, and it was just a waste of time because (reason.summary == "We did it wrong") I swear I will put a GOTO in the next piece of code I write.
When builders first built walls with bricks and mortar, did they sit around slagging off bricks because they just slowed you down and the walls were wonky?
|
|
|
|
|
While discussions about tech bubbles have been heated, few commentators seem to be targeting their invective at the real underlying bubble: the World Wide Web itself is crumbling. "Who is the greater fool, the fool or the fool who follows him?"
|
|
|
|
|
Yeah. That interweb thingy obviously never caught on!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
The Wayback Machine, a digital archive of the World Wide Web, has reached a landmark with 400 billion webpages indexed. This makes it possible to surf the web as it looked anytime from late 1996 up until a few hours ago. CodeProject in 2000? Orange
"Poll - Should Microsoft make Windows Open Source?"
Some things never change.
|
|
|
|
|
If you ever need to demonstrate that two things can appear connected purely by chance or some entirely separate factor, this is your site. "Correlation does not imply causation" (but it can be funny)
|
|
|
|
|
They missed the correlation between the stork population and the birth rates in Western Europe...
But the really bad thing is: who does understand that "Correlation does not imply causation"? Your insurance company which thinks that your risks are more expensive? Your bank when analyzing your credit application? The police when investigating some case? ...?
No, none of them. In case of doubt: the correlation alone is enough to decide against you.
See also: "heart rate is related to aggressive forms of antisocial behavior" (https://www.ncjrs.gov/App/publications/abstract.aspx?ID=250606[^]) and articles based thereon. When you do endurance sports, you'll get a low resting heart rate, and consequently you are a criminal...
|
|
|
|
|
This raises the question: why? What is it about C++ and Fortran that make them fast, and why do they outperform other popular languages, such as Java or Python? It's the flames painted on the sides
|
|
|
|
|
Google was dealt a blow Friday in a multibillion-dollar lawsuit alleging its Android operating system infringes on intellectual property owned by Oracle. "Free for me, but not for thee"
|
|
|
|
|
Does it mean that Oracle wants to discourage programmers using it? Begining of the end of Java?
|
|
|
|
|
Or at least, "if you use it and make money, we want a slice." Either way, not entirely conducive to an open environment.
When two coding giants battle, we'll all just lose.
TTFN - Kent
|
|
|
|
|
Move may end up encouraging some customers to stick with XP even longer. We will never ever patch XP again. Unless it's a really ugly attack. Or we feel like it. Or because.
|
|
|
|
|
because "Lawyers" is why...
|
|
|
|
|
In an era where companies are spending big money on mobile advertising, understanding the demographics of cell phone users can make a big difference to the bottom line. And Windows Phone users like squares?
|
|
|
|
|
!! I really wonder what people they have surveyed for this! Sounds like total non-sense to me!!
And by the way, it's nice to see you back in action after a while!
Whether I think I can, or think I can't, I am always bloody right!
|
|
|
|
|
Agent__007 wrote: And by the way, it's nice to see you back in action after a while! Thank you very much! It's good to be back. Hopefully most people agree.
TTFN - Kent
|
|
|
|
|
Extremely low quality: no information on the study proper is given (study design, how many people prticipated, etc. - absolutely nothing).
|
|
|
|
|
A neuro-psychologist insists humans are so ignorant about the cosmos that any encounter with aliens would be a disaster. "You see? Your stupid minds! Stupid! Stupid!"
|
|
|
|
|