Thursday, September 9, 2010

Polyglot Programming

A typical week (and sometimes day) consists of a little bit of the following: C++, C#, Python, Javascript.

 C# 
  • Asset-Backed Position Management UI in WinForms.
  • Trade And PnL UI in WPF for a high frequency trading engine. Using RX for processing streams of incoming messages, hoping it can scale to > 1k ticks/sec.
C++ 
  • high frequency trading engine: position management, pnl calculations, high-performance messaging. Advanced use of templates, custom memory pooling, concurrency. Ahh, it's been a while since I cared so much about bits and bytes. But as Alan Kay once said "if a company is really serious about software they need to build their own hardware", so I got myself a new book on top of the stack on my desk: Bebop to the Boolean Boogie - it's a fun book, even if at the expense of accuracy (for example the author claims that Perl is one of the first scripting languages, I am no expert on these matters but looks like sh predates perl by a decade, while I was fact checking I was shocked to discover that perl is now 23 years old! and python is almost 20).
Python
  • Building a web app on Google AppEngine. (using django templates, meta programming with decorators, metaclasses, and other nifty python stuff that make it a very elegant language. Python is FUN; glad that the author of a book i am currently reading - programming collective intelligence - opted to use py for the examples).
  • Curses UI in a Unix environment (initially it started out as a somewhat specialized file grep+tail, but, bam, a couple hundred of python lines later it's a multithreaded, curses-based powertool).
Javascript

No comments: