Apple has put out a tutorial introducing programming with Core Data, Xcode and Interface Builder. Even if you've never written a line of code in your life - and maybe even especialy if you have not - go take a look at Building a Sample Core Data Application.
It's all drag and drop, with a very little bit of property and behavior check-off's. My question is this: is it programming?
It's certainly fascinating. It's also tempting: no programmer can read that and not want to jump in for a test drive. It's definitely "cool", it's obviously powerful stuff. But..
Let's digress for a moment. I stumbled across Charles Petzold's Does Visual Studio Rot the Mind? presentation. If you don't know who Charles Petzold is, I congratulate you for having managed to avoid even the most rudimentary exposure to Windows programming, but it's time to broaden your horizons. Charles may be programming on the wrong side of the fence, but he's a very bright and interesting guy and I recommend reading his blog even if it is Windows centric (I think he'll come to his senses some day). A recent snippet from http://www.charlespetzold.com/blog/blog.xml:
We programmers, as you know, have malformed brains. Most of the time we tend to think like engineers, but if you give a regular engineer a new tool, the engineer will say "Thank you for this interesting tool. I will keep it in mind if a problem arises that seems to require it."
A programmer, on the other hand, given a tool like XAML, starts to think: "This is very cool. I wonder what I can do with this in the absence of all other tools. What it would be like to live on Planet XAML? How would I move around? What would I eat? How would I procreate? And if the only tool I have is XAML, what do the problems look like?"
Ayup: that's the difference between engineers and programmers.
Back to "Does Visual Studio Rot the Mind?". If you didn't click through the link above, I want to tell you that you really should read it. But if you just aren't going to do that (it is long, and you have other things to do), let me extract the stuff most relevant to where this blog piece started:
Most of the really innovative interactive design stuff found its first expressions in the Windows-based versions of Visual Basic, and here's where I started becoming nervous about where Windows programming was headed. Not only could you move a button onto your form, and interactively position and size it just the way you wanted, but if you clicked on the button, Visual Basic would generate an event handler for you and let you type in the code.
This bothered me because Visual Basic was treating a program not as a complete coherent document, but as little snippets of code attached to visual objects. That's not what a program is. Thats not what the compiler sees. How did one then get a sense of the complete program? It baffled me.
Two paragraphs later he says:
For an author who writes programming books, all this stuff presents a quandary. How do you write a programming tutorial? Do you focus on using Visual Studio to develop applications? Frankly, I found it very hard to write sentences like "Now drag the button object from the tool box to your dialog box" and still feel like I was teaching programming.
Maybe because it isn't programming? I'm not sure what this is - it's something like programming, sort of, but not quite. Charles gives an example:
I saw an Avalon clock application that somebody at Microsoft wrote. It actually set the time once in code and used Avalon animation entirely implemented in XAML to keep the clock going. It was very, very cool, except that the 12 tick marks of the clock were implemented in 12 virtually identical chunks of XAML. The only thing that would have appalled me more was seeing 60 tick marks implemented 60 identical chunks of XAML.
I don't know what rule you go by, but for me its always been simple: "Three or more: Use a for". This is why we have loops. This is why we are programmers.
If all you are doing is rearranging furniture in a room, you aren't an interior designer. That's true EVEN IF THE ROOM LOOKS GOOD when you are done. You can "write" useful and usable programs with Visual Studio and Xcode etc. but I don't think it's programming.
Don't misunderstand: I'm not against it any more than Charles Petzold is. Or maybe I'm against it every bit as much as he is. It's hard to say where he is on this subject, and honestly I can't really pin myself down either. I could easily see myself developing something much like that Apple tutorial demonstrates. I just don't know that I'd call it programming.
I'll leave this with a final quote from "Does Visual Studio Rot the Mind?". Charles relates doing some simple C programs to solve a puzzle posed in a magazine. He describes some of the thinking that takes place before actually writing code and then says:
Even after this preliminary process, there's still coding to do, but there's no APIs, there's no classes, there's no properties, there's no forms, there's no controls, there's no event handlers, and there's definitely no Visual Studio.
It's just me and the code, and for awhile, I feel like a real programmer again.
Like a "real programer". 'Nuff said.

Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
Sun Apr 9 17:17:09 2006: infinity
What you and Charles say is so much true. Your sentence "Rearranging the furnitures does not make you an interior Designer, no matter it looks good at the end" is a nice comparision.
Sun Apr 9 19:48:08 2006: TonyLawrence
Thank you - and are you a programmer? If so, do you use tools like Xcode or Visual Studio?
Mon Apr 10 15:37:17 2006: BigDumbDinosaur
I can't say that I get terribly excited by extra high level programming tools in general. I'm too much a control freak when it comes to writing code and detest "development" environments that assume that they know better than me what is required.
As one who started out by writing machine language programs and gradually worked up the totem pole to ANSI C and, much later on, Thoroughbred BASIC, I just don't feel comfortable with drag 'n drop coding. It isn't programming to me -- more like painting by the numbers.
If you don't know who Charles Petzold is, I congratulate you for having managed to avoid even the most rudimentary exposure to Windows programming, but it's time to broaden your horizons.
The name is vaguely familiar but I have never perused any of his writings (Windows stuff just doesn't interest me enough to seek out Redmond-oriented scribes). I have studiously managed to avoid writing so much as one line of code for any Windows environment. I leave that sort of activity to the Etch-A-Sketch developers who worship at Bill Gates' throne.
Mon Apr 10 16:09:57 2006: infinity
Hi Tony, Yes, I am. I do Automation of tasks and tests as a part of my work. We use python here. I enjoy the time, when using vim and writing C. :)
But I have never used VB or X-Code. I have only heard everyone saying VB is very easy, but it has never occured to me to try. But sometimes, I think that you have interesting things in many apps also, like for eg. If someone is good at writing Macros at M$ Excel and the way he presents the analysis of the data, it makes me think that I should 'learn' M$ Excel as well.
--
BigDinosaur, dont be so hard on M$. They have some fanastic tools as well. Charles is the first name you will hear, when you ask someone, what do you recommend to get started with windows programing.
Mon Apr 10 16:15:58 2006: TonyLawrence
And as I said, Charles is worth reading even if you don't do Windows
Tue Apr 11 18:44:40 2006: BigDumbDinosaur
Okay, okay! I'll take a look at his stuff. <Grin>
Fri Mar 13 20:33:25 2009: anonymous
Kinda reminds me of today's post: http://aplawrence.com/Unixart/graphical_command_line.html
Take Control of Buying a Mac
Take Control of the Mac Command Line with Terminal
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar