New is Good?

Python is the coolest language ever.

I've never written a real Python program. But after reading the language spec and a few tutorials, and writing a few simple programs, I am fascinated with it.

Like many other programmers, I love to play with new things. Learning is fun. New challenges are fun. Unfortunately, we often confuse enthusiasm with evaluation. If we want to use something, it must be superior to all that junk we don't want to use anymore.

C++ is a horrible language. (Only Perl is uglier.) But when I am writing important code, I use C++ instead of the "new" languages. I hate it, but I know it well. It's limitations infuriate me, but I never get surprised. Other developers deride me for using MFC and the Visual C++ wizards, but I am more productive and less error-prone with those tools I've used for years than I would be with the "better" tools that I don't know.

Am I missing out by using old bad tools instead of new cool tools? Maybe, I don't know.

The distinction between "new" and "old" is not necessarily chronological. For the past few years, I have been writing Palm OS programs using Forth. Forth is certainly not a new language, having been around for decades, but it was new to me. I loved the way I could create programs with a relatively small amount of code. It was interesting to do all my programming and debugging on the handheld device, without benefit of a desktop-based cross-compiler and debugger. I remember the experience fondly, but I can't kid myself into thinking I was more productive with Forth than I would have been with a C compiler.

I once felt differently. In college and in my early professional years, I was constantly learning about new programming languages and other development tools. I'm sure that the study of all those things made me a better programmer. However, I also believe that concentrating on a couple of languages for many years has made me a better programmer than I would be if I flitted between languages constantly.

Ultimately, all development tools and technologies suck, and the new ones don't make things that much better. The hard part of software development is figuring out exactly what the program needs to do. The level of effort required to do that is independent of the programming language used. Being able to pick the right tool for the job is important, but usually the right tool is the one I know how to use most proficiently.

Python is the coolest language ever. I'll continue to believe that until I actualy have to use it.

© 2003-2017 Kristopher Johnson