Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Linux Software

How Would You Refocus Linux Development? 821

buddyglass writes "The majority of Slashdot readers are no doubt appreciative of Linux in the general sense, but I suspect we all have some application or aspect of the platform that we wish were more stable, performant, feature-rich, etc. So my question is: if you were able to devote a 'significant' number of resources (read: high-quality developers) to a particular app or area of the kernel, and were able to set the focus for those resources (stability, performance, new features, etc.), what application or kernel area would you attempt to improve, and what would aspect you focus on improving?"
This discussion has been archived. No new comments can be posted.

How Would You Refocus Linux Development?

Comments Filter:
  • Three things. (Score:5, Insightful)

    by ArcherB ( 796902 ) * on Saturday August 25, 2007 @11:22PM (#20358567) Journal
    Better hardware support
    Better performance
    Maintain excellent reliability.

    What else could you need?
  • Re:Three things. (Score:5, Insightful)

    by The Mad Debugger ( 952795 ) on Saturday August 25, 2007 @11:33PM (#20358653)
    1. Better GNOME usability for Ubuntu (with delivery of Bulletproof X and the GTK Xconfig ASAP, please)

    Seriously, the desktop lacks stuff that has been in Windoze since '95. The kernel works pretty good. We have pluggable storage okay.. but there's still basic holes in the usability (like changing the res on the fly when I move my laptop in and out of my office) that just need to get fixed.

    2. Spend whatever time is left over to make OOo faster and easier to use.

    The MS Office import filters are so *almost* there, but this app really needs to close the usability gap with Office. I have a semi-decent machine running Ubuntu, and even with Java disabled, it still takes what seems like forever to open a simple document that someone emails to me.

    I know these aren't *really* linux-specific, especially OOo, but it's what needs to happen to make linux a real, legitimate desktop force. I'm an easy sell, I love open source, but right now there are too many excuses for why this stuff isn't gettin' fixed, and not enough fixin' it, and right now I'm not telling my computer-illiterate friends that they should go order a Dell machine with Ubuntu preloaded.. I'm telling them to buy a Mac, so I don't have to tell them how to fix basic stuff.
  • Might I Suggest... (Score:5, Insightful)

    by bealzabobs_youruncle ( 971430 ) on Saturday August 25, 2007 @11:35PM (#20358673)
    that anyone who thinks that CLI usage is not a feature of Linux think again? This topic is 12 minutes old and three post have already suggested we bury the command line; part of what makes Linux so fast, flexible and customizable is access to virtually every setting from a text editor. This is not something that needs to be changed, instead change your mindset that this is not Windows.

    If you are looking for a completely GUI drive *nix I would say OS X is your best bet (yes, I know you can use the CLI in OS X, but you never have to unless you so desire).

  • Re:Three things. (Score:4, Insightful)

    by ageoffri ( 723674 ) on Saturday August 25, 2007 @11:37PM (#20358679)
    And those 3 reasons are a huge part of why desktop Linux has been on life support for years, way too much effort has been devoted to them. Nerds concentrate on those features and don't get me wrong they are important. What constantly gets left out is usability, installation needs to be simple enough that I can give my parents a CD/DVD and let them install it. There needs to be a consistent UI between applications and components. Installing software must not require editing config files and if additional components are needed then it should just be a click Yes to install additional components.
  • by mikesd81 ( 518581 ) <.mikesd1. .at. .verizon.net.> on Saturday August 25, 2007 @11:37PM (#20358683) Homepage
    That just freaking works. I never understood why every distro can't just use the same install method. Whatever it may be, rpm, apt, yast whatever. And I don't mean the 3 step make install method. Wouldn't it be great to go grab a package from freshmeat or sourceforge and...oh look that's the package type I need....
  • Re:Three things. (Score:5, Insightful)

    by timeOday ( 582209 ) on Saturday August 25, 2007 @11:40PM (#20358709)
    You know what I'd love more than further improvement in any of those areas? Comprehensive, well-written documentation.
  • by Whuffo ( 1043790 ) on Saturday August 25, 2007 @11:40PM (#20358717) Homepage Journal
    One of the GNU / Linux weak points is the wide variety of user interface implementations. Simple and common functions should be accessed in the same way in every application. Look how many different keystroke combinations / menu selections are used to exit a program - sure, us nerds can keep them all straight without any trouble but what about the unwashed masses?

    Why is it that all the developers seem to be able to code to a standard API - but they can't even come close to agreement on the way a program is operated? Maybe it's time to create a UI standard for Linux apps?

    This would go a long way towards making Linux the favored choice for desktop machines. Ease of use is a great way to unseat the dominant OS; it's not exactly easy to use and it's very possible to beat them at this game.

  • Re:Three things. (Score:5, Insightful)

    by ArcherB ( 796902 ) * on Saturday August 25, 2007 @11:41PM (#20358729) Journal
    Visual coherency and a refined GUI. Taste in UI's vary between people, but most linux GUIs that aren't very minimalist tend to suffer from wasted space.

    Granted, this is important to the Linux community, but when I hear Linux development, I think kernel, modules, and organization (like what goes in /etc, what goes in /bin, what goes in /usr/bin, and so on). Things like KDE, Gnome and other window managers are merely applications as far as I'm concerned and should be considered no more Linux development than, say, Open Office. Of course, I don't mean to say your view is wrong in the least. I just considered the question more narrow than you did and wanted to explain why I didn't consider any X development as part of the question.
    Also, since X relies on video hardware, I'd consider X and XGL/Compiz-Fusion/Beryl to be categorized under hardware support.

    In interests of making linux more accessible, more configuration utilities that don't require specific knowledge and in-errant editing of configuration text files.

    Good point, or better yet, make these files standard across distros so the same configuration utilities works as well on Gentoo as Ubuntu.

    A standard method for installing applications across distros would be nice too. I forgot to mention that!
  • The first of those two is self-explanatory. High-quality, high-performance Free 3D drivers for good hardware.

    The second...

    I want some (not all) kernel developers to stop using throughput based metrics to measure performance, and instead use a metric based on interactive performance. I have a suggestion for such a metric...

    The time between user input and the user input having a noticeable affect on an output device like a display. And I don't think this time should be as short as possible, though that's a good goal. The time should be as consistent as possible while remaining short. I propose a metric that measures this latency and plots the standard deviation of the latency and uses that as the main metric with that average latency being a secondary metric.

  • by bytesmythe ( 58644 ) <bytesmythe&gmail,com> on Saturday August 25, 2007 @11:47PM (#20358773)
    1) Wifi networking
        Too many wifi cards (especially the Broadcom chipsets) are painfully difficult to get working correctly. WPA2 encryption support is flaky. Wired and wifi should switch gracefully.

    2) Better sound support
        There are too many conflicting ways of producing sound, some of which dislike working together. Midi support should be built-in. Currently, it's a pain to install. Hopefully KDE's Phonon subsystem will help here.

    3) Better a/v
        Too many movies have unsynced audio and video. Also, many codecs are unsupported. Yes, I know they're proprietary, but I don't really care. Ubuntu is making codec installation easier, but frequently the codecs only work with some particular backend. (For instance, even with mp3 support installed for gxine, Amarok (a KDE app) still needs to install it's own. The desktop environment should provide a generic way for apps play audio, and if a KDE app is running under a Gnome environment, it should be able to "just work".) Don't forget the wonderful closed-source
    graphics card drivers!

    4) Easier windowing subsystem
        No one should have to edit xorg.conf to get anything working. Fortunately, the next release of X windows is supposed to finally do away with this by adding dynamic configuration with xrandr. Also, it will be nice when CompizFusion is more robust. Lots of people really like the eye-candy, and I find some of the features useful.

    5) Applications
        It should be easier to keep applications up-to-date. I love Ubuntu, but it drives me nuts seeing bug fixes or major enhancements to applications that I can't easily obtain because either the OS updates don't include application upgrades, or the OS repositories are simply not adequately maintained. I don't want to have to
    litter my package manager with repositories, or manually install packages just to keep my apps updated.

    6) Laptop support
        Suspend and resume don't always work very well. Some laptops don't come back, and frequently networking
    is messed up.

  • by NotQuiteReal ( 608241 ) on Saturday August 25, 2007 @11:47PM (#20358781) Journal
    I don't know where to get Linux...

    I can get Ubuntu, Gentoo, Debian, RedHat, etc., etc... I can't get "Linux".

    There's your problem...

  • by AmazingRuss ( 555076 ) on Saturday August 25, 2007 @11:48PM (#20358789)
    Seems like everytime I click the help menu, I get some skeleton outline, if anything at all. I don't mind googling around for the information, but if usage is going to grow outside of the techie segment, the help systems are going to have to catch up with Windows 95 era chm files, at least. I'm not talking about technically, but rather actually having some useful content in the systems. I understand that writing documentation is no fun, so I don't hold out much hope for this.

    Sure would be nice though.
  • Re:Three things. (Score:4, Insightful)

    by omeomi ( 675045 ) on Saturday August 25, 2007 @11:51PM (#20358811) Homepage
    when I hear Linux development, I think kernel, modules, and organization (like what goes in /etc, what goes in /bin, what goes in /usr/bin, and so on). Things like KDE, Gnome and other window managers are merely applications as far as I'm concerned and should be considered no more Linux development than, say, Open Office.

    How is a window manager less a part of Linux development than basically anything other than the kernel? I mean, just about anything else *could* be considered an "application"--even something as basic as 'ls'--and could potentially be left out of a distro. Like you, I'm not saying you're wrong, but to the Linux-desktop community, things like KDE and Gnome are pretty important.
  • by grumbel ( 592662 ) <grumbel+slashdot@gmail.com> on Saturday August 25, 2007 @11:51PM (#20358813) Homepage
    We definitively shouldn't bury the command line, but on the other side we shouldn't just let it stay the way it currently is forever. Currently there is a huge gap between the command line and the GUI, the most you can do in terms of interaction between the two might be copy&paste of a file name, but thats basically it. What I would like to see is some more monad/msh or XMLTerm'ish stuff where you don't just deal with lines of text, but have proper objects that you can move around between command line and other applications freely. It might also nice to have more elaborate output then just text, i.e. thumbnails and stuff. And most importantly the GUI simply should work better together with the command line, for every thing that I can do with the GUI, I want a way to access that with the command line and visa verse.
  • by martijnd ( 148684 ) on Saturday August 25, 2007 @11:55PM (#20358847)
    I think Linux has always had this "everything at the same time" feeling to it; so things move ever so slowly. Some languish, some die, sometimes people get angry about it and things get fixed. So many people pulling in different directions ; many projects died but their best ideas live on.

    It used to be a nightmare to configure hardware -- its now easier than installing XP on a Vista machine. X had (and has) so many problems it wasn't funny; but these days you can click around for days and it mostly just works. Wine was a joke for years -- but I can run my favorite online (DirectX) games at decent frame rates and progress is fast. For years it felt like all Linux coders lived in the USA; now proper Unicode support & multi language support make for example Chinese/Japanese input much easier.

    Linux is a giant wave always moving slightly behind the edge, companies can make money by living on the bleeding edge. But slowly all of them get washed away.
  • by tajmorton ( 806296 ) on Saturday August 25, 2007 @11:59PM (#20358879) Homepage

    Wouldn't it be great to go grab a package from freshmeat or sourceforge and...oh look that's the package type I need....
    See the Autopackage [autopackage.org] project, and there's a fairly large amount of software packaged using it. It works, but distros don't like it because they're afraid that the developers packages might mess up your system, so they refuse to support it. *shrug*
  • Re:Three things. (Score:2, Insightful)

    by Tom9729 ( 1134127 ) <tom9729 @ g m a il.com> on Sunday August 26, 2007 @12:13AM (#20359001) Homepage
    Not everyone uses Gnome/KDE or even X. Everyone who uses Linux, uses a kernel though. I think that was the point he was trying to make.
  • It's so easy! (Score:4, Insightful)

    by copponex ( 13876 ) on Sunday August 26, 2007 @12:13AM (#20359003) Homepage
    If you want to win the desktop war, you can, in a few years, by asking yourself a single question:

    Could my grandmother (who is already "sort of" computer savvy) use this without calling me every five minutes?

    It's been a minute since I've used Linux as my desktop, but if users are still being forced to edit text files to change common program preferences, you'd better get used to your third seat behind Windows and OS X. I'm not telling you to have some crazy xml schema with a billion pieces fronted by a hefty GUI - I'm just asking you for the option of using a lightweight GUI to parse and store my preferences to the same text file.

    Keep your CLI, and -color-code-for-Klingon-language-support options, but don't even try to force that on every day users. Leave stuff exposed so you can work your admin magic, but build some sane GUIs for everyone else unless you enjoy end-user support.
  • by 644bd346996 ( 1012333 ) on Sunday August 26, 2007 @12:17AM (#20359025)
    ...with good support for building from source. We obviously need a standard package format with robust support for complex dependencies. The build-from-source part is also really important: right now, no distro (not even Gentoo!) makes it easy to, for example, compile your own Mesa libraries and have them used by the pre-compiled X server. Right now, you can pull a project from cvs/svn and do a make install. But it will overwrite the version from the package and break dependencies. This greatly raises the barrier of entry for testing new code, making the "open source" aspect of Linux software far more accessible.

    Once we have a unified packaging system, the meaning of a "linux distro" will change. There will be a lot more sharing of work for the base system, and separate distros will really become sets of config files with just a few changes from the upstream code. Kubuntu is a great example of this: it is a low-maintenance specialization of Ubuntu.
  • by Anonymous Coward on Sunday August 26, 2007 @12:26AM (#20359087)
    I second that. The huge number of Linux distros is one of Linux's greatest strengths, and also one its greatest weaknesses. The Linux community is much too fractured. There is a lot of effort being duplicated unnecessarily. Look at GNOME and KDE, for example. Why does Linux need two desktop environments? It doesn't! Microsoft--and Apple too, I suppose--must be having a great laugh at all this!

    Firefox is a great example of what can be achieved when the open source community focuses on a single project. Why, after all, did the Mozilla Foundation discontinue the Mozilla application suite? It was a smart move! Of course, now the Mozilla application suite is back in the form of SeaMonkey, which just seems like a major step backwards.
  • by Chandon Seldon ( 43083 ) on Sunday August 26, 2007 @12:28AM (#20359097) Homepage

    for every thing that I can do with the GUI, I want a way to access that with the command line and visa verse.

    This is false. You don't actually want a way to do everything with the GUI that can be scripted. For exceptionally esoteric features that are only of interest to programmers, sysadmins, and CLI-aware power users it's perfectly reasonable to have them only be accessable though command line options or a non-GUI config file.

    That's how most programs work. Even Windows with WSH and the Registry. Hell, even Windows video games have options that can only be accessed by editing some config.ini file somewhere. If you tried to fit all that stuff in the GUI, you'd never be able to find any of it.

  • Linux has achieved near parity with Windows in a lot of places. I've been a Linux desktop user since 1995. Between 1995 and 2005, I always used some kind of Windows emulation to run Microsoft Office and FrameMaker, because there is no Linux equivalent. Since 2005, OpenOffice has become sufficiently powerful, compatible, and stable, that I have not felt the need, at all, for Microsoft Office, and so I have completely given up using Windows emulators.

    However, Linux is still sorely lacking in 2 key application areas:

    • Really good DTP. FrameMaker rocks. Adobe had a Frame version for Linux in beta for a year, and then withdrew it :-( Yes, I know about LaTeX, I wrote 2 theses and 10 papers in LaTeX, and it is not an adequate replacement. Linux needs either a port of FrameMaker, or a clone. OO Writer is an easy-to-use word processor, not a DTP, it is like the difference between a hand saw and a lumber mill.
    • Good webcast software. On Windows, WebEx is the clear winner, and they have a solid product. Delivering a demo to remote viewers of a desktop application is no problem. Doing the same thing in Linux is problematic, at best. Instead of one really good product, we have several bad ones. Mostly they just lack maturity, but that still means that I have to spend a lot on plane fare to give effective Linux desktop demos.
  • by greenguy ( 162630 ) <(estebandido) (at) (gmail.com)> on Sunday August 26, 2007 @12:35AM (#20359147) Homepage Journal
    Bingo. This is what keeps me from recommending Linux (more enthusiastically) to my friends and co-workers. I find myself saying things like "They've come a long way on wireless... but they still have a ways to go." Same thing for hibernation. And don't get me started on installing -- I know what "make" does, but I've been at it for several years now. God forbid I try to get a Python app going. (Yes. I do know about the install front-ends on Ubuntu, SuSe, Fedora, etc.]

    You want to be 31337? Great, more power to you. Some people have work to do, and aren't interested in matching skillz with you.

    I'm aware this is boring shit to focus on. But that's the stuff I want to see.
  • by thePsychologist ( 1062886 ) on Sunday August 26, 2007 @12:41AM (#20359179) Journal
    1) PDF support. Almost all PDF readers on Linux except for Adobe's product have difficulties with large PDF documents. What's with the "LOADING" message that takes forever? Adobe Reader looks horrible (inconsistent with the native GUI). There isn't a single PDF reader besides Adobe Reader that supports subpixel rendering which makes the font rendering hurt my eyes.

    2) MIDI support

    3) A "configuration manager" that knows most of the contents of the /etc directory and has three windows: a list of text config files, a window that displays the file, and a window with a paragraph or two of explanations and examples on how to change the file.

    4) More active development of Fluxbox. It could use more features like shading on mouse wheel scroll and multiple backgrounds for each workspace.

    5) A publicity website for Linux! This is probably the most important thing the Linux community could do. Features are nice, but who cares if no one uses them? The website would contain among other things:

    -Step by step guide and interactive application to help people select a distribution
    -Explanation of all major window manager/desktop environments, again to help people select.
    -List of most mature Linux apps with description, screenshots, reviews, and commentary by users
    -Discussion forums
    -Latest on Linux section: demos of CompizFusion, new apps, tips and tricks, etc.
    -Section specifically for articles on switching from Windows difficulties
    -User friendly, designed primarily for noobs
    -Linux store with quality Linux clothing
    -Professional design
  • Re:Three things. (Score:3, Insightful)

    by piojo ( 995934 ) on Sunday August 26, 2007 @12:59AM (#20359297)

    If I could refocus Linux Development... I would try to pool all the development into 1 distro to reduce duplication of so much effort.
    Linux is about choice. If Linux distros were combined into a one size fits all environment, guess what would happen? It would fork, because there would be people that didn't like it. Combining the distros is an idea that would never get off the ground. The users just wouldn't stand for it.
  • by Anonymous Coward on Sunday August 26, 2007 @12:59AM (#20359301)
    For an 'outsider' (using a Mac at home and Windows at work) there seems to be a stack of overlap occuring - why have KDE and Gnome when the combined resources could probably make a single product? Further all the different bits are made by separate groups. It is confusing for someone (a mainstream user like me) to the point where it is 'easier' to just go buy a Mac if you want something different to Windows.
  • Re:Three things. (Score:5, Insightful)

    by Chandon Seldon ( 43083 ) on Sunday August 26, 2007 @01:05AM (#20359343) Homepage

    Would you do the same for Windows? Would you lump Windows Vista, Windows Server 2003, Windows CE, Windows Cluster Edition, and Windows Mobile all together into one product?

    There aren't really more significant Linux distros than that, and they aren't really much more redundant by purpose than that either. Sure, there are a lot of hobbyist distros and LiveCD distros, but those aren't duplicated effort - those are hobbyists playing around.

  • by Chandon Seldon ( 43083 ) on Sunday August 26, 2007 @01:07AM (#20359361) Homepage

    Linux is available on kernel.org - the current version is 2.6.22.5

  • Re:Three things. (Score:5, Insightful)

    by Yaztromo ( 655250 ) on Sunday August 26, 2007 @01:09AM (#20359379) Homepage Journal

    Why? Could you give them a naked box and a Vista DVD and have them get it up and running?

    This is exactly the sort of attitude that I would first change about Linux: the idea that Linux needs to replicate Windows, and that it doesn't need to excel past Windows to win the hearts and minds of users.

    Linux distros need to strive to be better than Windows. They shouldn't be attempting to duplicate the Windows desktop (something early versions of both KDE and Gnome were, IMO, quite guilty of); they shouldn't be attempting to simply improve upon Windows; they should be attempting to create a unique, best-of-breed solution that users will actually be excited about running (like what Apple is doing with OS X).

    So if you can't give the relatives a naked box and a Vista DVD and expect them to get through the install, then we should be aiming to allow them to do this with Linux. The goal of a non-server Linux distro shouldn't be to wind up with the same mundacity that Windows has, or a feature-to-feature parity while ignoring those features Windows lacks; it should attempt simply to be the best operating system it can be -- and if this means forging new ground, then that's what should be done. Linux will never win by trying to be Windows, or by having people say "Well, Windows isn't good at that, so we don't have to be good at that either" -- which is, in effect, the attitude you've just displayed.

    Yaz.

  • by Geoffreyerffoeg ( 729040 ) on Sunday August 26, 2007 @01:27AM (#20359501)
    "Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren't in the distribution - ask me (or GNU) for more info."

    -Linus Torvalds, September 1991
  • by OverflowingBitBucket ( 464177 ) on Sunday August 26, 2007 @01:38AM (#20359583) Homepage Journal
    Kernel?

    Bring down the barriers relating to kernel development. We're talking documentation, convenience interfaces between the kernel-level stuff and userland, so forth. Spend a bit of time making kernel modules VERY feature-laden. Make them very easy to play with and ensure there are plenty of user-space tools to help you out. I've mucked around with a lot of stuff and have been developing software for a couple of decades now, but the Linux kernel STILL scares me.

    Layer a set of version-consistent APIs above some of the low-level kernel stuff so driver developers don't have to target as many different setups or rely on a compiler being on the system to do their magic. I know this is a very unpopular idea in the kernel circles, but I think it would be very beneficial.

    Of course I'm going to get ripped apart on the prior two paragraphs from people who know much more than me in those areas, so let's just say that these are just my thoughts from an external perspective.

    Now moving on...

    Operating system?

    Somebody PLEASE develop a consistent library and API with minimal requirements that can interface with a whole bunch of windowing environments- including GNOME and KDE at a minimum. It should load the specific windowing interfaces dynamically so that using this common library adds no further dependencies to an application that uses it. From this interface I'd want to see fully-customisable keybindings, macros, and GUI controls of various sorts, an ability to hook to interesting events (eg. about to suspend, woken up, user logged out of GUI), info about screen layouts, access to user preferences regarding these applications (window positioning for particular apps, etc), and some assistance in loading and restoring state.

    The library could then be taken and developed so that it is so appealing to developers they really have no reason not to use it, and the interfaces appealing to enough of the windowing environment developers so that they want to integrate it as well. It'd have a very liberal license (say BSD) applied to it to keep people using it.

    Along with the library you'd have a set of tools that build on a whole bunch of environments (say: GNOME, KDE, and something that uses straight X). They would be used to set up all of the customisation that users could possibly want. The interfaces would have a simple mode for users that like very basic interfaces (actually to keep the people who claim that people want this happy), and a simple checkbox to enable "expert" mode that displays everything in obscene detail. The tools would have a sharing license (say GPL) to keep people pitching in their changes.

    And then you'd need a whole bunch of people to promote it to make sure people know about it.

    Imagine being able to fully configure all of your graphical apps to act how YOU want, drop in extra controls, keyboard shortcuts, trivially add in macros for remote app control, so forth- all without the developers of those applications needing to worry about it themselves. Why? The library handles it for them. The GNOME people and the KDE people can keep going about things their own way as well, and they'll keep making their own advances too. But they'll both be saved reinventing the same wheel in this common ground, whilst still having full control to take their projects to where they want to go.

    I have been awfully tempted to attempt this myself but I know it would be far too large a project for a single person. I'd never finish it on my own, and I'm not interested in the politics it would take to get traction on such a thing.

    But I'd love to see it.
  • Re:CUPS? (Score:3, Insightful)

    by Verte ( 1053342 ) on Sunday August 26, 2007 @01:45AM (#20359627)
    I keep hearing this. I remember reading ESR's essay on how horrible it was, long before I installed my first free operating system. But you know what? It was very easy to set up. I'd say it was less than thirty seconds to set up all of my printers [neither really popular, neither really recent, one is USB though] and print the test pages. I find it hard to believe that foomatic gui could be hard to use.
  • by JosefAssad ( 1138611 ) on Sunday August 26, 2007 @01:46AM (#20359633) Homepage
    I think (hindsight is always 20 20) that the biggest mistake has been allowing code copyright to disperse and remain untracked. Some contributors are DEAD now. The problem with this is that it makes project relicensing just about impossible, amongst other things. This is one of the reasons why other projects require joint copyright assignment if not straight assignment, such as apache.

    Legal environments change; without wanting to descend into a GPLv3 flamewar, I think it's critical that free software projects ensure they have the flexibility to relicense appropriately in the future to adjust.

    Linux does not enjoy this distinct advantage.
  • by Burz ( 138833 ) on Sunday August 26, 2007 @01:51AM (#20359657) Homepage Journal
    1. An easy, approachable Hardware Compatibility lookup website. It would consolidate all the compatibility info from kernel & X11 devs, major distros, OEMs and also allow end-users to add their input. FWIW, the HCL at linuxquestions.org is an interesting start but nowhere near exhaustive or current enough to empower Linux users (not hackers) to confidently purchase new equipment.

    1a. A certification program for drivers that allows products which meet criteria to bear a special Linux compatibility trademark emblem.

    2. Fix the sound architecture. Blocking of sound output still occurs after many years of ALSA. There is no GOOD reason why Harriet shouldn't hear her softphone ring or calendar alarms just because a minimized web page contains a Flash object. Telling her to muck about in the CLI, to buy a pricier multi-channel soundcard, or to learn about sound servers and juggle them is beyond the pale.

    3. Create an excellent default IDE for the LSB Desktop environment. The IDE will be geared to target the LSB Desktop spec by default, with desktop applications as the focus. Something you would write a video editor or DVD burner with, not so much a video card or disk driver. GORM on steroids: If it doesn't inspire budding application developers like XCode and Visual Studio then Linux will not inspire application developers to write. Linux will not benefit from many more systems developers at this point because its the apps that matter: The apps sell the platform.

    3a. Well-rounded API documentation for the LSB Desktop target, ala MSDN or Apple Developer Connection, eventually integrated with IDE.

    4. Enable app developers to become as independent as possible, such that distro managers do not insert themselves between the developers and their users. Distros ought to distribute OS software, and for the most part stay the F*ck away from controlling installation of particular applications. High-level package managers like APT, YUM, etc. should stick to managing (or mangling) the OS dependency tree and leave apps the hell alone! Provide dependency targets in the OS repo like "LSB Desktop", and only one or two others like "Java 6". Then, accept that all the extra stuff you supply on top of LSB is ONLY extra, and will get used when and if the user decides in specific cases.

    4a. Ensure those budding app developers can easily share their work with friends and customers. Make appdirs like on OS X and Gobo Linux a standard. Dear God, please.

    5. Hacker culture works extremely poorly for application software today. Fund efforts to spread the discipline of user-centered product development. Teach FOSS developers the concepts and ropes of SDLC and Rational Unified Process, with emphasis on adding actor definitions and use-cases to docs and project wikis so that these elements are continually refined and re-thought eventually becoming the centerpiece of requirements. Create use-case instances (scenarios) in close association with unit/app testing scripts. Anything to keep developer minds on the kinds of users and situations the software is meant to satisfy. Encourage budding Business Analysts to do 6-12 month stints with FOSS projects.

    6. Create settings persistence (configuration) APIs for crucial system services like X11, Samba, Apache, sound, etc. Get these projects to set and manage their own config files, as no one else seems capable for doing this consistently or well. Maybe when they have to write AND parse their own config data, they will stop creating needlessly bizarre & open-ended formats that umpteen distro tools only understand halfway.

    7. Next-generation, object oriented shell based on something like Ruby, Python or even Groovy.

    Lastly, all of the above must be in the spirit of fulfilling primary personal computing scenarios like app and driver installation, and configuration of essential services (change screen res, use a network share, etc) in a predictable manner. Unlike MS and Apple, Linux does not yet grok PC land because
  • IMHO the toughest job facing the OSS community is education: teaching, learning, and how to document.

    This is compounded by the issue that most developers do not find documentation fun. If the common perception that geeks tend to be nerdy and poor at communication is true, then we have a triple whammy. This is one reason I say documentation and communication and education is our collective biggest failing.

    The learning curves for _any_ of our packages are steep. SysAdmins rejoice in the job security they perceive they gain as their expertize for apache, mysql, postfix, postgreSQL and so forth increases. The thing is each package has so many options that it takes forever to learn how to set them up. At last count Debian boasted over 30,000 packages available. How is one suppose to even know what a small percentage of these packages do? That is much less than to learn how to install, support and maintain them?

    But this is just the systems administration arena. The API's and programming is an order of magnitude more difficult to keep up with.

    Then the documentation. To use WxWidgets for instance I am faced with over 3,000 pages of main manuals, I need to decide if I use DialogBlocks or CodeBlocks or neither. I need to figure out what each does and what each doesn't, and after I buy Julian Smart's book - its another over 500 pages to read. In spite of the fact he's written DialogBlocks there is no useful information on same in his book. Thanx.

    This is only one (1) package. I have not addressed version differences and library dependencies and so forth. I have not considered the issues of limitations and bugs.

    To keep up is typically information overload to the gawd-zillion'th degree.

    ---

    M$ recognized this and attempted a solution. From what I can tell in around w95 they pulled all the error messages out of the system. I experienced the great joy of accidently turning off the external SCSI hard drive on a W95 computer while the system was accessing the disk... reading it actually. No error message was reported. We got what looked like "END OF FILE". This was M$ code reading the disk.

    Then on another occasion I noted a networking message from NT4.0 had the exact same text as from OS/2. The error number in NT4.0 was missing. Everything else was the same. On a hunch I looked up the message in OS/2 and lo and behold the error number lead to the issue at hand. Of course NT4.0 was no help at all because this information had been removed.

    Either it was removed or never put in. I dunno. What I do know is that the systems ability to correctly diagnose was hamstrung.

    So what do we have in the OSS world?

    1) volumes of crappy documentation layered on more volumes of poorly organized documentation.

    2) When problems are found and corrected - no good method exists to upgrade the docs.

    Here is an example. Many years ago I ran into a sound configuration issue in Debian Woody. This had to do with esoteric issues of generic SCSI drivers and bad permissions and so forth. I ended up posting in SourceForge a complete description of the problem and how to walk through it and fix it.

    Two (2) years later none of this information had been disseminated through the documentation of the package at hand where I had discovered it. Debian was still misconfigured. People were still coming into IRC pleading for assistance on how to get the software running (It was GRIP as I recall).

    ---

    This is just terrible performance and we are not getting much better at it.

    There are several websites of documentation. SourceForge does this. IMHO they do it poorly. There are many wiki's dedicated to various packages. Nothing is coordinated. The man and info pages I have in my latest system are still the first place I would like to look for information and they are basically just as bad now as they were in 1997. Probably these documentation sources have not been updated much since 1997. Why not? If there is new
  • Re:Three things. (Score:4, Insightful)

    by ozmanjusri ( 601766 ) <aussie_bob@hoMOSCOWtmail.com minus city> on Sunday August 26, 2007 @02:51AM (#20359961) Journal
    I would try to pool all the development into 1 distro to reduce duplication of so much effort.

    I intend to release my own distro in a couple of months.

    How do you plan on stopping me?

  • Re:Three things. (Score:2, Insightful)

    by piojo ( 995934 ) on Sunday August 26, 2007 @03:01AM (#20360009)
    Looking back, it may have been naive of me to respond to what may have been a troll. It was a pretty good troll, if so, because it just didn't seem like a troll. However, of you, Grayskull, I'm curious, are you also a prick to people that are naive or that bore you, in real life?
  • by schwaang ( 667808 ) on Sunday August 26, 2007 @03:26AM (#20360121)
    I'd like to see a Performance Squad attack all the desktop apps and their underlying components.

    Not the kernel, but kernel hackers do know a ton about how to get good performance, so if they all took time out from the kernel to make the rest of the desktop snappy that would be just fine with me.

    Of course I've seen some efforts at this over the years. Dave Jones' perennial "why userspace sucks" talk, some work by Robert Love, some other GNOME folks looking at memory usage, the recent Intel tool looking at CPU-wakeups eating battery life on laptops, and lots of other pieces of the puzzle.

    It would be great if the basics of performance "best practices" would become widely known by desktop app programmers again. Instead we're falling into Microsoft's habit of being lazy about performance and expecting Moore's Law (increasing CPU speed and cheaper RAM) to bail us out.

    Now my girlfriend's answer would be different: OpenOffice still sucks too much (feature-wise), and it's keeping her from switching from Windows.
  • Re:Three things. (Score:3, Insightful)

    by vtcodger ( 957785 ) on Sunday August 26, 2007 @03:48AM (#20360229)
    ***You know what I'd love more than further improvement in any of those areas? Comprehensive, well-written documentation.***

    I'd settle for comprehensible documentation.

    I think it is fair to say that documentation is an area where both OSS and Microsoft suck. It's hard to say which is worse.

  • by WNight ( 23683 ) * on Sunday August 26, 2007 @05:05AM (#20360601) Homepage
    Do you know what all the values in the Windows registry mean?

    Not all settings are exposed to the GUI, this is hard, slow, and usually unneeded. So when you dig deeper to find them do you want them to be

    1) in a system-wide binary database you must read through a specific application
    2) proprietary interfaces like Firefox's about:config
    3) program specific text files

    If the GUI works, all are identical. But, if it doesn't you can either have a straight forward file you can checkpoint with CVS tools, or you'll have a binary blob you can't find your changes in, let alone roll back from.
  • Re:Three things. (Score:5, Insightful)

    by RAMMS+EIN ( 578166 ) on Sunday August 26, 2007 @06:10AM (#20360827) Homepage Journal
    ``Linux distros need to strive to be better than Windows. They shouldn't be attempting to duplicate the Windows desktop (something early versions of both KDE and Gnome were, IMO, quite guilty of); they shouldn't be attempting to simply improve upon Windows; they should be attempting to create a unique, best-of-breed solution that users will actually be excited about running (like what Apple is doing with OS X).''

    I think it does that, and I think _that_ is the real strength of Linux (and, actually, other free *nixes). As far as duplicating the commercial vendors goes, of course the open source world will always be behind. This is necessarily true. Still, people will be looking for the same functionality in the same places, and will complain when they don't find it. What they are missing is that the Linux world has so much *more* to offer besides duplicating the functionality of proprietary software in Free software.

    Forget about MS Office for a second. Forget about the latest edition of your favorite Windows-only game for a second. What do you really want to do with your computer? Do you want to run these programs, or do you want to obtain the results that these programs allow you to obtain (i.e. getting your work done, or having fun, or both)? If it is the former, your _only_ option is to actually use these exact programs. But I think that isn't actually what you want. What you want is not actually using specific software, but the results of using the software. And this, Linux can give you in so many more ways than Windows can.

    Want to write a paper? You can do that in MS Word (even on Linux). Or you could use OpenOffice.org Writer. And that's where most people will stop. But there is so much more! For example, you could write your paper in LaTeX using a text editor. This is a completely different approach, and, if you only know MS Word, it will require a significant effort to master it. However, that doesn't mean it's not a good idea. I use LaTeX, and I always get complimented on how good my papers look. And I didn't have to do anything to make it that way: I just typed the text, LaTeX made it beautiful. And got all the numbering and references right (something MS Word still gets wrong...wtf?) I use LaTeX because it makes my work _easier_.

    Want to install software? You could download the source code and compile it. Or you could go to RPMSeek or whatever and search until you find the right package for your distribution, all its dependencies, and install them all. Or you could use a distro like Debian where you just use apt-get (or Synaptic, if you like GUIs) and it will fetch the package and all its dependencies _and_ provide you with upgrades together with the rest of your system. Ever update _all_ the software on your Windows machine with a single click or command?

    Wonder why Linux users always seem to use the command line? Perhaps it is because there aren't any GUIs on Linux. Or perhaps there are GUIs, but not for what these users happen to be doing. Or it could just be that they use the command line because they find it convenient. Ever renamed a whole bunch of files? Thrown out old files, but not new ones, from a directory? Looked up the IP address associated with a certain hostname? Explained to someone how to navigate, through several screens, to a certain field where they had to make a change to some setting? Sometimes, the command line actually is quicker, more powerful, or simply easier.

    Ever had the same operating system you work with on your desktop run on an embedded device (say, a wireless router)? Ever upgraded from one Windows release to another, updating all your installed applications in the process, with a single command? Ever experimented with different windowing systems, for example, ones that start up in a blink of the eye, that can be controlled solely using the keyboard, or that didn't have any overlapping windows? Ever trimmed down the options a program gave you to just the ones you used, by commenting them out in the source code and recompiling? Ever ad
  • CLI Update! (Score:3, Insightful)

    by samfff ( 1135301 ) on Sunday August 26, 2007 @06:26AM (#20360869)
    I think Linux should have a totally different interface to Windows or OSX. The target audience for Linux are server administrators and power users and I think the interface designers should realise this. I really don't think that linux will ever beat Windows or Mac for usability, and maybe it doesn't need to. If Linux rewarded you for learning the bash shell then it would be a really interesting environment. As it is I can switch into the terminal to try and get some things done, and if I typeset my latex document I then have to switch back to the GUI to view the pdf. Linux is confused about whether it should be using a GUI to do something or whether the CLI is the better way. Window Managers for Linux all seem to be relatively similar to Windows or Mac, and there doesn't seem to much reason to use linux for a DIFFERENT or better experience. I think this is mainly due to the many different developers involved and their total lack of interest in consistency for their users. The idea of using the CLI is still basically an essential of the latex system due to compiling software. It should be developed to take over the interface, not be hidden behind an inadequate GUI. This would refocus the idea of linux into a straightforward, techie, scripting style interface. However, the CLI needs to be a lot more exciting than the crappy CLI we have now. They need to do things like allowing usage images and media, using search abilities, fixing file heirarchy addressing (as it makes CLIs really difficult) and doing spotlight like smart folders. An CLI interface of this type would need a really good built in text editor that is not quite as obscure as emacs or vi. Linux should embrace its techiness, but not for techiness' sake.
  • Re:Three things. (Score:5, Insightful)

    by David Gerard ( 12369 ) <slashdot AT davidgerard DOT co DOT uk> on Sunday August 26, 2007 @07:38AM (#20361145) Homepage
    The winning aspect of Ubuntu is: if something's too hard for a newbie, that's considered a reportable bug that should be fixed. This attitude makes all the difference.
  • by Kjella ( 173770 ) on Sunday August 26, 2007 @08:57AM (#20361475) Homepage
    Look, flat text files are just that - flat text files. I am CLI-aware but I don't think text files are particularly good - they have no validation of either parameter names, values or even types of value. They have no easily navigateable structure, nor any user friendly UI elements. Typical example:

    # Controls max number of connections
    connectionsMax = 10
    # Enable SSL
    ssl = true

    I think it should probably have been defined somewhere in XML

    <field name = "connectionsMax">
      <use>required</use>
      <type>numeric</type>
      <validation type = "range">
        <min>0</min>
        <max>1000</max>
      </validation>
      <help>
        <short>"Controls max number of connections"</short>
      </help>
    </field>
    <field name = "ssl">
      <use>optional</use>
      <type>boolean</type>
      <default>false</default>
      <help>
        <short>"Enable SSL"</short>
        <long>"SSL enables secure connections protected by encryption to and from your server. [Blahblahblah]"</long>
      </help>
    </field>
    Then, to get a plain txt you'd do something like configedit --cli, and it creates a virtual text file that it'll validate on save against the XML. Or an export/import to let you edit in vi/emacs/flamewar of the day. Or configedit --tui to get a text user interface like the debian installer. Or configedit --x11, configedit --gnome or configedit --kde to get a graphical edit mode where connectionsMax is a spinbox and enable SSL is a checkbox.

    I think that would be far superior to handling text files directly, and where you can add a *lot* more dependency rules, ui hints etc. which would make the GUI smarter without clogging up the text file for a CLI user. The only thing is that it must be really easy for developers, like maybe even so easy that if you add a new variable it's automatically added as a string variable with no validation. This, along with default UI mode can probably be stored in some sort of preferences. That way the user gets an error: "Field "ssl": "flase" is not a valid value. Valid values are "true", "false" while it doesn't get in the way of the developer.
  • by dbcad7 ( 771464 ) on Sunday August 26, 2007 @09:13AM (#20361535)
    4. Enable app developers to become as independent as possible, such that distro managers do not insert themselves between the developers and their users. Distros ought to distribute OS software, and for the most part stay the F*ck away from controlling installation of particular applications. High-level package managers like APT, YUM, etc. should stick to managing (or mangling) the OS dependency tree and leave apps the hell alone! Provide dependency targets in the OS repo like "LSB Desktop", and only one or two others like "Java 6". Then, accept that all the extra stuff you supply on top of LSB is ONLY extra, and will get used when and if the user decides in specific cases.

    Your as free as you want to be.. fact is so free you can make your own distro that installs applications the way you want to install them. I think maybe you want something with no package management.. good luck with that.. I think APT is just fine thank you. I like that there are distro managers inserting themselves between developers and users ... deal with it.. If you want to be "outside the box" you still can.. but it shouldn't be standard... sheesh.

  • Re:Three things. (Score:1, Insightful)

    by Anonymous Coward on Sunday August 26, 2007 @10:21AM (#20361869)
    > Comprehensive, well-written documentation.

    I'm looking at your comments solely from an end-user (i.e., non-developer) point of view where I would more or less equate "documentation" to an application's built-in "Help" system.

    My general response is: Amen, brother! :)

    My specific response to the excerpt above is: Why limit ourselves to "written"? Couldn't "documentation" also take other forms (e.g., multimedia-based tutorials)?

    If the answer is "Yes", then to what extent is written end-user "documentation" just a poor substitute for end-user "training". Or, is written documentation simply a sub-category under training?

    In my experience, many users will hesitate/refuse to use an application's "Help" system but will gladly accept having someone more knowledgeable and experienced sit down with them and patiently help them learn (show them and explain to them) how to use the application.

    The bottom line is: Perhaps we need to seriously rethink how end-users learn to use applications and how they can quickly and easily obtain helpful answers to their application-related questions.
  • by shdowhawk ( 940841 ) on Sunday August 26, 2007 @10:26AM (#20361891)
    I think that to be able to "fix"/"improve" linux... we have to fix the way that we develop for linux. I love the open source community... but lets be honest. It's pretty useless at times. It seems like a lot of projects get 70-80% done ... and then interest dies in it... or when it comes to the really hard / boring things like driver development ... no one wants to do it. So ... I feel that to "fix/improve linux" we need to change the way that things are developed. How can this be done? Pay the coders!

    Why is it that OS X / Windows is "better" and "winning"? .... easy... $$ = motivation. Their employees are getting paid more. Hell, some open source developers aren't paid at ALL. (damn but we do love you all for doing it anyways!)

    My solution to all of this, is to pay the "best" programmer(s)/group(s) to get individual pieces done. This can be done in the following way:

    Step 1. Set up a foundation or an organization of some kind that has the financial responsibility to hold on to a chunk of money. (This could be the official linux dev. Group, but preferably NOT a distro, as they will be biased. This has to be unbiased towards any distro)

    Step 2. Set up ye olde competition of the week / month. Think X Prize (maybe call it the linuX Prize? hehe).... the $ reward will be voted on by the developers of the linux kernel as WELL as the whole open source community. Things like wifi and sound (oss) would be weighted higher than say, getting a good pdf reading system to work. BUT! Still give a prize for the PDF thing. Say... 30-40K for the top winner of the Wifi competition, and say ... 5-10K for the PDF one? Then maybe give something to the 2nd and 3rd place winners too. Hell, maybe not even put a cap on it... donate X for this cause... there might be such a huge call for something like wifi drivers that over 100K+ might be raised. Hellz yes!

    Step 3. Generate money. This can be done in a ton of ways. Example: Community support. I'd for example be HAPPY to give 20$ into a pot for someone to come up with a good working easy to use and "out of the box" wifi driver / recognition set. Then add in sponsors. I'm sure we can generate lots of money to keep this going.

    Step 4. Advertise. Make a single website. Professional looking, lots of feedback on LINUX. Explain why linux should be used and it's major features (do NOT give specifics on the main pages or you will scare people away. Make the specifics easy to find as a separate tab). This is NOT for a specific distro, but for linux in general. That being said... have a wiki like set of info for each distro... but don't overload it with details (distro watch is very cluttered). Show the BASIC pro's and cons... and have users put their ratings on it. That way when a person decides they want to use "linux" ... they can easily find/see that the most popular or best rated disto is X (this caused me a huge headache when I first got into it). Also add daily / weekly / monthly (potentially all 3?) user polls. Example: "What is the next big thing we should compete for? Option 1,2,3,4,5 or 6)"

    Step 5. Reap the benefits. If we have 10 people/groups submit what they think will win them the best prize, we'd have 10 pieces of code that (arguably) will all work. Even if we choose the "best" one, we (the community) might rip them all apart, and take the best aspects from all entries to make a new complete even BETTER version!

    Rules for code: a. GOOD documentation for the code. This means "readme's" as WELL as good IN code documentation. b. Portability / Expandability. Is it generic enough to work for everything / most everything? (example: wifi drivers that recognize at least 80% of wifi devices?) c. Speed/optimization. Portability is nice... but if it slows everything else down to a crawl.. then it's really not that useful. d. 3rd party integration. How easy is it to take this code and build on top of it.

    ... Motivation is the key to making linux better. What better way to get people motivated than to reward them for their hard work with some tangible materials. $$$

  • by anon mouse-cow-aard ( 443646 ) on Sunday August 26, 2007 @11:28PM (#20367827) Journal
    On point 4 you are without a scintilla of clue.

    The problem is as follows:

    You package has dependencies. It requires the version of glibc and a dozen other libraries you built it with. Do you talk to the developers of glibc and the dozen other libraries? if they want to upgrade their libraries what do you do?

    If you want to be independent then you take a copy of glibc that you used to build your app. you install it it in its own appdir so your app can use it. You do that for each of your dozen dependencies. Then you are independent.

    Benefits:
    -- your app is independent.

    costs:
    -- no shared library usage because every application is going to want its own copy of twelve libraries.
    -- massive disk space cost because every application is going to ...
    -- large number of copies of the same f2#@%#! library on the system is usually pointless.
    -- this is how windows works, and their term for this situation is DLL hell because you have no clue
    which version of a particular DLL is being used by any application.

    Now lets say there is a security problem in glibc. You can either:
    a) tell your users to screw off, they paid for software and you gave it to them, two year old glibc and all. Security is somebody elses problem.
    b) be out of business, in which case refer ex-customers to a)
    c) have a server available for your customers to download patches from. Those patches will include patches to all the libraries which you depend on. So you have to validate and produce packages for all
    of the twelve libraries which you depend on. You maintain complete packaging, including all dependencies, for each and every distribution you support. You are able to, on request, verify which packages need updating, and perform coherent updates (perhaps multiple dependencies have to be updated together with your application in order for it all to work together.)

    Congratulations! you are now running a repository with dependency management. One step further and you can have your own distro.

    Of course, you could avoid that by simply listing in the requirements for the software all the library versions they must have (which is fine, unless they feel the need to upgrade their OS at some point, and your app breaks.) but then that forces the user to use repository tools to satisfy dependencies... hmm... why not automate that by having the application know what its dependencies are! ... Again, you have just invented apt-get/aptitude/yum.

    The alternative is to cultivate package maintainers for various distros, let them maintain the packages for the distributions, let them understand the weirdnesses of each one and help you with packaging issues.
    Use them as filters for bug reports, so that if the problem is distro specific, they look at it first.

    All applications use the same glibc (and any other common dependency) saving huge amounts of disk and memory space. Now when a new glibc patch comes out, the build cluster will automatically re-compile your package if needed and any other dependencies against it, and your clients will automatically received (a single copy of) the patched glibc, and the patched application, with zero effort on your part. If you are getting weird problem reports from a particular distro, talk to the packager and try to work it out together. build a relationship, dont swear about his existence. You are wrong, life is not simple, and swearing at people that reveal that it is more complicated than you would like to believe is stupid.

    The second reason you are lacking in vision is that you pretend that there is some bright line between the OS and applications. Get a f$#% clue! to the guy writing BIND or djbdns, DNS is an application. in the 1980s, berkeley networking was an optional application stack on

"God is a comedian playing to an audience too afraid to laugh." - Voltaire

Working...