If you suspend your transcription on amara.org, please add a timestamp below to indicate how far you progressed! This will help others to resume your work!
Please do not press “publish” on amara.org to save your progress, use “save draft” instead. Only press “publish” when you're done with quality control.
Hacker culture, which originated CCC (or vice versa?), overcomes
limitations in computer systems through creativity and tinkering.
Many activities of the hacker community have focussed on discovering
weaknesses of IT systems, and creativity and tinkering have been
enormously successful at this endeavour. At the same time, hacker
culture has shaped the practice of software development to this day.
This is problematic - techniques effective for breaking (into) a
computer systems are not necessarily suitable for developing resilient
and secure systems. The long, long list of vulnerabilities with
always the same root causes bears testament to this. Thus,
ironically, the very techniques hackers have used to discover and
fight vulnerabilities are responsible for them in the first place.
It does not have to be this way: It is possible to construct resilient
software systematically, greatly reducing the risk of failure.
However, this requires significant changes in culture, methodology,
and the tools we use to develop software. We need to approach
software development as a methodical, systematic activity rather than
tinkering, and teach it accordingly. This will lead to a set of
systematic, proven methods that lead to robust and correct software.
This talk will introduce available methods, tools, and languages
supporting such methodologies: program by design, type-based
modelling, mathematics, and functional programming. I'll review my
experience teaching these methods for the past 18 years and give some
suggestions on what *you* may do.