Is Linux Ready for Delphi?
by Danny Thorpe, Delphi R&D
Linux? Are you people crazy?!?!!
Change is a great way to polarize any community. It should come as no great surprise that when Inprise announced plans to develop RAD tools for the Linux platform, the responses from the Borland developer community were stereo cries of "Oh Yes!" and "Oh No!" - with a background channel of "uh, what?".
I'd like to address some of the commonly expressed fears, misconceptions, and even misplaced euphoria that I've heard over the past few weeks. These are my personal opinions, not Inprise/Borland company policy. These questions may be paraphrased from actual conversations with actual customers. Responses may contain actual opinions and/or sarcasm. Be prepared to wash your eyes out with soap. Safe harbor statement: Forward looking statements are the fantasy we endeavor to make reality. If you buy high and sell low, well, that's pretty dumb isn't it?
"Why Linux? Why not BeOS, or Mac OS10, or Solaris, or <your pet OS here>?"
Linux was the fastest growing OS in commercial installations in 98/99, and those commercial installations are buying every means of support and technology they can find. Even when the software can be obtained for free (or perhaps because of it) corporations buy support. It makes perfect business sense to spend money to protect and fortify your mission-critical and business-critical systems. It doesn't matter to your business that the stuff running your critical systems is a free download - except when it's 100,000 times cheaper than the alternatives. (Some of the "big iron" Unix OS licenses cost hundreds of thousands of dollars a year, every year. Linux runs on the same hardware, at the cost of a free download or less than $100 for shrinkwrap retail. You do the math.)
From those Linux growth numbers, I seem to recall that WinNT was still well ahead of Linux in terms of installed base (like, 45% vs 15%), and WinNT grew a healthy amount, too. I believe Linux's growth is due more to cannabalizing the traditional Unix installed base (Solaris or HP Unix converting to Linux) than due to Linux taking over the WinNT market. Unix folks tend to be more confortable switching between flavors of Unix than switching to NT. People who do choose NT for their servers do it for the Microsoft name and perception of corporate stability and safety of investment. Those are not likely to move from NT to Linux anytime soon.
I'm not really that interested in where Linux's growth is coming from. Linux is the fastest growing OS (albeit starting from zero), and it is the only Unix flavor showing any growth at all.
"Why would anyone pay money for development tools for a "free software" OS like Linux?"
On first blush, the notion of taking a commercial product like Delphi to the so-called "free software" Linux platform sounds crazy. Why would anyone pay money for Linux development tools when Linux ships with a free C compiler built-in?
Answer: Quality, Features, Support, and most of all: Choice. Linux is about choice. Any Linux advocate who says Delphi is not welcome in the Linux space is a hypocrite.
"Have you actually evaluated the benefits of Linux?"
Yes, we have. We would not have embarked on the Kylix project if we did not feel there was a significant business opportunity in that space. We investigate lots of technology ideas for market opportunities all the time, but we only jump in to make a product where the numbers indicate we have a better than good chance of making a home-run product.
"Microsoft has kept Inprise/Borland alive"
Whoa, slow down there, Tex. While the success of our Windows development tools is certainly linked to Microsoft's success in making Windows the dominant PC operating system, that's the limit of our endearment to the Microsoft Marketing Machine. Borland identified Windows as an emerging market way back in the early nineties and built tools to capture revenue from that market. We're now doing the same for Linux, but this time we're starting earlier in the OS emergence cycle. (We almost missed the boat for Windows) Starting earlier involves greater risk, but also offers greater rewards. More on that later.
"Microsoft gave Inprise/Borland $100 million"
The $125 million was a settlement for a patent infringement lawsuit between Microsoft and Borland. As a settlement, one could reasonably assume that it is less than what Microsoft feared could be awarded at the end of a long and expensive legal battle. Inprise/Borland execs made public remarks at the time about the irony that Microsoft "blood money" would be poured into making products that did not support the Microsoft agenda - specifically: Corba, Java, and Kylix.
"Borland RAD tools for Linux! This is sooooo cool! It'll destroy Windows! Linux rulez the world!!!"
That's nice. Now please enter your credit card number and your language preference: Java, Delphi, or C++? Would you like Corba with that?
Ok folks, here's a radical concept to tattoo on your eyelids: Our success does not require the destruction of Microsoft. Say it out loud. Say it slowly. Lather, rinse, repeat.
Linux is succeeding in spite of the Microsoft monopoly. That's what makes Linux interesting. If there were no Microsoft, if Linux were the only OS in town, we'd have no reason to get excited about Linux, would we?
Linux can continue to grow by leaps and bounds and be successful in the presence of Microsoft. Borland tools for Linux can be a financial success even if Linux always runs a distant second to NT, and even if Linux never breaks through to the desktop OS market. "There can be only one" does not apply.
Borland's interest in Linux market is not that Linux will replace the Windows market, but that Linux is a market in addition to the Windows market.
"There are so many Linux flavors (Red Hat, Corel, Slackware, Suse, TurboLinux, Bobs Linux. etc)! Testing our apps will be a nightmare!"
Ya, so? How is this different from testing Windows applications on the many flavors of the Win32 platform? Proper testing of Win32 apps today should include testing on the following distinct platforms: "virgin" Win95, Win95 OSR2, Win 95 with IE4, Win95 with IE5, Win95 with DCOM, Win98, Win98 release 2, Win98 with IE5, WinNT 4.0 SP3, WinNT 4 with IE 5, and Windows 2000. Linux is no worse. Ultimately, it comes down to defining what platforms you must support and have the resources to test against. Anything else is then technically not supported.
As for Borland's testing of its Linux tools, Linux offers new opportunities. Unlike the Windows realm, chances are good that the many purveyors of Linux variants (er, distributions) will assist us with testing our products on their platforms. If they don't understand the incentives to help developers support their Linux flavors, they won't last very long. Linux distributions are becoming a commodity market, and commodities are distinguished more by name, endorsements, and availability (placement) than by actual feature differences.
Have you ever mused "Wouldn't it be cool if the VCL core packages were distributed with the OS? Then I really could distribute full GUI applications in just 50k and not have to worry about shipping the VCL packages" Realistically, the chances of getting Borland runtime packages included in the Windows platform distributions are pretty slim (trust me, we've asked), or at least very expensive. Linux, however, is not Windows...
"Who manages Linux? How are any major architectural changes going to be implemented over the next 5 years? Who do I write to ask for improvements?"
Same response as before: How is this different from Windows? Who do you write to for improvements to the Windows OS? And how responsive is Microsoft to your personal requests? Linux's lack of central control poses different challenges, but it also eliminates some of the steamroller effect that Microsoft is famous for.
The biggest risk for Linux is that true control of Linux features and progress lies in the hands of an elite few who manage the Linux source code archives. Personalities and egos can be as effective at steamrolling personal agendas into Linux as Microsoft's corporate OS agenda is for Windows. The Linux commmunity must be ever vigilant of abuse of power.
"Microsoft copies ideas from everybody. Linux is built on true innovation."
Baloney. Linux is a Unix clone. Call it what you want (derivative, compatible, whatever), it's still a clone of something that started long ago in a galaxy far, far away. The leading graphical desktops for Linux (KDE and Gnome) bear far greater resemblance to Windows 95 than to their Unix kin (Motif, NextStep).
Granted, Win95's look wasn't all that new either - Apple tried to sue Microsoft for copying the Macintosh UI / trash can icon, until Microsoft pointed out that Apple got many of its Mac ideas (including the trash can icon) from Xerox ParcPlace. Xerox is probably still wondering why everyone is interested in their trash cans.
The greatest tragedy in the Linux community is that so many of its most energetic and vocal advocates know so little about their own technological heritage. Any new term or technology discovered while surfing around in the Linux source code must certainly be unique to Linux, or created in Linux and copied by Microsoft, right? And Heaven help anyone who says anything critical (or merely factual) of Linux, for flaming message threads shall rain down upon the heads of the heretics. Yea, verily.
With no knowledge of the past - or worse: revisionist history - the Linux community is at risk of realizing its own form of "1984".
"Corel is a Linux shop. Is the merger going to kill Borland's Windows product development?"
This is one of those cases where a false assumption leads to all sorts of unnecessary worry. First of all, Corel is not exclusively a Linux shop. Just like Inprise/Borland, Corel gets the vast majority of its income from the sale of software for the Windows platforms. No competent business leader would kill the cash cow in order to sow seed that may or may not bear fruit.
After IBM, Corel is probably the largest commercial player (measured in actual annual income, not IPO splash value) in the Linux market. Like IBM and Borland, Corel is making a lot of noise in the Linux space because Linux is the new emerging market with the greatest growth potential. Whoever stakes their claim first gets to set the pace for the late arrivals. That's an exciting place to play, but the meat of the business is still Windows, and will continue to be so for many years.
That was the long answer. Here's the short version: "No. What kind of idiots do you take us for?"
"Linux has done wonders for our community but let us not run and jump until Linux has actually proven itself."
Markets grow on an "S" curve: flat at the front, steep slope up, and then flat at the top as the market reaches saturation. Opportunity starts at the base of the growth curve. If we wait until the top of the growth curve, when Linux is established and there are a plethora of development tools available, then we're stuck in "the flats" - plain old 10% a year or less growth situation in a very crowded market space. (Sounds like Windows, doesn't it?)
It's very difficult to make a runaway success story from a standing start in "the flats" at either end of the growth curve. However, if you can hitch your wagon to a market "big bang", get into a market soon after it starts explosive growth, then your product can be swept up in the market's growth. That's how you get triple digit return on investment and marketshare. It's a relativity thing - you can't travel faster than the speed of light through normal space, but what happens if your space is expanding faster than the speed of light? When you take a step forward on an aircraft in flight, are you walking at 500 miles per hour? Would you rather have 10% of a large, stable market, or 10% of a smaller market that's doubling in size every year?
Remember that development tools have to venture ahead of applications by 18 months or more. You won't have a lot of really good applications on a particular platform until you have several really good sets of tools to choose from. Certainly, it's a little early yet to commit resources to developing end-user desktop applications for Linux. Linux has yet to really crack into the end-user desktop OS space. Whether Linux finds a foothold in the desktop space or remains a server OS, the time is right for development tools to move in.
If we do it right, Kylix has the potential to open the floodgates for Linux applications and Linux acceptance in the consumer markets. As noble as that may sound, we intend to make a buck on it too. These situations are very rare, but I firmly believe that Kylix is a market-maker opportunity - for Borland, and for Linux.
"Borland is a Windows shop. How are you going to survive a platform shift to Linux?"
Excuse me, but Borland has not always been only a Windows tools vendor. Borland has produced development tools for CP/M, MSDOS, Macintosh, OS/2, Windows 3.1, protected mode DOS, Win95, WinNT, and most recently, Java. (I don't consider Win95/Win98 a complete Win32 implementation) The senior staff of the Kylix development team have first-hand experience developing native tools for seven distinct platforms: real mode MSDOS, 16 bit Windows 3.1, 16 bit protected mode DOS, 32 bit protected mode DOS, Win95, WinNT, and Java. And I don't mean one staff member per platform, I do mean nearly all the senior staff have worked on products on all those platforms.
Given this broad base of experience in the Kylix team, Linux is more of another walk around the block than some radical departure never before attempted. Different faces to greet, different sights to see, same streets to walk, same shoes to walk them.
It's amazing (and frustrating!!) how many of the "new" platform issues we're discovering in our Linux work bear haunting resemblance to platform challenges discovered and solved in past Borland products. For example, Linux's Position Independent Code (PIC) specification for shared object libraries will require compiler code generation treatments conceptually identical to the DS segment switching required in exported functions in 16 bit Windows DLLs. Spooky, huh?
"A lot of the Delphi team is off doing Linux stuff now. Has Borland abandoned Delphi 6 / BCB 6 development for Windows?"
No. "Deep cycle" R&D for the Delphi 6 / BCB 6 Windows products is proceeding in parallel with the Kylix effort. Some Delphi team members are dedicated to D6/BCB6 work, some are dedicated to Kylix work, and some (like me) work on technology that applies to both platforms and/or consult and advise for both projects continuously.
We've hired a lot of new folks to fill new openings in the Kylix effort or backfill openings created on the Windows side by senior team members shifting focus to Kylix. Shifting resources around isn't the end of the world: we do it all the time here at Borland. It's called resource management - putting the talent and manpower where it is needed to complete projects. As one release of Delphi ships, the team shifts focus to the sister release of BCB. As BCB ships, resources refocus on Delphi. Now we have a third ball to juggle: Kylix, in two flavors: Delphi and BCB.
Some folks have questioned the wisdom of having the majority of the senior staff "distracted" by this so-called Kylix "side-project." I wouldn't have it any other way. Who is best qualified to deliver a new product in an alien environment on an insane schedule and still be recognizable as a child of Delphi? The Delphi team, that's who. We've built a few of these component architectures and IDE things before, ya know.
As you might have guessed from these opinions, I'm not a rabid Linux fan. Nor am I a rabid Windows fan (but don't ask me on a bad Linux day). While I see the business opportunities opening up in the Linux market, that's not what keeps me going.
I volunteered to work on Kylix for a number of reasons, including:
- I didn't know a thing about Linux, and I felt I should. It's a personal growth opportunity. Lots of neat stuff to explore. To better appreciate what you're familiar with, get familiar with something completely different.
- To be a critical voice of reason in an otherwise very enthusiastic Linux fan club.
- To ensure that the end result is Delphi.
I'm working on Kylix not because I believe in Linux, but because I believe in Delphi.
Senior Engineer, Delphi R&D