Slashdot Mirror


Why Linux Is Not Attracting Young Developers

judeancodersfront writes "Jonathan Corbet recently pointed out at the Linux Foundation Collaboration Summit that the Linux kernel team was getting older and not attracting young developers. This article suggests the Linux kernel no longer has the same appeal to young open source developers that it did 10 years ago. Could it be that the massive code base and declining sense of community from corporate involvement has driven young open source programmers elsewhere?"

23 of 742 comments (clear)

  1. older developers... by mayberry42 · · Score: 5, Insightful

    would also imply more experienced developers. And that's not (necessarily) a bad thing.

    1. Re:older developers... by adosch · · Score: 5, Interesting

      I agree with that. I've noticed a big divide in developers of the 21st century coming out of college; there's a lot less focus on lower-level development and hardware interaction in schools/colleges than there were in the 80's and 90's. I think there's a more general focus on high level languages at best (e.g. python, web frameworks, al la .Net, java-this-and-that, ect.) that work 'on' an hardware/development architecture, not 'with' it.

      I also wouldn't say there is a lack of support for the Linux kernel, but Linus is still a full-time driver of changes/additions in the kernel and with him, comes his ego and experience. Rightfully so, but we've seen it drive away brilliant maintainers and contributors in the past decade.

    2. Re:older developers... by Magic5Ball · · Score: 5, Insightful

      The bigger problem appears that CS programs now focus on teaching tools and how to Google as opposed to thinking or problem solving, in order to meet perceived industry demand. In industry, I've had to teach too many youngling graduates about basic data structure and database concepts, memory and hardware addressing, protocol encapsulation, AAA, synchronous vs asynchronous operation, and other fundamentals which would be needed to understand why things such as kernels are implemented as they are. The way in which FOSS support forums and listservs generally respond to noob developer and user questions--some variation of RTFS without providing a way of understanding which documentation to read--does not invite exploration of concepts embedded in the current software architecture, let alone ways to identify entry points into interesting sub-components. This is a barrier since popular CS program tools to which students are exposed, such as RHEL, gcc, etc. are provided as finished products in the same way as Access or BOS.

      Separately, I have a dream where all of the Alans Cox get together to write an operating system.

      --
      There are 1.1... kinds of people.
    3. Re:older developers... by Magic5Ball · · Score: 5, Insightful

      > Maybe it's because there are basically ZERO jobs in most places for real hard-core CS.

      There are close to zero jobs for hard-core anything, but that's not the goal of earning or producing a BA/BSc in CS.

      The most important goal of a university degree program is to teach students how to think critically, how to evaluate and apply information, and how to perceive and act professionally outside themselves. Theoretical knowledge is helpful not because industry does a lot of relational algebra or computability analysis directly, but because CS graduates should be able to make a critical business case that an Oracle implementation would be better/worse than a Sybase implementation for a particular use.

      Local technical/trade school graduates can and should easily out implement degree holders in identical fields. If the post-secondary education market is segmented ideally, CS graduates should be have the knowledge and conceptual tools to run rings around technical graduates in terms of understanding and designing principles and solutions in a broader corporate or societal context. As it stands, recent crops of technical graduates seem to understand more about both what they're doing locally, how they got there, and why they're doing it in the community, than the CS graduates who seem weak with both theory and implementation. Some of my colleagues have been seeking out CCNAs, biologists, and ex-military officers, and training them to program because they have better tools to understand systems and business context than recent CS graduates (who /should/ be able to apply the "science" part of their tools to figure it out).

      Relating this back to the Linux kernel, good luck finding a recent CS graduate who understands that MPLS exists, let alone one who can grok the concept (let alone specifications) well enough to understand why Linux will want to support MPLS if it wants not to be locked out of an important part of the enterprise market relating to the current network neutrality debate. (Incidentally, I've pointed some international relations friends at the Wikipedia page who understood the consequences immediately.)

      Perhaps there should be a return from quantity to quality in undergraduate CS programs.

      --
      There are 1.1... kinds of people.
    4. Re:older developers... by Blakey+Rat · · Score: 5, Insightful

      Separately, I have a dream where all of the Alans Cox get together to write an operating system.

      Yeah, they'd spend 5 years perfecting every single line of code for the USB subsystem. Meanwhile, nobody cares because the optimizations from those 5 years were completely leap-frogged by hardware improvements, and normal people want an OS that they can use to get shit done.

      Sometimes I think the concept of "pragmatism" is entirely absent from this field.

  2. bad attitudes by Anonymous Coward · · Score: 5, Insightful

    Maybe it's because a lot of devs from the 90s were and are quite rude due to their lack of social skills. Most people don't put up with that kind of crap.

    1. Re:bad attitudes by mc+moss · · Score: 5, Insightful

      I know a few people who have been turned away from Linux whenever seeking help online from linux users. The whole "you're stupid if you can't figure it out" attitude by some users is really off-putting.

  3. Proprietary App Platforms Won by Anonymous Coward · · Score: 5, Funny

    Dear Old People,

    We're busy building iphone, android, facebook and twitter apps, with the delusion of a multi-million dollar payday.

    BTW, thanks for all the open source stuff we're using.

    Signed,

    Young Developers

  4. reverence and awe by LordHatrus · · Score: 5, Interesting

    I've seen a lot of promising college-aged open source devs that seem to have an overwhelming reverence and awe towards the kernel, thinking it far too complicated for them to work on with their own programming abilities. In reality, most of them could pick up the kernel and figure it out quite quickly, but they'll never convince themselves of that.

  5. Considered a solved problem? by Geirzinho · · Score: 5, Insightful

    Could it be that since Linux has become somewhat mainstream kernel developement is considered a "solved problem" to young programmers looking for an interesing project? Maybe new programmers are tackling other open source problems instead.

  6. Age is the reason by taleman · · Score: 5, Insightful

    Perhaps age difference itself is the reason. Young persons may not like the 20 years older hackers. And old wizened developers may dislike young whippersnappers.

  7. What about the barrier to entry? by krelian · · Score: 5, Insightful

    Contributing to and old and large code is much more difficult than contributing to a small one. Getting your head around a large code base is no small task and documentation is often lacking. Even if the code is well commented it could be very difficult to understand the overall design of the software and how things interact with each other.

    1. Re:What about the barrier to entry? by jadedoto · · Score: 5, Funny

      This is the reason I don't contribute. It's like suddenly being handed the US economy and saying "fix it!"

  8. Programming job bad reputation by The+Abused+Developer · · Score: 5, Insightful

    that's all folks - the youngsters are much more socially connected and skilled than we were at their age; also, they get the clue of the social context much better than we did 15 years ago. And what they see is a career in an unregulated domain, totally havoc and chaotic, where the abuse and the overwork is the norm. there is no career path marks to follow and nobody can tell you where you going to be in 2 or 3 years. A continuously changing professional knowledge baggage is not attractive, its consequence is obvious - your whole time life should be allocated for keeping up. The dreamland of computing is not anymore there - the harsh reality has taken its place and young people are not stupid; they want to be able to enjoy their life normally instead to enslave to the corporate. 15 years ago the Linux and the Open Source was started with lots of fuel from people keeping strong to a beautiful idealism - this is gone; they are not to blame - myself I have respect for a generation who has the power of the dignity and the will to say NO! STOP! this is my life! - we should all do the same.If a profession takes away your life - forget it, it's just not wort it.

  9. A couple of things going on here by PPH · · Score: 5, Insightful

    First, it takes a certain amount of financial security before most people are willing to contribute their time to any effort. I think this is true for everything from the Linux kernel to Habitat for Humanity projects.

    Second, this greybeard phenomena is occurring throughout not only the entire s/w industry, but other technical fields in the USA as well. Not enough CS majors, engineers, scientists, etc. Math literacy is suffering and practically every company is screaming for more H1B visas. Or just sending the work offshore.

    Finally, some of the noteworthy exceptions to this trend (Microsoft, for example. But also many other big corporations) have an ulterior motive behind keeping their staff green. Hire CS grads straight out of college, put them on a couple of projects and get them built. Once your developers start to get some industry experience and a peek at the big picture of the company, they'll start to second guess management decisions. Out the door with them and bring in some fresh meat.

    --
    Have gnu, will travel.
  10. Linux has lost its "elite" status. by SexyKellyOsbourne · · Score: 5, Interesting

    One only has to remember what things were like with Linux 10 years ago, in the year 2000, to know why the interest just isn't as strong today.

    At the time, it had a massive advantage over the Windows 98 platform, which was the common desktop at the time -- it crashed constantly and required formatting every few months, and was vulnerable to total crap like TCP/IP flooding, running unlimitedly powerful .vbs scripts, typing "con con" into a console, and giving IE basically Admin access to your system through ActiveX. Doing anything from zipping a file to hex editing to writing code to making simple video and sound files required outright piracy and the use of horrible freeware -- friendly, open source, cross-platform apps and web apps weren't common. Winamp was a shining example of a great, free program back then, and it wasn't open source and came bundled with AOL crapware.

    Linux, on the other hand was rock solid. It didn't crash, it had anything you needed readily available and installable. Need a web server, an IDE, a hex editor, an image editor more advanced than mspaint, PERL, an audio player, an IRC client or anything else? It was there, no running keygens or installing adware. Same with using existing things like ICQ, IRC, the web, usenet, etc. And they were actually competitive in terms of friendliness compared to what was on the Windows platform. You could also script them no problem from a totally OP command line.

    But it was a terrible pain to install for a young amateur compared to just popping a LiveCD today. Have fun partitioning your HD with raw fdisk (cfdisk if lucky) and setting up XFree86 by hand to see any graphics. Try setting up non-PNP ISA devices with screwy drivers -- often you had to go hardware swapping for something specific, like a $10 Crystal Sound card. Try rebuilding the Kernel with an ALSA patch to get that to run. Try not using a packaging system for anything -- RPM was terrible at the time, you were better off just compiling things.

    But socially, if you could pull it off, you were pretty elite. You had a solid, invulnerable, insanely powerful OS with every tool you'd want at your hands. It was rebellious against the suits and it had the promise of an open source world. The programming was much better -- OpenGL was way, way easier to write for than DirectX 6, which was just nasty, and was cross-platform to boot. The internet population was far more technical at the time and also respected it. Social networking / multimedia was years away from being mainstream at the time. Anyone who ran Linux wasn't a 'n00b' or a 'lamer' on primitive web forums, Usenet, IRC, etc.

    Today? Windows XP/Vista/7 has been comparatively stable and isn't nearly as vulnerable, unless you're just stupid. There's mountains of OSS software out there for every task that runs under Windows, if it wasn't built to run under Windows. No one cares that you run Linux, and will just get frustrated if you can't run the 10% of things a PC can. Ten years ago, the biggest PC game -- Quake 3 -- ran great under Linux, but try getting MWF2 to run under it today.

    So there's no real motivation to get into it now -- it doesn't have the appeal comparatively it did 10 years ago.

  11. Monolithic Kernel = Death of Self-Teaching by mosel-saar-ruwer · · Score: 5, Insightful

    Have any of you guys ever looked at a picture of the Linux kernel?

    My best guess [and I am not trying to be facetious] is that unless you were in on kernel development in the very early days [so that you had some hope of learning it when it was still tractable], then the thing has gotten so big now [what is it - like 20,000 files which get compiled in the basic kernel?], and the learning curve has gotten so steep, that no new developers have any realistic hope of grokking it anymore.

    Seriously - at this point, just learning the kernel would be akin to a 6- or 8-year PhD project [in something like a Department of Archaeology, studying ancient Egyptian hieroglyphics].

    1. Re:Monolithic Kernel = Death of Self-Teaching by Athanasius · · Score: 5, Informative

      ...the thing has gotten so big now [what is it - like 20,000 files which get compiled in the basic kernel?]

      But that's counting each and every file system, each and every architecture and most significantly each and every hardware driver. The amount of code you need to understand to be able to, for instance, write a new network driver, is substantially less than the totality of the Linux kernel source.

      Out of ~25k *.[ch] files I count ~9k in drivers alone, plus ~1k in sound. There's ~1.5k in fs and kernel has ~200. Although arch has ~10k only ~700 of those are for x86. Yes, this is a very rough and ready, not to mention incomplete, set of figures, but you get the idea.

    2. Re:Monolithic Kernel = Death of Self-Teaching by david.given · · Score: 5, Interesting

      My best guess [and I am not trying to be facetious] is that unless you were in on kernel development in the very early days [so that you had some hope of learning it when it was still tractable], then the thing has gotten so big now [what is it - like 20,000 files which get compiled in the basic kernel?], and the learning curve has gotten so steep, that no new developers have any realistic hope of grokking it anymore.

      Not to mention the lousy documentation. The kernel docs for Linux are stunningly poor, verging on non-existent --- most of the design appears to live only in people's heads.

      I have a project that involves lots of grubby work with the Linux system call interface (<plug> LBW, a tool for running Linux binaries on Windows <plug/>). The man pages are of very little use here. Not only do they not go into enough detail, but they're frequently horribly out of date. futex(2) now bears very little resemblance to what the futex man page actually does. I eventually had to resort to groping through the Linux kernel code simply to try and figure out how what structures were used where --- and to determine the layout of struct stat I actually had to start comparing hex dumps to find the binary layout (tip: gcc's alignment attribute does not work the way you think it does).

      What's worse is that there appears to be very little recognition that this is a problem. Asking on the newsgroups about futex(), for example, I just got pointed at a years-old PDF entitled 'Futexes are tricky'. I don't believe that any proper spec for what futex() does actually exists. Without prescriptive and definitive documentation, how do you know if it's working correctly?

      Compare to BSD culture: OpenBSD's man pages are a joy to behold --- everything is documented in copious detail, including internal kernel functions!

    3. Re:Monolithic Kernel = Death of Self-Teaching by Anonymous Coward · · Score: 5, Insightful

      Yeah... sorry. In-depth documentation written by a novice is worse than no documentation at all. Not only that, it will take about one hundred times the amount of time to write. Kernel developers should be writing the majority of it. It's simple work ethic, little different from maintaining code quality, and is beneficial for other reasons, such as aiding in design (documentation before code).

  12. Re:What does Linus always say? by ShinmaWa · · Score: 5, Insightful

    I still use Emacs proudly. I find big bloaty IDEs like Eclipse get in the way

    Really, the only thing you are saying here is that you like YOUR big, bloaty thing over someone else's big, bloaty thing. There's really nothing insightful about that at all.

    You have a set of tools you are comfortable with, and others have theirs. Each have their merits and each have their drawbacks. What is new is not necessarily an improvement and what is old is not necessarily the best. To discard either out of hand on their "whiz-bangedness" or "tried-and-truedness" rather than on its merits is the mark of a fool.

    --
    The /. Effect: Thousands of users simultaneously accessing a site to not read its content.
  13. Re:What does Linus always say? by Anonymous Coward · · Score: 5, Insightful

    You are confused. One minute you claim long winded text entry for 30 years beat tools designed to replace the drudgy or trivial stuff is better, then you claim you write noddy script to toy server duties. A developer, as it a real developer and not some perl dweeb, doesn't touch server admin. So what is it? I suspect you're a low skilled UNIX package user that's been using packages for your job, but you dabble in code for trainee level work.

    IDEs have a place, they can get the cruft out of the way, if you're development time is cheap, you're not a real developer. Get back to your 10 line "scripts".

  14. Re:What does Linus always say? by BitZtream · · Score: 5, Insightful

    A developer, as it a real developer and not some perl dweeb, doesn't touch server admin.

    The best C developers I know, are or were admins at one point.

    Writing software for servers is a fuckton easier when you actually understand what a server does and what goes on from the admin point of view.

    A decent developer that understands administration if FAR better than some hot coder that doesn't have the security insight of a gnat.

    You know at those 'BIG' sites you see on the Internet ... facebook, wikipedia, myspace, google ... guess what ... All of their senior level developers ... regularly play admin as well to deal with large problems.

    I'm going to have to wager that you are a developer with no admin experience and little actual development experience since you don't recognize something thats pretty common.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager