I think that the interesting thing about the X-Box is the heavy reliance on off-the-shelf components (standard x86 chip and graphics from NVidia). In a lot of ways, this seems pretty rational, especially for the main CPU. After all, the market of 100+ million x86 users has created a pretty damn good economy of scale, so you can make up in brute force what you lose in terms of gamer-targetted features (polygons, etc.). Why don't other consoles use such commodity parts? Has it been an issue of price? Or is this the first time that the IA-32 architecture has been able to provide a good enough price/performance ratio with respect to graphics-related features? Microsoft could have easily gone with MIPS, as WinCE runs on that platform and NT used to. Just think of how cheap a 600 mHz chip will be in late 2002, when this box is only a year out on the market! Who knows, they might just break even. --JRZ
Ok, I promise I don't work for these guys, but I'd have to highly recommend Resin from www.caucho.com. It's open source and amazingly fast. We can serve dozens of requests per second of a resonably complicated site on a crappy $400 Linux PC. Also, what JVM are you using? Definitely try the newest Sun (with Inprise JIT, must be downloaded separately) for a single-processor system and IBM's jdk for an SMP box. For App Servers, you should check out Web Sphere from IBM (not too expensive, relatively speaking). Also, TowerJ can DRAMATICALLY speed up Linux server-side java and improve scalability (towerj.com, I believe), but it ain't cheap. Good luck! --JRZ
If you're really interested in the details of this merger, check out http://www.pathcom.com/~dmagie/" for an in-depth description of why this is such a bad deal.
If I had to summarize my own views, I'd say the key thing is that it totally undervalues Inprise. Did you know that Inprise has $250 million in actual cash on hands and 0 outstanding debt? But this merger, right now, values it at under $500 million TOTAL. Sure, a year ago the company was bleeding money and nobody wanted to touch it. But now it's breaking even and has a solid long-term plan to be the best, serious provider of cross-platform development tools. As a developer who has to use Windows and Linux (and would LOVE a good Linux RAD tool), I think that's a pretty decent plan.
Top that off with the fact that Corel and Inprise are targetting totally different, non-overlapping audiences (beginning users vs. professional developers), and it really makes me wonder who the hell thought of this deal anyways. --JRZ
Actually, the x86 version is Red Hat-based, while the PPC version is LinuxPPC-based. So, you can expect that any software running on either of those systems will work fine on the motorola distribution. I love seeing new, specialized Linux distributions which excel in their niches. What I hate is the "produce another general-purpose distro" idea, and I can't wait until some of them shake out. --JRZ
Umm... here's their installation procedure for newbies seeking a simple upgrade: The simplest way to install the Helix GNOME Desktop is to use the Helix GNOME Installer. You can automatically download and start the installer in three easy steps:
1.Open a terminal window. 2.Using the su command, become superuser: $ su Password: [Enter your root password here]
3.Start go-gnome by typing the following command or cutting and pasting it into your terminal: lynx -source http://spidermonkey.helixcode.com/go-gnome |sh
In other words: Become root, download some file from an insecure web address, and pipe it through 'sh'. I'm no security guru, but this is THE WORST LINUX SECURITY ADVICE I'VE EVER HEARD. You should NEVER, EVER run untrusted code as root without examining it first. What if some malicious cracker breaks into one of the mirrors and adds the line 'cd/; rm -rf *' to the code? They need to use a secure certificate to transmit the first part of the script, which should then download the packages AND test their MD5 checksums. Average users can be excused from testing MD5's for every package, but this is an automatic script that is backed by Helix Code's reputation, so they should go the extra mile (it's more like a tenth of a mile in this case). If the user doesn't have MD5 or support for secure certificates, then you can fall back to something simpler, with a warning message. --JRZ
Computer Science studies at the university level are still not focused enough towards helping the student find a job afterwards.
Thank God! If you leave college with a strong background in programming and theory (even if you mostly just know C/C++ and Linux or Unix), I mean, one that covers theory of large-scale programming, OSes, and especially algorithms, you'll have a long-term base that will last you even if we all end up progamming in some bizarre, currently-unknown lagnuage on 3-dimensional displays running on BeOS 9.12.
Why? Because, if you know your stuff, you can always pick up a couple of books or take a quick training class (cost: $100 - $2000 ) to learn the newest industry trend. But if you don't learn the theoretical, university-style fundamentals, you will most likely never learn them, and go through the rest of your life as a fairly mediocre programmer.
In particular, it's scary that I've met people who graduated with nothing more than a series of "Programming in X, level Y" classes. A friend of mine intereviewed someone who came from a curriculum like that, and asked him to write "strlen()". The applicant (a VB programmer) thought about it, then proceeded to write a program that repeatedly split a given string in half until it ended up with only one character, then counted the number of splits it took. Wow.
You can learn "skills" any time. Use your university time to learn theory, if you want ot get your money's worth! --JRZ
Hmm... I'd have mixed feelings about using Linux for this sort of class, because I'm a big fan of hands-on learning. And, if you think about it, writing a device driver isn't much like designing a whole OS. Around here, our OpSys class uses the Tannenbaum book (which includes lots of samples from Minix, a simpler OS that was designed for teaching purposes). In small groups, students then implement most of the major OS subsystems (memory management, file system, boot loader, etc), while being given code for some of the more dull things (i.e., the shell, although I did just have to write a job control shell for another theoretically-second-semester class and it was a boring $%!#%). The cool thing is that, at the end of the semester, you have a floppy disk with your own primitive OS on it. --JRZ
Well, I share some of the earlier feelings that I want Linux to keep its geek/technically-oriented strengths, including the option to do some cool command-line magic or to use a bizarre set of desktop themes and window managers. I also, however, hope that the system gains more mainstream desktop acceptance too (say, at least as much as the Mac). We need enough "critical mass" to make it worthwhile for commercial desktop software companies to do ports to Linux, and right now that mass isn't quite there. That said, I also agree that the combo of KDE/GNOME 2.0 and new applications like WP Office 2000 (the betas are beautiful, much nicer than WP 8) will have a lot of impact on Linux desktop acceptance. --JRZ
Amazing though there hardware is, SGI knows it simply can't compete with larger chip developers, especially Intel. Intel's R&D budget is orders of magnitude greater than anything the MIPS folks will ever see, and it's really starting to show. Right now, if you compare the fastest x86 chip with the fastest MIPS chip in integer performance, the x86 will absolutely blow it away. McKinley threatens to bring that same differential over to the FP side as well. So, yes, right now SGI workstations can hold their own with better FP and peripherals (bus, architecture, etc), but two years down the road it would be a very different story as IA64 kicks into gear. HP, whose PA-RISC has consistently been much faster than the MIPS line, realized this too in their shift towards IA-64. Let's just hope that SGI is successful in bringing all their technologies to Linux in that timeframe so they still have some workstations to sell. --JEZ
My school uses exclusively Sun servers and all the admins I've talked to sing high praises of them. But I've been stuck working on our Sun Ultra5 worstations far too often, and they are TERRIBLE. Sooooo sloooooow. They're configured with 128M of RAM and, if I remember right, a 300 mHz sparc. My PII-350 with Linux and the same amount of RAM is much more responsive. Not to mention that they go down with alarming frequency, and they cost four times what I paid for my intel box around the same time period. I can understand why Intel-based machines (both Win32 and Linux) are making so much market headway. It'll be interesting to see what RISC workstations really survive after McKinley comes out and people like SGI start producing the kind of first rate hardware (graphics, bus, etc) that has been differentiating Sparc/Mips/PA-RISC workstations up until now. Will SparcStations be able to survive the onslaught? Should Sun really care if they do (especially since workstations are a low-growth market while the server-side growth potential is enormous)? --JRZ
I have to agree with what some of the other folks have been saying here. I first learned C++ (well, a shoddy mix of C and C++), and, especially as I've learned more about its features, I've found it painful to go back to purely-procedural languages. I've had to do tons of C in school, and it always leaves me wanting for the power of C++, Java, or even the convoluted object-extensions of Perl5. Of course, now we have Brian Kernighan here as a guest lecturer and he's trying to convert everybody to use awk instead. . . (great guy, though) --JRZ
I just lost so much respect for LinuxCare. It is absolutely irresponsible for a top level executive to go around spreading completely unsubstantiated rumors. This, and their "call to Microsoft to open the Windows source code," as if anyone cared what LinuxCare thought. It's not even a decent stupid publicity press release, it just makes them look like a bunch of amateurs! LinuxCare: I know you guys have a tremendous amount of Linux talent and a lot of understanding of the community in general. Please, please start acting like grown-ups so you can get the respect you deserve! --JRZ
Yup, Borland C++ is MUCH faster than g++. I've often heard, though, that it produces slightly slower code. All of this is really academic, though, because g++ on Win32 is, well, not particularly useful for real development. Its support for the win32 API is very, very much a work in progress. It compiles as fast as mud, and it's really meant to me used within the cygwin environment. On Unix/Linux, I rarely use anything else. But on Windows, I'll use Borland from here on out. --JRZ
Microsoft owns a silent, non-voting share of Inprise last time I checked. They don't have anybody on the board, so they don't impact on Inprise/Corel's business decisions. I think there are many more reasons to be skeptical about this (somewhat shady) merger, but they don't have to do with conspiracy theories. There's no reason at all why Corel (productivity/graphics company with a Linux distro targetted at beginners' desktops) needs to be in the same company with Inprise (tools/middleware company with upcoming Linux products targetted at high-end professional developers). There's just no fit there. But some folks figured it would make the two companies seem more credibly like "Linux companies" to some investors who are only looking at keywords, so they let it go through. --JRZ
I've been using 1.2rc3 for some time on an intranet site using a bunch of servlets/JSPs. Works like a charm. 1.2 JVMs are SOO much easier to use and configure than 1.1.x JVMs. They're much more intelligent about using.jar's, etc. The performance is also quite good, especially with Resin (www.caucho.com). No, I don't work for them, but I'm incredibly impressed by their servlet engine. It also has a cool feature that compiles JavaScript (in JSPs) to real Java bytecode. Plus a lot of great utility classes (like automatic database connection pooling, and XML support). I highly recommend checking it out. We're running an app on a $400 Linux machine and the response is basically instantaneous, even with multiple database queries. --JRZ
#1 wish of server operators: better administration tools. LinuxConf's GTK+ frontend is buggy and poorly designed from a user interface point of view. Occasionally the program exhibits other weird behaviors too (not changing things it said it would change, etc). And it's still not that comprehensive. Check out Corel's video settings tool in the KDE control center. THAT is something I've wanted for YEARS. Webmin, by the way, is much nicer to use than any form of LinuxConf right now. Really, though, I don't need for one tool to be comprehensive, but I DEFINITELY want a central location from which to configure things, even if some of those config utilities are command line. This is an area in which many commercial OSes surpass Red Hat, but it should also be a relatively easy part to fix (which is tougher, writing a nice config interface, or scaling to 32+ processors?). Please, please work on this. --JRZ
As many people have mentioned, Linux docs tend to be spread in various directories, in different help systems (man vs. info vs./usr/doc vs. KDE help. ..) with no unified, searchable interface. Hopefully the next generation of KDE and GNOME help will provide an interface to search all these different sources intelligently by keyword. I know these folks are working on integrating the desktop help with man pages, but that's still not quite enough. I see bad help interfaces as one of the worst problems facing Linux/Unix desktops right now. I know that ht/dig has been modified (for KDevelop via CoSource) to search local, rather than web based, files. I'd also love to see some really good, comprehensive, system-wide FAQs that tie into the rest of the help system ("How do I install a new network card?" links to the right part of the linux-networking HOWTO, etc). --JRZ
A few things about this are really great: - KDE look and feel. Man, I HATE the way WP8 looks on Linux. It's so obviously not a Linux application. The KDE look and feel allows WINElib-based programs to integrate nicely with the desktop. Even if you're a GNOME/GTK+ fan, you've got to admit-- a KDE L&F is better than a Windows one. - Results. Ok, we can complain about companies using wine instead of Qt,GTK, or whatever. But with the expensive of rewriting in one of those widget sets, we'd be MUCH less likely to see these Linux ports, and we certainly wouldn't see them very quickly. I just saw a demo of Corel Office 2000 at LinuxWorld today, and I was VERY impressed. This is also coming from someone who deleted WP8 pretty quickly. The new stuff looks far nicer, and it just blew away the new Applix 5.0 beta, even though Applix even uses some GTK+ widgets now.
The issue is that there is actually very little difference in the Linux kernel between threads and processes. They're all lumped into the same scheduler, and that's what creates the scalability problem. Other OSes, like Solaris, schedule threads within their respective processes. --JRZ
Curiously enough, two years later Ousterhout turned around and touted TCL's threading features as a major advantage that it enjoys over Perl. I've programmed a fair amount with both threads in Java and non-blocking I/O in C, and the one-thread-per-connection model is VASTLY easier to program, maintain, and use. Non-blocking I/O leads to code that's extremely non-linear, and much more confusing, than multithreaded implementations. It's like having to work with code that uses a million goto's; you never know where you'll be executing next. Threading, on the other hand, achieves the same benefits, but it lets the programmer work at a higher level of abstraction. Are C++ and Java broken because they use, for example, object-oriented representations of streams rather than a series of calls to "write" on a file descriptor? Well, this difference does cause a performance impact. But if you can get your product to market twice as quickly by using technologies that extract a 15% performance hit, isn't that worth the difference? As operating systems improve more and more to cooperate with sophisticated threading models, the performance hit for using them will continue to decline. Rather than sticking our heads in the sand and saying, "Well, there's another, more confusing, less modern way to do it that doesn't require us to change the way we've done things for years," let's actually try to find ways to make programming easier AND produce a high-performance result. --JRZ
Interestingly enough, a heated thread on a related topic cropped up in the kernel-dev mailing list the other week. Check out Kernel Traffic for the details, but basically it had to do with some SGI engineers who wanted to make a change in a threading mechanism to facilitate 3D graphics performance on Linux. Linus explained that he felt their method was, basically, an unmaintainable, inelegant hack that has crept its way into Irix for marketing purposes but will never be in the Linux kernel.
The relevant thing in relation to the IBM article is Linus' discussion of the philosophy of fork() and how strongly committed he is to this model. He's stated quite often, in fact, that this thread scheduling mechanism (which schedules threads as separate processes) is a very intentional part of the kernel design.
Personally, I think this opinion will pretty much have to change over time when people are able to demonstrate very elegant patches for the many-to-many threading model discussed in the IBM article. In fact, if I remember correctly, this is the sort of threading model that TowerJ uses in their native Java compilation system to achieve such great scalability on Linux. You can find plenty of examples of in-process scheduling code if you're interested in checking it out: GNU portable threads is the first one that comes to mind, but almost every Java implementation offers this model as an option (green threads). The method IBM is talking about combines this inter-process tactic with the current, intra-process scheduler.
It just makes sense that if you have 10,000 processes in a queue and you have to recompute goodness for each every time you enter the schedule, this will be a less scalable approach than if you'd created 100 processes with 100 threads each, so that thread_goodness only needs to be computed when that particular process is entered. Think about the management of a large corporation: does the top management allocate resources, set timetables, and otherwise schedule every single employee? No, they schedule a number of departments and projects, then the next level of managers schedules each of the employees within those.
So far, I think this has been much less of an issue not just because Linux hasn't been focused on the enterprise space (where scalability to tens of thousands of threads is crucial), but more because the key server-side applications in Linux (Apache, etc), have been multi-process rather than multithreaded. Now, with the increase in multithreaded apps from Java (say what you will about the language, it makes threading MUCH easier than C) and, for example, the new Apache process models, we'll start to see serious real-world performance benefits for those OSes that have the best thread scalability. Linus, being the bright guy he is, will surely pick up on this make whatever changes are necessary. At least, that's the way I see it working out. --JRZ
The architecture for Tarantella is designed for very large deployments (several thousand simultaneous users), and it has a lot of unique benefits along those lines. E.g., you don't have to modify the application that you want to run across the network, or even the server you want to web-enable. However, it is EXTREMELY expensive. It runs around $400/seat, plus deployment costs, and, as such, it only seems useful in special cases, not as a simple workgroup-level solution, if you ask me. I think GraphOn targets this lower-end market, but I'm not as familiar with their stuff. As for VNC, it competes much more closely with PCAnywhere, not Citrix or Tarantella. It's a really cool program, but you can't use it to provide access to SAP to 20,000 desktops. Overall, I think they have some issues with their product placement/pricing strategy that'll really hurt them. For instance, to use it with Windows apps, you still need the per user license for Terminal Server. So why not directly access the Terminal Server from desktops? There are certainly situations where Tarantella would help here, but it's hard to justify the huge cash layout that this'll incur, in my opinion. As enterprise software (especially ERP and accounting packages) moves more and more to a great web-based front-end right out of the box, Tarantella will lose even more relevance. --JRZ
A typical reason for a secondary offering is that a company has had a great IPO and a great run-up afterwards, but most of that money ended up going to early investors, not the actual corporation. For instance, Red Hat sold something like 7 million shares at $14 each for a total of around $100 million in cash. If they had sold those 7 million shares at today's prices, they would have taken in over $800 million to use for corporate purposes. Actually, though, they plan to sell 2.75 million (plus some more personal shares from top holders) for about another $300 million. Look at the obscene prices they had to pay for Cygnus and Hell's Kitchen when they paid in stock. If they had been able to pay cash for HKS, they would have gotten it at a fraction of the cost. With this new cash infusion, they'll be able to make deals like that, as well as generally invest (as a minority holder) in the new wave of open source startups. --JRZ
Hmm... AOL with control of the media because they now have CNN and TNT? I think somebody needs to diversify his news-viewing tastes if he thinks that these two cable channels give it the power to take over the world. . .
I think that the interesting thing about the X-Box is the heavy reliance on off-the-shelf components (standard x86 chip and graphics from NVidia). In a lot of ways, this seems pretty rational, especially for the main CPU. After all, the market of 100+ million x86 users has created a pretty damn good economy of scale, so you can make up in brute force what you lose in terms of gamer-targetted features (polygons, etc.).
Why don't other consoles use such commodity parts? Has it been an issue of price? Or is this the first time that the IA-32 architecture has been able to provide a good enough price/performance ratio with respect to graphics-related features? Microsoft could have easily gone with MIPS, as WinCE runs on that platform and NT used to. Just think of how cheap a 600 mHz chip will be in late 2002, when this box is only a year out on the market! Who knows, they might just break even.
--JRZ
Ok, I promise I don't work for these guys, but I'd have to highly recommend Resin from www.caucho.com. It's open source and amazingly fast. We can serve dozens of requests per second of a resonably complicated site on a crappy $400 Linux PC.
Also, what JVM are you using? Definitely try the newest Sun (with Inprise JIT, must be downloaded separately) for a single-processor system and IBM's jdk for an SMP box.
For App Servers, you should check out Web Sphere from IBM (not too expensive, relatively speaking). Also, TowerJ can DRAMATICALLY speed up Linux server-side java and improve scalability (towerj.com, I believe), but it ain't cheap.
Good luck!
--JRZ
If you're really interested in the details of this merger, check out http://www.pathcom.com/~dmagie/" for an in-depth description of why this is such a bad deal.
If I had to summarize my own views, I'd say the key thing is that it totally undervalues Inprise. Did you know that Inprise has $250 million in actual cash on hands and 0 outstanding debt? But this merger, right now, values it at under $500 million TOTAL. Sure, a year ago the company was bleeding money and nobody wanted to touch it. But now it's breaking even and has a solid long-term plan to be the best, serious provider of cross-platform development tools. As a developer who has to use Windows and Linux (and would LOVE a good Linux RAD tool), I think that's a pretty decent plan.
Top that off with the fact that Corel and Inprise are targetting totally different, non-overlapping audiences (beginning users vs. professional developers), and it really makes me wonder who the hell thought of this deal anyways. --JRZ
Actually, the x86 version is Red Hat-based, while the PPC version is LinuxPPC-based. So, you can expect that any software running on either of those systems will work fine on the motorola distribution.
I love seeing new, specialized Linux distributions which excel in their niches. What I hate is the "produce another general-purpose distro" idea, and I can't wait until some of them shake out.
--JRZ
Umm... here's their installation procedure for newbies seeking a simple upgrade:
/; rm -rf *' to the code?
The simplest way to install the Helix GNOME Desktop is to use the Helix GNOME
Installer. You can automatically download and start the installer in three easy steps:
1.Open a terminal window.
2.Using the su command, become superuser:
$ su
Password: [Enter your root password here]
3.Start go-gnome by typing the following command or cutting and pasting it
into your terminal:
lynx -source http://spidermonkey.helixcode.com/go-gnome |sh
In other words: Become root, download some file from an insecure web address, and pipe it through 'sh'. I'm no security guru, but this is THE WORST LINUX SECURITY ADVICE I'VE EVER HEARD. You should NEVER, EVER run untrusted code as root without examining it first. What if some malicious cracker breaks into one of the mirrors and adds the line 'cd
They need to use a secure certificate to transmit the first part of the script, which should then download the packages AND test their MD5 checksums. Average users can be excused from testing MD5's for every package, but this is an automatic script that is backed by Helix Code's reputation, so they should go the extra mile (it's more like a tenth of a mile in this case). If the user doesn't have MD5 or support for secure certificates, then you can fall back to something simpler, with a warning message.
--JRZ
Computer Science studies at the university level are still not focused enough towards helping the student find a job afterwards.
Thank God! If you leave college with a strong background in programming and theory (even if you mostly just know C/C++ and Linux or Unix), I mean, one that covers theory of large-scale programming, OSes, and especially algorithms, you'll have a long-term base that will last you even if we all end up progamming in some bizarre, currently-unknown lagnuage on 3-dimensional displays running on BeOS 9.12.
Why? Because, if you know your stuff, you can always pick up a couple of books or take a quick training class (cost: $100 - $2000 ) to learn the newest industry trend. But if you don't learn the theoretical, university-style fundamentals, you will most likely never learn them, and go through the rest of your life as a fairly mediocre programmer.
In particular, it's scary that I've met people who graduated with nothing more than a series of "Programming in X, level Y" classes. A friend of mine intereviewed someone who came from a curriculum like that, and asked him to write "strlen()". The applicant (a VB programmer) thought about it, then proceeded to write a program that repeatedly split a given string in half until it ended up with only one character, then counted the number of splits it took. Wow.
You can learn "skills" any time. Use your university time to learn theory, if you want ot get your money's worth!
--JRZ
Hmm... I'd have mixed feelings about using Linux for this sort of class, because I'm a big fan of hands-on learning. And, if you think about it, writing a device driver isn't much like designing a whole OS.
Around here, our OpSys class uses the Tannenbaum book (which includes lots of samples from Minix, a simpler OS that was designed for teaching purposes). In small groups, students then implement most of the major OS subsystems (memory management, file system, boot loader, etc), while being given code for some of the more dull things (i.e., the shell, although I did just have to write a job control shell for another theoretically-second-semester class and it was a boring $%!#%). The cool thing is that, at the end of the semester, you have a floppy disk with your own primitive OS on it.
--JRZ
Well, I share some of the earlier feelings that I want Linux to keep its geek/technically-oriented strengths, including the option to do some cool command-line magic or to use a bizarre set of desktop themes and window managers.
I also, however, hope that the system gains more mainstream desktop acceptance too (say, at least as much as the Mac). We need enough "critical mass" to make it worthwhile for commercial desktop software companies to do ports to Linux, and right now that mass isn't quite there.
That said, I also agree that the combo of KDE/GNOME 2.0 and new applications like WP Office 2000 (the betas are beautiful, much nicer than WP 8) will have a lot of impact on Linux desktop acceptance.
--JRZ
Amazing though there hardware is, SGI knows it simply can't compete with larger chip developers, especially Intel. Intel's R&D budget is orders of magnitude greater than anything the MIPS folks will ever see, and it's really starting to show. Right now, if you compare the fastest x86 chip with the fastest MIPS chip in integer performance, the x86 will absolutely blow it away. McKinley threatens to bring that same differential over to the FP side as well.
So, yes, right now SGI workstations can hold their own with better FP and peripherals (bus, architecture, etc), but two years down the road it would be a very different story as IA64 kicks into gear. HP, whose PA-RISC has consistently been much faster than the MIPS line, realized this too in their shift towards IA-64. Let's just hope that SGI is successful in bringing all their technologies to Linux in that timeframe so they still have some workstations to sell.
--JEZ
My school uses exclusively Sun servers and all the admins I've talked to sing high praises of them. But I've been stuck working on our Sun Ultra5 worstations far too often, and they are TERRIBLE. Sooooo sloooooow. They're configured with 128M of RAM and, if I remember right, a 300 mHz sparc. My PII-350 with Linux and the same amount of RAM is much more responsive. Not to mention that they go down with alarming frequency, and they cost four times what I paid for my intel box around the same time period.
I can understand why Intel-based machines (both Win32 and Linux) are making so much market headway. It'll be interesting to see what RISC workstations really survive after McKinley comes out and people like SGI start producing the kind of first rate hardware (graphics, bus, etc) that has been differentiating Sparc/Mips/PA-RISC workstations up until now. Will SparcStations be able to survive the onslaught? Should Sun really care if they do (especially since workstations are a low-growth market while the server-side growth potential is enormous)?
--JRZ
I have to agree with what some of the other folks have been saying here. I first learned C++ (well, a shoddy mix of C and C++), and, especially as I've learned more about its features, I've found it painful to go back to purely-procedural languages. I've had to do tons of C in school, and it always leaves me wanting for the power of C++, Java, or even the convoluted object-extensions of Perl5.
Of course, now we have Brian Kernighan here as a guest lecturer and he's trying to convert everybody to use awk instead. . . (great guy, though)
--JRZ
I just lost so much respect for LinuxCare. It is absolutely irresponsible for a top level executive to go around spreading completely unsubstantiated rumors. This, and their "call to Microsoft to open the Windows source code," as if anyone cared what LinuxCare thought. It's not even a decent stupid publicity press release, it just makes them look like a bunch of amateurs!
LinuxCare: I know you guys have a tremendous amount of Linux talent and a lot of understanding of the community in general. Please, please start acting like grown-ups so you can get the respect you deserve!
--JRZ
Yup, Borland C++ is MUCH faster than g++. I've often heard, though, that it produces slightly slower code.
All of this is really academic, though, because g++ on Win32 is, well, not particularly useful for real development. Its support for the win32 API is very, very much a work in progress. It compiles as fast as mud, and it's really meant to me used within the cygwin environment.
On Unix/Linux, I rarely use anything else. But on Windows, I'll use Borland from here on out.
--JRZ
Microsoft owns a silent, non-voting share of Inprise last time I checked. They don't have anybody on the board, so they don't impact on Inprise/Corel's business decisions.
I think there are many more reasons to be skeptical about this (somewhat shady) merger, but they don't have to do with conspiracy theories. There's no reason at all why Corel (productivity/graphics company with a Linux distro targetted at beginners' desktops) needs to be in the same company with Inprise (tools/middleware company with upcoming Linux products targetted at high-end professional developers). There's just no fit there. But some folks figured it would make the two companies seem more credibly like "Linux companies" to some investors who are only looking at keywords, so they let it go through.
--JRZ
I've been using 1.2rc3 for some time on an intranet site using a bunch of servlets/JSPs. Works like a charm. 1.2 JVMs are SOO much easier to use and configure than 1.1.x JVMs. They're much more intelligent about using .jar's, etc. The performance is also quite good, especially with Resin (www.caucho.com). No, I don't work for them, but I'm incredibly impressed by their servlet engine. It also has a cool feature that compiles JavaScript (in JSPs) to real Java bytecode. Plus a lot of great utility classes (like automatic database connection pooling, and XML support). I highly recommend checking it out. We're running an app on a $400 Linux machine and the response is basically instantaneous, even with multiple database queries. --JRZ
#1 wish of server operators: better administration tools. LinuxConf's GTK+ frontend is buggy and poorly designed from a user interface point of view. Occasionally the program exhibits other weird behaviors too (not changing things it said it would change, etc). And it's still not that comprehensive.
Check out Corel's video settings tool in the KDE control center. THAT is something I've wanted for YEARS. Webmin, by the way, is much nicer to use than any form of LinuxConf right now. Really, though, I don't need for one tool to be comprehensive, but I DEFINITELY want a central location from which to configure things, even if some of those config utilities are command line. This is an area in which many commercial OSes surpass Red Hat, but it should also be a relatively easy part to fix (which is tougher, writing a nice config interface, or scaling to 32+ processors?). Please, please work on this.
--JRZ
As many people have mentioned, Linux docs tend to be spread in various directories, in different help systems (man vs. info vs. /usr/doc vs. KDE help. . .) with no unified, searchable interface. Hopefully the next generation of KDE and GNOME help will provide an interface to search all these different sources intelligently by keyword. I know these folks are working on integrating the desktop help with man pages, but that's still not quite enough. I see bad help interfaces as one of the worst problems facing Linux/Unix desktops right now.
I know that ht/dig has been modified (for KDevelop via CoSource) to search local, rather than web based, files. I'd also love to see some really good, comprehensive, system-wide FAQs that tie into the rest of the help system ("How do I install a new network card?" links to the right part of the linux-networking HOWTO, etc).
--JRZ
A few things about this are really great:
- KDE look and feel. Man, I HATE the way WP8 looks on Linux. It's so obviously not a Linux application. The KDE look and feel allows WINElib-based programs to integrate nicely with the desktop. Even if you're a GNOME/GTK+ fan, you've got to admit-- a KDE L&F is better than a Windows one.
- Results. Ok, we can complain about companies using wine instead of Qt,GTK, or whatever. But with the expensive of rewriting in one of those widget sets, we'd be MUCH less likely to see these Linux ports, and we certainly wouldn't see them very quickly. I just saw a demo of Corel Office 2000 at LinuxWorld today, and I was VERY impressed. This is also coming from someone who deleted WP8 pretty quickly. The new stuff looks far nicer, and it just blew away the new Applix 5.0 beta, even though Applix even uses some GTK+ widgets now.
The issue is that there is actually very little difference in the Linux kernel between threads and processes. They're all lumped into the same scheduler, and that's what creates the scalability problem. Other OSes, like Solaris, schedule threads within their respective processes.
--JRZ
Curiously enough, two years later Ousterhout turned around and touted TCL's threading features as a major advantage that it enjoys over Perl.
I've programmed a fair amount with both threads in Java and non-blocking I/O in C, and the one-thread-per-connection model is VASTLY easier to program, maintain, and use. Non-blocking I/O leads to code that's extremely non-linear, and much more confusing, than multithreaded implementations. It's like having to work with code that uses a million goto's; you never know where you'll be executing next. Threading, on the other hand, achieves the same benefits, but it lets the programmer work at a higher level of abstraction.
Are C++ and Java broken because they use, for example, object-oriented representations of streams rather than a series of calls to "write" on a file descriptor? Well, this difference does cause a performance impact. But if you can get your product to market twice as quickly by using technologies that extract a 15% performance hit, isn't that worth the difference? As operating systems improve more and more to cooperate with sophisticated threading models, the performance hit for using them will continue to decline.
Rather than sticking our heads in the sand and saying, "Well, there's another, more confusing, less modern way to do it that doesn't require us to change the way we've done things for years," let's actually try to find ways to make programming easier AND produce a high-performance result.
--JRZ
Interestingly enough, a heated thread on a related topic cropped up in the kernel-dev mailing list the other week. Check out Kernel Traffic for the details, but basically it had to do with some SGI engineers who wanted to make a change in a threading mechanism to facilitate 3D graphics performance on Linux. Linus explained that he felt their method was, basically, an unmaintainable, inelegant hack that has crept its way into Irix for marketing purposes but will never be in the Linux kernel.
The relevant thing in relation to the IBM article is Linus' discussion of the philosophy of fork() and how strongly committed he is to this model. He's stated quite often, in fact, that this thread scheduling mechanism (which schedules threads as separate processes) is a very intentional part of the kernel design.
Personally, I think this opinion will pretty much have to change over time when people are able to demonstrate very elegant patches for the many-to-many threading model discussed in the IBM article. In fact, if I remember correctly, this is the sort of threading model that TowerJ uses in their native Java compilation system to achieve such great scalability on Linux. You can find plenty of examples of in-process scheduling code if you're interested in checking it out: GNU portable threads is the first one that comes to mind, but almost every Java implementation offers this model as an option (green threads). The method IBM is talking about combines this inter-process tactic with the current, intra-process scheduler.
It just makes sense that if you have 10,000 processes in a queue and you have to recompute goodness for each every time you enter the schedule, this will be a less scalable approach than if you'd created 100 processes with 100 threads each, so that thread_goodness only needs to be computed when that particular process is entered. Think about the management of a large corporation: does the top management allocate resources, set timetables, and otherwise schedule every single employee? No, they schedule a number of departments and projects, then the next level of managers schedules each of the employees within those.
So far, I think this has been much less of an issue not just because Linux hasn't been focused on the enterprise space (where scalability to tens of thousands of threads is crucial), but more because the key server-side applications in Linux (Apache, etc), have been multi-process rather than multithreaded. Now, with the increase in multithreaded apps from Java (say what you will about the language, it makes threading MUCH easier than C) and, for example, the new Apache process models, we'll start to see serious real-world performance benefits for those OSes that have the best thread scalability. Linus, being the bright guy he is, will surely pick up on this make whatever changes are necessary. At least, that's the way I see it working out. --JRZ
The architecture for Tarantella is designed for very large deployments (several thousand simultaneous users), and it has a lot of unique benefits along those lines. E.g., you don't have to modify the application that you want to run across the network, or even the server you want to web-enable.
However, it is EXTREMELY expensive. It runs around $400/seat, plus deployment costs, and, as such, it only seems useful in special cases, not as a simple workgroup-level solution, if you ask me. I think GraphOn targets this lower-end market, but I'm not as familiar with their stuff.
As for VNC, it competes much more closely with PCAnywhere, not Citrix or Tarantella. It's a really cool program, but you can't use it to provide access to SAP to 20,000 desktops.
Overall, I think they have some issues with their product placement/pricing strategy that'll really hurt them. For instance, to use it with Windows apps, you still need the per user license for Terminal Server. So why not directly access the Terminal Server from desktops? There are certainly situations where Tarantella would help here, but it's hard to justify the huge cash layout that this'll incur, in my opinion.
As enterprise software (especially ERP and accounting packages) moves more and more to a great web-based front-end right out of the box, Tarantella will lose even more relevance.
--JRZ
A typical reason for a secondary offering is that a company has had a great IPO and a great run-up afterwards, but most of that money ended up going to early investors, not the actual corporation. For instance, Red Hat sold something like 7 million shares at $14 each for a total of around $100 million in cash. If they had sold those 7 million shares at today's prices, they would have taken in over $800 million to use for corporate purposes. Actually, though, they plan to sell 2.75 million (plus some more personal shares from top holders) for about another $300 million.
Look at the obscene prices they had to pay for Cygnus and Hell's Kitchen when they paid in stock. If they had been able to pay cash for HKS, they would have gotten it at a fraction of the cost. With this new cash infusion, they'll be able to make deals like that, as well as generally invest (as a minority holder) in the new wave of open source startups.
--JRZ
Some people out there need to remind us all that security matters to open source too.
Hmm... AOL with control of the media because they now have CNN and TNT? I think somebody needs to diversify his news-viewing tastes if he thinks that these two cable channels give it the power to take over the world. . .