Explaining The Windows/UNIX Cultural Divide
giampy writes "Joel Spolsky writes a review-like article on the last book of Eric S. Raymond (The Art of Unix Programming). His views on the cultural differences among Windows and Unix programmers are well explained. Overall, an interesting read." Also on the topic of Windows, badriram writes "Microsoft is reorganizing the windows team, it seems the are separating the
OS core development. Seems like things heading in the right direction in creating a more secure OS, and making it more business oriented. Read the
article here."
Check out Monad, the OO extendable command shell for Longhorn. Quite interesting.
Btw, on 2000 and XP (maybe 9x too), you can assign a shortcut to the command prompt, say Ctrl+Alt+S, so hitting that will get you a command prompt quickly. And enabling autocomplete to and QuickEdit and Insert modes on cmd.exe adds a lot to productivity too.
Go somewhere random
They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).
Or Start --> Run, CMD, enter.
Hardly call that buried.
You are incorrect, sir.
It is MacOS that is for fags.
HTH.
ESR: "Whenever possible, prototype in an interpreted language before coding C."
Hello, Mr Raymond, there are actually quite a number of high-level compiled languages, that will give you most of the convenience of an interpreted language with most of the speed of C. Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.
or if you have a "windows" keyboard:
+ R
cmd
takes.. hmm about 2 secs
Have a nice day!
Or just move the darn thing... you're allowed to you know.
I move my command line shortcut out to the main start menu on every computer that I use (with permission of the owner if that isn't me)
42 - So long and thanks for all the fish.
We're in our 14th year of our product. Maintenance and enhancements are the norm. No product is bug-free, but for the complexity of our Windows program, it's relatively easy for one developer to take another developer's code and work with it. We have about 20 developers in our company.
For anyone who has ever wondered why more people don't use linux, staroffice, etc, I recommend the classic on technology marketing "Crossing the Chasm" by Geoffrey Moore. It describes the "chasm" which technology companies face in crossing from the early adopter market to the pragmatic, mainstream market.
The consumers on the left side of the chasm - what Moore terms the innovators and early adopters - enjoy using new technology, enjoy putting things together, have the vision to see the potential of new technology, and are willing to put up with inconveniences in the iterim.
The mainstream market is pragmatic. It prefers to bet on clear market leaders (so as to minimise risk and benefit from the supporting ecosystem which inevitably grow around the market leader), is willing to wait and see, and needs complete, fully functional, headache-free solutions for their specific needs. Consumers in the mainstream market rely on references within the mainstream market to drive their buying decisions.
A technology company which wants to transition from the early adopter market to the mainstream market therefore has to bridge this "chasm", and in the process, change the focus of its marketing efforts and adjust its product accordingly. As far as the desktop market is concerned, Unix (with the exception of Mac OS X) is a product which clearly has not bridged the chasm.
The computer as a typical consumer uses it today will soon cease to exist. It's all going to be embedded devices, just like toasters, but like toasters they need to work everytime.
MicroSoft's main revenue will come from embedded devices to surf the web, type documents, order pizza (like the iopener), play movies and games, etc(like the home theater stuff)...if they do the correct things in the next few years
Joe Average, when they live with a TiVo, they like it, they don't know it runs Linux and don't really care one way or another, this is Billys problem, in the end no one really cares what it runs so long as it works, for a recent lesson look at the pull back of Ultimate TV, the supposed TiVo killer.
Linux (or Unix)has never been the problem, it works the way it should, it can be hidden from the consumer completely, the problem has always been X, its inconsistancies are its problems, they will never be fixed, just another kludge added to the rest making it ever more complicated.
Read the article (I know, it will be hard to force yourself to do so if you are a slashdot regular
I don't know if Spolsky didn't read this far, or if he's just a weak plagarist, or maybe this is the only part that made a big enough impression on him to merit rephrasing for his own column.
The only difference I see is POV, and substitute "mac" for "windows".
Instead of interoperating with published standards, they try to interoperate with Microsoft legacy methodologies (e.g., everything must bee visual basic scriptable.) This is a terrible source of security worm-holes. I wish they would reorganize their visual basic scripting fanatics to Antarctica.
It's called automation. It's not visual basic, it's WSH (which encompasses vbscript, but not visual basic). You would do well to learn about something before you decide to hate it.
funny munging
"1. Try to assign a shortcut key to cmd.exe (the command processor). Did not find a way to do this directly, because the online documentation is plain wrong. Had to create a shortcut (on the desktop) to get it to work."
Go to the Start menu Programs then Acessories then right click on Command Prompt select Properties and set your shortcut keys. You might also note the %SystemRoot%\system32\cmd.exe and %HOMEDRIVE%%HOMEPATH% pathing and use that instead of a static links in your shortcut.
Yes, you guessed correctly, it was a clustering environment.
It was a _huge_ project, trying to deliver a web-based front-end to an existing system. The ticket was around 150m Euro.
The architecture basically fell apart about 75% through the project. I guess around the time they stopped making use cases and actually tried to scale the prototypes up to work on their clusters. The support calls to Microsoft went very high and it was an engineer from the bank who finally discovered the real problem, apparently. The COM+ developers and the MSMQ developers knew their own products very well but were unable to figure out what was happening between the two.
The project was cancelled and I believe it was not redesigned - the economic crisis meant that the company had to cut back.
Needless to say this kind of experience made the company somewhat cautious about using MS products for anything serious after that. I don't know whether they tried an alternative, most of the business runs very successfully on the classic mainframe model (COBOL, CICS, MVS, etc.)
Ceci n'est pas une signature
X is a protocol, you are referring to the programs
written that use X, ie. Gnome/KDE.
try running fluxbox for a window manager and watch
your machine r0x!
I have plenty of common sense, I just choose to ignore it. -- Calvin
Although some people may attack you, this is insightful. Sometimes security zealots get out of hand and recommend practices that are ill-suited for particular situations.
However, I'll give you a reason why your desktop computer should have a password: you're not protecting it from other people, but you're protecting it from unknown code.
Newer versions of Windows have a "runas" feature (which I believe is activated by default). If you make your main account a non-privileged account and use "runas" whenever you need to run a privileged operation (install software, modify system settings), your computer will be safer from various malicious programs. MacOS X already does this for you.
This isn't great protection since you probably care more about the data on your computer rather than the integrity of the OS (and one would assume your data is writeable by your main account), but it does help nonetheless.
Keeping little stories to ourselves would kind of ruin the whole point of Slashdot, no?
Cold hard facts:
- very large bank spending large amount of money
- web application built on COM+, MSMQ, and MS clustering
- application failed because of incompatibility in MS's own software layers
- assistance from Redmond failed to solve problem
- project eventually deemed unworkable and killed
Now, you may be right that there was, somewhere, a solution to this, perhaps even an obvious one. However it escaped the people at the time, all competent, all professional.
My story may even be false, it's possible. IT is so complex that the real story is often hard to uncover.
But the conclusion that MS products are heavily vertical and often interoperable only within tight margins (specific OS, specific SP) remains, and is well-known to anyone who has developed for Windows.
Attacking my credentials is not a response. Showing me the well-defined Microsoft APIs that have been used by Microsoft's own application development teams without compromise... now that would be a worthy response.
Ceci n'est pas une signature
I don't recall slashes of either variety in VMS file specifications. They used square brackets and dots, like: "DEVICE:[AIDTOPIA.SLASHDOT]COMMENT.TXT;3". I know lots of people hated this syntax, but I found it quite expressive. For one thing, it was easy to distinguish between a directory listing ([FOO]) and the file which stored the directory information (FOO.DIR).
Perhaps they started allowing slashes for POSIX compliance. That was about the time I (sadly) left the VMS world. I recall DEC claims at a DECUS symposium that VMS was the first OS to achieve POSIX compliance, which was quite a feat since it was so non-UNIXy to begin with.
No, seriously? Windows GUIs suck... compared to what?
Compared to X? The same X where every single programmer just _has_ to use a different layout, different shortcuts, different menu structure, and for bonus points his own widgets?
Not to make you sound like a newbie in the world of computing, but what you are railing against isn't the 'ease of use' of UNIX/GNU/Linux GUIs.
Many, many people fall into this trap. What you are proposing is the adoption of something both unessecary (and in many cases) Evil, Bad and Wrong. This thing is called an SAA CUA. They were practically invented by IBM in the 50s and 60s. These ideas are simple: do something one way and only one way.
From the user's perspective, this is okay. I only have to learn quaduple-double-bucky-shift-Q to print once.
From the UI designer's point of view this is crap. Look at video games. Many custom, learn once and use once indterfaces. Games deal with this by being on the cutting edge of computer-assisted education. They have dollars and reputations staked in 'playability' and 'ease of use' so they do the Right Thing.
Wrong Thing: pick standard, crappy global contants, enforce those on everyone. Aribitrary user interfaces are just as bad as random interfaces.
Right Thing: common core behavior in frameworks that act AS EXPECTED, customized application interfaces to the TASK that the application SOLVES or DOES. Show and Walk users through the non-standard parts with HOW-TOs, demos and trainers.
The Right Way is more work for the lazy, boring person who wouldn't write documentation anyway. The Wrong Way means that you probably will guess correctly on the first try, but the application programmer still didn't do his job.
This is a very important sticking point with the Aunt Mable newbie computer user argument as well. If good ol' Auntie has never used a computer, learning a KDE (GNOME) desktop or the UNIX command line will be as EQUALLY challenging as learning a WIMP like Windows. MACs were/are easily learned because of some UI choices that favor new users without bothering experienced users (of those UI's).
Finally, like in the world of video games, with the diversity of UIs in Linux/GNU/Unix I can select those features/interfaces that work best and use them. With a system like Windows, some people won't buy/sell your software unless is meets the criteria in the SAA CUA.
I appologise for the grammar. I need more sleep and less Trolls.
"You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."