From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Adam Jensen Newsgroups: comp.lang.ada Subject: Re: Getting started with bare-board development Date: Tue, 15 Nov 2016 17:07:13 -0500 Organization: A noiseless patient Spider Message-ID: References: <2c9029c3-c45e-4bb8-9695-434f82265137@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Date: Tue, 15 Nov 2016 22:06:42 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="9f32be05ceed8ab4eea6b0c0b258b397"; logging-data="17771"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19yPc2M3SIVH6/+TAdnAJLj" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 In-Reply-To: <2c9029c3-c45e-4bb8-9695-434f82265137@googlegroups.com> Cancel-Lock: sha1:9XHnQarsWhXOaqW/bUjjvn/4Mfw= Xref: news.eternal-september.org comp.lang.ada:32330 Date: 2016-11-15T17:07:13-05:00 List-Id: On 11/15/2016 02:34 PM, Robert Eachus wrote: > Just a couple of reminders that you may want to put on your screen saver, or a plaque above your desk: > > Make it run, then make it right, then make it fast [Kent Beck] > > Premature optimization is the root of all evil [Donald Knuth] > > Moving from hardware to software, or mixing them together, it is sometimes hard to remember this key to software development. With Ada you are best off pulling any interface or (software) algorithm into a package. Sometimes a package you create this way will be implemented by interfacing to a library package, from the Ada RM, the device manufacturer, or a code repository. Let the compiler do the hard work of eliminating unused code, call throughs, and inlining a short procedures and functions. You will be amazed at the small ratio between lines of source code (SLOC) and the size in bytes of the resulting hardware module. (Don't forget to strip out the debugging support, enumeration literals, etc., before measuring. ;-) I am well steeped in the Tao of Unix[1..4], but I don't think I would apply a bottom-up approach to high assurance system development if I didn't have to [5]; and for the system I have in mind, I don't have to [6] . [1]: http://recycle.lbl.gov/~ldoolitt/unix.tao.txt [2]: https://gist.github.com/wmayner/d3a0ebf059982abbe3ad [3]: http://catb.org/~esr/writings/taoup/ [4]: http://huffman.sourceforge.net/tao/tao-of-programming.html [5]: http://recklessabandonlabs.com/img/logo.png [6]: https://youtu.be/gQxke0REFMA