TweetFollow Us on Twitter

Build Cycle
Volume Number:10
Issue Number:9
Column Tag:Inside Info

Without The Build Cycle

Dynamic languages like Dylan™ turn the clock back twenty years

By Chris Espinosa, Apple Computer, MacTech Magazine Regular Contributor

When we first started shipping applications from Apple in 1977, some programmers worked with assemblers, and small bits of work were hand-coded in machine language using the built-in mini-assembler in the Apple II, but most of the software products we shipped in 1977 were written in BASIC.

Though I wrote some code, most of what I did was documentation of other peoples’ programs. For me there was a certain joy to working with a program written in BASIC. First, I could read the code. Everything shipped in source-code form, and if a program had a bug, I could list the offending lines, fix the value of a variable interactively, and run from a given line number. When I called the programmer to discuss the bug, I could help isolate it to a specific line, make the change myself, and save the fix permanently in my copy.

Programmers had similar power, to stop an application, interactively examine the values of variables, and resume. When I went to college and learned FORTRAN and Pascal, I wondered why we were being forced to take a step backwards! All my programs could do is execute or abort. I couldn’t examine variables or program state from the shell. I couldn’t list the program as it was in memory; I had to go to a separate source code file, which the compiler may or may not have been interpreting in the way I expected it.

Because I wasn’t writing anything that demanded great speed, I didn’t appreciate the value of using a compiled language versus an interpreted one. All I saw was the distance that the compiler put between me and my code.

The whole build cycle I saw as a mixed blessing. Yes, it introduced more delays and complexities into the process. But with build files and version control, people could manage much larger projects than could be put together with modules of BASIC programs. One of the last large programs I worked on was the interactive demo for the Apple ///, which was composed of a number of Business BASIC programs chained together. They had to be split up to be manageable, but doing so created a configuration nightmare.

Today static compilation is the reality that most programmers live in. Build systems have their own complexities and problems, of course, and the debate between project-based systems like Code Warrior and Symantec and script-based systems like MPW and UNIX will probably not end soon. But both systems have built up collections of auxiliary tools, common practices, and years of lore to build large projects with them.

In many ways the shape of a software engineering organization and product schedule is determined by the build cycle. The edit/compile/debug rhythm of the individual programmer is echoed in the develop/integrate/test cycle of the project, which itself drives the alpha/beta/final cycle (and in many ways runs the progress of successive generations of upgrades). The belief that product evolution is divided into distinct phases grows naturally out of a software development technique that is divided into similar phases: plan, implement, process, evaluate.

Given this, what happens if the build cycle is eliminated? Dynamic languages like Dylan™ turn the clock back twenty years, back to the interactive character of BASIC programming, but with the efficiency of compiled code. With a dynamic language, the programmer is able to examine live variables, execute code to evaluate expressions, or even change source code while it’s running. In a completely dynamic development environment, it’s conceivable that once a programmer gets the superstructure of the application running, it wouldn’t be necessary to quit it to develop more code. The development environment and the application would run side by side as separate processes, and the development environment could add new objects and methods to the application as it runs.

In this kind of environment there would be essentially no build cycle. You’d test and integrate each piece of functionality as you wrote it, method by method. Planning, implementation, and evaluation play tag with each other; you can hop from one to another at whim. Bugs wouldn’t pile up through the testing cycle, waiting for the next major build; they’d be caught and fixed then and there (and the side effects of their fixes would be noticed sooner).

What happens to the release cycle when the need for a big integration build is reduced? What happens to the separation of engineering and testing teams when testing can conceivably work on the live code as it’s written? How do programmers step back and get perspective on a program, when the environment gives them instant gratification for incremental evolution?

We can look at the ungainliness of HyperCard stacks, and the proliferation of “drop-in” architectures (like Photoshop plug-ins and Mac control panels) to get some warnings about what might happen in a more dynamic world. When programmers have more freedom and faster turnaround, they don’t necessarily use it to make things simpler or clearer. To the end user, the dynamic programming revolution could be seen as a maze of organic, ever-changing entities, assembled without planning or foresight. (Kind of like the Internet).

To be most useful, dynamic programming environments will have to be approached very carefully. Rapid turnaround has the power to make programming more fluid and free-form, and eliminate the artificial discipline of the build cycle. We may have to learn new disciplines, however, to make sure that the programs resulting from dynamic development are clear, simple, and straightforward to end users.

 
AAPL
$474.83
Apple Inc.
+7.47
MSFT
$32.39
Microsoft Corpora
-0.48
GOOG
$883.30
Google Inc.
-2.21

MacTech Search:
Community Search:

Software Updates via MacUpdate

TrailRunner 3.7.746 - Route planning for...
Note: While the software is classified as freeware, it is actually donationware. Please consider making a donation to help stimulate development. TrailRunner is the perfect companion for runners,... Read more
VueScan 9.2.23 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Acorn 4.1 - Bitmap image editor. (Demo)
Acorn is a new image editor built with one goal in mind - simplicity. Fast, easy, and fluid, Acorn provides the options you'll need without any overhead. Acorn feels right, and won't drain your bank... Read more
Mellel 3.2.3 - Powerful word processor w...
Mellel is the leading word processor for OS X, and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
Iridient Developer 2.2 - Powerful image...
Iridient Developer (was RAW Developer) is a powerful image conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
Delicious Library 3.1.2 - Import, browse...
Delicious Library allows you to import, browse, and share all your books, movies, music, and video games with Delicious Library. Run your very own library from your home or office using our... Read more
Epson Printer Drivers for OS X 2.15 - Fo...
Epson Printer Drivers includes the latest printing and scanning software for OS X 10.6, 10.7, and 10.8. Click here for a list of supported Epson printers and scanners.OS X 10.6 or laterDownload Now Read more
Freeway Pro 6.1.0 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With it's user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Transmission 2.82 - Popular BitTorrent c...
Transmission is a fast, easy and free multi-platform BitTorrent client. Transmission sets initial preferences so things "Just Work", while advanced features like watch directories, bad peer blocking... Read more
Google Earth Web Plug-in 7.1.1.1888 - Em...
Google Earth Plug-in and its JavaScript API let you embed Google Earth, a true 3D digital globe, into your Web pages. Using the API you can draw markers and lines, drape images over the terrain, add... Read more

Guitar! by Smule Jams Out A Left-Handed...
Guitar! by Smule Jams Out A Left-Handed Mode, Unlocks All Guitars Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
KungFu Jumpu Review
KungFu Jumpu Review By Lee Hamlet on August 13th, 2013 Our Rating: :: FLYING KICKSUniversal App - Designed for iPhone and iPad Kungfu Jumpu is an innovative fighting game that uses slingshot mechanics rather than awkward on-screen... | Read more »
The D.E.C Provides Readers With An Inter...
The D.E.C Provides Readers With An Interactive Comic Book Platform Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Choose ‘Toons: Choose Your Own Adventure...
As a huge fan of interactive fiction thanks to a childhood full of Fighting Fantasy and Choose Your Own Adventure books, it’s been a pretty exciting time on the App Store of late. Besides Tin Man Games’s steady conquering of all things Fighting... | Read more »
Terra Monsters Goes Monster Hunting, Off...
Terra Monsters Goes Monster Hunting, Offers 178 Monsters To Capture and Do Battle With Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Blaster X HD Review
Blaster X HD Review By Jordan Minor on August 13th, 2013 Our Rating: :: OFF THE WALLiPad Only App - Designed for the iPad For a game set in a box, Blaster X HD does a lot of thinking outside of it.   | Read more »
Tube Map Live Lets You View Trains In Re...
Tube Map Live Lets You View Trains In Real-Time Posted by Andrew Stevens on August 13th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Premier League Kicks Off This Week; Watc...
Premier League Kicks Off This Week; Watch Every Single Match Live Via NBC Sports Live Extra and Your iPhone or iPad Posted by Jeff Scott on August 13th, 2013 [ permalink ] | Read more »
Meet Daniel Singer, the Thirteen-Year-Ol...
Ever had the idea for an app, but felt like the lack of programming and design ability was a bit of a non-starter? Well, 13-year-old Daniel Singer has made an app. He’s the designer of Backdoor, a chat app that lets users chat with their friends... | Read more »
Flashout 2 Gets Revealed, Offers Up An E...
Flashout 2 Gets Revealed, Offers Up An Enhanced Career Mode and Exciting New Circuits Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Apple refurbished iPads and iPad minis availa...
 Apple has Certified Refurbished iPad 4s and iPad minis available for up to $140 off the cost of new iPads. Apple’s one-year warranty is included with each model, and shipping is free: - 64GB Wi-Fi... Read more
Snag an 11-inch MacBook Air for as low as $74...
 The Apple Store has Apple Certified Refurbished 2012 11″ MacBook Airs available starting at $749. An Apple one-year warranty is included with each model, and shipping is free: - 11″ 1.7GHz/64GB... Read more
15″ 2.3GHz MacBook Pro (refurbished) availabl...
 The Apple Store has Apple Certified Refurbished 15″ 2.3GHz MacBook Pros available for $1449 or $350 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. Read more
15″ 2.7GHz Retina MacBook Pro available with...
 Adorama has the 15″ 2.7GHz Retina MacBook Pro in stock for $2799 including a free 3-year AppleCare Protection Plan ($349 value), free copy of Parallels Desktop ($80 value), free shipping, plus NY/NJ... Read more
13″ 2.5GHz MacBook Pro on sale for $150 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1049.95 including free shipping. Their price is $150 off MSRP plus NY sales tax only. B&H will include free copies of Parallels Desktop... Read more
iPod touch (refurbished) available for up to...
The Apple Store is now offering a full line of Apple Certified Refurbished 2012 iPod touches for up to $70 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free: -... Read more
27″ Apple Display (refurbished) available for...
The Apple Store has Apple Certified Refurbished 27″ Thunderbolt Displays available for $799 including free shipping. That’s $200 off the cost of new models. Read more
Apple TV (refurbished) now available for only...
The Apple Store has Apple Certified Refurbished 2012 Apple TVs now available for $75 including free shipping. That’s $24 off the cost of new models. Apple’s one-year warranty is standard. Read more
AnandTech Reviews 2013 MacBook Air (11-inch)...
AnandTech is never the first out with Apple new product reviews, but I’m always interested in reading their detailed, in-depth analyses of Macs and iDevices. AnandTech’s Vivek Gowri bought and tried... Read more
iPad, Tab, Nexus, Surface, And Kindle Fire: W...
VentureBeat’s John Koetsier says: The iPad may have lost the tablet wars to an army of Android tabs, but its still first in peoples hearts. Second place, however, belongs to a somewhat unlikely... Read more

Jobs Board

Sales Representative - *Apple* Honda - Appl...
APPLE HONDA AUTOMOTIVE CAREER FAIR! NOW HIRING AUTO SALES REPS, AUTO SERVICE BDC REPS & AUTOMOTIVE BILLER! NO EXPERIENCE NEEDED! Apple Honda is offering YOU a Read more
*Apple* Developer Support Advisor - Portugue...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
RBB - *Apple* OS X Platform Engineer - Barc...
RBB - Apple OS X Platform Engineer Ref 63198 Country USA…protected by law. Main Function | The engineering of Apple OS X based solutions, in line with customer and Read more
RBB - Core Software Engineer - Mac Platform (...
RBB - Core Software Engineer - Mac Platform ( Apple OS X) Ref 63199 Country USA City Dallas Business Area Global Technology Contract Type Permanent Estimated publish end Read more
*Apple* Desktop Analyst - Infinity Consultin...
Job Title: Apple Desktop Analyst Location: Yonkers, NY Job Type: Contract to hire Ref No: 13-02843 Date: 2013-07-30 Find other jobs in Yonkers Desktop Analyst The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.