MS was found guilty of illegal business practices.
The problem with this is that most successful companies violate antitrust law. That's because it's written in so vague and overreaching a way that nearly anything other than surrendering and losing market share qualifies. In practice, the DOJ goes after the most high-profile companies, and the legal winds shift depending on the current president and the current judge.
What pisses the DOJ off so much is that Microsoft isn't lying down quietly and taking it. They are fighting back. They are winning in the court of public opinion, and they may still win in the Supreme Courts. This understandibly infuriates the self-important lawyers in the DOJ, and so they are more determined than ever to bring them down.
If they had not shown that prior disregard for government imposed remedies, I would not support a breakup.
Why should they be so deferent to the whims of the government? If they are forced to sign a consent decree, I see no reason why they shouldn't flout the spirit of the law while obeying the letter. The consent decree allows OS "features" to be added, just not "bundling." Fine, MS made it a feature. No, that's not what the DOJ wanted, but why should MIcrosoft care?
However, while it pains me to see the government interfering in the private sector so much, it would be worse if when the next Big Thing(tm) came along, MS could use it's dominence in the OS and productivity applications market to stifle honest competition for market share.
Hmm... You mean like Netscape? Or Linux? Or Mac OS X? Seems to me that those are all doing just fine. And even Be OS has been out there for a couple of years, so consumers have had ample opportunity to use them if it wants. This is where I think the DOJ case is fundamentally wrongheaded: hot new technologies *do* make it into the hands of consumers. Microsoft comes along and buys them out, or they produce a better implementation in some cases, but so what? If our concern is for the wellbeing of consumers rather than of corporations, why does it matter what happens to the companies that introduce those products, if the products themselves are still available?
Antitrust law has never been about protecting consumers from the bad effects of monopolies. It's always been a means of protecting companies from "unfair" competition by other companies. I reject that standard. Whenever you go into business, you run the risk that a larger and better-financed firm will beat you in the marketplace. That's a risk you take.
So, how exactly does Microsoft prevent hot new technologies from coming to market? And if Microsoft subsequently drives some of those companies out of business by providing a better product at a lower price, how is that a bad thing?
As for the apps company developing for Linux or *BSD, I suggest you hand an average computer user a copy of Red Hat and ask him to install it. He'll be using it as a coaster within the hour. One of the main reasons that Office hasn't been ported to Linux (to say nothing of BSD) is that few in Office's target market use Linux. Linux is a really complex OS with a really mediocre GUI. It's simply not ready for use as a desktop productivity OS. Notice that Microsoft still develops Office for the Mac. How did that happen if their goal is to use Office to destroy other OS's?
When KDE or Gnome reach the point where Linux is suitable for a wider user base, I suspect Microsoft will write apps for it. And if they don't, someone else will. But right now, the reason those apps don't exist is that there's no market for them.
You're wrong when you say it's not the money. The point is not that they have "staggering revenues," which they probably do. The point is that this breakup will reduce their revenues from what they would otherwise be. Those revenues might seem staggering to us, but keep in mind that investors only care about the revenues as a fraction of the invested capital. MS's P/E ratio is around 30 if memory serves, so it's not that high. If a breakup reduces that further, stock price will fall, costing Gates and all of MS's investors further money.
So the money (and the ego-trip of having your stock continue going up) is the whole point.
I don't know of any OS's that don't use double clicks. Windows uses double-clicks for almost exactly the same thing that the Mac OS does. And Mac OS doesn't really *require* you to use double clicking for anything, it's just a lot faster than doing file->open.
Double-clicking is a skill that takes a little time to learn, but it has the advantage of not being confusing. I think it's easier to remember the difference between "click once" and "click twice" than the difference between "right click" and "left click." And there's less chance of accidentally hitting the wrong button. I have an elderly grandfather with wide fingers and poor motor control, and he frequently slides his fingers over and hits both buttons at once. For him, double-clicking is much easier than right- and left- clicking.
I fully agree that multiple buttons are useful to some users in some circumstances. I guess my question would be whether it's more of a hassle to have the 90% of users ignore the extra buttons, or to have the 10% of users buy third-party mice. I'm not sure it's all that clear-cut. There are lots of third-party mice with >1 buttons, and they're usually around 10 bucks.
It's easy for you and I to say "ignore the extra button," but that's largely because we already know what it does. Developers tend to use it if it's there, and so apps end up needing it. And even the fact that the left-button is the default button is not obvious to an absolute newbie.
I'm certainly in favor of choice. Apple should provide a BTO option for that second button.
And by the way, the iMac keyboard puts the arrow keys where the right-hand control and option usually are, meaning it's exceptionally easy to do a command-left keystroke.
click: follow link control-click: follow link in new window command-click: contextual menu
Is this "better" than having buttons bound to all three functions? That's probably a matter of taste. But it's certainly not much worse, and it has the advantage of not confusing new users. And it's easier to bind second and third buttons to commonly used features on a single-button app than to try to use a multi-button app with a single-button mouse.
Contextual menus and open-in-new-window are features that 90% of users aren't going to use. I see no reason to confuse them unnecessarily. And I don't see that there is any great time lost in having to reach down and hit the "control" key before clicking when one wants a contextual menu.
Hmm... I guess all those graphics designers (and me for that matter) are still newbies and haven't experienced the joys of a "real system." Has it occured to you that no one OS is best at all possible tasks, and that your priorities in choosing an OS aren't necessarily the same as those of others? Some of us are willing to trade a little stability and raw power for a wider more mature base of apps, better interface consistency, better OS-level hardware support, and more high-level features.
Linux makes a great low-end server and a decent workstation for geeks, but it's not suitable for all users. Mac's are not simply training wheels for people who haven't yet learned to use "real computers." There are a lot of highly talented people who make their living on Macs, and none of them qualify as newbies. They simply have different needs than you do.
I personally use a Mac at home and Unix for work. Each is better than the other for some tasks, and worse for others. I am not bound to a narrow conception that OS 1 is "better" than OS 2.
This is why I don't think you can ever have one OS for all possible tasks. I use Unix (and vi) on a regular basis at work. It works great for what it does. But for the jobs I do at home (word processing, web browsing, email, etc) the Mac OS is far preferable. I don't have to deal with the mediocre GUI, the lack of useful features like real cut-and-paste, the lack of good desktop apps, (Netscape on Unix doesn't compare with either IE or Netscape on Mac or Windows) and other issues. The Mac OS interface is just better designed, more polished, and generally better for common, high level tasks.
So one OS isn't good for all tasks, which I why my machine dual-boots.
My problem with the one-button mouse issue, though, is that it provides little if any benefit to power users to have the extra buttons. Basically, the second button on Windows is used to duplicate the menu bar, which is necessary because the menu is not anchored to the top of the screen and therefore it takes longer to access it than on a Mac. On Unix, the third button is used for cut-and-paste, which may save a half-second for ever cut and paste, but that's hardly a stupendous advantage. And it does so at the cost of interface simplicity and confusing new users. I don't see that as a big win.
So, besides the fact that many apps are crippled without 3 buttons, what is the advantage of having the second and third buttons? On an app that's designed for one button, what features come out significantly inferior? I can't think of any.
You aren't supposed to rest your whole hand on the mouse. You're supposed to manipulate the mouse with your finger tips. I'm an adult male with big hands, and it's worked for me for over a year.
I'll agree the del and end keys are useful, but even for power users like us they aren't crucial. Del and backspace do the same thing in most apps anyway. It's a minor annoyance, not a showstopper. And most users never even notice they're gone.
I see this as a design flaw in X, not with Apple's mice. Most apps use the three buttons to invoke different menus, when it would be much simpler to have all of the functions in one global menu. Or they use the middle button for their hacked-together cut and paste. If you design your interface around one button, it works fine. 2 and 3 buttons add little functionality and much confusion for new users.
The only people who complain about having only one button are users coming from other operating systems who are used to having several mouse buttons to perform redundant functions. Early usability studies clearly showed that multiple buttons confuse new users, and that keyboard-click combinations can be used for some of the most useful functions of multiple-button mice. Mac OS 8 provides control-clicking contextual menus, which work fine once you get used to it without confusing newbies.
I'm getting tired of people bitching about the round mouse. Yes, it takes a little getting used to, but once you're familiar with it, it works just fine. You quickly learn to use the indentations of the button or the cord to orient the mouse the right way up. And it's smaller and lighter than a normal mouse, so it's at least as easy on the hands.
I'd be willing to be that most of the people who complain about it haven't used it very long. It takes about 2 days to get used to it, and after that it's not worse than a standard oval -shaped mouse.
For that matter, I wish people would stop bitching about the keyboard as well. The important keys are *not* any smaller than a standard keyboard. The arrow keys and F-keys are smaller, and it's missing del and end (admittedly an annoyance but no biggie since Macs don't make much use of these. And Apple's keyboards take up a lot less space horizontally, which can be nice if you have a small desk.
So no, the keyboard and mouse aren't perfect for everyone. But they work just fine for 90% of Apple's customers. And the other 10% can go out and get themselves third-party mice-- many power users do that anyway.
No, but they did make it a standard feature, they brought the price down to ~$100 per computer, and they implemented brain-dead software support so that average users could use it. And then they marketed it relentlessly. Innovation is about more than raw technical breakthroughs. A company can have a lot of cool technology and never turn it into a cool product. Apple has some cool technology, but they are very good at finding new ideas and bringing them to the masses.
I started learning BASIC in the third grade and it didn't do me much good. Sure, playing around in it is fun at first, but when you want to actually write a program that you can use, forget it.
I think perhaps you're missing the point here. When you're in third grade, nothing you write is "useful." The point of programming at that age is to learn how to program. So I don't think it matters if you are able to write programs you can "use."
More importantly, the concepts you learn in a language like C/C++ can easily be applied to other languages, unlike BASIC where I had to unlearn many things.
And how hard was that? I didn't find it difficult at all. Really, the difference between a goto and a loop is trivial from a conceptual standpoint. And if you're programming in a language that doesn't have goto's, you're going not going to be using them.
You also seem to think that you learned little of value from BASIC, which I'd bet money isn't true. The things you learned aren't things you think of as separate skills, but if you don't believe me, I suggest you try teaching c++ to one of your non-programming friends. They will be bewildered by things that you consider blindingly obvious.
And don't think that c isn't going to give you any bad habits. Every language leads people to write code in certain ways, and so every language will lead to bad habits in some way or another.
I haven't had any more trouble with it than I did with BASIC or HTML.
OK, except that you're 14 now, and you would have been about 9 when you started on BASIC. You undoubtedly have a longer attention span, better disciplined mental abilities, and other advantages that you didn't have at 9. Most importantly, you *already know a language* which is a *huge* advantage. I know that if I had been given c in second grade when I started programming, I wouldn't have been as interested in it.
I don't think you understand the problems inherent in teaching programming to an absolute beginner. If you have never programmed before, the computer is a mysterious black box. Programs are dense lines of largely incomprehensible symbols. And when an absolute beginner is asked to write a program, the problem he has is not that he doesn't understand data types or flow control, it's much more basic than that: he hasn't yet grasped what exactly programming is.
In order to understand what it is to program, he must understand the correspondence between what he types into his program and what happens when he runs his program. That means that the more direct and unobfuscated the feedback, the better.
This is why "hello, world" is the traditional first program to write when learning a new language-- it provides the simplest possible program that still shows the relationship between a program and its output.
Human beings learn in steps. We learn to crawl before we walk, and we walk before we run. BASIC allows you to write one- and two-line programs that print text output. In c, it requires several lines of headers, function definitions, and other junk. This creates an extra barrier to the direct feedback needed when learning a new language. In addition, it imposes unnecessary complexity in printing. printf is not the most elegant function.
If you want to do something more interesting (say, graphics or sound) you have to link in extra libraries, make several function calls, etc. This clouds the crucial link between a program and its output. A programmer should be able to take a program and trace what exactly each line does. The more headers, type declarations, obscure functions callse, etc, are used, the less clear that is.
Keep in mind that things that we take for granted are complete mysteries to most 8-year olds. Concepts like memory, pointer, variable, data structure, function, loop, etc (not to mention processor, disk, cache, and other hardware terms) are complete mysteries. They have no idea what is going on inside the box.
So to expect them to learn about the details of what's going on inside at the same time they are learning how to use it is silly. It is much easier to understand how it does what it does if you have an intuitive understanding of what it does. The first step in learning to program isn't to master data structures or flow control. It's to get an intutive understanding of what a computer *does* from a purely functional point of view. It's to get a clear notion of what things the computer does for you and what things you have to do for yourself. To a beginning programmer, it doesn't *matter* if the array they are using is implemented as an array or a linked list. And at this basic level, the difference between a goto, a for loop, and a while loop are irrelevant. They affect the maintainability of code, but functionally they serve the same purpose.
So a language that uses nothing but gotos, and doesn't provide any higher-level data structures is perfectly acceptable for this basic level of learning. You're not learning to write good code at this point. You're just learning to write code that works.
I think you're underestimating how difficult it is to make code that just works. Most of us have been doing this for years, and so it seems easy to us, but if you watch a complete beginner, it really is difficult. This is because it takes time and practice to understand the requirements and limitations involved in programming.
Once you teach a child to write code that works in one language, it will be fun enough that they will want to master more of that language on their own. And once you know one language well, learning a second language is much easier.
I think it's counterproductive to try to get kids to write good code before they've figured out how to write functional code. Clean, elegant code that doesn't do what it's supposed to do is worthless.
In other words, you are focusing on walking techniques before a child has learned to stand up. One must be able to walk around without falling down before one can start thinking about walking gracefully. To expect children to write perfectly structured OO c++ code right off the bat is absurd.
14 is kinda old, and he probably has a longer attention span and more of an ability to grasp higher-level abstractions than an 8-year-old. I'm not saying that Perl is a terrible language. I just think that particularly for younger kids, BASIC is simpler and gives more instant gratification.
The problem I see with this is that it doesn't really teach *programming.* Sure, you can make it print "hello world," but you can't do the sorts of things that kids generally want to do-- games, screensavers, etc. Basic concepts like loops, variables, etc, exist in Javascript, but they are generally de-emphasized in favor of more practical how-to knowledge.
That's not the end of the world, but I'm not sure it's all that useful when it comes to learning programming skills. You can have an encyclopedic knowledge of HTML tags and JavaScript rollover tricks and still know nothing about coding, whereas playing with basic can teach you many of the conceptual foundations of programming (even if it does stunt your ability to write nice modular code: one of these days I'm going to go look at the BASIC programs I wrote back when I was 10. I can only imagine the spagetti code I must have written.)
I'll agree that Java's a decent choice, but I think the big problem there is that there's too much overhead in making it work. You need to declare objects and functions, learn to use the compiler, declare all your variables, and other fun stuff like that. Graphics are also kind of a pain. On my apple ][, I could do a hline 2,50,3, and it would make a line across the screen. WIth Java, you've got to create a Window, create a painting object and put it into it, and do other stuff I don't remember at the moment before anything appears on the screen.
So I think Java is probably an excellent second language, and it might be a good choice for high school kids. But before that I think something like BASIC is a better starting point.
I love Perl, but starting kids off on it is like teaching them to shoot by giving them a machine gun.
I think the most important characteristics of a beginners programming language are simple, logical syntax, a reasonably small set of instructions and operators, and enough high-level functions to allow kids to do something useful. Specifically, you should be able to run a "hello world program" in a line or two, and you should be able to graphics and other fun stuff like that without knowing too much about OS internals.
Perl's not a terrible language for this (it is interpreted and provides some high-level functionality), but its syntax is only logical if you're used to c, it has an ungodly number functions and operators, and it's not designed to do graphics or interactive functions. (Yes, I'm sure there are modules and such to do pretty much anything, but the whole point is that we're talking about beginners)
I grew up with BASIC on the Apple II. I started in first or second grade, and spent the next 5 years programming games and stuff almost constantly. I moved on to other languages and platforms in high school.
So I still think BASIC is a good choice. Not sure VB is quite the ticket-- I wonder if there are any good free BASIC interpreters.
I guess Perl would be an OK second choice. A close third would be Java, which has some nice graphics capabilities and a less obfuscated and complex syntax.
When he says that the success of OS X is tied to the success of OSS, that implies he is saying one of two things: either they will run out of developers if OSS dies, or that they will run out of users if they don't embrace the open source model. Since it was not clear what he meant exactly, I wanted to address both pissibilities.
Besides, his quote above seems to imply that OS X was developed as open source in the first place, when in fact all the important pieces were written by Apple (or Next) privately and only open sourced after they were largely complete.
Oh, I agree-- making it a separate application is better than integrating it into the finder. But that still means I have to run a little script to kill the dock every time I log in.
At a minimum, there should be an option to disable the dock cleanly. And they shouldn't take away the other UI features until they're sure they have a good improvement.
It was targeted towards "high-end" servers, though why you'd be running them on one of those Macs is beyond me (the older Macs weren't very fast, even for their time). Does that description sound familiar?
No, it doesn't sound familiar, because that's not what Apple's saying. You need to pay more attention to what Apple does say. This was true of Mac OS X *Server,*, but OSX Server was more a technology demonstration and a way of getting some extra revenue than a separate product. What this article was about was Mac OS X, which is a replacement for the Mac OS and intended to be put on all Macs starting next year.
OS X looks nothing like Unix from the user perspective, and is not for "high end" machines.
One of the biggest stumbling blocks for A/UX was the resistence of Apple users to switching to Unix, even an Apple Unix.
That's because A/UX was transparently Unix, while OS X hides the command line completely. The standard install will likely not even include a command line utility.
Because Apple is using BSD code, and because ever-increasing numbers of Unix users come from Open Source Unix backgrounds, the success of OS X is largely tied to the success of Open Source.
What?
I really don't know what to say here, since it's obvious you don't have a clue what you're talking about. OS X was developed almost entirely by Apple engineers, and they have the resources to continue to do so even if the OSS community entirely ignores them.
And there users aren't going to adopt OS X because it's based on BSD. They're going to adopt it for the same reason they adopted systems 9,8, and 7-- because it's the next upgrade to their operating system. The fact that it's Unix under the hood has no negative effect on its attractiveness to Mac users unless Apple doesn't hide those underpinnings well enough.
But if OSS fails, where will the Unix gurus be?
Who cares? "Unix gurus" are not a target Apple market. They sell primarily to graphics professionals, education, and home users. None of those users give a rat's ass about users, and most of them probably won't know a command line if it bites them.
Apple is not hitching themselves to Open Source. They are taking advantage of the OSS movement in hopes of cutting development costs and improving their product. They are also contributing valuable code to the OSS community. But they will be able to get along just fine if OSS flops.
The "bad news" is that Apple has concentrated on polishing their new interface, but has done nothing to address the big issues Mac users complained about since Aqua was unveiled.
The classic Mac OS has the following useful interface features:
The apple menu
The control strip
Pop-up folders in the finder
The application menu
His steveness has unceremonially blown away *all* of them, and replaced them with the dock.
The dock is grossly inadequate to the task. First, these four interface elements perform different (although overlapping in some cases) functions. I don't think it's possible to replace all of them with one interface element. Secondly, the dock is a bad implementation of all of these.
The apple menu takes up a tiny amount of screen space and allows rapid access to common functions. It is universally available and its contents are fully customizable. The dock, on the other hand, takes up a great deal of space, and it must further share that space with other apps. In addition, because it is not hierarchical, it can only hold 10-20 items comfortably.
The application menu serves the function of a task switcher and a crude window manager. In addition to listing the names of all open applications, it can be torn off from the menu bar to make a floating applications pallette. This pallette can be made quite small and can be placed anywhere on the screen. The dock does a decent job of performing this function, but it is less customizable, it doesn't list the names of applications, and it takes up a hell of a lot more screen space.
The control strip provides rapid access to common system configurations. I keep volume, bit depth, screen resolution, and bit depth panels in it. This allows me to change these four settings in under a second, and it takes up a rectangle of screen real estate of under 20 pixels high and under 80 pixels wide. The dock simply doesn't compare. In its present form, it can launch control panels, but it does not provide the immendiate, direct access the control strip does. And unlike the dock, the control strip can be anchored anywhere on the screen and can be minimized to under 20 pixels square.
Pop-up folders are a feature I don't use, but they are highly customizable (buttons, icons, lists) and their hierarchical nature allows access to hundreds of items in a matter of seconds. The dock doesn't provide anywhere near the functionality to screen space ratio.
I could live with any one of these going away. And I could handle them being replaced by improved versions. But when all four of them are replaced by a single element that doesn't work as well as any of them and takes up more space than all of them combined, then I see that as a massive reduction in the usefullness of the OS.
Not only that, but Apple seems to have a compulsive need to rearrange interface elements that were just fine the way they were. The minimize and maximize buttons should be put back on the right side of windows where they belong, the application menu should go back to the right side of the menu bar (to prevent the File and Edit menus from bouncing around) and the apple menu needs to be put back on the left and it needs to be a menu and not just a logo.
The trash belongs on the desktop in the lower right. And there should at least be an option for fixed disks to show up on the desktop. These are arbitrary preferences, but they are what Apple's user base is used to, and it is stupid to change them simply because Steve thinks it's fun to change things around. Apple should concentrate on replacing the OS's creaky innards, and leaving interface changes for future versions.
OK, I'm done ranting now. Suffice it to say that Apple has not succeeded in pleasing this Mac use with the new layout. I only hope that third parties provide ways to get back some of that lost functionality, and that Apple allows an option to turn off the dock.
On the other hand, many of the system calls are faster due to the Darwin innards. Most notable is that Darwin has fully buzzword-compliant modern memory management, which is better implemented than the classic Mac OS. That means that apps launch faster and memory-intensive apps make more efficient use of memory.
So apps that eat most of the CPU themselves are going to be slow, but apps that make a lot of system calls can concievably be much faster.
If Linux gets more popular, nothing can stop the Office company from making Office for Linux.
Except that so far, the set of people who use Linux and the set of people who use Office are practically disjoint. Linux is simply not a consumer OS, and is not suitable for use by the types of people most likely to use Office.
The IE company would be more vulnerable to pressure to conform to W3C standards.
MS was found guilty of illegal business practices.
The problem with this is that most successful companies violate antitrust law. That's because it's written in so vague and overreaching a way that nearly anything other than surrendering and losing market share qualifies. In practice, the DOJ goes after the most high-profile companies, and the legal winds shift depending on the current president and the current judge.
What pisses the DOJ off so much is that Microsoft isn't lying down quietly and taking it. They are fighting back. They are winning in the court of public opinion, and they may still win in the Supreme Courts. This understandibly infuriates the self-important lawyers in the DOJ, and so they are more determined than ever to bring them down.
If they had not shown that prior disregard for government imposed remedies, I would not support a breakup.
Why should they be so deferent to the whims of the government? If they are forced to sign a consent decree, I see no reason why they shouldn't flout the spirit of the law while obeying the letter. The consent decree allows OS "features" to be added, just not "bundling." Fine, MS made it a feature. No, that's not what the DOJ wanted, but why should MIcrosoft care?
However, while it pains me to see the government interfering in the private sector so much, it would be worse if when the next Big Thing(tm) came along, MS could use it's dominence in the OS and productivity applications market to stifle honest competition for market share.
Hmm... You mean like Netscape? Or Linux? Or Mac OS X? Seems to me that those are all doing just fine. And even Be OS has been out there for a couple of years, so consumers have had ample opportunity to use them if it wants. This is where I think the DOJ case is fundamentally wrongheaded: hot new technologies *do* make it into the hands of consumers. Microsoft comes along and buys them out, or they produce a better implementation in some cases, but so what? If our concern is for the wellbeing of consumers rather than of corporations, why does it matter what happens to the companies that introduce those products, if the products themselves are still available?
Antitrust law has never been about protecting consumers from the bad effects of monopolies. It's always been a means of protecting companies from "unfair" competition by other companies. I reject that standard. Whenever you go into business, you run the risk that a larger and better-financed firm will beat you in the marketplace. That's a risk you take.
So, how exactly does Microsoft prevent hot new technologies from coming to market? And if Microsoft subsequently drives some of those companies out of business by providing a better product at a lower price, how is that a bad thing?
As for the apps company developing for Linux or *BSD, I suggest you hand an average computer user a copy of Red Hat and ask him to install it. He'll be using it as a coaster within the hour. One of the main reasons that Office hasn't been ported to Linux (to say nothing of BSD) is that few in Office's target market use Linux. Linux is a really complex OS with a really mediocre GUI. It's simply not ready for use as a desktop productivity OS. Notice that Microsoft still develops Office for the Mac. How did that happen if their goal is to use Office to destroy other OS's?
When KDE or Gnome reach the point where Linux is suitable for a wider user base, I suspect Microsoft will write apps for it. And if they don't, someone else will. But right now, the reason those apps don't exist is that there's no market for them.
You're wrong when you say it's not the money. The point is not that they have "staggering revenues," which they probably do. The point is that this breakup will reduce their revenues from what they would otherwise be. Those revenues might seem staggering to us, but keep in mind that investors only care about the revenues as a fraction of the invested capital. MS's P/E ratio is around 30 if memory serves, so it's not that high. If a breakup reduces that further, stock price will fall, costing Gates and all of MS's investors further money.
So the money (and the ego-trip of having your stock continue going up) is the whole point.
I don't know of any OS's that don't use double clicks. Windows uses double-clicks for almost exactly the same thing that the Mac OS does. And Mac OS doesn't really *require* you to use double clicking for anything, it's just a lot faster than doing file->open.
Double-clicking is a skill that takes a little time to learn, but it has the advantage of not being confusing. I think it's easier to remember the difference between "click once" and "click twice" than the difference between "right click" and "left click." And there's less chance of accidentally hitting the wrong button. I have an elderly grandfather with wide fingers and poor motor control, and he frequently slides his fingers over and hits both buttons at once. For him, double-clicking is much easier than right- and left- clicking.
I fully agree that multiple buttons are useful to some users in some circumstances. I guess my question would be whether it's more of a hassle to have the 90% of users ignore the extra buttons, or to have the 10% of users buy third-party mice. I'm not sure it's all that clear-cut. There are lots of third-party mice with >1 buttons, and they're usually around 10 bucks.
It's easy for you and I to say "ignore the extra button," but that's largely because we already know what it does. Developers tend to use it if it's there, and so apps end up needing it. And even the fact that the left-button is the default button is not obvious to an absolute newbie.
I'm certainly in favor of choice. Apple should provide a BTO option for that second button.
And by the way, the iMac keyboard puts the arrow keys where the right-hand control and option usually are, meaning it's exceptionally easy to do a command-left keystroke.
On Mac browsers, the combinations are:
click: follow link
control-click: follow link in new window
command-click: contextual menu
Is this "better" than having buttons bound to all three functions? That's probably a matter of taste. But it's certainly not much worse, and it has the advantage of not confusing new users. And it's easier to bind second and third buttons to commonly used features on a single-button app than to try to use a multi-button app with a single-button mouse.
Contextual menus and open-in-new-window are features that 90% of users aren't going to use. I see no reason to confuse them unnecessarily. And I don't see that there is any great time lost in having to reach down and hit the "control" key before clicking when one wants a contextual menu.
Hmm... I guess all those graphics designers (and me for that matter) are still newbies and haven't experienced the joys of a "real system." Has it occured to you that no one OS is best at all possible tasks, and that your priorities in choosing an OS aren't necessarily the same as those of others? Some of us are willing to trade a little stability and raw power for a wider more mature base of apps, better interface consistency, better OS-level hardware support, and more high-level features.
Linux makes a great low-end server and a decent workstation for geeks, but it's not suitable for all users. Mac's are not simply training wheels for people who haven't yet learned to use "real computers." There are a lot of highly talented people who make their living on Macs, and none of them qualify as newbies. They simply have different needs than you do.
I personally use a Mac at home and Unix for work. Each is better than the other for some tasks, and worse for others. I am not bound to a narrow conception that OS 1 is "better" than OS 2.
This is why I don't think you can ever have one OS for all possible tasks. I use Unix (and vi) on a regular basis at work. It works great for what it does. But for the jobs I do at home (word processing, web browsing, email, etc) the Mac OS is far preferable. I don't have to deal with the mediocre GUI, the lack of useful features like real cut-and-paste, the lack of good desktop apps, (Netscape on Unix doesn't compare with either IE or Netscape on Mac or Windows) and other issues. The Mac OS interface is just better designed, more polished, and generally better for common, high level tasks.
So one OS isn't good for all tasks, which I why my machine dual-boots.
My problem with the one-button mouse issue, though, is that it provides little if any benefit to power users to have the extra buttons. Basically, the second button on Windows is used to duplicate the menu bar, which is necessary because the menu is not anchored to the top of the screen and therefore it takes longer to access it than on a Mac. On Unix, the third button is used for cut-and-paste, which may save a half-second for ever cut and paste, but that's hardly a stupendous advantage. And it does so at the cost of interface simplicity and confusing new users. I don't see that as a big win.
So, besides the fact that many apps are crippled without 3 buttons, what is the advantage of having the second and third buttons? On an app that's designed for one button, what features come out significantly inferior? I can't think of any.
You aren't supposed to rest your whole hand on the mouse. You're supposed to manipulate the mouse with your finger tips. I'm an adult male with big hands, and it's worked for me for over a year.
I'll agree the del and end keys are useful, but even for power users like us they aren't crucial. Del and backspace do the same thing in most apps anyway. It's a minor annoyance, not a showstopper. And most users never even notice they're gone.
I see this as a design flaw in X, not with Apple's mice. Most apps use the three buttons to invoke different menus, when it would be much simpler to have all of the functions in one global menu. Or they use the middle button for their hacked-together cut and paste. If you design your interface around one button, it works fine. 2 and 3 buttons add little functionality and much confusion for new users.
The only people who complain about having only one button are users coming from other operating systems who are used to having several mouse buttons to perform redundant functions. Early usability studies clearly showed that multiple buttons confuse new users, and that keyboard-click combinations can be used for some of the most useful functions of multiple-button mice. Mac OS 8 provides control-clicking contextual menus, which work fine once you get used to it without confusing newbies.
I'm getting tired of people bitching about the round mouse. Yes, it takes a little getting used to, but once you're familiar with it, it works just fine. You quickly learn to use the indentations of the button or the cord to orient the mouse the right way up. And it's smaller and lighter than a normal mouse, so it's at least as easy on the hands.
I'd be willing to be that most of the people who complain about it haven't used it very long. It takes about 2 days to get used to it, and after that it's not worse than a standard oval -shaped mouse.
For that matter, I wish people would stop bitching about the keyboard as well. The important keys are *not* any smaller than a standard keyboard. The arrow keys and F-keys are smaller, and it's missing del and end (admittedly an annoyance but no biggie since Macs don't make much use of these. And Apple's keyboards take up a lot less space horizontally, which can be nice if you have a small desk.
So no, the keyboard and mouse aren't perfect for everyone. But they work just fine for 90% of Apple's customers. And the other 10% can go out and get themselves third-party mice-- many power users do that anyway.
No, but they did make it a standard feature, they brought the price down to ~$100 per computer, and they implemented brain-dead software support so that average users could use it. And then they marketed it relentlessly. Innovation is about more than raw technical breakthroughs. A company can have a lot of cool technology and never turn it into a cool product. Apple has some cool technology, but they are very good at finding new ideas and bringing them to the masses.
If the price of a 64Mb chip is $6, you need 16 of those chips to make a 256MB DIMM, and 8 of them to make a 64MB DIMM.
How can twice as many chips give you four times the capacity?
I started learning BASIC in the third grade and it didn't do me much good. Sure, playing around in it is fun at first, but when you want to actually write a program that you can use, forget it.
I think perhaps you're missing the point here. When you're in third grade, nothing you write is "useful." The point of programming at that age is to learn how to program. So I don't think it matters if you are able to write programs you can "use."
More importantly, the concepts you learn in a language like C/C++ can easily be applied to other languages, unlike BASIC where I had to unlearn many things.
And how hard was that? I didn't find it difficult at all. Really, the difference between a goto and a loop is trivial from a conceptual standpoint. And if you're programming in a language that doesn't have goto's, you're going not going to be using them.
You also seem to think that you learned little of value from BASIC, which I'd bet money isn't true. The things you learned aren't things you think of as separate skills, but if you don't believe me, I suggest you try teaching c++ to one of your non-programming friends. They will be bewildered by things that you consider blindingly obvious.
And don't think that c isn't going to give you any bad habits. Every language leads people to write code in certain ways, and so every language will lead to bad habits in some way or another.
I haven't had any more trouble with it than I did with BASIC or HTML.
OK, except that you're 14 now, and you would have been about 9 when you started on BASIC. You undoubtedly have a longer attention span, better disciplined mental abilities, and other advantages that you didn't have at 9. Most importantly, you *already know a language* which is a *huge* advantage. I know that if I had been given c in second grade when I started programming, I wouldn't have been as interested in it.
I don't think you understand the problems inherent in teaching programming to an absolute beginner. If you have never programmed before, the computer is a mysterious black box. Programs are dense lines of largely incomprehensible symbols. And when an absolute beginner is asked to write a program, the problem he has is not that he doesn't understand data types or flow control, it's much more basic than that: he hasn't yet grasped what exactly programming is.
In order to understand what it is to program, he must understand the correspondence between what he types into his program and what happens when he runs his program. That means that the more direct and unobfuscated the feedback, the better.
This is why "hello, world" is the traditional first program to write when learning a new language-- it provides the simplest possible program that still shows the relationship between a program and its output.
Human beings learn in steps. We learn to crawl before we walk, and we walk before we run. BASIC allows you to write one- and two-line programs that print text output. In c, it requires several lines of headers, function definitions, and other junk. This creates an extra barrier to the direct feedback needed when learning a new language. In addition, it imposes unnecessary complexity in printing. printf is not the most elegant function.
If you want to do something more interesting (say, graphics or sound) you have to link in extra libraries, make several function calls, etc. This clouds the crucial link between a program and its output. A programmer should be able to take a program and trace what exactly each line does. The more headers, type declarations, obscure functions callse, etc, are used, the less clear that is.
Keep in mind that things that we take for granted are complete mysteries to most 8-year olds. Concepts like memory, pointer, variable, data structure, function, loop, etc (not to mention processor, disk, cache, and other hardware terms) are complete mysteries. They have no idea what is going on inside the box.
So to expect them to learn about the details of what's going on inside at the same time they are learning how to use it is silly. It is much easier to understand how it does what it does if you have an intuitive understanding of what it does. The first step in learning to program isn't to master data structures or flow control. It's to get an intutive understanding of what a computer *does* from a purely functional point of view. It's to get a clear notion of what things the computer does for you and what things you have to do for yourself. To a beginning programmer, it doesn't *matter* if the array they are using is implemented as an array or a linked list. And at this basic level, the difference between a goto, a for loop, and a while loop are irrelevant. They affect the maintainability of code, but functionally they serve the same purpose.
So a language that uses nothing but gotos, and doesn't provide any higher-level data structures is perfectly acceptable for this basic level of learning. You're not learning to write good code at this point. You're just learning to write code that works.
I think you're underestimating how difficult it is to make code that just works. Most of us have been doing this for years, and so it seems easy to us, but if you watch a complete beginner, it really is difficult. This is because it takes time and practice to understand the requirements and limitations involved in programming.
Once you teach a child to write code that works in one language, it will be fun enough that they will want to master more of that language on their own. And once you know one language well, learning a second language is much easier.
I think it's counterproductive to try to get kids to write good code before they've figured out how to write functional code. Clean, elegant code that doesn't do what it's supposed to do is worthless.
In other words, you are focusing on walking techniques before a child has learned to stand up. One must be able to walk around without falling down before one can start thinking about walking gracefully. To expect children to write perfectly structured OO c++ code right off the bat is absurd.
14 is kinda old, and he probably has a longer attention span and more of an ability to grasp higher-level abstractions than an 8-year-old. I'm not saying that Perl is a terrible language. I just think that particularly for younger kids, BASIC is simpler and gives more instant gratification.
The problem I see with this is that it doesn't really teach *programming.* Sure, you can make it print "hello world," but you can't do the sorts of things that kids generally want to do-- games, screensavers, etc. Basic concepts like loops, variables, etc, exist in Javascript, but they are generally de-emphasized in favor of more practical how-to knowledge.
That's not the end of the world, but I'm not sure it's all that useful when it comes to learning programming skills. You can have an encyclopedic knowledge of HTML tags and JavaScript rollover tricks and still know nothing about coding, whereas playing with basic can teach you many of the conceptual foundations of programming (even if it does stunt your ability to write nice modular code: one of these days I'm going to go look at the BASIC programs I wrote back when I was 10. I can only imagine the spagetti code I must have written.)
I'll agree that Java's a decent choice, but I think the big problem there is that there's too much overhead in making it work. You need to declare objects and functions, learn to use the compiler, declare all your variables, and other fun stuff like that. Graphics are also kind of a pain. On my apple ][, I could do a hline 2,50,3, and it would make a line across the screen. WIth Java, you've got to create a Window, create a painting object and put it into it, and do other stuff I don't remember at the moment before anything appears on the screen.
So I think Java is probably an excellent second language, and it might be a good choice for high school kids. But before that I think something like BASIC is a better starting point.
I love Perl, but starting kids off on it is like teaching them to shoot by giving them a machine gun.
I think the most important characteristics of a beginners programming language are simple, logical syntax, a reasonably small set of instructions and operators, and enough high-level functions to allow kids to do something useful. Specifically, you should be able to run a "hello world program" in a line or two, and you should be able to graphics and other fun stuff like that without knowing too much about OS internals.
Perl's not a terrible language for this (it is interpreted and provides some high-level functionality), but its syntax is only logical if you're used to c, it has an ungodly number functions and operators, and it's not designed to do graphics or interactive functions. (Yes, I'm sure there are modules and such to do pretty much anything, but the whole point is that we're talking about beginners)
I grew up with BASIC on the Apple II. I started in first or second grade, and spent the next 5 years programming games and stuff almost constantly. I moved on to other languages and platforms in high school.
So I still think BASIC is a good choice. Not sure VB is quite the ticket-- I wonder if there are any good free BASIC interpreters.
I guess Perl would be an OK second choice. A close third would be Java, which has some nice graphics capabilities and a less obfuscated and complex syntax.
When he says that the success of OS X is tied to the success of OSS, that implies he is saying one of two things: either they will run out of developers if OSS dies, or that they will run out of users if they don't embrace the open source model. Since it was not clear what he meant exactly, I wanted to address both pissibilities.
Besides, his quote above seems to imply that OS X was developed as open source in the first place, when in fact all the important pieces were written by Apple (or Next) privately and only open sourced after they were largely complete.
Oh, I agree-- making it a separate application is better than integrating it into the finder. But that still means I have to run a little script to kill the dock every time I log in.
At a minimum, there should be an option to disable the dock cleanly. And they shouldn't take away the other UI features until they're sure they have a good improvement.
It was targeted towards "high-end" servers, though why you'd be running them on one of those Macs is beyond me (the older Macs weren't very fast, even for their time). Does that description sound familiar?
No, it doesn't sound familiar, because that's not what Apple's saying. You need to pay more attention to what Apple does say. This was true of Mac OS X *Server,*, but OSX Server was more a technology demonstration and a way of getting some extra revenue than a separate product. What this article was about was Mac OS X, which is a replacement for the Mac OS and intended to be put on all Macs starting next year.
OS X looks nothing like Unix from the user perspective, and is not for "high end" machines.
One of the biggest stumbling blocks for A/UX was the resistence of Apple users to switching to Unix, even an Apple Unix.
That's because A/UX was transparently Unix, while OS X hides the command line completely. The standard install will likely not even include a command line utility.
Because Apple is using BSD code, and because ever-increasing numbers of Unix users come from Open Source Unix backgrounds, the success of OS X is largely tied to the success of Open Source.
What?
I really don't know what to say here, since it's obvious you don't have a clue what you're talking about. OS X was developed almost entirely by Apple engineers, and they have the resources to continue to do so even if the OSS community entirely ignores them.
And there users aren't going to adopt OS X because it's based on BSD. They're going to adopt it for the same reason they adopted systems 9,8, and 7-- because it's the next upgrade to their operating system. The fact that it's Unix under the hood has no negative effect on its attractiveness to Mac users unless Apple doesn't hide those underpinnings well enough.
But if OSS fails, where will the Unix gurus be?
Who cares? "Unix gurus" are not a target Apple market. They sell primarily to graphics professionals, education, and home users. None of those users give a rat's ass about users, and most of them probably won't know a command line if it bites them.
Apple is not hitching themselves to Open Source. They are taking advantage of the OSS movement in hopes of cutting development costs and improving their product. They are also contributing valuable code to the OSS community. But they will be able to get along just fine if OSS flops.
The classic Mac OS has the following useful interface features:
The apple menu
The control strip
Pop-up folders in the finder
The application menu
His steveness has unceremonially blown away *all* of them, and replaced them with the dock.
The dock is grossly inadequate to the task. First, these four interface elements perform different (although overlapping in some cases) functions. I don't think it's possible to replace all of them with one interface element. Secondly, the dock is a bad implementation of all of these.
The apple menu takes up a tiny amount of screen space and allows rapid access to common functions. It is universally available and its contents are fully customizable. The dock, on the other hand, takes up a great deal of space, and it must further share that space with other apps. In addition, because it is not hierarchical, it can only hold 10-20 items comfortably.
The application menu serves the function of a task switcher and a crude window manager. In addition to listing the names of all open applications, it can be torn off from the menu bar to make a floating applications pallette. This pallette can be made quite small and can be placed anywhere on the screen. The dock does a decent job of performing this function, but it is less customizable, it doesn't list the names of applications, and it takes up a hell of a lot more screen space.
The control strip provides rapid access to common system configurations. I keep volume, bit depth, screen resolution, and bit depth panels in it. This allows me to change these four settings in under a second, and it takes up a rectangle of screen real estate of under 20 pixels high and under 80 pixels wide. The dock simply doesn't compare. In its present form, it can launch control panels, but it does not provide the immendiate, direct access the control strip does. And unlike the dock, the control strip can be anchored anywhere on the screen and can be minimized to under 20 pixels square.
Pop-up folders are a feature I don't use, but they are highly customizable (buttons, icons, lists) and their hierarchical nature allows access to hundreds of items in a matter of seconds. The dock doesn't provide anywhere near the functionality to screen space ratio.
I could live with any one of these going away. And I could handle them being replaced by improved versions. But when all four of them are replaced by a single element that doesn't work as well as any of them and takes up more space than all of them combined, then I see that as a massive reduction in the usefullness of the OS.
Not only that, but Apple seems to have a compulsive need to rearrange interface elements that were just fine the way they were. The minimize and maximize buttons should be put back on the right side of windows where they belong, the application menu should go back to the right side of the menu bar (to prevent the File and Edit menus from bouncing around) and the apple menu needs to be put back on the left and it needs to be a menu and not just a logo.
The trash belongs on the desktop in the lower right. And there should at least be an option for fixed disks to show up on the desktop. These are arbitrary preferences, but they are what Apple's user base is used to, and it is stupid to change them simply because Steve thinks it's fun to change things around. Apple should concentrate on replacing the OS's creaky innards, and leaving interface changes for future versions.
OK, I'm done ranting now. Suffice it to say that Apple has not succeeded in pleasing this Mac use with the new layout. I only hope that third parties provide ways to get back some of that lost functionality, and that Apple allows an option to turn off the dock.
On the other hand, many of the system calls are faster due to the Darwin innards. Most notable is that Darwin has fully buzzword-compliant modern memory management, which is better implemented than the classic Mac OS. That means that apps launch faster and memory-intensive apps make more efficient use of memory.
So apps that eat most of the CPU themselves are going to be slow, but apps that make a lot of system calls can concievably be much faster.
If Linux gets more popular, nothing can stop the Office company from making Office for Linux.
Except that so far, the set of people who use Linux and the set of people who use Office are practically disjoint. Linux is simply not a consumer OS, and is not suitable for use by the types of people most likely to use Office.
The IE company would be more vulnerable to pressure to conform to W3C standards.
How do you figure? Netscape didn't.