The Science Fiction Effect

I love reading science fiction. In fact, one of my favorite authors of all times is Isaac Asimov, but I’m hardly unique in that perspective. For many people, science fiction represents just another kind of entertainment. In fact, I’d be lying if I said that entertainment wasn’t a major contributor toward my love of science fiction. However, for me, science fiction goes well beyond mere entertainment. For me, it’s a motivator—a source of ideas and inspiration. So I recently read A Warp Speed Analysis on the Influence of Science Fiction with a great deal of interest. It seems that I’m not alone in my view that science fiction authors are often a source of creativity for real world scientists who see something that could be and make it into something that really is.

The science fiction effect has inspired me in both my consulting and writing over the years. For example, I’ve seen how science fiction authors treat those with special needs as if they don’t really have any special need at all—science has provided solutions that level the playing field for them. It’s the reason that I wrote Accessibility for Everybody: Understanding the Section 508 Accessibility Requirements and continue to write on accessibility topics. The whole idea that science could one day make it possible for everyone to live lives free of any physical encumbrance excites me more than just about anything else.

What I find most interesting is that the ability to turn science fiction into science fact receives real world emphasis by colleges and universities. For example, there is a course at MIT entitled, MAS S65: Science Fiction to Science Fabrication. Many articles, such as Why Today’s Inventors Need to Read More Science Fiction, even encourage scientists to read science fiction as a means of determining how their inventions might affect mankind as a whole. The point is that the creativity of science fiction authors has real world implications.

Now, before I get a huge pile of e-mail decrying my omission of other genres of writing—I must admit that I do read other sorts of books. Currently I’m enjoying the robust historical fiction of Patrick O’Brian. I’ll eventually provide a review of the series, but it will take me a while to complete it. Still, other books focus on what was in the past, what is today, or what possibly might be—science fiction propels us into the future. The science fiction effect is real and I’m happy to say it has influenced me in a number of ways. How has science fiction affected you? Let me know at


Making Smart Computer Language Choices

Many readers have asked over the years why I spent time learning the computer languages that I have. Some languages were learned as part of the requirement for getting my computer science degree and a few were learned as part of getting a job. However, most languages were learned as a means to communicate better with the computer. A computer speaks only one language—machine code, which is nearly impossible for humans to learn. My first coding experiences started with machine code and then progressed to languages such as Macro Assembler (MASM). As technology has improved and my needs have changed, I’ve learned other languages, which is why I wrote “6 Ways to Determine a New Programming Language is a Turkey.”

Some of the languages I’ve learned over the years really were turkeys. The language is probably acceptable, but I didn’t get anything for my efforts. The language wasn’t right for me—it didn’t help me to communicate better with the computer. You’ll likely find that you experience the same problem if you spend enough time writing code. The more time you spend writing applications, the more languages you eventually learn.

I rarely get into arguments with other people who feel the language they like best is superior to all others. I realized a long time ago that the language really is superior from their perspective. If I were in their precise situation and writing exactly the same kinds of application they’re writing, I’d probably come to the same conclusion. That’s why the choice of language is both personal and imprecise. My article helps you make an informed choice based on the criteria that I use most often to select a new language. An informed choice will reduce the mistakes you make when selecting a language.

The point at which some developers make a mistake is in thinking that the computer pays any attention at all to the language they choose. The computer couldn’t care less. All the computer knows is machine code. The language you choose is for your benefit, not the computer’s benefit. The moment you start thinking that a language does anything at all for the computer, the chances of choosing a turkey increase greatly.

There are some mechanics of computer languages that you do need to consider. For example, you need to know that the language you choose will translate into machine code your computer understands. You also need to know that the more comfortable you make things for yourself, the less efficient the code becomes. That’s not really a problem in today’s environment of high-powered computers, but that reality did affect my decisions early in my career. At the time, MASM provided the most efficient means possible to communicate with a computer without resorting to machine code. Even so, MASM was difficult to work with and I welcomed the introduction of C as a means of making things easier on myself.

Of course, this all leads into the question of which language you feel works best for your needs today. Some developers know just one language well—others, like myself, have an entire toolbox full of languages to use to meet specific needs. Where do you fall into the list? As I continue to write books, I’d like to hear about languages and techniques for using those languages that interest you most. Let me know your thoughts on computer languages at


Future Directions in Computer Science

There are many people in the computer industry today claiming that the PC is dead. Even Intel is bidding a fond adieu to the making of motherboards—certainly that sounds the death knell for the technology! Before we all succumb to PC is dead mania, it’s time to do a little thinking. The problems with this perspective are many:

  • The PC has a huge installed base and no one in their right mind is simply going to throw all those machines away.
  • The PC currently provides the best method for speedy data input and many other mundane tasks.
  • Many current applications don’t scale well to smaller footprint devices.
  • Using a desktop system provides management with ways of monitoring employee activity that management won’t want to give up anytime soon.
  • From a cost perspective, the PC is an extreme deal because it has turned into a commodity, so people will continue to buy them.

What has happened to the PC is that it’s a victim of its own success. New systems provide faster processors, more memory, and larger hard drives. The displays get ever more impressive and there are subtle, though small, changes that are attractive, but nothing to cause people to throw out their old machine. The fact is that the modern PC is so fast and well equipped that it has greatly outpaced the requirements of the software running on it. There is no reason to replace a PC anymore until the system simply dies from old age. In short, sales are down because people only buy a new PC when they need to replace their old one.

However, people will continue to use their desktop systems or a laptop equivalent because they need the functionality that the PC provides. It simply isn’t possible to run a business by typing everything on a smartphone screen (not unless you’re into repetitive stress injuries). From a computer scientist’s perspective, the PC still makes a great platform for writing applications. It is the basic machine that everyone uses, despite the fact that everyone seems to think it’s dead.

There are many assumed dead things in the world of computers. For example, everyone assumes that COBOL is dead, but it isn’t. We’ve been reading about the death of COBOL as a language for years and it isn’t even taught in colleges anymore, yet if you used an ATM anytime recently, you probably relied on a COBOL application to make the transaction. PCs are coming to the same transitional phase. Everyone will continue to use PCs in some fashion, but the growth phase of the PC is over, so the PC will appear less glamorous in the years to come—it will become yet another tool. In some respects, the PC will become like a car. They’re both complex devices that people take for granted because they’re commodities. In addition, both require specialized skills to work on and yet have devoted legions of non-professional adherents.

The direction computer science is taking today is the browser-based application. The reason is relatively simple. People now use multiple devices to perform tasks, but the common element for all of these devices is a browser that can host applications. Having the same application to perform common tasks on each device is a necessity if the person is to accomplish anything useful. In addition, tastes in devices vary between people. These devices have differing capabilities and flexibility. An application today must run equally well in every environment. Even in a controlled environment, people are working with more types of devices from a variety of vendors—the focus is less on compatibility and more on what appeals to the person in the way of features.

This change in focus in the reason I’ve started to focus my efforts more on technologies you can use to create applications that work anywhere on any device. It’s the reason I chose to write books such as HTML5 Programming with JavaScript For Dummies and Java eLearning Kit for Dummies (which is completed, but currently on hold). Yes, I’ll continue to write about Microsoft technologies because I truly believe the PC has a future, albeit a less exciting one than in the past. However, look for me to embrace this new future in upcoming posts and books with greater fervor. I’d love to hear your input on the future of computer science. Where do you think applications are headed? Let me know your ideas at