There was a discussion about this on KDE's Dot (i.e., not this Dot bot the other one). I dislike component models for the reason that they are very tightly integrated. The interfaces are specifically delineated and as such, become immutable. They can't be changed without breaking the application somehow. Also, in order to do anything in the Office model you must load umpteen components, creating dependency hell. The end result is all the bloat of a monolithic application, and then some to make the COM components talk to one another.
Add to this the fact that most Microsoft components are proprietary software, and you have vendor-lock. So really, COM has proven to be object-oriented programming without many of the advantages of OO (and with a layer of cruft added on to make non-OO C and Basic code function as if it were OO).
The Unix method is much simpler: it is simply a series of interconnected programs that expect a certain input and return a certain output. Unix shell programming is a lot like programming in functional style, with the functions being separate executables. The emphasis is on transforming the data you're working with, not on the magic concept of "objects" and "components". Thus, any program that performs the operation on your data the way you want it to is the right tool for the job.
The ideal Linux office suite would probably be something like a super-Emacs. It would have a repository of functions that handled various types of data. When you load a file it would search for and install the functionality it needed, and then unload it when it is done. Despite the jokes (Emacs Makes A Computer Slow and suchlike), Emacs has the power to do a greater variety of tasks than Microsoft Office, in a considerably smaller footprint. Although I've seen mail, news, IRC, and AIM clients, and even Tetris games written entirely inside Emacs, I haven't yet seen the business end of the application spectrum addressed in Emacs, or even using the Emacs philosophy. (Emaccess? Officemacs?) I should really like to see that happen, though.
In the book "This Perfect Day" by Ira Levin (author of Rosemary's Baby), all of society worldwide is controlled by the massive benevolent UniComp computer. Tourists are taken in droves to see UniComp in its daily operations.
Only it's not really UniComp. The real Uni is hidden in an underground complex, and its sole purpose is to keep a certain political leader in power...
This novel hasn't been in print for years and reading it is a rare opportunity. I think it forebodes today's society in many interesting ways...
A simple little 3D engine I was working on abstracted vectors and matrices. I overloaded the +, -, *, and % operators and their assignment kin to perform addition, subtraction, and two flavors of multiplication on 3D vectors, and did something similar with matrices. Updating the position vector of an object was a simple matter of "Position += Motion;".
Not quite as l33t as your mega-polynomials, but yes, operator overloading is cool, and I missed it in Java.
I have become a big fan of Smalltalk recently, where everything is an object and every operator is a method.
Hey, never give up hope! Remember how Borland changed their name to the laughable "Inprise" some time ago? They're back as Borland now. Companies want to please their customers, and if enough want some part of the old SGI back they'll get it.
He's not attacking apple's claims specifically...
on
Mac Rants
·
· Score: 2
... but rather those of rabid Mac zealots, who take Apple's reality-defying marketing hype and inflate it to ridiculous extremes. I met one fellow in my Usenet days who actually claimed that a G3 processor was faster than the fastest Alpha chips. Yeah, right. In PhotoShop?
One of the reasons, I think, why Macs are considered to perform so much better is because MacOS (pre-X) is a compact, well-designed, well-modularized little OS whereas Windows is a bloated mess. If your OS stays out of your way, you can get more done, it's that simple. Also, from a more technical standpoint, if you can bogart the CPU in a CMT environment you will get more performance than a PMT environment where your timeslices are enforced by the kernel.
OS X is significantly more heavyweight, of course, and I've seen some fast Macs stutter on it. (Not like it isn't sweet, though.)
I really don't care about the platform wars, I've used both. I'm just sick of the hype and BS, and people flaming each other over nebulous and inconsequential issues. I'd like to get a new Mac sometime soon... well, maybe when the prices come down a teensy bit more. Till then it's Athlon all the way.:)
Only thing that truly bothers me is the Python requirement. If CML2 is somehow earmarked as the successor to the current kernel config, then that would be a problem as Python would be required in order to compile a damn kernel. I'm sorry, but I think that kernels should be kept relatively free of dependency cruft, i.e., you should only need sh, the compiler and related support tools in order to be able to build yourself a shiny new kernel.
Maybe a Python-to-C translator is in order here?
Scheme and Lisp support macros, but they're a bit different than the C preprocessor. A macro in a Lispy language is an expression that gets evaluated, and the result is an expression that gets evaluated again to give your final answer. It's quite powerful, actually, as it allows you to extend the language inline.
Lisp and Scheme are not really heavy wizardry, unlike hacking DSPs on the bare metal. It requires a different, abstract mode of thought, almost like that of an artist. (Please, no K5-esque "code-is-art" debates). Once you understand how these languages work, they are literally a snap to use. Students don't get bogged down in syntax because there is no syntax to speak of, except that whatever is in parentheses represents a function and its arguments. The read-eval-print loop enables students to talk to the computer, and see the results of their experimentation immediately. The functional and recursive approach lets you see with crystalline clarity the proper way to analyze the problem you're solving. (This translates well to other languages, by the way, even icky things like Visual Basic.)
In order to learn programming, you need to dig through all the design cruft and really understand the principles behind solving problems with a computer. Once this is done, that knowledge carries over into every programming language out there.
I think Scheme is a wonderful general-purpose language. I also think it's great for learning. It's abstract, flexible, and powerful. As for not using it on the job... well, I've used it once or twice for "serious work".:) Then again, I've got a bit of leeway in some areas of my work. These days, however, trendy languages that are likely to be used by employers are the languages that are taught in class.
Stallman has always tried to associate himself with the term "free software", not "open source". Also, he acknowledges the differences between free software licenses (which encompasses things like the X11 and Artistic licenses) and copyleft licenses like the GPL. Try studying the FSF's publications; their position is very clear and well thought-out.
As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?
I don't think that Microsoft has ever quite shaken itself from the philosophy that freely copying software is tantamount to theft of property, and that nobody in their right mind would give any functionally significant software away for zero cost. I can imagine the suits snorting and saying, "A whole OS, for free? There's gotta be a catch."
And physics. If we could get rid of physics it would be a lot easier to keep planes in the air. Actually, the common element seems to be time -- physics supplies it and algorithms consume it. I suggest we stop using time immediately.
Hit the link in his.sig; I wouldn't be surprised if he advocated exactly this!
I'm sorry, but your argument is pretty flimsy. If I had mod status I'd slap you with a "Flamebait" as this is the kind of silliness that characterizes Scott Nudds and other famous trolls. Software is a concrete representation of a mathematical formalism. I'm a Scheme hacker, and part of this language's beauty is the fact that it takes this concept to extremes, being closely associated with the lambda calculus (where EVERYTHING is a function call). Now, based on your conclusions here, this means that programs written in functional languages like Scheme, Haskell, etc. must be the most unreliable... they abstract the entire problem domain into a series of algorithms that invoke each other (and often themselves)! And talk about timing problems... many LISP/Scheme development environments support interpreted code intermingled with compiled code!
In reality, you will discover the opposite: software that employs a functional approach is usually not only extremely reliable, but can reach levels of complexity that staggers most proponents of the Pascal school of thought.
I suspect that you pulled this timing argument out of the same orifice from which Alex Chiu derived his famously stupid "all humans are magnets" nonsense. Algorithms are not concerned with the timing of events, only with the results of the operation. Software can wait around forever for the results, but fails when the results are not what were expected. That is the source of a lot of software reliability and compatibility issues. Timing is an issue when it comes to execution speed, but for most algorithms the time of execution is knowable, and there are algorithmic analysis procedures that software developers go through to improve the speed of their programs; i.e., if algorithm A produces the exact same results as algorithm B but with a tenfold speed increase, we can improve our speed by using algorithm A. (Again, algorithms are concerned with results, NOT timings!)
As for space probes and air traffic control systems, that's what real-time systems are for. The code that runs these real-time applications is usually extremely reliable and coded to run in given time constraints.
What you are describing exists to a small extent in systems like Smalltalk, but overall what you are proposing would introduce the same kinds of problems that led to the development of the all-purpose, stored-program computing machine in the first place, so we're back where we started.
He's a zealot, and sometimes I think we need guys like him in order to change our perspectives every now and then. Slashdot is full of free software softies. And when a Mozilla story runs, half of 'em talk about how they boot IE in VMware 'cause it's the only decent browser anymore...
Carmack's been highly critical of game technology for as long as I've been reading his plans. It's not fanboy-like; the guy's a tech-head and evaluates things from a more rational perspective than the hype and ad copy we're used to seeing. Let's face it: the usual sources, e.g., IGN, PC Gamer, Penny Arcade, don't sweat the technical details; as long as the staff can frag in increased visual glory they're pleased as punch. If the Carmack gets enthused about something, it's going to be good.
I dunno about you, but to me it r0x that Tribes 2 shipped for Linux, right out of the starting gate. I take it as a good sign for the future of Linux gaming.
There was a discussion about this on KDE's Dot (i.e., not this Dot bot the other one). I dislike component models for the reason that they are very tightly integrated. The interfaces are specifically delineated and as such, become immutable. They can't be changed without breaking the application somehow. Also, in order to do anything in the Office model you must load umpteen components, creating dependency hell. The end result is all the bloat of a monolithic application, and then some to make the COM components talk to one another.
Add to this the fact that most Microsoft components are proprietary software, and you have vendor-lock. So really, COM has proven to be object-oriented programming without many of the advantages of OO (and with a layer of cruft added on to make non-OO C and Basic code function as if it were OO).
The Unix method is much simpler: it is simply a series of interconnected programs that expect a certain input and return a certain output. Unix shell programming is a lot like programming in functional style, with the functions being separate executables. The emphasis is on transforming the data you're working with, not on the magic concept of "objects" and "components". Thus, any program that performs the operation on your data the way you want it to is the right tool for the job.
The ideal Linux office suite would probably be something like a super-Emacs. It would have a repository of functions that handled various types of data. When you load a file it would search for and install the functionality it needed, and then unload it when it is done. Despite the jokes (Emacs Makes A Computer Slow and suchlike), Emacs has the power to do a greater variety of tasks than Microsoft Office, in a considerably smaller footprint. Although I've seen mail, news, IRC, and AIM clients, and even Tetris games written entirely inside Emacs, I haven't yet seen the business end of the application spectrum addressed in Emacs, or even using the Emacs philosophy. (Emaccess? Officemacs?) I should really like to see that happen, though.
FDR had the Japanese codes months before Pearl Harbor.
He knew it would happen, and let it happen because he wanted the US in the war.
How many US government officials knew about this, and let it happen?
In the book "This Perfect Day" by Ira Levin (author of Rosemary's Baby), all of society worldwide is controlled by the massive benevolent UniComp computer. Tourists are taken in droves to see UniComp in its daily operations.
Only it's not really UniComp. The real Uni is hidden in an underground complex, and its sole purpose is to keep a certain political leader in power...
This novel hasn't been in print for years and reading it is a rare opportunity. I think it forebodes today's society in many interesting ways...
http://www.mingw.org
A simple little 3D engine I was working on abstracted vectors and matrices. I overloaded the +, -, *, and % operators and their assignment kin to perform addition, subtraction, and two flavors of multiplication on 3D vectors, and did something similar with matrices. Updating the position vector of an object was a simple matter of "Position += Motion;".
Not quite as l33t as your mega-polynomials, but yes, operator overloading is cool, and I missed it in Java.
I have become a big fan of Smalltalk recently, where everything is an object and every operator is a method.
Hey, never give up hope! Remember how Borland changed their name to the laughable "Inprise" some time ago? They're back as Borland now. Companies want to please their customers, and if enough want some part of the old SGI back they'll get it.
... but rather those of rabid Mac zealots, who take Apple's reality-defying marketing hype and inflate it to ridiculous extremes. I met one fellow in my Usenet days who actually claimed that a G3 processor was faster than the fastest Alpha chips. Yeah, right. In PhotoShop?
:)
One of the reasons, I think, why Macs are considered to perform so much better is because MacOS (pre-X) is a compact, well-designed, well-modularized little OS whereas Windows is a bloated mess. If your OS stays out of your way, you can get more done, it's that simple. Also, from a more technical standpoint, if you can bogart the CPU in a CMT environment you will get more performance than a PMT environment where your timeslices are enforced by the kernel.
OS X is significantly more heavyweight, of course, and I've seen some fast Macs stutter on it. (Not like it isn't sweet, though.)
I really don't care about the platform wars, I've used both. I'm just sick of the hype and BS, and people flaming each other over nebulous and inconsequential issues. I'd like to get a new Mac sometime soon... well, maybe when the prices come down a teensy bit more. Till then it's Athlon all the way.
Ha, nice troll. The scary part is, there are Mac zealots who talk this way, and believe it too.
Only thing that truly bothers me is the Python requirement. If CML2 is somehow earmarked as the successor to the current kernel config, then that would be a problem as Python would be required in order to compile a damn kernel. I'm sorry, but I think that kernels should be kept relatively free of dependency cruft, i.e., you should only need sh, the compiler and related support tools in order to be able to build yourself a shiny new kernel. Maybe a Python-to-C translator is in order here?
Mayhaps a Space Channel 5 inspired debugger? (Bugs appear on screen) "Left, Chu, Chu Chu! Right, Chu, Chu!"
Scheme and Lisp support macros, but they're a bit different than the C preprocessor. A macro in a Lispy language is an expression that gets evaluated, and the result is an expression that gets evaluated again to give your final answer. It's quite powerful, actually, as it allows you to extend the language inline.
Lisp and Scheme are not really heavy wizardry, unlike hacking DSPs on the bare metal. It requires a different, abstract mode of thought, almost like that of an artist. (Please, no K5-esque "code-is-art" debates). Once you understand how these languages work, they are literally a snap to use. Students don't get bogged down in syntax because there is no syntax to speak of, except that whatever is in parentheses represents a function and its arguments. The read-eval-print loop enables students to talk to the computer, and see the results of their experimentation immediately. The functional and recursive approach lets you see with crystalline clarity the proper way to analyze the problem you're solving. (This translates well to other languages, by the way, even icky things like Visual Basic.)
In order to learn programming, you need to dig through all the design cruft and really understand the principles behind solving problems with a computer. Once this is done, that knowledge carries over into every programming language out there.
I think Scheme is a wonderful general-purpose language. I also think it's great for learning. It's abstract, flexible, and powerful. As for not using it on the job... well, I've used it once or twice for "serious work". :) Then again, I've got a bit of leeway in some areas of my work. These days, however, trendy languages that are likely to be used by employers are the languages that are taught in class.
Apparently he wanted to give immortality to the world. Just think of him as a junk-science RMS.
But the more you admonish people not to push them, the more tempted they'd be to push the "jolly, candy-like" mission critical buttons.
Stallman has always tried to associate himself with the term "free software", not "open source". Also, he acknowledges the differences between free software licenses (which encompasses things like the X11 and Artistic licenses) and copyleft licenses like the GPL. Try studying the FSF's publications; their position is very clear and well thought-out.
... can they transform into well-meaning but stupid Autobots, like Grimlock and Snarl?
This reminds me of the example, oft-cited in anti-Microsoft arguments, of Ford cars being licensed for use only on Ford roads...
I think this is justified given the difficulty in making a computer "like" something. Who knows... maybe Kismet will develop an artistic streak...
I'm sorry, but your argument is pretty flimsy. If I had mod status I'd slap you with a "Flamebait" as this is the kind of silliness that characterizes Scott Nudds and other famous trolls. Software is a concrete representation of a mathematical formalism. I'm a Scheme hacker, and part of this language's beauty is the fact that it takes this concept to extremes, being closely associated with the lambda calculus (where EVERYTHING is a function call). Now, based on your conclusions here, this means that programs written in functional languages like Scheme, Haskell, etc. must be the most unreliable... they abstract the entire problem domain into a series of algorithms that invoke each other (and often themselves)! And talk about timing problems... many LISP/Scheme development environments support interpreted code intermingled with compiled code!
In reality, you will discover the opposite: software that employs a functional approach is usually not only extremely reliable, but can reach levels of complexity that staggers most proponents of the Pascal school of thought.
I suspect that you pulled this timing argument out of the same orifice from which Alex Chiu derived his famously stupid "all humans are magnets" nonsense. Algorithms are not concerned with the timing of events, only with the results of the operation. Software can wait around forever for the results, but fails when the results are not what were expected. That is the source of a lot of software reliability and compatibility issues. Timing is an issue when it comes to execution speed, but for most algorithms the time of execution is knowable, and there are algorithmic analysis procedures that software developers go through to improve the speed of their programs; i.e., if algorithm A produces the exact same results as algorithm B but with a tenfold speed increase, we can improve our speed by using algorithm A. (Again, algorithms are concerned with results, NOT timings!)
As for space probes and air traffic control systems, that's what real-time systems are for. The code that runs these real-time applications is usually extremely reliable and coded to run in given time constraints.
What you are describing exists to a small extent in systems like Smalltalk, but overall what you are proposing would introduce the same kinds of problems that led to the development of the all-purpose, stored-program computing machine in the first place, so we're back where we started.
He's a zealot, and sometimes I think we need guys like him in order to change our perspectives every now and then. Slashdot is full of free software softies. And when a Mozilla story runs, half of 'em talk about how they boot IE in VMware 'cause it's the only decent browser anymore...
Carmack's been highly critical of game technology for as long as I've been reading his plans. It's not fanboy-like; the guy's a tech-head and evaluates things from a more rational perspective than the hype and ad copy we're used to seeing. Let's face it: the usual sources, e.g., IGN, PC Gamer, Penny Arcade, don't sweat the technical details; as long as the staff can frag in increased visual glory they're pleased as punch. If the Carmack gets enthused about something, it's going to be good.
I dunno about you, but to me it r0x that Tribes 2 shipped for Linux, right out of the starting gate. I take it as a good sign for the future of Linux gaming.