Why schools are turning out programmers that can’t program

Joel always writes insightful and funny articles on computer science, and his latest doesn’t disappoint: The Perils of JavaSchool.

I remember being totally enthralled when first learning pointer arithmetic, recursion, and such things. I loved it. I’m amazed any school would be willing to give a degree in computer science to people who can’t do these things — they are fundamental programming concepts!

Delphi 2006 is wonderful.

Delphi 2006 is wonderful.

Really, it is. Borland has fully redeemed themselves for the less-than-stellar Delphi 2005. After the third update and some unofficial patches, Delphi 2005 was okay (and indeed I was using it regularly and enjoyed it)… but

Delphi 2006 is wonderful!

It’s stable and has lots of great features to make a programmer more productive. There’s not much more I can say about it — I just like it!

I’m working on the next version of Daily Bible and Prayer and my usual semi-annual update of SwordSearcher, and I am just as happy as I can be using Delphi 2006 for the work.

One great bonus for users of my software: Delphi 2006 has a more efficient memory manager, so compiled applications actually run faster. I’m looking forward to the new releases.

(Oh, and I haven’t blogged much recently because I’ve been busy programming!)

My Mac Adventures Concluded

It’s been two months since I’ve blogged. I’ve been busy — busy working on Bible software for Mac. As many of you who frequent my blog (and watch development of SwordSearcher) know, I’ve been working on getting my Bible software ported to Mac OS X.

First, let me say that Mac OS X is great from a user standpoint. It looks good, is stable, and for the most part is easy to use (though whether or not it is any “easier” than Windows is debatable).

However, there are reasons why the Mac has only 2% of the computer market. And spending lots of money and time on Mac software development has made many of these reasons even more clear to me.

Bottom line: What takes me minutes to code in Windows can sometimes take hours on a Mac. A big company with lots of cash can afford to fund development on Mac and Windows concurrently. And if I were designing a trivial application, I could too. But SwordSearcher is not by any means trivial, and I’ve finally accepted the reality that I need to focus on one platform. So Windows it is.

I am quite sorry to have to make this report as I know many people have been awaiting SwordSearcher Mac. And I really, really wanted to make it. But with limited time and money (that’s me), one needs to set priorities, and as long as Apple can’t get even 5% of the computer market and until they come up with better development tools, my priority will be Windows software.

I want to send a heart-felt thank-you to the many people who have emailed me on this issue, especially the Mac users who have extended me their encouragement. I truly am sorry to not be able to complete this project. But hey, sometimes you have to know when to cut your losses and move on!

Here’s an interesting short blog about the problems Apple faces in capturing more of the market: What will it take for the Mac to grab 5 percent of the PC industry?

Apple makes mouse with more than one button, Earth quakes.

Apple has always insisted that their users are not smart enough to handle more than one button on their mouse. So, people promptly replace their Apple mouse with one more efficient. I myself use a Microsoft IntelliMouse Explorer 4 on my Mac Mini (I use the same one with Windows, too).

Well, if the news of Apple switching to Intel processors, after years of claiming Intel’s processors were inferior to PowerPC chips (which was never true), now Apple is adding more buttons to their mouse. Either Apple has decided that their customers’ IQs are rising and realized that if they can operate a car with more than one pedal they can click more than one button, or they finally got with the 21st century and made a decent mouse.

Although, after looking at pictures of the new mouse, one wonders if they simply don’t understand how a mouse is used. Oh well, looks like I’ll be keeping my trusty IntelliMouse for a few more years, even on the Mac Mini.

My Mac Adventures, Part 3

Everything is a learning experience.

I’ve blogged here previously about being impressed with Apple’s development tools for Mac OS. I have been working with XCode and Interface Builder, using the Cocoa Framework. After several months of development, here is what I have learned.

The initial shine of XCode and IB has worn off. In the beginning of my development work on SwordSearcher Mac, I was primarily writing my “database” code for the Bible, commentary, dictionary, and book storage, search, and access functions of the program. This basically meant that I was enjoying coding stuff in Objective-C –- a language I find that I really enjoy working with. But it also meant I was not doing much of the user-interface design and didn’t have to work with Interface Builder much.

Well, I finished most of that “database-ish” work and moved on to creating a user interface for Bible display and other stuff. What happened? Well, it’s kind of like seeing a really pretty woman, then all of the sudden she pulls out a cigarette and lights up. Not attractive.

Apple’s development environment is practically in the dark ages when it comes to “rapid application development.” Maybe I am just spoiled with Delphi, but really, when I put a button on a form, I want a property list and want to be able to start writing an event handler for that button with a double-click. With XCode and IB, you simply can’t do that. The amount of hand-holding you have to give the IDE is absurd in comparison to Delphi. And it’s not just Delphi – I’ve used Visual Studio 2003 a bit, and I get nice, easy-to-work-with property lists with my UI components there, too.

The reality is that even though I have already put several months of real, nose-to-grindstone development into SwordSearcher Mac, bumping up against this fundamental weakness of the development environment means that continuing down this path will make me a frustrated, inefficient developer. It’s not that it’s hard –- it isn’t. But when I am developing SwordSearcher on Windows, I can be fast and efficient and write good code. I don’t have to waste time manually connecting methods to events, write IBOutlet and IBInlet, etc, when I should be able to just code the function! Switching between Windows and Mac development has become too much of a “shock” and I just don’t want to deal with it.

What does this mean? Am I abandoning SwordSearcher Mac? NO!

There is a nice little company called REAL Software that makes a cross-platform, visual development environment called REALBasic. With REALBasic, I can drop a button on a form, and, (imagine this), look at a list of all of the properties of that button, and click an item to write the code to handle events! Sound familiar? Delphi has been doing that for Windows developers for over a decade.

So I am going to give REALBasic a try. My preliminary plans are to design a new version of Daily Bible and Prayer in REALBasic – this way I can learn the language and the environment with a smaller project. I have lots of things I want to do with DBAP – and with REALBasic I will be able to write it for Windows, Mac, and Linux all at the same time. No more duplicated effort.

Then, once that is done, I will come back to SwordSearcher Mac. I am really committed to doing a Mac version of SwordSearcher –- but I want to enjoy the work. Using a more Delphi-like IDE will let me enjoy coding without feeling like I have one hand tied behind my back by an antiquated development paradigm.

What this means for SwordSearcher Mac is a delay. Not a delay of Longhorn proportions, but a delay nonetheless. Now I am looking at late 2006 for SwordSearcher Mac. And of course, development of the Windows version of SwordSearcher will continue in Delphi for the foreseeable future.

So, off to work I go! I will keep this blog updated as time progresses.