So as someone starting out in the field of scientific programming, I keep finding myself struggling with choosing the right language to code a specific project. I’m sure in time, as I get more experienced and more comfortable with all my tools, I wont struggle with the choice. My latest project is parsing a really large text file of genetic data: 8GB worth. The current method is to break the file up in +/- 1GB chunks and open it in the statistical software as a spreadsheet…. the software, though 64bits, runs on a single core and the server is shared among three other users, so RAM starts to become a limiting factor when there are thousands of rows and 10+ columns. Takes at least 30 min just to open the thing let alone work out all the extra equations… it’s painful to watch.
So I figured I’d do this in C++. It’s fast, it’s easy, and with VS2008, I could make a GUI for this Windows infested world (I love *nix, nuff said). Then I get to the large number of if/then equations and decide to use switch… except dummy me forgot C++ doesn’t do strings in switch… ugh. I could have tried some convoluted char method, or enum, but with these strings it was going to be more work than it was worth.
So what to do? I need a speedy language … but python or Java play nice and are more forgiving to code with, but then only Java is easily portable… anyway I settled on C# and I’m finding it enjoyable to work with. It’s like a cpp-java hybrid and easy to code with… but I still have no clue if C# will be adequate in the end as far as speed. And now I’m thinking perhaps I gave up on C++ too soon…
Of course there are those that pick language sides, but I’m young and I like to explore new options…

