I think both of these articles are wrong. This theme has occured in several posts here in the last few days, so I'll state my "grand theory". There are several types of programming: applications development, systems programming and algorithm/data structure development.
I'm a systems programmer who is trying to pick up a greater deal of algorithm and data structure knowledge. I view applications as moving to the web but for web application to become efficient, scalable and allow for the same rich UI as a desktop application a great deal of difficult systems engineering and algorithm development had to happen first. More so than for a desktop application.
Desktop applications typically store individual user data: you could easily use an O(N) lookup structure to store it and then use just write() to write it out to disk as a C struct. Web applications are multi-tenant. For the largest web applications, even a relational database (an incredibly complex system: transaction protocols, b+trees for storage) can't scale.
Before any reputable company puts their name on application, the application has to be load balanced. Yet, this is transparent to the user. Do typical desktop applications require a shared nothing distributed architecture?
Now on the other hand, web developers don't think about these issues and write in powerful, high-level languages using frameworks and DSLs which often times don't even require writing SQL code. Yet, they aren't doing in this in vacuum.
So really the case here is that web application development appears, on the surface, to be less challenging than desktop application development. Yet the amount of systems programming that had to happen to allow that is immense.
Am I now saying that systems programming is more challenging than applications development? No, the challenges are different. I don't have nearly the sort of patience and attention to detail that UI development requires. The process (gathering user requirements, presenting mockups) is actually more complex.
If you're looking to do lower-level work, or more algorithm/data structure development because that's what you find challenging than don't be an applications developer (whether desktop or web). On the other hand, be aware that the demand for systems programmers isn't always as high (and getting the job is a lot more difficult in terms of complexity of even the interview and the experience/education level required).
On the other hand, before web developers bash statically typed languages (especially C/C++), bash CS curiculla that stress algorithms and data structures or wonder why interviewers at Google/Yahoo/Facebook ask about Binary Trees, they should be aware just how much of C/C++ code was written for them to be able to do even the simplest of SELECT statements (and if you don't know what data structures might have been traversed when you issued that statement, I won't hire you).