Quote:
Originally Posted by Mr. Alex
Simplistic Window Manager for *nix like IceWM/OpenBox/WindowMaker/Sawfish - how much time does one programmer need to create it? And how difficult this task is?
|
Well, let's see. icewm has 57815 lines of code and 1703859 characters. I'd say from 1 to 3 years working alone every day 8 hours per day without holidays, if you're skilled C++ programmer and know exactly what you want to get. If you're not skilled or don't have clear goal add 5..10 years. That's a very rough estimate, and the project might actually take longer. Please note that icewm has been in development for 13 years.
Quote:
Originally Posted by Mr. Alex
Is it difficult for another man to learn C++ and make IceWM stable?
|
Yes it is. Mastering C++ takes at least 2 years. With codebase of this size, you'll spend next 8 months trying to understand how this thing works and what is the logic behind this program structure - because in order to "stabilize" you need at least partial understanding of program logic. To my experience, there's a limit to amount of code you can keep in your mind at any given moment ("keep in mind" means remember every single implementation detail). The limit is around 200 (maybe 500) kilobytes, and IceWM is bigger than that. Once program becomes larger than that, you have to be careful and maintain clean coding style, naming conventions and document everything you can using doxygen, because while you work on one piece of code, you'll be slowly forgetting how another piece of code works - you'll be forgetting implementation details, quirks, etc, and you'll need many reminders. Coding style and documentation are a programming habits that take time to develop. Without those skills you'll eventually get a horrible unmaintainable piece of code that apparently was written by eldritch abomination, and you'll have to waste more time fixing this mess again and again.
Quote:
Originally Posted by Mr. Alex
And what I learned after practicing PHP is that you don't even have to learn a whole programming language to be able to create something particular.
|
Doesn't exactly apply to C++. In this case even once you've learned entire language, there will be unlimited amount of information you don't know, because of language flexibility. With such attitude, you'll bravely start your project, mess up, and give up 10 months later with no results.
So the bottom line is that your idea of writing wm from scratch without previous programming experience with C/C++ is pretty much unrealistic. Try something simpler. MUCH simpler.