Welcome to the MacNN Forums.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

You are here: MacNN Forums > Community > MacNN Lounge > Why Unix is better than Windows

Why Unix is better than Windows
Thread Tools
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 05:36 PM
 
Unix, for most people, may be this mysterious thing that nobody really understands, or has inaccurate preconceptions of (e.g. being nothing more than an arcane command line environment), but if you delve into learning about the history of computers, how Unix has fit in among white men in suits who have wanted to make money, and look at where we are today it will become clear that Unix was and still is an astonishingly superb design that is still completely relevant today - some 30 years beyond its initial creation.

Look at DNS, domain name policy, the TCP/IP stack, email, and most importantly, the philosophy behind Unix programming, and you'll find that what is in place today is simply a minor evolution of what has been in place for decades. We tend to think of Windows as a completley proprietary operating system created from the ground up in the Redmond labs, but even Windows incorporates several key Unix-derived technologies.

Part of why Unix is not where Microsoft is today is related to how it was managed, and how its creators felt about their work becoming commiditized. Yet, Windows has not completely taken over despite its vast wealth and resources. Unix is simply too useful to be rid of.

One of Unix's simultaneous strengths and weaknesses is that it separates policy from mechanism. The Unix command line tools, for the most part, are more concerned with mechanism than policy. That is, they'll dutifully perform X, Y, or Z task, but it is up to you to figure out how you want to present this to the user, and how you want these tasks to be executed. An overwhelming amont of flexibility is gained, but a bewildering set of choices are pushed upon the user and the developers at the policy level, which is why there is little consistency in Unix GUIs, for the most part.

What makes Unix so great is its consistency. For those who have used a Unix GUI, consistency might not be the first thing you think of when you think of Unix, but consistency in the tools that comprise a Unix system is what the overall programming philosophy was largely based on. For instance, developers know exactly what kind of outputs to expect, they know that they can pipe the output of one program into another, they know that they can count on simple text formats in interaction between programs, and they know that each tool was designed to do one thing well. There are of course exceptions, but the tried and true apps that countless users count on today generally follow these rules to the T.

Mac OS X is essentially just policy. It provides some mechanisms of its own, but at its most basic level it is simply an interface.

Windows, on the other hand, is kind of a mess. Its command line tools are weak, its programs do not have set conventions for communicating with each other, output is often unexpected, and consequently updating pieces can cause strange results. Even after all of these years, its design still has some serious flaws such as those I've mentioned, in addition to a single point of failure in application preferences, a poor security model, and an operating system that is essentially policy driven with little underlying mechanism users and developers can count on.

For example, if I wanted to print a multicolumn list of text data, filter out some results I'm not interested in, rearrange the columns that are displayed, only show me unique entries, and sort the results alphabetically, I could literally do that in a single Unix command. In a non-Unix operating system, this is probably something I'd have to program for myself.


I know all of this is abstract, but I often feel that many Mac users are so wrapped up in what they see (the GUI), that they do not appreciate what drives the GUI. Even if you have no reason to ever work in a command line environment, I hope that after reading this thread you'll have a new found appreciation for the brilliant design of a Unix operating system. Of course, it is not without its flaws, but you'd be hard pressed to name a culture in technology that has lasted as long as Unix.
     
Clinically Insane
Join Date: Jun 2001
Location: planning a comeback !
Status: Offline
Reply With Quote
Sep 5, 2006, 05:40 PM
 
Cut and paste from teh intarweb ?

Or are you THAT bored ?

-t
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 05:42 PM
 
Originally Posted by what_the_heck
Cut and paste from teh intarweb ?

Or are you THAT bored ?

-t

No, I wrote this myself... just a little blog-style post, but I hope it sparks an interesting thread.
     
Mac Elite
Join Date: Nov 2002
Location: Ellicott City, MD
Status: Offline
Reply With Quote
Sep 5, 2006, 06:00 PM
 
I think every OS has its place - depending on your use. So far, I've yet to see an OS that does EVERYTHING better than any other OS. So to claim your thread title - while true in a lot of aspects - can still be disproven in others.

Not disagreeing with your points, but put what you just wrote in front of an avid gamer, a housewife who only knows how to read e-mail, or a Z/VMS/Unisys administrator.. they'd have a field day with it.
.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 06:05 PM
 
Originally Posted by macroy
I think every OS has its place - depending on your use. So far, I've yet to see an OS that does EVERYTHING better than any other OS. So to claim your thread title - while true in a lot of aspects - can still be disproven in others.

Not disagreeing with your points, but put what you just wrote in front of an avid gamer, a housewife who only knows how to read e-mail, or a Z/VMS/Unisys administrator.. they'd have a field day with it.

Housewife or househusband


What is better done in actual practice is often related to what developers choose to do with the underlying mechanisms. If developers were to write games for Linux, it too could be that premiere gaming platform.

My claim was about the underlying mechanisms, not so much what the OS is good for from the standpoint of end users in their operating environment.
     
Mac Elite
Join Date: Feb 2005
Location: Vente: Achat
Status: Offline
Reply With Quote
Sep 5, 2006, 06:10 PM
 
Third party support anyone? Things like printer drivers and the like?
     
Mac Elite
Join Date: May 2005
Location: West LA
Status: Offline
Reply With Quote
Sep 5, 2006, 06:23 PM
 
isn't Unix different from UNIX?

note all caps in the second one.
     
Posting Junkie
Join Date: Oct 2005
Location: Houston, TX
Status: Offline
Reply With Quote
Sep 5, 2006, 07:54 PM
 
I don't see what DNS, TCP/IP, and email have zero to do with Unix. Sure, they were first implemented on a Unix platform, but that's just a product of being the most common OS at the time.

In other words, it's correlation not causation.

You can do all your printing/filtering/rearranging on Windows with freely downloadable shells and utilities. Is your beef just that they aren't bundled?

Look into Monad... instead of passing text between applications like Unix does, you can pass objects between applications on Windows.
     
Admin Emeritus
Join Date: Oct 1999
Location: Zurich, Switzerland
Status: Offline
Reply With Quote
Sep 5, 2006, 08:29 PM
 
Originally Posted by hickey
isn't Unix different from UNIX?

note all caps in the second one.
No.

tooki
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:29 PM
 
Originally Posted by paul w
Third party support anyone? Things like printer drivers and the like?
Huh? What are you trying to say?
     
Posting Junkie
Join Date: Oct 2001
Location: South of the Mason-Dixon line
Status: Offline
Reply With Quote
Sep 5, 2006, 08:31 PM
 
He's trying to say there's no unix driver for my HP all-in-one printer/scanner/copier - nor for my Hauppage WinTV tuner card.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:31 PM
 
Originally Posted by mduell
I don't see what DNS, TCP/IP, and email have zero to do with Unix. Sure, they were first implemented on a Unix platform, but that's just a product of being the most common OS at the time.

In other words, it's correlation not causation.

You can do all your printing/filtering/rearranging on Windows with freely downloadable shells and utilities. Is your beef just that they aren't bundled?

Look into Monad... instead of passing text between applications like Unix does, you can pass objects between applications on Windows.

They have a lot to do with Unix. They are a product of the Unix culture and philosophy at the time, and they were designed by committee in an open way in a way that is representative of the culture. And yes, it is indeed a culture.

Tell us more about Monad, I'm not really hip to what it is.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:31 PM
 
Originally Posted by Spliffdaddy
He's trying to say there's no unix driver for my HP all-in-one printer/scanner/copier - nor for my Hauppage WinTV tuner card.

What does that have to do with anything I've said?
     
Posting Junkie
Join Date: Oct 2001
Location: South of the Mason-Dixon line
Status: Offline
Reply With Quote
Sep 5, 2006, 08:35 PM
 
With no 3rd party driver support - unix is worthless to 99.99% of computer users.
     
Posting Junkie
Join Date: Oct 2001
Location: South of the Mason-Dixon line
Status: Offline
Reply With Quote
Sep 5, 2006, 08:36 PM
 
Unix was developed by AT&T - so it's a small wonder that it worked at all.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:37 PM
 
Originally Posted by Spliffdaddy
With no 3rd party driver support - unix is worthless to 99.99% of computer users.

This also has nothing to do with what I've said.

If you want to segue into something else, that's cool.... I was simply expecting some attempt to segue, but instead you threw me off
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 08:45 PM
 
Ummmmm.... comparing Windows to UNIX is comparing Apples to Oranges.

UNIX was built to run command line. Windows was built to run as a GUI first and foremost, much like Mac OS 9. You're comparing two different tools built for two different jobs.

Also Windows uses UNIX's TCP/IP stack. Not very original, but that kinda negates that comparison.

I'm not saying I'd take Windows over a UNIX system, but UNIX is better suited for people who like the command line, and Windows is suited for people who like GUI's.

If this were a Mac OS X vs. Windows thread, maybe it would be different, but we've already had a lot of those.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:46 PM
 
If you really want to move away from Unix culture, philosophy, and design, and into Unix/Linux for end users, ATI produces some Linux drivers, many print drivers are provided via products such as GimpPrint. I'm not claiming that Unix/Linux is intended for most people, that was never a part of my argument.

In the field of high performance/research/scientific computing, there are Unix drivers for things that you can't find for other platforms... it's a different world, a different community. To say that Unix/Linux sucks because Johnny can't load his MSN smiley faces on it is sort of missing the point somehow... It is designed primarily for a different purpose and for a different user base.
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 08:49 PM
 
Originally Posted by besson3c
To say that Unix/Linux sucks because Johnny can't load his MSN smiley faces on it is sort of missing the point somehow... It is designed primarily for a different purpose and for a different user base.
So more to the point: Why are you comparing them when you admit such a comparison is futile?
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:49 PM
 
Originally Posted by goMac
Ummmmm.... comparing Windows to UNIX is comparing Apples to Oranges.

UNIX was built to run command line. Windows was built to run as a GUI first and foremost, much like Mac OS 9. You're comparing two different tools built for two different jobs.

Also Windows uses UNIX's TCP/IP stack. Not very original, but that kinda negates that comparison.

I'm not saying I'd take Windows over a UNIX system, but UNIX is better suited for people who like the command line, and Windows is suited for people who like GUI's.

If this were a Mac OS X vs. Windows thread, maybe it would be different, but we've already had a lot of those.

Unix is also far better suited for high performance computing, use as a server, operating in a cluster, etc. Long list of things Unix/Linux is used for really, but course all of these are small niches.



Is "nichés" the proper plural of niché?
     
Addicted to MacNN
Join Date: Aug 2004
Location: FFM
Status: Offline
Reply With Quote
Sep 5, 2006, 08:49 PM
 
Originally Posted by besson3c
This also has nothing to do with what I've said.
You said "Unix is better than Windows". But since more people are interested in watching tv or editing video on their computer than printing multi-column alphabetically sorted text, that's not true for most of mankind.

We already know that you invested significant time in learning obscure terminal commands. And that's exactly the reason you keep making these threads. To justify this investment to yourself. And the fact that you need such threads to do so tells me that the intrinsic value of the skill you learned is disproportionate to the effort it took you to learn it and you need to some bragging and external affirmation to make up to it.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:50 PM
 
Originally Posted by goMac
So more to the point: Why are you comparing them when you admit such a comparison is futile?

Good question.. I suppose it's my futile attempt to salvage my thread into something potentially interesting. Maybe I just need to give it a little more time.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 08:55 PM
 
Originally Posted by TETENAL
You said "Unix is better than Windows". But since more people are interested in watching tv or editing video on their computer than printing multi-column alphabetically sorted text, that's not true for most of mankind.

We already know that you invested significant time in learning obscure terminal commands. And that's exactly the reason you keep making these threads. To justify this investment to yourself. And the fact that you need such threads to do so tells me that the intrinsic value of the skill you learned is disproportionate to the effort it took you to learn it and you need to some bragging and external affirmation to make up to it.

I'm making my living now doing Unix sys admin work, there is a lot of opportunity in high performance/academic/server admin computing fields applying "obscure terminal commands", but that's besides the point. When you think about it, terminal commands are no more obscure than English syntax - both have rules and structure.

My point was about the *design* and *philosophy* being better, and I tried to be as specific as possible in explaining myself.

Why would I be trying to brag? If you aren't interested in what I thought might amount to an interesting conversation, fine... why not just go away?
     
Addicted to MacNN
Join Date: Jul 2005
Location: Cooperstown '09
Status: Offline
Reply With Quote
Sep 5, 2006, 08:59 PM
 
rickey939® approves this thread.
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 09:01 PM
 
Originally Posted by besson3c
I'm making my living now doing Unix sys admin work, there is a lot of opportunity in high performance/academic/server admin computing fields applying "obscure terminal commands", but that's besides the point. When you think about it, terminal commands are no more obscure than English syntax - both have rules and structure.

My point was about the *design* and *philosophy* being better, and I tried to be as specific as possible in explaining myself.

Why would I be trying to brag? If you aren't interested in what I thought might amount to an interesting conversation, fine... why not just go away?
I'm sure that's true, but GUI's save time and are easier to use. Look at what's taking share from UNIX. It's Windows and Mac OS X. I don't think command lines will ever completely go out of style.

In my opinion, while Macs getting a command line with Mac OS X was pretty nice, I think the bigger move that the Mac made was to Mach. Mach actually gave us our extensions, threading, and other nice stuff. Sure, it's a little slower than the normal *NIX kernels. But it's really convenient and nice. In the end, UNIX is really a geek toy while Mach improved the overall user experience.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:13 PM
 
Originally Posted by goMac
I'm sure that's true, but GUI's save time and are easier to use. Look at what's taking share from UNIX. It's Windows and Mac OS X. I don't think command lines will ever completely go out of style.

In my opinion, while Macs getting a command line with Mac OS X was pretty nice, I think the bigger move that the Mac made was to Mach. Mach actually gave us our extensions, threading, and other nice stuff. Sure, it's a little slower than the normal *NIX kernels. But it's really convenient and nice. In the end, UNIX is really a geek toy while Mach improved the overall user experience.


I think there is a definite place for CLI tools and GUI tools as far as end users are concerned. There are some tasks that are far more productive on the CLI (even accounting for the learning curve in the context of repetitive tasks), and some in the GUI.

However, as far as developers and administrators are concerned, the CLI tools are invaluable. For one, they provide a lot of functionality for free that may not exist in other operating systems. Not all functions need a "face", some can run faceless, some can run as background services, others work just fine with text input and output. There are a countless number of useful purposes for the CLI in system administration, programming, and several other fields, I guess it all depends on what you are doing with your computer and how you think and operate.


Why would you separate the CLI with the new kernel this way? The two are rather joined at the hip. The Mach kernel was a kernel designed for a Unix environment. The developers working in and developing Mach were no doubt operating in a Unix environment, and Mach was probably originally developed specifically for a Unix environment. This would mean that the way files are opened, the way processes are spawned and killed, the file structure, the basic of Unix metaphor of "everything is a file", sockets, etc. are all concepts that with closely with the kernel, or the "engine" of the OS.

Today, all of these same Unix concepts are still very much a part of OS X. OS X is a POSIX compliant OS. It uses network sockets, it maintains process IDs, file/directory permissions, etc. When you force quit an app, you are simply doing a kill -9 of the process ID. When you change permissions on a file you are doing a chmod, etc.

My point is that I really don't think you can have one without the other. It would take some serious effort to port Mach to Windows, because it is a Unix kernel designed for a Unix operating system.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:16 PM
 
Originally Posted by rickey939
rickey939® approves this thread.

I approve of you. I think you are awesome.
     
Professional Poster
Join Date: Nov 2004
Location: eating kernel
Status: Offline
Reply With Quote
Sep 5, 2006, 09:22 PM
 
UNIX sounds like unity
MS-DOS sounds like MSatan
Signature depreciated.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:26 PM
 
Originally Posted by C.A.T.S. CEO
UNIX sounds like unity
MS-DOS sounds like MSatan


Yeah... My cat's name is Mittens!
     
Professional Poster
Join Date: Nov 2004
Location: eating kernel
Status: Offline
Reply With Quote
Sep 5, 2006, 09:29 PM
 
Originally Posted by besson3c
Yeah... My cat's name is Mittens!
What does that have to do with windows and unix?
Signature depreciated.
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 09:30 PM
 
Originally Posted by besson3c
I think there is a definite place for CLI tools and GUI tools as far as end users are concerned. There are some tasks that are far more productive on the CLI (even accounting for the learning curve in the context of repetitive tasks), and some in the GUI.

However, as far as developers and administrators are concerned, the CLI tools are invaluable. For one, they provide a lot of functionality for free that may not exist in other operating systems. Not all functions need a "face", some can run faceless, some can run as background services, others work just fine with text input and output. There are a countless number of useful purposes for the CLI in system administration, programming, and several other fields, I guess it all depends on what you are doing with your computer and how you think and operate.


Why would you separate the CLI with the new kernel this way? The two are rather joined at the hip. The Mach kernel was a kernel designed for a Unix environment. The developers working in and developing Mach were no doubt operating in a Unix environment, and Mach was probably originally developed specifically for a Unix environment. This would mean that the way files are opened, the way processes are spawned and killed, the file structure, the basic of Unix metaphor of "everything is a file", sockets, etc. are all concepts that with closely with the kernel, or the "engine" of the OS.

Today, all of these same Unix concepts are still very much a part of OS X. OS X is a POSIX compliant OS. It uses network sockets, it maintains process IDs, file/directory permissions, etc. When you force quit an app, you are simply doing a kill -9 of the process ID. When you change permissions on a file you are doing a chmod, etc.

My point is that I really don't think you can have one without the other. It would take some serious effort to port Mach to Windows, because it is a Unix kernel designed for a Unix operating system.
Repetitive tasks are quicker on the CLI simply because they're scriptable. Of course, you don't need a CLI system to do those tasks. You could simply code in C or (on Mac OS X) Cocoa, which is arguably just as easy as coding scripts and does not require a CLI.

Mach was designed to replace the UNIX kernel, but actually doesn't require UNIX to be running on top of it. You can run many operating system's on top of Mach, without any UNIX required. All Mach operating systems are currently *NIX though. MkLinux, Hurd, and Darwin.

I disagree that it would take serious effort to port an existing non-UNIX application to Mach though. I mean, porting an operating system between kernels is a serious effort onto itself. But just because UNIX based operating systems get a head start because there is some UNIX emulation in Mach doesn't mean other operating systems would be impossible to port. I think Windows NT wouldn't be a relatively extremely hard port, and once you had DOS running on Mach, which again probably wouldn't be too hard, you could get Windows 9X running. Mach was designed to replace traditional UNIX kernels, but I think you're confusing the CLI with the kernel. I don't see any technical reason why DOS couldn't run on top of Mach. Your CLI interface would be different, and you wouldn't have file permissions, but I don't think Mach hard enforces those things. I think those things are opt in.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:37 PM
 
Originally Posted by goMac
Repetitive tasks are quicker on the CLI simply because they're scriptable. Of course, you don't need a CLI system to do those tasks. You could simply code in C or (on Mac OS X) Cocoa, which is arguably just as easy as coding scripts and does not require a CLI.
No, it's not. Anybody already familiar with the command line environment can write many kinds of loops that perform repetitive tasks in a single line of text. Any CLI app that will accept regular expressions will allow you to to complex pattern matching, which is often an important part of these sorts of repetitive tasks. By the time you could even fire up XCode, a good Unix admin would already have the task done. A script generally suggests some sort of text file you create and assign with executable permissions, but many repetitive tasks don't even have to be included in a script (as per this way of thinking of them) to execute.

Cocoa is great for designing OS X apps that have a GUI, or complex apps that warrant hauling out C. It is not the right tool for simple sys admin tasks. Ditto for Java. This is why languages like Perl, Python, etc. exist. Apples and oranges.


Mach was designed to replace the UNIX kernel, but actually doesn't require UNIX to be running on top of it. You can run many operating system's on top of Mach, without any UNIX required. All Mach operating systems are currently *NIX though. MkLinux, Hurd, and Darwin.

I disagree that it would take serious effort to port an existing non-UNIX application to Mach though. I mean, porting an operating system between kernels is a serious effort onto itself. But just because UNIX based operating systems get a head start because there is some UNIX emulation in Mach doesn't mean other operating systems would be impossible to port. I think Windows NT wouldn't be a relatively extremely hard port, and once you had DOS running on Mach, which again probably wouldn't be too hard, you could get Windows 9X running. Mach was designed to replace traditional UNIX kernels, but I think you're confusing the CLI with the kernel. I don't see any technical reason why DOS couldn't run on top of Mach. Your CLI interface would be different, and you wouldn't have file permissions, but I don't think Mach hard enforces those things. I think those things are opt in.

Usn't Mach a POSIX compliant kernel? Running a POSIX kernel on a non-POSIX OS is not a trivial matter, from what I understand.
     
Eug
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status: Offline
Reply With Quote
Sep 5, 2006, 09:40 PM
 
Unix is written by über computer geeks for über computer geeks. 'Nuff said.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:44 PM
 
Originally Posted by Eug
Unix is written by über computer geeks for über computer geeks and nobody else. 'Nuff said.

Don't agree. Unix was written with mechanism in mind, and leaves policy up to the users and application developers to sort out. OS X is one of the ways a Unix OS has been implemented, and it is used by people who are not uber geeks.
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 09:46 PM
 
Originally Posted by besson3c
No, it's not. Anybody already familiar with the command line environment can write many kinds of loops that perform repetitive tasks in a single line of text. Any CLI app that will accept regular expressions will allow you to to complex pattern matching, which is often an important part of these sorts of repetitive tasks. By the time you could even fire up XCode, a good Unix admin would already have the task done. A generally script implies some sort of text file you create and assign with executable permissions, but many repetitive tasks don't even have to be included in a script (as per this way of thinking of them) to execute.

Cocoa is great for designing OS X apps that have a GUI, or complex apps that warrant hauling out C. It is not the right tool for simple sys admin script tasks. Ditto for Java. This is why languages like Perl, Python, etc. exist. Apples and oranges..
But Python existed on OS 9, which is not POSIX compliant.

I agree that writing a script will take less time, but I work in an environment where most likely I'll be giving whatever it is to someone else to be run in batch. And they don't want to have to mess with a scripting system.

I think again you're confusing scripting with POSIX compliance. Many other OS's implement scripting languages with many of the features your describe. Command line tools aren't necessary to have a scripting language. I'm not saying command line tools aren't cool and all. I'm just saying that's a very narrow minded view. While for you and I, having a command line tool is useful, it's not a great blanket argument to say UNIX is better than Windows just because it's scriptable, because Windows is also scriptable, with scripting languages that support the same things.

(Edit: and if it was really needed, I could install software to make Windows POSIX compliant. Hell, IIRC Monad is POSIX compliant).

Originally Posted by besson3c
Usn't Mach a POSIX compliant kernel? Running a POSIX kernel on a non-POSIX OS is not a trivial matter, from what I understand.
Mach can emulate POSIX compliance. It wasn't designed like a traditional UNIX kernel, but it can emulate one. That was why Mach was built. To replace the UNIX kernel while still keeping compatibility. I see no reason an OS couldn't be posted onto Mach instead of it's POSIX emulation. I'm no Mac OS X internals expert, but I think Mac OS X is more of a Mach citizen than a UNIX citizen at it's core.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 09:57 PM
 
Originally Posted by goMac
But Python existed on OS 9, which is not POSIX compliant.

I agree that writing a script will take less time, but I work in an environment where most likely I'll be giving whatever it is to someone else to be run in batch. And they don't want to have to mess with a scripting system.

I think again you're confusing scripting with POSIX compliance. Many other OS's implement scripting languages with many of the features your describe. Command line tools aren't necessary to have a scripting language. I'm not saying command line tools aren't cool and all. I'm just saying that's a very narrow minded view. While for you and I, having a command line tool is useful, it's not a great blanket argument to say UNIX is better than Windows just because it's scriptable, because Windows is also scriptable, with scripting languages that support the same things.
I'm saying that Windows is inferior in this regard because of its design - inconsistent ability to pipe/direct input/output to other tools, inconsistent output, a lot of binary data, non-text formats to wrestle with, etc. I'm not the only one that would say this, I'm actually stealing these ideas from a book of Eric Raymond's.

Maybe I"m not making myself clear. I realize that languages can be ported to run on non-POSIX compliant operating systems. I'm saying that I think it would represent a far greater effort to port an entire *kernel* to a non-POSIX OS, to the point of it probably being a waste of time.


(Edit: and if it was really needed, I could install software to make Windows POSIX compliant. Hell, IIRC Monad is POSIX compliant).
What is Monad, a Vista technololgy?

I also realize you could install Cygwin, but my point is that Windows was designed based on inferior programming techniques and practices. The culture is hard to pinpoint because of so much inconsistency. Like somebody else said, it's really like developing apps for OS 9.

Mach can emulate POSIX compliance. It wasn't designed like a traditional UNIX kernel, but it can emulate one. That was why Mach was built. To replace the UNIX kernel while still keeping compatibility. I see no reason an OS couldn't be posted onto Mach instead of it's POSIX emulation. I'm no Mac OS X internals expert, but I think Mac OS X is more of a Mach citizen than a UNIX citizen at it's core.
I guess I'm not really understanding your point. To me, Mach was/is a Unix kernel developed for a Unix operating system. Maybe you could port it to another platform, but why? Maybe you could port NT to Unix, and maybe you could use the OS 9 kernel on Windows, but why? You'd basically have to completely gut the thing and virtually start from square one. If you want to run a POSIX kernel, run it in a POSIX OS, like Be did with BeOS.

Maybe I'm not completely accurate myself here, I'm just repeating myself so that I'm not misunderstood
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 10:12 PM
 
Originally Posted by besson3c
I'm saying that Windows is inferior in this regard because of its design - inconsistent ability to pipe/direct input/output to other tools, inconsistent output, a lot of binary data, non-text formats to wrestle with, etc. I'm not the only one that would say this, I'm actually stealing these ideas from a book of Eric Raymond's.
Again, you're comparing Windows to UNIX when they were built for two different purposes. UNIX strives to be the best CLI OS it can. This pretty much means everything is going to have to be in plain text, and to pass information between programs effectively, you have to pipe.

Windows was built (at least Microsoft tried to) be the best GUI OS it could be. This means binary files (because they're faster in that situation). It doesn't mean the data in that file is locked away from you. It just means your script has to use a library to read that file, which in some cases, may even be faster to use.

IIRC Windows can do piping too.

Originally Posted by besson3c
Maybe I"m not making myself clear. I realize that languages can be ported to run on non-POSIX compliant operating systems. I'm saying that I think it would represent a far greater effort to port an entire *kernel* to a non-POSIX OS, to the point of it probably being a waste of time.
Again, Mach is POSIX friendly. This certainly doesn't mean it's POSIX only. It's like saying because Mac OS X has a UNIX foundation it would be a waste of time to write anything other than UNIX applications on it. For example, every thread on a Mach system is a... Mach thread. Not a UNIX thread. Although Mach can provide emulation to run UNIX functions on a Mach thread. That's all Mach being POSIX compliant means. It's simple emulation. It doesn't mean you can't port an operating system to run right on top of Mach and not use any of the POSIX emulation.

Originally Posted by besson3c
What is Monad, a Vista technololgy?
New command line for XP and Vista.

Originally Posted by besson3c
I also realize you could install Cygwin, but my point is that Windows was designed based on inferior programming techniques and practices. The culture is hard to pinpoint because of so much inconsistency. Like somebody else said, it's really like developing apps for OS 9.
Again, Windows was built for GUI use. This doesn't mean it's a lesser OS. It just means it was optimized for a different purpose.

Originally Posted by besson3c
I guess I'm not really understanding your point. To me, Mach was/is a Unix kernel developed for a Unix operating system. Maybe you could port it to another platform, but why? Maybe you could port NT to Unix, and maybe you could use the OS 9 kernel on Windows, but why? You'd basically have to completely gut the thing and virtually start from square one. If you want to run a POSIX kernel, run it in a POSIX OS, like Be did with BeOS.

Maybe I'm not completely accurate myself here, I'm just repeating myself so that I'm not misunderstood
You're somewhat right. Mach was designed to replace traditional UNIX kernels. This doesn't mean it can only replace UNIX kernels. Mach provide hooks for POSIX stuff. That doesn't mean it's only POSIX. In fact, the Mach API's, by definition, are not POSIX.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Posting Junkie
Join Date: Feb 2000
Location: Washington, DC
Status: Offline
Reply With Quote
Sep 5, 2006, 10:13 PM
 
The problem with Linux is... it tries to be everything to everyone. There also isn't a unified feature set... which makes programming difficult. There are projects like Linux Standard Base, but they aren't moving all that fast.

Speaking of programs, there are MAJOR inconsistencies from program to program. Windows and OS X aren't perfect, but they are better than Linux programs.

I've continued to tinker with Linux, but it's still just not there.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 10:35 PM
 
Originally Posted by goMac
Again, you're comparing Windows to UNIX when they were built for two different purposes. UNIX strives to be the best CLI OS it can. This pretty much means everything is going to have to be in plain text, and to pass information between programs effectively, you have to pipe.

Windows was built (at least Microsoft tried to) be the best GUI OS it could be. This means binary files (because they're faster in that situation). It doesn't mean the data in that file is locked away from you. It just means your script has to use a library to read that file, which in some cases, may even be faster to use.

IIRC Windows can do piping too.

I'll leave the discussion about Mach alone for now, you could very well be right, I just don't have much more to add...

Data in proprietary formats *is* locked away from you. If there is a Windows scripting language that allows you to access some of them, fine, but you still have to deal with the limitations of this scripting language. An open format is an open format - unfettered access. If each Windows data structure was open and documented, it perhaps wouldn't have these sorts of problems. As it stands, it does.

I wouldn't say that Unix strives to be the best CLI OS it can be. Unix strives for a certain programming philosophy and leaves the interface up to developers and users. It provides mechanism, and is totally ambivalent about what you do with these tools.

This is not just about formats and the issue of whether they are open or not, but about how data structures are passed. If you cannot control how a data structure is passed, if it isn't open or documented, you have absolutely no feedback as to what is going on and can only trust that the app is doing what it is supposed to be doing behind the scenes. Of course, several CLI tools are sort of "black box" too. However, in place are conventions for logging, for providing feedback to STDOUT, and of course with everything being open one is free to debug problems themselves.

This isn't to say that I think that Unix is better simply because it is open. I generally believe that an open archecture does almost always lead to a better product, but it's more than that - it's the combination of clear and documented data structures, open file formats, conventions for passing data in and out of the app, conventions for logging, the common practice of abiding by existing open protocols and formats, the philosophy of writing apps to do one thing well and therefore strive for sheer simplicity, etc.

Look at what some of the developers inside MS have been saying about Vista. Vista has been a big convoluted mess because its code base is a giant complicated, monolithic thing that is a hodge podge of all sorts of legacy and new code. In a Unix operating system, with exception to the kernel, the operating system will be comprised of a series of small tools that interoperate with each other, do one thing well, are extremely simple in design, easy to maintain, easy to debug, easy to dissect, and built off of some very well established conventions and programming design.

This is at the heart of my argument.

Yes, they are designed for different purposes, but you could make a better Windows than what Windows is now if you could start over and rewrite Windows abiding by these programming practices. This is straight-up computer science theory - in a nutshell the K.I.S.S. rule.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 10:39 PM
 
Originally Posted by mitchell_pgh
The problem with Linux is... it tries to be everything to everyone. There also isn't a unified feature set... which makes programming difficult. There are projects like Linux Standard Base, but they aren't moving all that fast.

Speaking of programs, there are MAJOR inconsistencies from program to program. Windows and OS X aren't perfect, but they are better than Linux programs.

I've continued to tinker with Linux, but it's still just not there.

Are you talking about GUI apps? If so, no one has ever disputed that the whole X-Windows thing of providing mechanism and leaving policy up to third parties is both a strength and a weakness. To end users, I would suggest that it is a weakness. Hopefully this is a problem that will be solved one day.

Where Unix is incredibly, I mean almost anal-retentively consistent is in the bulk of its command line tools that drive the OS. When I talk about these command line tools, bear in mind that I'd be willing to bet that its corresponding GUI tools are simply front-ends. In OS X, I wouldn't at all be surprised if emptying a file from the trash is simply a front end to a rm command, or moving a file is a front-end to mv command, etc. You have this functionality there already, it works just fine and has for years, why reinvent it?
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 10:51 PM
 
Originally Posted by besson3c
Yes, they are designed for different purposes, but you could make a better Windows than what Windows is now if you could start over and rewrite Windows abiding by these programming practices. This is straight-up computer science theory - in a nutshell the K.I.S.S. rule.
Computer Scientists should know that our job is building systems for those who are not Computer Scientists. And Microsoft gives the same tools UNIX does in developer land. Yes, normal users won't get access to nifty scripting stuff. But UNIX is not designed for normal users. It's designed for power users, and as I said, Microsoft provides the similar functionality to power users who want to use it. Windows advantage is it (depending on your tastes) can work well for both power users and normal users.

UNIX is great for Computer Scientists. There is no debate about that. But that doesn't make it the overall better OS.

This is the same reason Linux folk insist Linux will rule the world, but it never does.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 10:59 PM
 
Originally Posted by goMac
Computer Scientists should know that our job is building systems for those who are not Computer Scientists. And Microsoft gives the same tools UNIX does in developer land. Yes, normal users won't get access to nifty scripting stuff. But UNIX is not designed for normal users. It's designed for power users, and as I said, Microsoft provides the similar functionality to power users who want to use it. Windows advantage is it (depending on your tastes) can work well for both power users and normal users.

UNIX is great for Computer Scientists. There is no debate about that. But that doesn't make it the overall better OS.

This is the same reason Linux folk insist Linux will rule the world, but it never does.

No, the reason why Linux will never rule the world is because Unix people tend to be poor business people, as has Apple (in its entire history). There is nothing technically missing in UNIX in providing a great OS for end users, OS X has proven that.

Sorry, Microsofties do not get the same sorts of tools. Windows is not as flexible as Unix/Linux is, period. It never will be as a proprietary operating system, and while debate could go beyond that (like I have attempted), at the end of the day there is little point as the buck does stop there.

Why do you keep on insisting that Unix is designed for power users? Have you not read what I've said about mechanism and policy? Does this not make sense to you? This is not my theory, this has been stated many times in many different ways. A Unix operating is a kernel plus a set of tools. The philosophy of the creators of Unix is to essentially say "here are the tools, go nuts, have fun".

OS X is a great example of how Unix can be made into an OS that is not for power users. Even if you want to insist that what makes OS X OS X is its Mach kernel and its Unix underpinnings are moreorless irrelevant, just looking at OS X's lineage alone, you could easily argue this. OS X came from Next/OpenStep, which was a Unix operating system. OS X is a mix of OS 9 interface ideas with a Unix engine, but make no mistake, it is a Unix operating system.

Like I said, Unix is neither an operating system for advanced or novice users. It's more of a set of open ended tools based on an underlying philosophy.
     
Eug
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status: Offline
Reply With Quote
Sep 5, 2006, 11:01 PM
 
Originally Posted by besson3c
Don't agree. Unix was written with mechanism in mind, and leaves policy up to the users and application developers to sort out.
Spoken like a true über computer geek.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 11:02 PM
 
Originally Posted by Eug
Spoken like a true über computer geek.


Hey, having OS X as the perfect example of what I'm stating makes making my arguments pretty easy, and not just pie-in-the-sky.
     
Eug
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status: Offline
Reply With Quote
Sep 5, 2006, 11:08 PM
 
Originally Posted by besson3c
Hey, having OS X as the perfect example of what I'm stating makes making my arguments pretty easy, and not just pie-in-the-sky.
Actually you just went thru a bunch of arguments as to why OS X ≠ Unix, and that the Unix to which you refer is a class of tools that OS X is just a front end for.

To reword your statements a bit... In essence basically what you've proved is that few people want to use your Unix tools as is.

That in my view is one of its major flaws. There is essentially zero utility or even consistency to it for the general population. It has taken someone like Jobs and friends to reign it in, for it actually to be meaningful to most people for personal use.

P.S. I think the most relevant statement you have made in this thread is this one:
Part of why Unix is not where Microsoft is today is related to how it was managed, and how its creators felt about their work becoming commiditized.
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 11:16 PM
 
Originally Posted by Eug
Actually you just went thru a bunch of arguments as to why OS X ≠ Unix, and that the Unix to which you refer is a class of tools that OS X is just a front end for.
Huh? You mean OS X the GUI (i.e. Aqua), or OS X the gestalt?

To reword your statements a bit... In essence basically what you've proved is that few people want to use your Unix tools as is.
I've never disputed the fact that more people have found a GUI based operating system easier to learn. That's tangential to the point I'm trying to make though.

That in my view is one of its major flaws. There is essentially zero utility or even consistency to it for the general population. It has taken someone like Jobs and friends to reign it in, for it actually to be meaningful to most people for personal use.

It's major flaw is a historical one. Nobody thought about policy in creating X-Windows (which has been around for ages, BTW). Nobody thought "this is how a GUI interface should look and behave", or "this is how we should create a consistent experience for the user". This was left up to the general public to do with as they wish. There were probably a number of other businessney influences and factors to account for to, if you are a historian.

However, just because there isn't a consistent and solid GUI for Unix/Linux does not speak to its technical merits, underlying philosophy, or anything like that, it just speaks to the reality, not too different from the fact that there aren't many games for OS X compared to Windows... why? There just... aren't.... a number of factors, but none of them having to do with the merits of the platform from a technical perspective.
     
Eug
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status: Offline
Reply With Quote
Sep 5, 2006, 11:33 PM
 
I've never disputed the fact that more people have found a GUI based operating system easier to learn. That's tangential to the point I'm trying to make though.
Tangential? Not at all. The point you are trying to make is "Why Unix is better than Windows". Unfortunately, it isn't, for most people of the world, precisely for that reason.


However, just because there isn't a consistent and solid GUI for Unix/Linux does not speak to its technical merits, underlying philosophy, or anything like that, it just speaks to the reality, not too different from the fact that there aren't many games for OS X compared to Windows... why? There just... aren't.... a number of factors, but none of them having to do with the merits of the platform from a technical perspective.
Like I said, your arguments are those from the perspective of an über computer geek.

You said it yourself. The success and failure of a technology is only partially related to the actual guts of the technology. That there isn't a consistent and solid GUI for Unix/Linux DOES speak a lot to its underlying philosophy. Until Steve Jobs showed up, ease of use and ease of learning were never a real consideration of *nix. In fact, IMO, outside of OS X, it still isn't a real consideration. User friendliness is just not part of the philosophy of a computer geek.

P.S. I went thru the same arguments with a network administrator and a computer engineer. They just didn't get it. "OMFG Unix/Linux's is so damn powerful for what we do once you learn it, so it's better than Windows." However, the concepts of aesthetics, ergonomics, and ease of use were completely lost on them. From the end user point of view, those are FAR more important that what you talk about. There could be miniature termites pulling mechanical levers inside her iBook and my GF wouldn't care, as long as her a browsers and her office apps worked great.

Oh and I think I'm going to slap the next newly graduated computer engineer who says he can design a user friendly website simply because he knows how to program one.
(Last edited by Eug; Sep 5, 2006 at 11:40 PM. )
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 11:41 PM
 
Originally Posted by Eug
Tangential? Not at all. The point you are trying to make is "Why Unix is better than Windows". Unfortunately, it isn't, for most people of the world, precisely for that reason.


Bingo.

If you had said "UNIX is better than Windows for computer scientists." that probably would have earned a "Well duh".
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
Clinically Insane
Join Date: Mar 2001
Location: yes
Status: Offline
Reply With Quote
Sep 5, 2006, 11:48 PM
 
Originally Posted by Eug
Tangential? Not at all. The point you are trying to make is "Why Unix is better than Windows". Unfortunately, it isn't, for most people of the world, precisely for that reason.



Like I said, your arguments are those from the perspective of an über computer geek.

You said it yourself. The success and failure of a technology is only partially related to the actual guts of the technology. That there isn't a consistent and solid GUI for Unix/Linux DOES speak a lot to its underlying philosophy. Until Steve Jobs showed up, ease of use and ease of learning were never a real consideration of *nix. In fact, IMO, outside of OS X, it still isn't a real consideration. User friendliness is just not part of the philosophy of a computer geek.

P.S. I went thru the same arguments with a network administrator and a computer engineer. They just didn't get it. "OMFG Unix/Linux's is so damn powerful for what we do once you learn it, so it's better than Windows." However, the concepts of aesthetics, ergonomics, and ease of use were completely lost on them. From the end user point of view, those are FAR more important that what you talk about. There could be miniature termites pulling mechanical levers inside her iBook and my GF wouldn't care, as long as her a browsers and her office apps worked great.

Oh and I think I'm going to slap the next newly graduated computer engineer who says he can design a user friendly website simply because he knows how to program one.


I see what you are saying now, I think we are starting to connect. You are saying (in my own words) that the buck really does stop at defining "great" with the merits of the interface, as far as end users are concerned.

I actually agree with you. However, I was putting that aside in my original argument. In a perfect world, we could have our cake and eat it too and have a brilliant open archetecture AND a killer GUI. That would indeed be awesome. My original post was sort of my tribute to the Unix architecture, culture, design philosophy, etc. leaving interface aside. I probably should have changed my subject to be something like:

"why the Unix OS framework below the user interface is superior to Windows", or something like that... It's getting late, so I'm not coming up with a more creative title, but hopefully you get the gist.


Interface is very important to me, but so is capability and functionality. At this point, I would simply not ever be happy using OS 9, even if I was absolutely in complete and utter love with the GUI (and it was still being supported, blah blah blah).
     
Posting Junkie
Join Date: May 2001
Location: Portland, OR
Status: Offline
Reply With Quote
Sep 5, 2006, 11:50 PM
 
Originally Posted by besson3c
Sorry, Microsofties do not get the same sorts of tools. Windows is not as flexible as Unix/Linux is, period. It never will be as a proprietary operating system, and while debate could go beyond that (like I have attempted), at the end of the day there is little point as the buck does stop there.
I disagree. Windows has Monad, Visual Studio Express, .Net, and more. Arguably, VS is still the best coding enviroment. Windows has tons of geek toys. I think some geeks have the following problems with them:

a) They aren't bundled with the system.
b) They aren't open source.
c) They don't work on Linux.

All of these are acceptable arguments, except for most geeks, they aren't issues. It doesn't take much to install them. Not too many people are political enough to go "ZOMG closed source!". And not a lot of people care about supporting Linux.

Now, Mac OS X does a very good job of taking a GUI good for normal users and mixing it with UNIX for power users. In that case, Mac OS X is very good because normal users never have to touch the CLI. And while Windows isn't nearly as good as this, it's pretty much in the same boat. There are power tools available for you if you need them.
8 Core 2.8 ghz Mac Pro/GF8800/2 23" Cinema Displays, 3.06 ghz Macbook Pro
Once you wanted revolution, now you're the institution, how's it feel to be the man?
     
 
Thread Tools
Forum Links
Forum Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Top
Privacy Policy
All times are GMT -5. The time now is 06:12 PM.
All contents of these forums © 1995-2011 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.7 © 2000-2011, Jelsoft Enterprises Ltd., Content Relevant URLs by vBSEO 3.3.2