General question about programming a complex video editing app

Hey guys,

I'm posting a question a friend had, I didn't know how to answer him and I'm a Computer Science major. I haven't taken any software design classes yet, but I basically told him that Final Cut Pro is massive coding and that there are probably teams of programmers that work on different parts. Then there's probably people that work on the user interface, getting feedback from editors and then incorporating changes etc.

Anyway here is his question:

I've been using Final Cut Pro in its various forms for a long time now. I have recently got very interested in the concept of coding and building software (however, I am not profficient at it at all). I find it really interesting looking into all the issues of collaborative coding, and building apps collectively.

I do a bit of Web coding, CSS and the like, but i'm only just starting..

Just to feed my interest and curiosity, having looked at the way Final Cut Studio works, and having used it on dedicated machines giving me experience of how fast it can actually run, and watching it effortlessly casscade between the apps in the suite, to get amazing results, I have begun to wonder how complex it is.

So, how complex is an app like FCP Studio?? To me it feels like the pinacle of software (I may be wrong).

I'd like to hear from users, who are coders who can enlighten me. One of my first thoughts is that this sort of app can only be built with money backing from Apple et al., rather than in your bedroom - but where does money kick in over brains? I understand that time, and jobs are key - but I mean surely it isn't just down to money as to how good an app is?? Surely it's how good the coders are.

I get this feeling when I look at how good and far ahead OSX is compared to most, if not all Linux distros, and even Windows.

If any one has anything they can add here, I'd be really interested in hearing it all.

Right now I am currently working on a thesis regarding usage of the concepts of the Open Source Model and its licenses in direct relation to film-making

So you can see where i'm going with this. But really, I just want to know what it takes (or doesn't take) to build an app like FCP Studio.
Who is Participating?
Jose ParrotGraphics ExpertCommented:

Final Cut, Adobe Photoshop, Adobe Premiere, Pinnacle Studio, CorelDraw, are mature software, in version 5 and up 12. Nobody beats them. No chances. It is not only a programmatic point-of-view. No chances to beat them in the financial and marketing areas too. They are great pieces of software, millions of code lines, millions of dollars to maintain and fix. They aren't programs anymore. Are products.

But, if we all together think that way, nothing will change in the world...
HP and Apple started in garages, so there is a chance. But, how many Apples and HP do you know?

By the other hand, the idea of making films with open source code is really interesting and feasible, if you have a team working in the animation and modeling, by using expensive and high-end softwares and cheap AMD clusters to render films with open source based applications. The famous open source POV-RAY has a superb rendering engine that you can use in large arrays of servers. Large studios are already doing that.

The field is ok for people that creates new plugins for Photoshop or FCP. There is a world to conquer. The entertainment industry, films and games, is experiencing a huge growth. So, lets growth in this direction.

To better understand on open source coding, a good start is to be part of a team in ongoing projects. Take a look at and chose a project to contribute for. There are 120K projects there wainting for contributors. Or just make a research on this vast territory plain of creativity.

To build an app like FCP it does take a lot of people and a lot of effort.  Companies pour many millions into creating professional projects like FCP.  People are still looking for ways to improve the coding processes in use today because the effort required is so large.  Currently, it would take a large investment to build a professional product that has at least a reasonable degree of complexity.  If you have many coders willing to donate their time and a high-level product plan (i.e. open source development), you can produce great software with no monetary outlay (see all the great open source software available today).  The only problem with open source software is that there is nobody dedicated to playing the product manager role (defining release cycles and such) so that it usually ends up a little less polished that professionally built software (even though it may have some great features).  For some of the latest attempts to streamline the coding process search for "agile programming" or "extreme programming" on google.  Another programming concept designed to produce better code is "test driven development".  
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.