Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

slashy writes "What is the future of closed source software and Linux? OSWeekly.com delves into the subject and emerges with a possible answer. Quote: "I have been struggling with one major problem lately with the Linux operating system and that problem is the amazing lack of new and exciting software. It's frustrating because by the time said software does finally make its way down to the Linux user, the Windows crowd has been using it for nearly a year or longer.
Perhaps some of this is because there does not appear to be a clear, simple to follow outline cooperative for companies to design for the open source operating system. Arguably this is because of the perceived need to keep things "open," however, I feel it's time for Linux to grow up and find some kind of common ground with the closed source community. I am a firm believer that both parties could learn a lot from each other; unfortunately I don't see that happening any time soon."

Perhaps some of this is because there does not appear to be a clear, simple to follow outline cooperative for companies to design for the open source operating system. Arguably this is because of the perceived need to keep things "open," however, I feel it's time for Linux to grow up and find some kind of common ground with the closed source community. I am a firm believer that both parties could learn a lot from each other; unfortunately I don't see that happening any time soon."

Actually, this is exactly what I have heard from a number of software vendors. I review software and gadgets for a few web sites. One of my testing criteria, particularly for hardware, is if the hardware is Linux-compatible. When it comes to software I always ask if there are any plans to offer a Linux version of the software. The answer that I hear the most often is in regards to a lack of available resources, which I certainly can understand since I review a lot of software form independent companies. But when I question further about asking Linux coders to help with the conversion, the major of companies that have shown an interest in a Linux port say that they've attempted to do so, but the programmers that they approached expect the software to be open-sourced if the company is to get their help. I've even had some developers of software that's geared more towards a particular science admit that they think there would be a huge demand on their software for Linux, but the "requirement" by Linux coders that the software is open-sourced killed the prospect of releasing a Linux version.

As much as I'd like to brush that off as "just an excuse", look at a lot of the replies here on Slashdot about Linux and open-source and you'll quickly see that HE'S RIGHT! I love open-source (or at the very least open standards) just as much as anyone else here and I use it whenever feasible. But there is definitely an assumption among a lot of Linux users that if it's available on Linux the course code has got to be made available or else it doesn't belong on Linux, like it's some kind of plague.

Now, I'll confess that this attitude has been diminishing as Linux eeks its way into the mainstream. The attitude is shifting away from open source and more towards open standards. But there is still a big movement and big preconception that "Linux == Open Source" and "Closed Source != Welcome On Linux".

NOT flaming here, folks. Just relaying what I've been told by software developers and what I've seen here on/. Sorry if you don't like it or don't believe it, but that doesn't make it less true. Or at least, that doesn't it make it less true in the eyes of software developers.

Is it "possible" to write software that will run in linux that does not "require" GPL code?

Yes. Most libraries on Linux are released under the LGPL or other licenses that do not force you to distribute source code to applications that link to those libraries. Of course you should check the licence for each library you intend to use first (just as you should in the proprietary world).

As I said, I'm just relaying what other developers have told me. That's all. Take it at face value.

However, you cannot deny that there it a very strong sense of "Make the source code available!" in the Linux community. I'm NOT saying that it's right or wrong, just that it's there. And don't say that Linux coders do not require open source! I've seen postings on Slashdot and other Linux communities that have actually criticized companies for releasing software on Linux but not making their source code available as though it's some kind of expectation! I know enough to take such postings with a grain of salt, knowing that there are extremists in every crowd who will never be satisfied, but what the hell do you expect a developer to think if they had plans on releasing their software but then saw that there's an expectation of releasing their source code?

It's not only possible, it's easy. The main thing to watch is libraries. All you have to do is avoid using libraries available only under the GPL in your program. The only critical libraries that your program will have to use are glibc and the GCC C++ library module, and both of those are under LGPL-style licenses. As long as you dynamically link to them (so the library object code isn't physically included in your executable) you don't have a licensing problem. Other libraries you'll have to look at their license terms to see whether they're compatible and how you have to use them to be compatible, but none of those are required to run on Linux and you can just not use them if you can't find a way to be compatible with their licenses. GTK (Gnome) and Qt (KDE) are probably highly desirable for GUI apps, but GTK's under the LGPL and Qt has a commercial license available so you can use both without having to open-source your code.

Actually, one in particular tried to get paid, Linux coders a few years ago for one of their projects. Granted, this was many years ago before Linux became as mainstream as it is today, but the few people that they spoke to supposedly voiced displeasure with not making the code available and the deadline for the project was approaching, so they decided to scrap any Linux conversion. Once again... what I was told. An excuse? Could be. But I could tell by the tone of this particular developer's e-mail that he was pro-Linux and would have really liked to have the software ported, but he didn't have the skill set to do so.

*sigh* I probably should have known better than to mention this on Slashdot. Shoot the message, shoot the messenger. Same thing.:/ C'est la vie.

For example, can you believe that there are no good graphical FTP clients for linux? It's true. I have been using gFTP, which most people consider to be the best one, for about a week. It crashes almost daily, isn't very good option-wise, and it is soooo slow. I want something simple, say something like WSFTP for windows, and lo and behold it just doesn't exist. Seems remarkable that a good graphical FTP client doesn't even exist.

It's called Konqueror. It has these wonderful things called 'ioslaves' which can be accessed by special 'protocols'. Not only does it support browsing the local filesystem and the web, but also ftp sites (ftp://ftp.gnu.org), secure ftp (sftp://blah), info and man page viewing (info:/libc, man:/fstab), and a whole host of other resources. And it presents a unified and self-consistent interface to all of them.

There are fantastic GUI clients for FTP on Linux, and sometimes you don't realize you're already using one on a day to day basis (assuming you're a KDE user).

That's true, but if the coder won't accept retaining closed course as a condition for hire, they're under no obligation to accept the job.

I've been employing people on software projects for the past ten years, and I've worked in the biz for more than double that, and I have yet to have a coder refuse a job because their code was going to be closed, open, or printed on toilet paper and flushed for that matter.

I don't know what bizarro world you're inhabiting, but it all sounds like FUD to me.

The author made some good points, but I'm confused why he didn't mention the Linux Standards Base [freestandards.org]. Aren't these issues exactly what the LSB is supposed to address?

Correct me if I'm wrong, but I don't think closed source software is really the main issue for most Linux users. New software is what we lack. Many people are using NVidia video cards with a closed source driver and playing Doom 3 which is also closed source. For example, I want Photoshop and Dreamweaver and Nero (the real one) to run natively in Linux.

The "open" kernel API of Linux is not constant, and it's not open in the sense that you can link even non-open code to it. That's why you have those thunkings to binary "drivers", with a thin layer under a GPL license, that just communicates with the binary code.

The case with NVidia is very different. NVidia is a hardware company and their "software" is nothing more than a bridge to make their hardware work in various operating systems. Their revenue comes from their hardware, open sourcing their driver can only help them sell more hardware...

Also, it runs inside the kernel which means a bug in the software can kill the whole OS. The kernel is GPL meaning that a closed source module is illegal. They use a GPLed wrapper though, putting it in the legal grayzone instead...

Personally I love the proprietary NVidia driver, it works great for me! What annoys me is that it has bugs, limitations and unimplemented features that would had been solved a long time ago if it was Open Source. One example is that I can't configure the height+width of the TV-out signal which is possible in Windows. The Linux driver can only set a "zoom" level. I can choose between cropping the left and right sides of the screen or have black bars on the top and bottom... Also, you can't use NVidia cards on AIGLX or fully accelerated on XGL because they haven't implemented the necessary OpenGL extensions yet.. They have always been VERY slow to implement new features of X11 while the Open Source drivers get them immediatly.

User-space applications are a completly different thing.

BTW, most people with a clue aren't bitching to make NVidia OSS their code, only to document the specs of their cards so the OSS community can write their own drivers.

I agree with most of your argument but I also can't help feeling that the lack of closed source development for Linux is hurting the community as a whole. Perhaps companies developing closed source software for Linux won't advance the Linux code base much but having, potentially, tens of thousands of software developers using the libraries and reporting bugs should help improve the to the point where they are far better than any closed source set of libraries.

I think part of the problem companies see with developing for Linux is that it feels like a constantly moving target. Software compiled for Win 95 will probably run on WinXP would software compiled for Linux in 1995 run on a modern Linux box? I doubt it. Most software houses just don't have the resources to constantly patch and recompile their code and like it or not there is a lot of 10 year old code still being run.

I don't know, perhaps the APIs are more stable that I give them credit for - I'm a Java developer so insulated from all that. My one experience of trying to get an old piece of closed source code running on a modern Linux machine was a total failure due to the fact I was running a newer version of the C libraries - that didn't exactly fill me with confidence that Linux would attract closed source development any time soon.

Actually - Konq and ioslaves is one of the several reasons I've gone all-Linux at work. It's a nifty feature. And not only do ioslaves work within Konq, they also work for many KDE applications from the file open dialog.

Regarding photo editing I recently found the program F-Spot for Linux. It was the reason I (once again) switched to Linux to play some with it. It's not so much editing as photo management. But in that aspect it does a better job than many Windows/OSX programs. Or perhaps more accurately, it has "versions" so you can have different edits of the same photo.

Why no other programs have this is beyond me. It seems like an obvious feature.

Well, I tend to have a bit of the opposite reaction...apps that compel me to stay on linux, rather than move to OSX.

For the most part, these involve server apps. Most have been ported to OSX and Windows, but were first built on (and run smoothest on) Linux. Samba includes a SMB client AND server for free; OSX (desktop edition, at least) has a bundled client, but no server. Windows' SMB server is limited to 5 connections, unless you pay extra for more. Apache/php/perl/etc have been ported, but seem to run most smoothly on linux.

As far as user apps, well, the Gimp still seems to be designed for linux. You can run it natively in windows, or under X11 in OSX, but it's a pain trying to find an OSX port. (Of the 3 ports I remember, one requires you pay for it (within the license terms, but slimey enough that I don't want to give the guy a cc number), one requires you install Fink (which is as much of a kludge as Cygwin is), and one works under X11).

I'm still looking for a good movie app. I haven't tried it yet, but kino actually looks more promising than iMovie or Windows Movie Maker. Its interface is not nearly as slick as the other two, but it has a killer feature - MPEG support. iMovie only lets you save to Quicktime (ugh), and Windows Movie Maker to Windows Media. I don't care if iMovie can turn junk footage into pure gold - what good is it if I can only save to a proprietary format? I can't open Quicktime movies in any of my windows software for further editing, and I can't open Windows Media in any of my OSX software for further editing. But I think both can import MPEG, and I can pass MPEG2 files to my dvd software for burning.

As for apps that noone on Windows/OSX seem to use, netpbm is a good example. They are command-line utilities that let you convert image formats, rescale, rotate, crop, etc. They're great when you have a bunch of pictures you need to do the same thing to; you can write a little script, rather than "click file->open, choose file, wait, click Image->Rescale, type 25%, click ok, wait, click file->save as, rename, wait, repeat 30x". OSX does include the netpbm utilities, but it seems to be an older version which is missing a few utiities. I'm not sure I want to tackle compiling a newer version - I'm not sure how to track down all the dependencies on OSX, or whether Apple made any modifications before compiling.

OpenOffice was written for Linux, and has ports for OSX & Windows. The Windows port works pretty well, but I think the OSX port is still a bit awkward, and requires X11.

And WINE, when it works, is a convenient crutch. It's ugly under Linux, but at least it runs. Even on an Intel Mac, I think it would require major code rewrites to make it work on OSX. I've tried Bochs on a G3 mac; it runs, but it's too slow to run anything but DOS programs. Plus, fully simulated environments like vmware or bochs are still more awkward than a translation layer like Wine.

AppArmor [novell.com] is vastly superior, in that it also can be used to regulate resource privelidges on a per-application basis, but instead of only controlling network access, AppArmor works on a system-wide basis. Furthermore, AppArmor can isolate applications from one another. The GUI isn't so bad.

Oddly enough, we have "Ask Slashdot:" articles discussing the very technology that underlies AppArmor, LSM, and how one might be able to find a similar thing on Windows.

Furthermore, the types of issues that cause you to use ZoneAlarm aren't nearly as prevalent on Linux. You don't get malware, and OpenSource and/or high-end pro software tend not to phone home randomly.

If you're really, really, really determined to have lots of really, really annoying popsups (remember that things like keyloggers are resolved by AppArmor), you can use either Program Guard [sourceforge.net] or SysTrace [umich.edu] for Linux. Program Guard annoys you about TCP/IP access on a per-application basis, while SysTrace annoys you about everything.

NetLimiter: I do not understand the point of this application. Why would you ever want to do per-application bandwidth shaping when you can do global L7 QoS? Furthermore, it seems to me that you can use a combination trickle for hard "per-application" limits (which, IMHO, don't _ever_ make sense_, and global QoS to acheive any combination of features you could potentially acheive with NetLimiter.

As it is, I run 6 desktops, 3 vonage lines, and 3 laptops over a Comcast 8Mbps/768kbps connection. I use one firewall on the router, running linux, with QoS enabled and global L7 traffic shaping. We have no problems when simultaneously running Limewire, Bittorrent, Vonage, and generalized web access (everything remains responsive).

The real problem with pointing at these sorts of applications is that this kind of functionality is just not needed on Linux. Proper application isolation, lack of malware, high quality global QoS, and decent packet filtering means that these kinds of annoying GUIs that are really nothing other than system maintenace and mundane micromanaging are not needed. I don't need to rate limit my downloads or uploads in order to preserve network responsiveness; I don't need to watch my applications to see if they are phoning home or not. I don't need to worry about whether or not my financial data is being read by malware; I don't need to worry about whether compromised user-apps on my system are affecting admin-level system services.

If you really, really, really, really want, the tools are out there, in proper Java, QT, and/or GTK form. But the reason they aren't widely deployed is because you really shouldn't be using them; a computer is a tool for work or entertainment, not an adventure game on its own. We don't live in the Tron world; and much like you don't need to have pressure gauges and per-pump control over your automobiles fluidic systems, you don't need to have direct control over this stuff on Unixy systems. It just works, and that's good enough for 99.9999% of non-super-geeks out there. For the remaining.0001% of us, we write our own GUIs, hunt out little known programs, or use the commandline. But the vast majority of computer users out there shouldn't need to be familiar with a tool like ZoneAlarm, and shouldn't have to worry about all those bloody popups. For the m

Think of it this way: when such alarge percentage of UI complaints are coming from folks who expect all raster image editors to not only work as easily as Photoshop, but *replicate* Photoshop's interface to a 'T', it's no wonder the devs ignore many of them. The GIMP is far from perfect (no CMYK support sucks a mean one), but a lot of people like to bitch and moan simply because they need to learn a different way of doing things.

As a person with professional experience in the graphic arts, I can say the GIMP is a very useful and capable tool for most image editing/compositing providing you don't need production-quality output for print. The interface is *not* that hard if you spend a little time with it and remind yourself that no, it's not the same. My primary gripe is that yes, it's confusing to have no central window for all of the app's own windows to live inside of, and that's probably an outgrowth of a half-assed stab to make it more "Mac like"...all this does is result in me having to spend extra time moving all its windows between my multiple desktops, rather than getting it all in one go. On the other hand, if you inadvertantly bury them, you've got too many damned other things open along with it, which means you're probably inefficiently organizing your desktop(s) most of the time anyway.

Cheers to your daughter for mastering it, though...living evidence that, without application prejudice and pre-conceived notions about how a graphics program should work, it's very useable.