While this post doesn’t really pertain to ECE 2524 as much, it relates to linux software development. I just finished up making my first project on a linux platform using Qt for my 3574 class. My first thoughts? Not good at all. I was writing code without a debugger and it was terrible. I spent way more time debugging than actually writing the main parts of the code. At least in visual studio they give you little hints on what could be wrong when you build.
I used the simple gedit editor to create my files. I didn’t think I really needed something too fancy and I think gedit served me pretty well for what it is. Also, the experience of software development on Windows and Linux is completely different. In Windows, I usually used visual studio to build, compile, and execute my code. On Linux, none of that exists. It’s just basic command line and text editor. Nothing fancy at all. This has its ups and downs. Yea you don’t get the extra tools that would help you alot, but programming in linux feels alot cleaner and simpler.
I definitely find debugging the most frustrating part of software development. I’ve found that by learning and adopting the Unix design rules laid out in The Art of Unix Programming, I’ve really cut down on the amount of time I need for debugging.
Linux has a full featured development environment (remember, it’s an OS that was written by programmers for programmers!), we just haven’t covered it yet in ECE2524. There are a ton of individual tools to aid in debugging (gdb, valgrind), build automation (make, cmake) and performance analysis (gprof, valgrind) which can be combined with flexible editors such as vim or emacs to create a really powerful Integrated Development Environment (IDE). In addition, there are full fledged open-source IDE’s such as Eclipse and Code::Blocks that run on Linux.
But don’t take my word for it!