How To Start A Computer Science Flame War

Computer Scientists and computer professionals who may not think of themselves as “scientists” and hackers who just think of themselves as awesome are all opinionated people. Over the years I have learned of several what I would call religious arguments. These are topics that are always great for starting a discussion (ok maybe even the online equivalent of a bar brawl) among computer people. Those who teach are, it seems, even more susceptible to these sorts of things. I thought I might just list a few of these for the fun of it.

Language Wars

  • Java is horrible/ Java is the answer – related is write once run everywhere vs. write once debug everywhere
  • Real programmers use {assembly, C, C++, Scheme, you name it} Implying that people who use other languages are fake programmers perhaps?
  • The best first programming language is (assembly, C, C++. Java, you name it} To get people really going recommend Visual Basic as I do. I’m right of course but you’d never know it to listen to some people. Smile
  • Functional programming is the answer! What’s the question again?
  • For Linux/UNIX users the arguments over the best shells can go on for a long time as well. And of course “are shells programming languages?” is a closely related part of the issue.
  • case sensitive vs. case insensitive
  • late binding vs. early binding

Operating Systems Wars

  • Apple vs. Windows vs. Linux – enough said – you all know where I stand on that one.
  • Command line operation is the way to go vs. you can do it with GUI – this one gets into what a power user is all about. I think it should be about “your OS is really poor if you have to use a command line more than once a month.” Whoops I think I let my feelings show again. Sorry.
  • Virtual machines are the future vs. virtual machines are too slow and inefficient for real time (or any time critical) applications Everyone seems to think their apps are the standard that all should be measured against.

Teaching Wars

  • HTML & web development is not computer science vs. oh yes it is!
  • Objects early objects late, objects in parallel, objects never
  • The AP CS course is great – oh no its not.Now they are developing a second APCS course that we can argue about!

General Wars

  • GPL is the best/worst license ever Related are “that’s not a true open source license” about several “approved” OSS licenses. “What is open source” is always good to start people fighting discussing.
  • Everyone should use Open Source for everything vs. Proprietary software has an important role and is not intrinsically evil. Basically anything you bring up OSS vs Proprietary software and someone suggests that they are incompatible and that one is good and one is evil you’ll get a fight discussion. In fact if you argue that they can co-exist you’ll get a fight discussion in many cases as well. No peace in this fight discussion.
  • EMACS vs. vi vs. Are you really using an old fashioned text editor in the 21st century with the great IDEs we have today?

The really unfortunate thing is that there is value in discussing all of these things. Not in fighting over them but a fair and honest discussion of the merits of different sides in different contexts. There is really no right or wrong answer. There are few absolutes here (if any at all.) It’s just unfortunate that we too often let ourselves become polarized and closed-minded. Something that needs to happen in education is to teach students how to discuss without fighting. To evaluate based on contexts, concepts, and principles rather than emotions, politics and absolutes. Can we do that? I think we need to if the discipline is going to grow as a profession.