Agile Zone is brought to you in partnership with:

JJ is a developer advocate for YouTube APIs. His goal is to foster a rich set of third-party applications built on YouTube APIs. He's a well-known member of the Python community. He blogs at jjinux.blogspot.com on topics such as Python, Ruby, Linux, open source software, the Web, and lesser-known programming languages. Shannon is a DZone MVB and is not an employee of DZone and has posted 18 posts at DZone. You can read more from them at their website. View Full User Profile

I'm Going to Make a Lot of People Mad: Criticizing the Uncriticizable

12.03.2012
| 34812 views |
  • submit to reddit
There are some technologies that have such strong "street cred", they are effectively untouchable. Anyone who dares imply that they are deficient in any way is instantly labelled an uneducated moron. It is impossible to have a realistic conversation about these technologies, and it's not very common for enthusiasts of these technologies to admit their failings. Let me give some examples:

  • Linux is the best operating system.
  • Common Lisp is the best programming language ever invented.
  • Haskell code is shorter, more elegant, and more correct than code written in any other language.
  • Emacs is the best editor for real programmers.
  • Apple creates the most user friendly user-interfaces.
  • Tiling window managers lead to the highest degree of user productivity.
  • Ruby on Rails is the best web framework written in any language.
  • The only way to write good software that meets its users needs and is delivered on time is to embrace agile software development and use test-driven development.

Of course, there are problems with each of these things:

  • It can be very difficult to get hardware accelerated 3D, wireless drivers, and suspend working reliably in Linux depending on the hardware you have and which version of which distro you are using.
  • Common Lisp has a lot of historical baggage, and it lacks the breadth of community library support that some languages such as Python, Ruby, and C have.
  • Haskell code can be very terse, and advanced Haskell code can be difficult for even intermediate Haskell programmers to understand.
  • IntelliJ has many advantages over Emacs when it comes to editing Java.
  • Not everyone prefers Apple user interfaces. My wife always complains when I make her use OS X.
  • Many of the tiling window manager fans that I know spend an inordinate amount of time configuring and tweaking their window manager, presumably because it doesn't yet do exactly what they want.
  • Ruby on Rails isn't the best approach for real-time applications or applications that must have very, very low latency.
  • Agile software development is not a good fit when it is impossible to iterate, such as when you're building software that must be completely done and completely correct the first time it is used (e.g. pacemakers and satellite software).

There are also some technologies that have such negative street cred that it's difficult to praise them in certain circles. For instance:

  • It can be hard for a Linux advocate to admit that Microsoft has ever done anything good or innovative.
  • It can be difficult for a Python or Ruby enthusiast to admit that Java has any advantages whatsoever.

Linux, Common Lisp, Haskell, Emacs, Apple, tiling window managers, Ruby on Rails, agile, and TDD each have amazing amounts of street cred, and I've spent a lot of time learning playing with all of them. What I discovered is that the world isn't always so black-and-white. It's really helpful when people can honestly admit the weaknesses in technologies they like as well as the strengths in technologies they don't like. I'm not saying that all technologies are equally good. I'm just saying that it would help if we could be more realistic.

Published at DZone with permission of Shannon Behrens, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Tomasz O. replied on Mon, 2012/12/03 - 4:21am

Regarding Linux.. You are saying something like this: "Linux is NOT the best operating system because it's not perfect.. it's difficult to get hardware accelerated 3D, etc.". Come on, we know it. There is no perfect operating system that will do everything that you can imagine (i.e. I would like it to go with my dog every morning instead of me..). 

Operating system must be good enough, and Linux IS good enough. Windows never was, and never will be.

Giant Engineer replied on Mon, 2012/12/03 - 9:06am

 Regarding Linux, those things have not been true for many years.

Judging Apple's UI based your wife's preference... Really? Perhaps it is because she is more familiar with Windows. Familiarity does not mean better.

Regarding Agile, even in the situation mentioned it works well. Having a prioritized list, testing as you go, getting together on a regular basis to demonstrate your progress, interacting with your customers during the process to make sure you are getting it right... These are all good thing regardless of what you are developing.


Anthony Moore replied on Mon, 2012/12/03 - 11:03am

Thanks for this. I think the responses of the commenters so far show precisely why this was necessary.

Microsoft has done some good. They have enabled millions of people to use computers and have driven a lot of innovation that Linux and Apple both have benefited from. I believe that as far as operating systems go, we as users benefit from having multiple players in that market competing. Look at the GM-Ford-Chrysler rivalry and what that has done for innovation in the automotive industry. One thing though that the OS world is lacking is interoperability, particularly in the software realm. I'd like to see the ability to run whatever software on whatever OS on whatever hardware this will enable future innovation to progress at a far faster rate. Imagine what would happen if Microsoft was to embrace Wine and fund/contribute code to that product. It would benefit from increasing the market share of Microsoft Office, and it would eliminate the need for a separate version for OSX. 

Alan Krueger replied on Mon, 2012/12/03 - 4:18pm

c.f. "religious issues " in the venerable Jargon File 

Shannon Behrens replied on Mon, 2012/12/03 - 10:34pm in response to: Alan Krueger

Alan Krueger, thanks for the link ;) I should spend more time in the Jargon File ;)

Michał Minicki replied on Tue, 2012/12/04 - 7:55am

Actually, the agile negative example is plain untrue. You still can use agile for such projects but you simply won't use all the parts of the process (like expanding and prioritising a product backlog). And it works great.

My lady friend has the same problem with Mac OS X, btw. In fact, she's even repelled by it. 

Anthony Moore replied on Tue, 2012/12/04 - 9:41am in response to: Michał Minicki

I see what he's referring to in that example. You can't use Agile development with the formal methods frequently required by those projects. This is a contractual thing as much as anything else. The government agencies and consequently the aerospace companies have required a detailed spec for the software they need that is then signed off and penalties attached for failure to deliver the whole of what they are asking for in the timeframe required.

Personally I would not be happy to work under such conditions, however I think it's important to recognize that Agile works when the corporate culture and the individuals involved desire to use it. If there is no desire on the company, the customer, or the teams part, then agile methods are a bad choice for that project.

Mihai Popescu replied on Tue, 2012/12/04 - 9:45am

Well... this article is pretty much stating the obvious :)

With appologies, I can say that for me, its contents is useless, but the comments that followed are priceless :))))

@Thomasz O. & Giant Engineer: if you love Linux, it does not make it the best. And again, if it has some flaws, it is not necessarily correct to state it is not the best. Did you use several OSs up until now? Did you use them for a specific feature, or for pretty much everything (multimedia, coding, as server etc.)? When moving on to a new OS, did you do it because the next one covered more needs than the previous one, because it had flaws, because the new one is easier to use or just because it was "mainstream" at the time ?

@Apple fans: Why do you care how Shannon's wife feels about Apple's designs? She's definitely not the only person in this world that hates Apple for its design. Yes, it's been "cool" for the past 5 years or so, it probably is still cool, but then again, I don't give a **** about fashion  or what other people like. I am more interested about what I like. Anyone can look at Windows 8 designs, and give an honest answer: which one appeals to you more? If you can honestly state that you hate one of the two, don't troll and keep your opinion to yourself. Design is evolving, as is all technology. In 5 to 10 years from now, Apple fans might be regarded as old fashioned. And this is not a bad thing, it's just ... a thing. It is not important who and how many like what design. The idea behind this article is to stir up the waters, and give fanatics a slap. Good job, mate :)

And to close, here's a quote from "Six feet under", one of my favorite TV series: "Everything's bad for something".

David Brown replied on Tue, 2012/12/04 - 11:06am

Making statements like "Operating system must be good enough, and Linux IS good enough. Windows never was, and never will be." almost make it seem like you have been in a cave since the late 1970's.  How many times have we heard, "This is the year of Linux" only to have that prediction fall far short of its goal.

Microsoft Windows runs on 95% of the personal computers in the world, and it has been that way for decades.  Consurmers have bought Windows computers again and again and again, retiring one model, only to purchase a replacement that ALSO runs Windows.  To ignore that make no sense to me. 

Granted that a large portion of that 95% is from corporate users, but you still cannot ignore the fact that Apple Macs and Linux-based desktops simply do not exist in any numbers sufficient to declare either of those platforms as the "best" operating system.  The consumers seem to have voted with their dollars for Windows instead.

Andrew Macginitie replied on Tue, 2012/12/04 - 12:24pm in response to: Tomasz O.

 "Linux IS good enough" -- no, it may NOT be good enough if your goal is hassle-free hardware-accelerated 3D

"Windows never was" -- no, it IS good enough if you primarily want (e.g.) to play a certain [set of] game[s]

The article hits the nail on the head, imo, & your response tends to prove the point.

Davyd Mccoll replied on Tue, 2012/12/04 - 1:54pm

 Agreed that many overly polarized viewpoints out there are, by the nature of their polarization, incorrect.

HOWEVER:

TDD != Agile.

Yes, agile methodologies may not be suited to 100% correct, all-features-required projects (or they may be -- if the time element is simply left to "when it's done", but I'll leave that as a bit of a dangling idea). But TDD is MOST DEFINITELY how you'd want to program critical items like pace-makers and the like.

Because if you have written good tests and covered all of your code, you will have a higher degree of confidence when field-testing / QA-testing. In addition, when you decide that the way something is being done could be drastically improved, the tests help you to be able to rip out a part of the application and replace it in its entirety without having to wonder what you've missed or broken -- when the tests pass again, you're in a good place and you can go ahead with high-confidence UAT/QA/field -testing.

Tomasz O. replied on Tue, 2012/12/04 - 2:52pm in response to: David Brown

I just stopped thinking about PC as a machine to play games and run different multimedia. I also don't use MS Office. So, I have absolutely no reason to use Windows as an OS. 

"Microsoft Windows runs on 95% of the personal computers in the world, and it has been that way for decades.". I believe it's gonna change soon. Regarding desktops, look at Windows 8.. what does it have that Android won't have in the near future (for free). Look at OS for mobiles.. where is Windows Phone? If Android skips to desktop the huge community will make the Windows disappear in few years.. If you think that Microsoft is to huge to fall, than look at Nokia.

I do my development on Linux. But of course best for you.. cygwin lovers ;)

Dan Sutton replied on Tue, 2012/12/04 - 5:23pm in response to: Tomasz O.

Depends. If you're a programmer who works on every web server imaginable, then Windows is the only operating system you can use: it's the only thing which runs every server out there. Linux is a non-option when it comes to SQL Server, .Net or ASP, and the same goes for any other operating system except Windows. You may not like it, but there it is. Linux is imperfect because all it can do is open-source stuff: if you want to limit yourself as a programmer, then by all means use Linux.

David Brown replied on Tue, 2012/12/04 - 8:27pm

@Tomasz O

I would be the first to agree that nothing lasts forever.  But, by the same token, past performance is not guarantee of (or a limitation on) future performance.  Technological superiority is one of the most fleeting of achievements.

When you sign on to use one platform over another, I believe you have made an implicit assumption that your chosen platform will meet your needs in the future.  Far too often, that has not been the case with too many products and technologies.  Most likely, we are all hampered by a persistent lack of vision about what is possible (and likely) in our future.

I have used products in the Microsoft technology stack for many years, and their use has kept me fed, clothed and housed up to this point.  Do I believe Microsoft has the best answers for every problem I will face in my career as a developer?  Absolutely not.  But I think it would hard to argue that we would be better off today if we had a "battle of the operating systems" in the early years of personal computing that persisted until today.  Imagine having to worry about whether you should buy computers that ran CP/M, or TRS-DOS, or MS-DOS, or whatever, and whether you could get application software that ran on your chosen operating system.  Imagine being a developer that had to choose which OS to work with to make a living. 

We most definitely have benefited from having one dominant operating system vendor to rally around, however flawed they may be.  And yet there still is a place for other OS'es, and where they can demonstrate that they are a better solution for a particular use, their use should certainly receive consideration.  I'm not sure I agree with your assertion that Google Android would dominate if it made it to the desktop.  If the experience of "free" Linux is any example, such desktop domination may not be a sure thing at all.

And I am not at all convinced that tablets and smartphones will replace desktops and laptops any time soon.  Smartphones and tablets allow us to consume content in ways and in places we could not do so before, but they are not the optimal device to create content.  I can't imagine trying to create a complex Word document, Excel spreadsheet , or Powerpoint presentation on a tablet (much less a smartphone).  Your finger is not now, and never will be, the precise pointing instrument that a mouse can be.  And anyone who tells you they prefer to type for any time at all on a virtual keyboard instead of a real one is, I'm afraid, drinking the Kool-Aid.  Trying to use tablets or smartphones as a primary device for content creation will, I believe, be very frustrating for the vast majority of users, and they will revert to their desktop/laptop when they want to get real work done.

And, by the way, don't count out Windows Phone 8.  I just got a new Nokia Lumia 920 three weeks ago, and I love it.  I abandoned the malware-infested world of Android for Windows Phone 8, and never looked back.  If the early reports of Windows phones selling out in countries around the world continue to occur, we have ourselves another player in the smartphone arena.  Let the games begin! 


Tomasz O. replied on Wed, 2012/12/05 - 5:23am in response to: David Brown

I would follow 80/20 rule and say that 80% of MS Windows users only care about access to: some browser, skype client, maps client, facebook client, simple text&spreadsheet editor, some cool games. It must all look pretty. It all must be installed by default, or installation must be more then simple. It must hide and smartly handle all kind of errors not to annoy user. Android offers all of it for free. In Android market there are hundreds of thousands apps. You just go there and pick what you want, in most cases for free. 

Have a look at Windows 8 commercial. It's not directed to developers or office users of their product. It's directed to those 80% I wrote about earlier. Microsoft knows that it's loosing those users.



Cosmin Marginean replied on Wed, 2012/12/05 - 7:31am

Spot on. For example, remove dependency management from Maven and check what you're left with. That's right....

Scott Murray replied on Wed, 2012/12/05 - 12:02pm in response to: Tomasz O.

 I don't like Microsoft for many reasons.  However, many profitable companies use Windows -- it is obviously "good enough".

John Bridges replied on Thu, 2012/12/06 - 3:38am

The comments are just priceless and underscore the point of the article.

As an aside ... if you know you have an Operating System - its probably not good enough - which I think its fair to say is true of all the OS's out there.

Paulo Ortolan replied on Thu, 2012/12/06 - 8:25am

I believe that everything is based upon the experiences that you have in any of these technologies. If A is better to you, then you have to handle the handicaps that it offers to you or more than it, you must be aware and know to solve the problem with a permanent solution or a workaround. We must have our mind opened to other technologies that we dislike because someday it will be necessary to make something on these, even making effort to avoid the undesireble ones.

Raging Infernoz replied on Thu, 2012/12/06 - 6:08pm

Re: "Spot on. For example, remove dependency management from Maven and check what you're left with. That's right...."

WTF!

For starters, the plugins, work flow, and pom inheritance of Maven make for a vastly more powerful build system than Ant, with simpler config.  Ant is so seriously clunky and underpowered in comparison, that I never want to work on an Ant project ever again; especially not the fragile mess that is a NetBeans Ant project!  I'm migrating projects as fast as I can from Ant to Maven.

True you need the dependencies management of Maven; however the way it is done is so much better than the poorly structured kludges in Ant; and automatic downloading and caching of missing dependencies by Maven, including their dependencies and plugin dependencies, was a brilliant and time saving idea!

Anyhow:

Linux does not have good enough hardware support, FreeBSD is a lot worse, so much so it can be frustrating spec'ing a FreeNAS box!

Windows maybe a pain; however it supports hardware and software which Linux owners can only dream about.

OS-X, never liked it, pretentious junk for people with too much money and no sense of what real freedom is.

Android, nice for tablets and small programs, but no way will it ever replace a more conventional OS and more capable hardware.

What I would like to see is QNX rise from it niche and crush all the other OS's, because it sounds like a much better OS design.


L. E. Kesselman replied on Fri, 2012/12/07 - 12:29am in response to: Tomasz O.

Tomasz: I doubt that office users of Windows, for MS Office or otherwise, comprise less than 20% of all Windows use. Lots of people use Windows at work. DZone is atypical, being an all-Mac shop!

I do think your description of what consumers want is correct: Web apps, social networks, photo sharing, email and multimedia games or videos. They don't want to install drivers or worry about compatibility. Then there's malware: Apple iOS (or OS-X?) and Linux can be vulnerable, but not as often. Windows continues to have vulnerabilities, which Microsoft tracks and patches. Android? He is so cute! Yet his free app ecosystem that you mentioned, it is full of insecurities. Many non-developers find him challenging to use, I'm not sure why. I would think that Chrome as an O/S would be more plausible than Android (for a Windows alternative). But Chrome OS and Cr-48 notebooks didn't seem to catch on at all.

Windows 8 commercials are puzzling. I don't think they are targeted toward that 80% majority of home and office users... I wonder if Microsoft is trying to appeal to the non-Windows market. Yet they might just displease the majority of their user base instead... After all, 25% of the world still runs Win XP, or so ComputerWorld says.

Colin Fletcher replied on Sun, 2012/12/09 - 9:04am

Enthusiasts demonstrate their lack of maturity in the IT industry through their lack of willingness to observe and agree "their thing" is not infallible or the answer to everything.

Graham Nicholls replied on Sun, 2012/12/09 - 5:39pm

 I have rarely read such nonsense. 

I'm still giggling at the windows user who is complaining at the "malware infested" Android.  Does nobody else see the irony?

And the (sorry, epithet deleted)  who complains that a piece of MS software doesn't run under Linux - was that a joke?

Oh, and yes, I'm a Unix (which nowadays means Linux) fan.  There's a reason Unix/Linux users are enthusiastic; to label that enthusiasm as immaturity is condescention of the highest order.   I love Linux because it works, because I can get (for free) tools for about every IT situation I will encounter, and because it (especially the shell) is amazingly powerful.   Frankly, I think that if you're not enthusiastic about IT, then you're in the wrong industry.  I've been enthusiastic about computing for 35 years or so now, and hope to remain so for the rest of my career.

On the subject of technologies, Ruby really is wonderfully expressive,  and what innovation have Microsoft bought to the industry? Oh, of course, anti-virus software.  Which also doesn't run on Linux.  Hmmm.

The last thing I need to say is that (g)vim is God's own editor.  Emacs is the spawn of satan.

David Brown replied on Sun, 2012/12/09 - 9:27pm

 @Graham Nicholls

You may think my comment about malware infestation in Android has a touch of irony to it, but it needs to be pointed out that Microsoft at least takes its responsibilities for fixing vulnerabilities very seriously.  We all know that Windows has regular patches to fix those.

But where is Google when it comes to fixing the Swiss cheese mess they've made of Android?  It seems they pushed the baby out the door to fend for itself.  I've owned Android devices for years now, and I've NEVER seen a patch released to plug the holes researchers say can plague even a well-written app when it's grafted into an operating system that seems more interested in serving you ads than in preventing those ad-ware API's from compromising your device.

Linux and Apple's OSx are not immune from malware.  Obviously they are less of a target than the large number of Windows-based PC's, but no one should be under any illusion that users of those two OSes are any better than Windows users at avoiding phishing or other malware that can be invited in with a careless mouse click on some web page or in some email.

You may think you have the best operating system, and revel in the fact that it comes to you for "free", but someday, you may wake up to realize that, every once in a while, you get what you pay for (or in this case, what you didn't pay for).

Post Agilist replied on Fri, 2012/12/14 - 3:18pm in response to: Davyd Mccoll

TDD is a figleaf, and unit tests are essentially meaningless.

I've never seen bugs in production that wouldn't have passed their unit tests.

What we need is stress tests and load tests -- not "idealized" tests of which the results are immediately visible just by running the app.


PA

Caspar MacRae replied on Wed, 2012/12/19 - 9:07am in response to: David Brown

@David Brown, I'm really annoyed by your comments here - you're talking down to people as if they have no understanding at all, when it appears to be you that is lacking.

"Obviously they are less of a target than the large number of Windows-based PC" WTF?

The only reason Windows has so many attacks against it is because it's so easy a five year old could do it.  UNIX based servers hold far more valuable data that your shitty PC, but the effort in compromising them isn't worth it. 

The UNIX eco system covers 99% of servers (the interweb for you), 99% of embedded devices (NAS to you), 99% of smart phones (iOS, Android) - but as you have a desktop Windows PC that's all that matters.  You fail.

Why don't you learn stuff for yourself instead of regurgitating the buzz-word crap you read on half-baked, faux technology new sites?

Now I will stop reading DZone comments because I feel compelled to admonish irritating, ill informed people like you.

Caspar MacRae replied on Wed, 2012/12/19 - 9:09am in response to: Graham Nicholls

 I'm with you on the nonsense and irony, but come on VIM?   =)

Graham Nicholls replied on Wed, 2012/12/19 - 3:54pm

Yes, vim. And don't make me start SHOUTING. I warned you, Emacs is the spawn of satan. Or, I could never seem to get on with it, to be honest. Been using vi and then vim for > 25 years, so I guess switching would be a pain. Anyway, I love vim's ease of use, scriptability, power, and ecosystem. Oh good grief, just let me have it's babies. But you're right, debating with the likes of David Brown is a pointless exercise. Why do I never learn? Trouble is those fools keep repeating stuff like that and it becomes the accepted wisdom, no matter how silly it is.

Caspar MacRae replied on Thu, 2012/12/20 - 5:07am in response to: Graham Nicholls

I cannot argue with the power of Vim, but that doesn't mean I'm going to learn it =)  Enjoy whatever floats your boat (IMO if an editor doesn't have a key binding requiring at least six fingers then it's probably not that good!).

I'm going to try filtering comments based on factual content and not rising to the troll temptation (not doing very well so far).

Fernando Malick replied on Sat, 2013/01/12 - 6:17am in response to: Anthony Moore

 Anthony: please, tell us what innovation or technology was 100% created by Microsoft and wasn't stolen/bought from someone else. If you can demonstrate at least one original technology that didn't exist before Microsoft included it in it's software packages, then I'll admit you have some reason.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.