Writing Professional Software
I’m working a pet project. It’s just me. No one else has contributed yet. I’m not upset about that; I actually expect that for something like this. The project is called balística. It’s an open source ballistics calculator I’m writing in Vala. So far so good with it I suppose. This is probably the farthest along I’ve ever made it with a project I’ve started and I’ve discovered a lot very interesting things along the way. Facts about software development that I didn’t know before. Facts I wanted to share with anyone else who is considering such a project.
- Writing genuine professional software is HARD. Wow. Just wow. For inspiration, ideas, and “howto”s I find myself reading and, a lot of times, more or less, just copying how Yorba does it with their projects; specifically Geary their mail program. Going through their code and attempting to mimic certain features in my own program has really demonstrated how difficult truely good software is to write. I’m in IT for a living and given that, I spend my days mostly writing reports and maintaining Oracle databases. I don’t genuinely write a lot of software of this nature for money. Now that I’m doing it for a “fun” though Yorba’s failed crowdfunding attempt doesn’t seem nearly so outrageous.
- Professional software is fun to write, but also incredibly frustrating.
- I find it very difficult to concentrate on adding features. Instead, I just find myself constantly rewriting current features to make them better. It’s a trap I assume most people will fall into at one point in their careers but this is a first for me and its really weird.
- Getting things to work properly is much harder than anticipated. I expected the nature of programming the application to just flow together. Features would easily build upon each other like blocks. So far it really hasn’t. Every new feature. Every new idea. Everything I want to do ends up becoming a major hurdle for me. It really wears on the sole.
- My skills are much lower than I hoped/thought they were. I feel like a bad episode of Top Gear every time I sit down to work. “How hard could it be?” I keep asking myself. And just like on Top Gear I find out it’s really freaking hard.
- My understanding of the basic libraries and architectures that power Linux and Gnome is more or less nill. I’ve done very little GUI programming in my life. Honestly, I hate it, and try to avoid it. Now that I’m getting neck deep in them though I find them terribly frustrating and tedious. I have neither an eye for design or aesthetics. The GTK toolkit is completely foreign to me. And if it weren’t for Vala and companies like Yorba I’d never be able to do anything with glib either.
Now that I’ve covered the downers of this, there is light at the end of the tunnel. This is genuinely fun to do. I really do enjoy learning how to do this. I can’t express in words how much I’ve learned how to do by starting this project. As frustrating and depressing as it can be, it’s all worth it when you see your code compile, link, and then execute just like you want it to.