Why Linux is not attracting young developers
jfplayhouse.com
jfplayhouse.com
Thinking about all the software I use regularly, I know pretty much all the authors. Some of them I have even met in person, and they have gotten free beer as a result.
I guess if you are outside the community, it doesn't seem very exciting, but if you are in the community, it is exciting. Kind of the opposite of high school cliques...
And you never know if something like that will contribute to the success of the project. It could be that a non-working webcam would be the straw that broke the camels back and sent a newb back to Windows. Lots of people have given up on linux because their hardware didn't work.
The amount of change an individual developer can effect on a project is inversely proportional to the amount of code already written.
Linux, as a kernel and as a platform, has matured, but there's still plenty of opportunity for new people to explore new territory. Some of it may be extending the existing "boring" infrastructure, which the author seems to blame for turning developers away, but nobody should feel restricted to working on those things. There's still a lot of exciting application development to be done, and as an added bonus, if the platform needs improvements to support your application, you're encouraged to contribute those as well.
Also, if you want a counterpoint, the Arch Linux developers page certainly makes me feel old already: http://www.archlinux.org/developers/
I think this is more reflective of what the "free software" community really is.
Thanks for making me feel young at 30.
The thing I was concerned about was the ageing of the core group of subsystem maintainers - who have been doing the same thing for a long time - and whether there was room at the upper levels for up-and-coming hackers. A real concern (though not a huge problem, yet), but a different one.
Though, with the graph that papachito it got me wondering what "active" means. I've done 9 commits in the last year (whereas I used to do several hundred) and suspect I thusly get counted as "active". It might be more interesting to see things computed as something like people above one standard deviation below the mean...
But keep in mind, for best success, the order of operations is "step 1. write code. Step 2. ask for commit bit". Sometimes it works the other way, but not as often.
Believe me, when you become a regular and valued contributor, the maintainers will gladly grant you the access. It's in their interest: less time to spend on patch reviews and commits, and an additional incentive for you to keep contributing. All sane maintainers care about the growth of their projects.
The entire process is daunting. Here is the problem in a nutshell (or a comment):
1. I have an idea for something. I'd like to code it. First, I want to find if someone is working on it.
2. I try to search the mailing list, but don't find anything. Some things slightly cover it, but most don't.
3. I'd ask in the mailing list, but frankly, I don't want to sound stupid. Besides, talk is cheap, code matters, right? Besides, what I want to code up is small.
4. So I just code it up. I hack it up, and get it to work. Yay! It works for me!
5. So, now I need to send it back in. Hrm, who do I send it to? Lots of emails. Do I submit a bug report and then a patch? I can try that.
5a. Hey look! No one responds to my patch after weeks of sitting there! 5b. Hey look! Someone responded! Yay! They explain briefly that this is the wrong place for the patch. 5c. Hey look! Someone responded! Yay! They ask a question regarding something you have no idea about that possibly relates to your patch and Sparc processors. WTF!?
Here's the thing: open source projects generally make it difficult to contribute easily. This is a good thing. It forces people to truly commit to getting their code live. However, it is also a deterrent. Couple this with piss-poor documentation, and you have a serious problem. I'd love to develop user side apps for Gnome, but honestly, I just don't have the desire to wade through the mountains of misinformation and back and forth. I want to code, not spend time Google searching every 2 minutes.
This is something MS does very well, and why it gets the love of developers. They present an easy way to get up and developing on the MS platform, on any MS platform, with little to no effort. Developers spend their time developing, not installing half a dozen packages and then finding out that they don't have the exact version number of the package they need to have.
Yes, I've contributed to OS projects. I've contributed fixes to problems I've had. Heck, I remember doing some stuff with X to get multihead monitor support in my WM of choice at the time, and sending it in for a fix (not sure what came of it).
A lot of rambling here. I guess it comes down to developers scratching an itch. And since developers who are developing already have an environment setup, there is no need to scratch that itch anymore.
I should point out that most of my OS/Linux days were pre 2005. Mostly 99-2004, and so things probably have changed since then. I just remember the confusion, the lack of direction, etc. Maybe it was my inexperience at the time.
Edit: A good example is: http://live.gnome.org/JoinGnome This is where I was directed on joining Gnome development (from here: http://library.gnome.org/devel/gnome-devel). And currently it's down for me. Maybe it's just coincidence. Ahh, so much fun.
Startups are perceived as the quick way to fame and fortune.
There are not a lot of apparent Startup opportunities in the kernel space.
A fair comparison would be iPhone apps Vs KDE or Gnome apps. And here KDE and Gnome get tons of new contributers each months, check how active is http://kde-apps.org for example, or the Ubuntu developer activities. Tasks that require less skills will always attract more developers or cooks or whatever in all professions.
Here's a Graph of KDE contributers http://dot.kde.org/2009/07/14/growth-metrics-kde-contributor... up to July 2009. As a KDE dev that follows the mailing list, I can tell you the list of contributers is still groing well. Not to mention all the people that build KDE apps without being official KDE devs.
1. They have to read tons of documentation and cant use a 2 lines tutorial 2. They have to know byte compiled languages 3. They have to know lot of internal stuff to use linux the good way
The point is, everything which is hard to understand and cant be learned within 8 hours sucks... thats the way most younger people think about developement because they have no motivation at all to be a part of a long growing environment.
Hate me now ;)