Here is the technology stack I have selected:
- Operating System - Mac OS X: I have an iMac (one generation back) and a MacBook (one or two generations back) so Mac OS X is a default choice to work on. Not that I mind. I find Mac OS X provides a superior development experience compared to Windows and a better desktop experience compared to GNU/Linux. The best of both worlds. Though I will be using Mac OS X as a development platform, I will not necessarily be targetting it exclusively as the platform for any software I write.
- Programming Languages - C++ and Python: C++ is my language of choice. I like its expressiveness and freedom compared with other statically typed languages. I add Python to the mix as my dynamic language of choice. Again, I am a fan of the syntax including the meaningful whitespace. I may throw Objective-C into the mix as I have some thoughts of writing an app for the iPhone/iPod touch.
- Editor - TextMate: I am not much of an IDE person. I much prefer having a powerful text editor that is not tied to any particular editee technology. TextMate fills this role.
- Version Control: Haven't completely decided on this yet. It will be Subversion (because it is something I know) or Mercurial. Possibly both.
- Build: SCons will be my choice here. It is not as fast as some other build systems. But it is simple to use and is developed in Python.
- Unit Testing: For C++ I really like the simplicity of UnitTest++. Not yet sure for Python.
- Libraries: This list will evolve over time. The only thing I can say definitively now is that I will make use of the Boost C++ library.
- Documentation: Right now I am most familiar with LaTeX for documentation. However, I would like to spend some time exploring DocBook for capturing my documentation. This will require learning about DocBook itself and also the technologies for taking a source file and creating a pdf.
- Bug Tracking: I've signed up for an account on FogBugz. Currently I just have a trial account and I will switch over to the free startup version soon.
This blog is intended to contain my day-to-day thoughts and ramblings. My Know Thy Tools blog (which will have address www.knowthytools.com soon) will be the place I record my learning about the items in my technology stack. I will also be creating another site to capture more static information regarding any software projects I start. I'll post here once I have that up and running along with my intended software projects.



0 comments:
Post a Comment