Quote from gladoscc on December 11, 2011, 11:54
Before, I'd enjoy programming... Recently however it's becoming more of a chore... Has anyone else experienced this? Should I go for a different, new language? Go into web development? Disregard programming? Thanks
I fully agree that for most people programming is a lot less fun than it was ~35 years ago. I am hopeful that RasPi will help turn this around, as it will provide a mostly-open platform that encourages exploration. This is why I'm so interested in the project.
I see three things necessary for computing to be fun. The first is choice of language. Some languages are a lot more fun to program in than others. However, different people view fun differently. To paraphrase Mr. Knightley, I don't want others to choose my entertainments for me.
The second is the computing infrastructure, i.e., what operating system -- if any -- is providing the I/O and other libraries for your program. In my professional work, I have worked on embedded systems with little or no operating system. I'm programming down at the bare metal directly reading an writing device registers. I don't have to write device drivers to do this -- I just #define a register address, #define control bits in the register, and assign values.
In my undergrad days, I did a lot of PDP-11 programming. That machine had very clean memory-mapped peripherals. The PDP-11 Peripheral Handbook has a chapter on programming, which covers both busy loops and interrupts. That chapter is eight pages long. The utter simplicity invites one to experiment and have fun. In direct contrast is Linux or Windows kernel programming, which are both extremely steep learning curves. "Abandon hope (or at least fun) all ye who enter here" is what comes to mind.
Then you have GUI programming. It's a pretty steep learning curve for everything I've come across. Actually, Qt seems pretty nice, except that I don't care for C++. If you stick to basic graphics such as Win32 GDI and X11 Xlib, it's not too bad a learning curve. Once you bring in widgets, however, things get complicated and non-portable pretty quickly IMO.
I'd really like to play around with Android, but from what I can tell it's a ghastly programming infrastructure if you want to port over a Win32 or X11 application. As with many object-oriented systems, they do everything to confuse matters by coming up with new names for previously well-understood concepts. JMO/YMMV.
The third chore-vs-fun is the computing environment. Android is a perfect example here, because it seems that to do programming you need to use Eclipse (which I guess some people find fun) on a separate platform. IMO, cross-development is called that because it makes people cross
A good programming environment is one that doesn't get in the way. It's fun to use and you see results quickly. Again, individual tastes vary. Some people love heavy GUIs that are like flying a jet airliner with 100,000 switches. Others prefer a nice Makefile. Some like good old printfs for debugging. Others prefer something like GDB. Some think it's appropriate that GDB is a French slang acronym gueule de bois (wooden throat), which means "hangover". In fact, if I ever write my own debugger I think I'll call it KJ, short for Katzenjammer, which also means "hangover".
In summary, I think there are many ways that programming has become more of a chore and less fun over the last ~35 years. However, I think all of them have work-arounds.