Why did you build Chamomile?
I built Chamomile first as a set of utilities which I have used on and off since 1997, when I first began working with SQL Server. I then built on it as a test bed for new techniques. I then built on it as a platform to demonstrate what I believe are sound development practices use the SQL language. I continue to build on it as a set of utilities to be used in my current work. I've posted it online to share some of my work with my peers, gain from feedback, and to act as a resume of sorts.
Do you follow your own recommendations?
As much as possible. I've written all of this based on three decades of study and experience. I've found what works for me and I include these things in my practice. Some things, such as the principle that good software should be self documenting are practices that I have to continue to work out or chance falling back into sloppy habits. Some things are simply not allowed in shops where I've worked. If your shop doesn't allow you to write unit tests you can write unit test drafts to guide your own development, but if your shop won't allow you to build out utility methods for commonly used code, there is nothing you can do but repeat that code in the target method.
Why did you write Chamomile in Transact SQL rather than ANSI SQL or PL-SQL?
I make my living writing SQL on Microsoft SQL Server. It would be cool to write Chamomile in ANSI SQL. I have worked with ANSI SQL as well as PL-SQL. It's cooler to take home a paycheck.
Why do you only use SQL as an example rather than including other languages?
I've written software on Sperry Mapper, ladder logic on both Allen Bradley and Giddings and Lewis programmable logic controllers, assembly language, APT, AutoLISP, ANSI C, C++, C#, PL-SQL, Transact SQL, ANSI SQL, batch, and PowerShell, Modula 2, Forth, XQuery, XSLT, Java, Flex(http://www.adobe.com/), Enterprise Java, Swing, and ABAP.
That's what I can remember off the top of my head. I like SQL best. I'm agnostic regarding the implementation, and given my druthers I'd write everything in ANSI SQL, but I'm happy as long as it's SQL. Set based programming seems very natural for me and I like that, with SQL, I have the opportunity to use both the efficiency of the relational model as well as the specificity of the procedural program. Further, when I deploy a SQL object (specifically on SQL Server in my case), it is always running on a highly robust and mature platform, SQL Server itself! When I deploy a Java object, all too often it is running on top of a very fragile stack of objects that have been custom created. I like having the robustness of SQL Server to build on.
The quick brown fox jumps over the lazy dog
Why do I occasionally state that "the quick brown fox jumps over the lazy dog"? Because I spent two years in high school typing classes using the old manual typewriters (I graduated from High School in 1978), and I typed that phrase possibly tens of thousands of times! I still use it to limber up my fingers when I'm typing, and I just can't get it out of my head! If you hear me use it, I'm probably trying to limber up my mind!
"The quick brown fox jumps over the lazy dog" is an English-language pangram—a phrase that contains all of the letters of the English alphabet. It has been used to test typewriters and computer keyboards, and in other applications involving all of the letters in the English alphabet. Owing to its brevity and coherence, it has become widely known.
Best_practices are a set of informal rules that the software development community has learned over time to improve the quality of applications and simplify their maintenance.
copyright Katherine Elizabeth Lightsey 1959-2013 (aka; my life)
"To raise new questions, new possibilities, to regard old problems from a new angle, requires creative imagination and marks real advance in science." - Albert Einstein
Wiki: Home
Wiki: best_practices
Wiki: chamomile
Wiki: self_documenting_software