Meredith L. Patterson ([info]maradydd) wrote,
  • Mood: pleased

This is how you get people to give a damn.

Here is the preface to Plumbing for the Arduino, the new Creative Commons-licensed book about parallel programming for the Arduino by Matthew C. Jadud, Christian L. Jacobsen, and Adam T. Sampson:
Embedded programming has always been about dealing with the real world in a timely manner.

When you push a button on your microwave, it beeps and updates the display immediately. It doesn’t matter if the microwave is currently making popcorn or not—it responds in near real-time to your touch. If you’ve ever tried to achieve this with your Arduino (or other embedded controller), you discovered that it is very difficult to make your embedded project do two things at once—like controlling a motor while waiting for a button to be pressed. You either found yourself writing large, complex loops that constantly check everything about your system, or you found yourself reading about “interrupt vectors,” and wondered if you should have paid more attention in your high school physics class.

Plumbing, and the language it is written in (occam-π), makes these problems go away.

This is how you write an introduction that makes people care about what your project does. This is how you take a specialty solution, heretofore useful to and understandable by only people who already understood process algebra and the pi-calculus, and present it as another tool for people's toolboxes right alongside hammers and screwdrivers. If you want to drive a nail, get a hammer; if you want to do parallel tasks in real-time, get occam-π.

Now, that said, figuring out how to describe a project (especially the more abstract or academic ones) in terms of "what problem does this solve" is not always easy. Figuring out how to do so concisely and in a way that people are likely to remember is even harder. But it is crucial to making your project matter.
Tags: keep doing that thing you're doing

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments

[info]morbid_curious

February 14 2010, 01:55:18 UTC 2 years ago

Occam-π sounds like it was named with these in mind:



But that may just my brain recovering from conference paper review that's making that connection.

[info]maradydd

February 15 2010, 01:30:57 UTC 2 years ago

Well, it's based on occam, a process-algebra language developed in the '80s for a parallel CPU called the Transputer; with the addition of the π-calculus it became occam-π. But I could totally see an okapi on the cover of the O'Reilly book, when one happens.

[info]anaisdjuna

February 14 2010, 06:03:01 UTC 2 years ago


I agree. It's well written. Active, visual, economical with words. Pulls the writer in.

[info]derekja

February 14 2010, 14:34:43 UTC 2 years ago

interesting and well-written. I've already drunk the functional programming language cool-aid, so it worked for me, but it never really makes the case for WHY a process-oriented language is better than just writing an RTOS in a procedural language. Probably just a more abstract discussion than they wanted to get into, I guess.

[info]maradydd

February 15 2010, 01:35:20 UTC 2 years ago

I'd actually like to see that discussion at some point. "Because a process-oriented language can be compiled to native code for an architecture that can't support a full RTOS" is one argument, though I'd like to see the pros and cons of RTOS vs. process-oriented languages on a platform like the ARM Cortex.
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…