Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Al Williams

Dr. Dobb's Bloggers

How Expensive Is Free?

October 26, 2012

Isaac Newton wrote, "If I have seen further it is by standing on the shoulders of giants." This was actually a paraphrase of something Bernard of Chartres said in the twelfth century, but since most people have no idea who he was, we usually attribute the saying to Newton.

More Insights

White Papers

More >>


More >>


More >>

With modern technology, we all stand on someone's shoulders — and often many sets of shoulders. I've brought several CPUs up "from scratch" and then built language and operating system support for them. It isn't easy. Even then, do I have the mechanical skills to have built those CPUs without an FPGA? Or the knowledge to fabricate the components from raw materials? On the other end of the spectrum, the software I built for that CPU relied on cross tools running somewhere else. If I had to start with absolutely nothing, how far could I get? Even if I had the knowledge, the time investment would be staggering.

So we need tools. We need lots of them.

I've mentioned before that I am not a big fan of IDEs, even though I use one from time to time. I mostly sit with a shell prompt and emacs (yes, I know vi; no, I don't care for it; yes, I hear vim is much better). When I debug though, I do like to have some sort of graphical interface. I appreciate a nice runtime library (one of the reasons I enjoy the Atmel AVR is the availability of Pascal Stang's AVRlib. For a lot of the smaller things I write, I don't always need an OS (or I use a very simple one of my own), but I have ported FreeRTOS to the LPC2119 and, as evidenced by my recent blogs, I enjoy using Linux for bigger projects.

The Internet has been a mixed blessing for tools. Sure, the Internet isn't the only way software has been passed around over the years. I remember years ago being on a circle list for a tape. A far away colleague would ship you a 9 track tape. You'd get things from it, add things you had to it, and then send it to the next person in the circle. But the Internet is much larger and way faster than that!

If I want to, say, start doing ARM development, I can go download pretty much everything I need. There are even some open source toolchains that try to gather everything I need into one place (e.g., the official GCC ARM Embedded in Launchpad or for Atmel, WinAVR ARM gcc port).

The situation is a little like Linux. It is entirely possible to go assemble your own Linux OS from all the free parts. But how many of us do that? Generally, I want to spend my time using Linux not building it.

Red Hat and Canonical have business models where they add value to Linux by aggregating and integrating the pieces into a cohesive whole. They also support the product so if something goes wrong, you expect them to help fix it in some way. There are a variety of companies that offer the same type of consolidation for embedded tools. Some of them target the vendor (when you use a TI chip, for example, you usually get some form of Code Composer Studio and tools for that chip from TI). Others attempt to woo end users with offerings either better than the free versions or vendor-supplied versions.

For ARM development, the CodeSourcery suite was perhaps the best-known of these. They were purchased by Mentor Graphics, although their offering seems to be largely the same. The product has several "editions" — a light edition is essentially just the command-line tools and is freely downloadable. The personal edition has an Eclipse-based IDE and tools but limited access to support. The standard edition adds better libraries and the ability to debug the libraries, updates, and better access to support. Then the professional edition includes things like simulation and priority support.

As you might expect, each level goes up in price. Although the Mentor website says that the personal edition "starts at" $99, realistically the price for anything you will want is at least $399 (although you can usually find a coupon to bring the price to $99). Typical prices for standard and pro versions are $1,600 and $2,800 per user. That's a pretty hefty price tag, especially per user. The premise, of course, is that you will save more money using the extra tools and support than you will spend on the increased cost of a license.

There's not one answer, of course. I've worked on projects where $2,800 is a drop in the bucket. Then again, those projects would probably need to negotiate a floating license anyway because of the number of developers on them. For a team of ten or less, though, that's a lot of cost when you can get something usable "for free."

Heinlein popularized the phrase "There ain't no such thing as a free lunch" and that's certainly true. The free tools take a little time to stand up and — presumably — the paid tools will reduce roadblocks. I do think the vendors overall need to do a better job of explaining just how the tools and support will really save me thousands of dollars on a typical project.

What's your take? Do you use free tools? What's the hidden cost of them? Have you paid for a premium set of tools? Are you satisfied with it or do you have buyer's remorse? Leave a comment and share what you've found.

Related Reading

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.