The free software world is remarkable in it's completeness at this stage. There are applications to cover nearly any function or task you might have. Many very powerful applications that rival commercial equivalents.
For missing free programs, some companies actually develop linux versions of their software, one example is Adobe. They produce a linux version of their Flash player, and it works well enough. Well, let's just say it works well enough to get by.
It's no secret that the linux version of the Flash player is a huge cpu hog. Actually, the mac version as well, but not as bad. Still, it seems to me that the Flash player uses far more cpu that would be needed to accomplish its task.
Using VLC, I can play a 720p HD video compressed with the H.264 codec, and VLC will use less than %17 of the CPU on my 2.4Ghz dual core celleron.
Adobes Flash player will use over %60 of the same chip playing a much lower quality video full screen... By contrast, SecondLife uses only %44 of the same chip when walking around in the world full screen...
Yes, Adobe Flash player uses more CPU than a full game/3D world program. What the hell Adobe? Did you write your Flash player in Visual Basic? Flash should be a textbook example of BAD programming practices. Adobe should be embarrassed and ashamed.