Pro Bash Development; Way Beyond Shell Scripting*
All Unix/Linux users know a little shell scripting, even if they're unaware of it. Pipes, for example, are a part of the Bash/sh language. Bash/sh, i.e. shell scripting, is usually treated as just that: shell scripting. But if you're crazy enough, you can develop full-blown profession, modular, and tested (yes, tested!) programs in Bash. It takes a little finesse, but I'll show you how, and you just might think twice about using Bash--really using it--in the future.
Lots of programmers whip up small- to medium-sized scripts in Bash (or pure sh), but I write full-blown programs in Bash, complete with libs, docs, and test suites. If you didn’t look at the source, you’d never know it was Bash and not Perl, Python, PHP, Ruby, or any other language.
Why do such a thing? There’s actually a strong argument for using Bash for programs that make extensive use of standard system commands. An amazing amount can be done with awk, sed, sort, read, pipes, subshells, etc. I’ll show you how.
No program is “professional grade” unless it’s modular and tested. You can do this with Bash, too. Bash has some awareness of libraries, but none of testing. That’s ok: I’ll show you how both can be done easily and sanely.
If you’re a professional developer that spends most of the time in a Unix/Linux shell—sysadmins, DBAs, etc.—then join this talk to learn how the Bash shell you’re probably already using can also be a very powerful programming language.
I have presented talks at MySQL Conference & Expo 2012 and 2013, and I plan to present at Yet Another Perl Conf. North America (YAPC::NA) 2013. I also have a master's degree and have taught classes at the university level. This will be my first time presenting this talk.
Daniel Nichter is the founder and creator of Test Noir, the web service that simplifies multi-environment software testing by centralizing, organizing, and analyzing your test results. He’s also the lead MySQL tools developer Percona, the oldest and largest independent MySQL consulting company. Daniel has been programming and developing with Perl and MySQL for 10 years.
- Title: Quick Cure for the Shame of Untested Software
- Track: Cooking
- Room: B301
- Time: 4:45 – 5:30pm
As the founder of a company focused on software testing, I speak often to developers who admit in private: “Yes, testing is important… but we don’t test.” Reasons vary, but the basic problem is that testing is seen as too difficult and time-consuming with no apparent value for the effort. In this talk I hope to convince you that this problem is a false dilemma and show you how to get started testing software quickly and easily.
- Speakers: Daniel Nichter
- Title: Pro Bash Development; Way Beyond Shell Scripting
- Track: Hacks
- Room: B302/303
- Time: 2:30 – 3:15pm
All Unix/Linux users know a little shell scripting, even if they’re unaware of it. Pipes, for example, are a part of the Bash/sh language. Bash/sh, i.e. shell scripting, is usually treated as just that: shell scripting. But if you’re crazy enough, you can develop full-blown profession, modular, and tested (yes, tested!) programs in Bash. It takes a little finesse, but I’ll show you how, and you just might think twice about using Bash—really using it—in the future.
- Speakers: Daniel Nichter