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?"
Three things. (Score:5, Insightful)
Better performance
Maintain excellent reliability.
What else could you need?
Re:Three things. (Score:4, Interesting)
Re:Three things. (Score:5, Insightful)
Granted, this is important to the Linux community, but when I hear Linux development, I think kernel, modules, and organization (like what goes in
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!
Re:Three things. (Score:4, Insightful)
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.
Re: (Score:2, Insightful)
Re: (Score:2)
Re:Three things. (Score:4, Informative)
Re:Three things. (Score:5, Informative)
Then you didn't read the summary very carefully:
if you were able to devote a 'significant' number of resources (read: high-quality developers) to a particular app or area of the kernel
In other words, something that improves KDE, Gnome, X, etc. is a perfectly fine answer to this question.
Re: (Score:2, Interesting)
Re: (Score:3, Insightful)
Re:Three things. (Score:5, Insightful)
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.
Re:Three things. (Score:4, Insightful)
I intend to release my own distro in a couple of months.
How do you plan on stopping me?
Re:Three things. (Score:5, Insightful)
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.
Re: (Score:2)
But I'd also like to see more program and data compatibility. Wine has a LONG way to go and it's an constantly moving and morphing target. But hey, now that MacOSX is on Intel, I'd also like to see some project work on getting Mac stuff to run in Linux too.
There is definitely one drawback to the spirit of the ope
Re:Three things. (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
A) The box they bought already comes with Vista/XP. To change, the process needs to be easy. (I've given a bright 11 year old an XP CD and said 'go for it'. No problem)
B) Why isn't making the change easier an admirable goal?
Re:Three things. (Score:5, Insightful)
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.
Re:Three things. (Score:5, Informative)
Either there's a simple installer (no buttons for advanced mode) and it wipes partitions without asking, or there's a complex one that asks too many questions. This is why there are multiple distros - not every one needs to be installed onto a bare metal machine by a newb without instructions.
Besides, Linux has *far* exceeded every MS windows installer. Boot Knoppix and install Debian or RedHat on a partition, while browsing the web, SSHed into your servers, watching a movie, using the included development tools.
Windows on the other hand, if you don't get it pre-installed on the machine requires you to reboot, answer a bunch of questions without help available, makes your machine unusable until finished, requires you to go find the patches, requires multiple reboots or an admin to make a slipstreamed install CD, etc...
Besides, if your parents need a machine they can drool over, buy a Mac, or at least pre-installed Ubuntu. They've turned off the fancy stuff to keep people from hurting themselves.
Re:Three things. (Score:5, Insightful)
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
Re:Three things. (Score:4, Interesting)
Unfortunately, it still has a way to go on #1 (have it autodetect all my hardware and just WORK). I handed out a few Ubuntu CDs.
On the first (a cheap Acer laptop) it complained about the wireless chip. No real options for the user, other than to get a new laptop. But it did work.
On the second, it attempted to make a W2K machine dual-boot, and (going with all the defaults) instead made it no-boot (Win BSOD). The user then attempted to reinstall Windows, which blew away everything. Now, I'll grant that the user made things worse, but what would you expect them to do? And how would they know?
On the third, I attempted to test what had happened on the second, by just grabbing a random used hard drive (containing some version of Windows) and installing Ubuntu on it, accepting all default choices. Ubuntu choked. (Possible causes: multiple partitions, fragmentation, Win swap file in the middle of the area Ubuntu wanted.)
So I reformatted the drive and did a clean W2K install. Ubuntu installed over that very nicely.
So, my impression is that Ubuntu is not really ready for the general public to install, not on a Win machine that's been in use. At the very least, not until it knows how to deal with fragmentation, Win swap files in inconvenient places, and the like. I'd even settle for a message like "Fool, this HD is hopelessly fragmented, fix that and move the swap file, before Ubuntu can help you." Bonus points for instructions on how to do those things. Double bonus points for creating a batch file that will run on reboot and do those things for you.
Don't get me wrong, I think Ubuntu is the best of the lot for the naive user. But the install isn't ready for prime time yet.
Re:Three things. (Score:5, Insightful)
Re: (Score:3, Interesting)
Not only that, but speaking as someone who loves Emacs, *nix shells and so on... I still run Windows as my desktop OS of choice because Emacs runs fine on Windows, Cygwin deals with my command line needs and (crucially) all the proprietary apps and weird hardware I own just work.
Back when I was a student I ran a dual boot machine and would try running Wind
Re:Three things. (Score:5, Insightful)
Re: (Score:3, Insightful)
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.
Re: (Score:3, Informative)
Re: (Score:3, Interesting)
All of these are not that bad already. Granted they can be better, but it is a case of diminishing returns. To make them better you have to invest a lot for a little return. Also, as Linux is used more and more in embedded devices serving this purpose many of them will improve anyway without throwing effort at it.
Also, IMO Linux actually does the job for an average desktop more or less all right already. I am judging by the number of complaints I get from my significant half which is a Mac user when using
Re: (Score:3, Informative)
I'd use a combination of convex (Score:4, Funny)
Thanks. I'll be here all week.
Make everything "Just Work" (Score:5, Interesting)
Re:Make everything "Just Work" (Score:5, Insightful)
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.
Re: (Score:2)
Re: (Score:3, Insightful)
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 ha
UI Consistancy (Score:2)
Re: (Score:2)
Re: (Score:2)
But there's still the great schism between KDE/Qt apps and GNOME/GTK apps. Regardless of which DE you use, you'll encounter applications that use both toolkits and they're going to look inconsistent and comparatively out of place.
Re: (Score:2)
(Personally I think common *functionality* (such as all programs using the same sound subsystem, e.g. alsa vs. oss, or printing) is far more important than widgets and other eye candy anyways, but to each his own!)
Re: (Score:2)
Preceded by "applications or", which would include widgets and DEs.
Software development tools (Score:2)
It seems to me that windows development tools are ahead of Linux in these regards, and it would behoove Linux developers to make development as easy as possible.
Re: (Score:2)
Honestly not trying to flame you here, but have you tried Eclipse [eclipse.org]? Am pretty sure it does what you need: for Java anyway, it certainly has basic support (syntax highlighting etc.) for other languages like C/C++ and PHP too. If you're into .NET there's Monodevelop [monodevelop.com], which is an IDE for that.
The Hurd (Score:3, Interesting)
Re: (Score:3, Interesting)
No, it doesn't have interesting features. If it had interesting features it would not be stagnating and lacking in developers. OpenBSD is an alternative kernel with interesting features and that is why it has enough developers and support to be usable.
There are no end of unfinished OS projects with a couple of developers that mo
Might I Suggest... (Score:5, Insightful)
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: (Score:2)
Re: (Score:3, Insightful)
Re:Might I Suggest... (Score:5, Insightful)
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.
Re: (Score:3, Insightful)
# Controls max number of connections
connectionsMax = 10
# Enable SSL
ssl = true
I think it should probably have been defined somewhere in XML
Re: (Score:2)
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.
You've set up a false dichotomy. The other guys are saying that every setting should be available from a GUI. They did n
Re:Might I Suggest... (Score:5, Interesting)
Whilst I totally agree with what follows after the semi-colon in this sentence am not so sure about the part prior to it. All we're seeing is that people do not want to be forced into changing settings--am assuming, on their desktop machines--using the command line. This does not mean we should 'bury' the command line, or stop using text files to hold settings! In fact you've made my point for me:
Aye, there's the rub! The user should be able to choose between a GUI configuration interface or editing a text file: everyone's a winner! Also a GUI should be able to read/write text configuration files whilst handling seperate user changes to those files gracefully.
In fact I'd spend a lot of the money on getting everyone (or as many projects as I could) to agree to a configuration file format that could easily be interpreted by an application. A one-size-fits-all library could be written to get the settings from file into memory and back again, then it would just be a matter of organising that data into a front-end that's meaningful for the user. The real joy is that with a standard file format, and library to support it, a rudimentary GUI for a new application could be created in minutes.
This is a very conservative viewpoint, why can things not change? Why can't we have the best of both worlds, with both GUI configuration tools and text files?
Re: (Score:2)
CLI Update! (Score:3, Insightful)
One universal install method... (Score:5, Insightful)
Re: (Score:3, Insightful)
Re: (Score:2)
Because none of them are setup the same way and honestly, I don't want them to be? apt-get update ; apt-get install foo. Looks like a two step method where I don't have to think all that much and I still feel like I have control over my system.
Let's not fuck up the way things are just because some believe it would be better. Choice is a big part of the draw to Linux, why make it more like Windows when a lot of people want it to be
Re: (Score:2)
The problem is that "Linux"[1] is not a single operating system, and there are subtle binary incompatibilities between various distros. Use Debian for a while, then switch to something like Mandriva. You'll get the idea pretty quickly.
-
[1] or "GNU/Linux"---it doesn't matter here
Re: (Score:2)
what you want is windows not linux. windows does everything in a cookie cutter sort of way and look where it got them... the current state of security/flaws that we see in windows is a consequence of that sterile environment. we need a diverse system that can survive in a way windows can not. things are done differently not "incorrectly." Now if the different flavors of Linux made each installation method simpler to carry out wh
WINE (Score:5, Interesting)
Re: (Score:2)
UI needs a lot more consistency (Score:4, Insightful)
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:UI needs a lot more consistency (Score:4, Interesting)
Probably because there are no universal UI guidelines that fit in every case, and no one knows of the "best" way to design a UI. There are almost certainly better UI models that will be found in the future, and part of open source development is trying to discover those models. Modal dialogs with "Yes, No, Cancel" may not be part of the optimal solution (it's hard to imagine them being the best for any task, really), so exploration into other representations and interaction models is a good thing.
For one thing, modal dialogs are essentially points in the program flow where the user is forced to make a decision. In many cases, the decision can be made automatically or simply removed from the program flow if the correct UI model is used. All the dialogs warning about saving documents before closing programs are probably the worst thing to happen in UIs since their creation. The proper solution is to save and version everything the user does, and never lose work (to the maximum extent possible) when the application is closed or crashes. That requires support from the filesystem and a UI design that emphasizes the versioned nature of files and data. Forcing users to "log on" and "log off" and closing all their applications and opening them up again is another genuine UI mistake that's a holdover from the days when memory was so tiny that overlays were popular and it was simply a necessity of operating a computer. There is no reason that modern operating systems should not present a persistent interface to the user. Hibernation is the closest thing to persistence that's currently available, with suspension a close second, but neither are truly persistent. They still rely on the old model of individually managing each piece of data.
Kernel and Xorg Usabilty (Score:2)
Re: (Score:2)
Open Source 3D and better interactivity (Score:5, Insightful)
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.
Preferences, doc files and print settings (Score:2)
How about including some of the documentation
Most linux problems are "desktop" issues... (Score:5, Insightful)
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.
Fix-up the standard toolchain (Score:2)
But many of the new tools that deal with this stuff are GUI programs like network manager. Now, network manager is a good program, but wouldn't it be cool for it to coordinate with ifup/ifdown? You know, update the classic commands so they use the new systems. I think there could be either a new generation of CLI tools or a re-vamping of the old.
I'd als
Thourough context sensitive help... (Score:5, Insightful)
Sure would be nice though.
Do everything at the same time... (Score:3, Insightful)
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.
question sabotages the answer (Score:2)
The people responding here do realize, almost by definition, that "refocussing" Linux involves a hypothetical mode of intervention that stands at complete contrast to everything Linux has so far represented. There is no vagrant pool of talent at this level, nor is there a mechanism to confine this pool of talent to pie-in-the-sky wishlish thinking.
As a point of reference, this text has been in the OpenBSD dhcpd man page for as long as I can remember:
3D (Score:5, Informative)
That is the path to success on the desktop. Today, I cannot even run OpenGL apps or any 3D apps on the lastest and greatest 3D graphics hardware from AMD (formerly ATI), the Radeon 2900XT. Why? There are no drivers. They have focused entirely on Windows, and consider Linux a niche market not worth the effort. Because of that, my family do not have a Linux only machine, which is also why I dual boot. The Radeon 2900XT support may well come to Linux, "when it is ready".
Please, take 3D support in Linux more seriously, whether you are hardware manufacturer or a software developer.
The Elektra Project (Score:4, Interesting)
I think it's at least worth trying such an implementation. Ok... now bring on the "It Windows again" haters...
It's so easy! (Score:4, Insightful)
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.
It's Beautiful Just the Way It Is (Score:2)
Unified packaging system... (Score:5, Insightful)
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.
Reduce the amount of kernel-space/root code (Score:2)
There's still way too much code that runs with elevated privileges. I want to be able to run downright *malicious* code on my machine, under X11, and not be worried about it compromising my SSH keys, for example.
If this doesn't happen, we're eventually going to see the malicious screensavers in Linux that we've in Windows throughout the last decade.
Kernel is great, rest is so so (Score:2)
Re: (Score:2)
Focus on where linux is strong (Score:2)
Focus on the server side, consolidate efforts of all the developers to make it perf
Where Linux Applications Fall Short (Score:3, Insightful)
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:
Publicity and Minor Improvements (Score:5, Insightful)
2) MIDI support
3) A "configuration manager" that knows most of the contents of the
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
The kernel or the operating system? (Score:3, Insightful)
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.
Have my list all ready :-) (Score:5, Insightful)
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
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
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.
Focus on education and after this, documentation (Score:5, Insightful)
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
Performance Squad the desktop (Score:5, Insightful)
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.
Outlook Calendaring Replacement (Score:3, Interesting)
What is needed now is something that can integrate with an Exchange server's calendaring and also integrate with a robust open-source calendering server system to replace Outlook's calendaring functionality with an open, standards based system. We need to embrace and extend Outlook.
Re: (Score:2)
The other thing I'd personally spend some developers on is picking up XMLTerm, the abandoned mozilla Xterm project that was capable o
Re: (Score:2)
The defacto desktop distro for the general public (Score:2)
Additional software is easy to install. I'm using Opera to post this and, even though it's not available through the Ubu
Re:The defacto desktop distro for the general publ (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Re: (Score:3, Informative)
To have all repos enabled and accepting all is just plain silly since you are going to have issues. What I do is to activate one repo at a time in a preferred order with the primary repo first. I never d
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I always thought the whole fork/exec mechanism was a little goofy, but personally, I'd be happy if they made a version of exec() that didn't have any limitations on command-line length. The fact that I may or may not require xargs on a command like "ls a*" in this day and age is ridiculous.
Re: (Score:3, Insightful)
Linux is available on kernel.org - the current version is 2.6.22.5
Re: (Score:3, Insightful)
-Linus Torvalds, September 1991
Re: (Score:3, Insightful)