The Best Way to Start Programming for Free

We all have good ideas, right? But sometimes these good ideas take more skill than we have at our disposal to bring to life. Maybe you’ve thought of the perfect “app for that,” but haven’t ever programmed a line of code in your life — in fact, you don’t even know where to start programming! Your good idea remains locked away in your noggin along with all of those other dreams that seem sadly out of reach, and that’s a shame. But maybe there’s a solution?

This is an interview with Geoff from Xojo, a development environment that helps people with no programming experience turn their good ideas into fully working apps. As the Xojo team says, it takes pride in “enabling ordinary people to create extraordinary apps.” I figured I’d ask him a few questions about just how Xojo helps regular, non-coding folks achieve such lofty goals. (Disclosure: Xojo is a LockerGnome sponsor.)

What makes Xojo different from other development environments?

The Best Way to Start Programming for Free

Xojo: Enabling ordinary people to create extraordinary apps. [Image: Jeremy Bronson via Flickr]

Most development tools have chosen to be powerful, but not easy-to-use — or they’re easy-to-use, but not very powerful. Most people think you have to make that choice, but there are lots of products that prove that’s not true. A few examples that leap to mind are the iPad and the Nest programmable thermostat. These devices do a lot more than anything in their category in the past and yet both are easy to use.

I have always believed that if you are making a choice between powerful and easy-to-use, you haven’t thought about the problem long enough. People interested in creating apps want to focus on what makes their application unique. They don’t want to be bothered with the details of the target OS. And they want their applications to be indistinguishable from those made with the tools provided by the OS vendor. They want to be able to build any kind of app they can imagine for any modern platform.

Xojo does this. First, it lets the new developer make incremental progress. There’s no mountain of learning that has to be completed before the simplest app can be created. You can drag a few controls on to a layout and click Run to see your interface come to life. Then you can start learning commands to do what your app needs to do. Second, most people don’t want to learn the details of the OS. Each OS has thousands of commands. Xojo abstracts you from that so you can focus on the app. Third, everyone wants their applications to look and feel native. That’s why Xojo uses native controls on each OS rather than drawing the controls itself like some other tools do. And finally, you don’t want to have to learn one language to create desktop apps, another for the Web and another for iPhone/iPad. Xojo provides a single development tool and language that targets desktop and the Web, with iPhone/iPad coming later this year.

One tool to rule them all. :)

Is cross-platform development really that important?

It is. When we started out, we created only desktop apps and only for Mac. At that time (and still to some degree today), Mac users had to live in a Windows world. So being able to create a Windows version of your Mac app without much extra work was a very powerful idea for Mac developers. We provided that. Today, Mac market share is growing, and more and more Windows developers feel they can no longer ignore the Mac market. People writing software for use inside their company are finding that they need to target more than one OS. That’s what we are seeing. They are coming to us for a solution to build a single app that can run on Mac and Windows desktops, Linux servers, and the Web. And, of course, they want to be able to build apps for iPhone and iPad, so we are hard at work on that as well.

But there are more cross-platform issues. For example, when you build a Web app with the traditional tools (JavaScript, HTML, CSS, AJAX, and PHP or Java), you have to spend a lot of time testing your app in each browser and then making changes because, regrettably, they don’t all interpret things the same so you can end up with different results in different browsers. The Xojo Web framework abstracts you from the assembly language of the Web (my term for JavaScript, HTML, CSS, AJAX, and PHP or Java) and in doing so abstracts you from the differences between Internet Explorer, Firefox, Chrome, and Safari. Dealing with all of that can consume enormous amounts of time.

If anything, cross-platform is more important now than it has ever been before. If you are developing for only one platform, you should take a hard look in the mirror. If you see sharp teeth, a long tail, and tiny arms, you might be a dinosaur.

Why have you opted for a partial freemium model with Xojo?

Most schools today teach their introduction to programming course with Java. I can think of no better way to turn people off to programming. It is our goal to be the tool for anyone who wants to learn programming. So we’ve made that part of the process free. We’ve also commissioned a book, An Introduction to Programming with Xojo, which will teach anyone the fundamentals of programming. Most of what you learn will translate to just about any other programming language. However, we strongly believe that once you learn programming with Xojo, you’ll continue to use Xojo. And once you reach the point where you want to share your app with your friends, co-workers, or the rest of the world, you’ll buy a license.

If you’re an experienced developer, you’ll reach that point very quickly.

Where did the idea for Xojo come from?

I’ve loved programming since I was about 12. But I’ve also thought it was needlessly complex. Xojo is the realization of my dream to make programming accessible to new developers and fast and efficient for experienced developers. You should be able to learn one tool and language, and then build for whatever platforms you need.

From your experience, what is the most common issue software developers face?

Complexity. Even a simple app can be a long and complex process to create with most development tools. That’s why we focus on ease-of-use and fast development.

Are “apps” just a fad?

Sure, in the same way that “computers” are just a fad. :)

Apps have been around for as long as computers have. Now we have more types of computing devices and thus more types of apps. We have traditional desktops and laptops, Web browsers, smart phones, and tablets. They all run apps. The apps might look different because of the device upon which they are running, but they are apps nonetheless. And that’s the great thing about Xojo. You can create apps for different computing devices with a single tool and language. That’s how programming should be.

Now that Xojo has been released, what do you hope to do with it in the future?

This is really just the beginning. We will continue to make it faster and easier to create apps for more platforms. Cross-platform is important and will only be more important in the future.

Is Xojo easy enough for someone who has a modicum of interest in programming?

You’ve probably already figured out the answer to this one. Yes, it certainly is. In fact, a lot of our users have no previous programming experience. That’s the great thing about Xojo. It’s easy enough for a beginner but powerful enough for a professional. You’ll never outgrow it. And you don’t have to believe me. You can download Xojo, our documentation, and the Introduction to Programming with Xojo book, and start learning today. For free.

Article Written by
