C++ is easy to learn. Damn near impossible to master, but very easy to learn.
Nice quip, but it doesn't change the facts: languages need to be easy to learn and easy to master. C++ is not, and that's a big problem with the language.
I hate these fucking developers like this. These people that don't want to write code, but would rather have everything taken care of them in an unpredictable manner. Garbage Collection==excuse for not writing better code and don't give me the excuse that you can write your code faster.
And (to use your language) I hate fucking morons like you: people who don't understand that they can't do memory management as efficiently as a machine, people who don't understand that pointer-based code is usually slower and inhibits optimization opportunities, and people who overestimate their own ability to avoid pointer errors.
After programming in C for nearly 30 years, I can confidently say: I am incapable of writing a substantial C program without memory and pointer error bugs, I don't see the point in doing so, and I have yet to meet anybody who can. And the people who are the ones usually producing the most bugs are usually people like you, people who don't even understand their own limitations.
And also having Sun hide all those pointers behing an extrememly gross hierachy of classes that always seem to hand-off work to another class has its penalties.
Java is a bloated P.O.S., but Java is not representative of garbage collected or safe languages.
Objective C is a very good language. I has a lot of the atractive OO features and still it lets you get as close to the machine as you'd like.
That's a nice combination, but Objective C's fundamental flaw is that it not just allows you to, but forces you to, get close to the machine--you must make decisions about pointers and memory allocation, whether you want to or not. Furthermore, the language lacks runtime safety: an error in any piece of code makes the entire application crash.
Languages like C# give you the same combination of high level and close to the machine features as Objective C, but, unlike Objective C, they are safe and automated by default.
I think the best thing for Apple would be to go back to the beginning and do what they should have done 20 years ago: move to Smalltalk as the programming environment. Smalltalk has all the good stuff of Objective C and none of the disadvantages.
"You don't know C++ well enough to judge its value as a language."
Ease of learning is an important part of language design.
I think C++ is wonderful and natural to program in, as long as one takes the time to design API's in an extensible way
The amount of effort a language forces you to invest up-front in design decisions is also an important factor to consider.
Personally, I think C++ is a great language--but only for specialty applications and very skilled programmers.
For most mainstream desktop applications, people are better served with Python, Visual Basic, or Smalltalk, precisely because those languages are easier to learn and require less experience to use well.
Personally, I prefer Obj-C to.NET, mostly due to the (IMO) superior organization and layout of the object model.
Well, then you should love Smalltalk. Smalltalk is roughly what you get if you try to create a.NET-like language with Objective C's object model.
Of course, historically, Objective C was actually derived from Smalltalk in an attempt to bring Smalltalk-like features into a world dominated by C programming.
The next generation Objective C and Xcode already exist: Smalltalk and Smalltalk programming environments.
Smalltalk is a language with Objective C's object model, but runtime safety, garbage collection, and reflection. Objective C was an attempt to create a very low overhead version of Smalltalk that would interoperate more easily with C code, but most of the technical reasons for making the compromises that were made in the design of Objective C are gone.
The only thing that would need to be done would be to extend Smalltalk with a notion of "native" or "unsafe" methods; that has been done multiple times before, and it can be done either by permitting C code to be embedded in Smalltalk (reversing the Smalltalk/C situation from Objective C) or by defining a Smalltalk subset that's close to the machine (as Squeak has done).
You dismiss things like the GUI, desktop publishing with a simple "None of those are contributions to computer science."
I don't dismiss them at all--they were great contributions to computer science, they just weren't made at Apple.
If you prefer fundamental changes to incremental changes, then you can dismiss a lot of what we count as science in every field.
I don't "dismiss" incremental changes, but Apple doesn't contribute either incremental or fundamental changes to computer science, they don't contribute at all. (There was a brief period in the 1990's where Apple had the beginnings of a research lab, but it was quickly disbanded.)
I'd argue that the commercial release of the GUI (whose limited ancestor never saw the light of day outside Xerox PARC)
That's false. Xerox released the Star in 1981. Apple's first release of a GUI machine, the Lisa, was two years later and about the same as Xerox's: overpriced and a commercial failure. What the Macintosh did was to cut enough corners to drive the cost down to the point where it was affordable and market in the right way to the right people--great engineering and business, but not computer science.
is a major shift for the entire computing industry, and it changed the way we use computers fundamentally. I can't dismiss it as lightly as you.
I don't dismiss Apple's commercial significance at all. I'm merely pointing out that they didn't originally invent a lot of the technology that they are using, and hence they shouldn't be granted exclusive use of that technology. And, yes, that includes the three pane browser, which Apple also didn't invent.
Believe it or not, I actually like and use Apple products. But I am sick of Apple's arrogance and attempts to establish a monopoly on other people's ideas. Apple is good enough to survive in the market without such bullshit.
Either your definition of "computer science" is quite restrictive, or you are clueless.
A scientific field is defined by the published, peer-reviewed body of knowledge in that field; employees at Apple do not significantly contribute to the computer science literature.
Apple, at this point, is just a design and engineering shop (but a good one).
As opposed to what,.... say Dell, does??
Microsoft, Xerox, and IBM have world-class research labs. AT&T and DEC used to. Apple and Dell do not.
You don't like their panel-view interface for music,
I like the interface a lot--it's, after all, pretty much the same interface people have been using for browsing in Smalltalk since the 1970's.
As for not contributing to computer science - you're plain wrong there. A list off the top of my head in a few moments includes:
None of those are contributions to computer science. None of those were even original product ideas. What Apple did was good engineering and good marketing.
They spent $534M on research and development last year, according their Sep2005 report. That's not 'very little' in anyone's language.
Computer science contributions are made in the form of peer-reviewed publications; where are Apple's publications? Where are the job postings for computer science researchers at Apple?
Perhaps you can outline a company who has made the difference you're talking about? Microsoft? Dell? Sony? Redhat? I'm not saying that Apple has done more for the industry than these companies, but you need to be more specific when you say that Apple 'contributes very little to computer science' - in contrast with who?
In contrast to AT&T, DEC, IBM, Microsoft, Intel, and Xerox, for example, all of whom have financed research labs that have made sustained and fundamental contributions to computer science.
Which points back to Apple wanting to go after a particular look and feel, meticulously and labourously defending it down to patents and lawsuits.
First of all, this is not Apple's look and feel--Apple copied this browsing style from Smalltalk, they just happened to apply it to music collections. Why should they get any protection for a straightforward application of a known browsing style?
Second, Apple doesn't have a legal right to protect the "look and feel" of an application; if they threaten to sue over this, I consider it an abuse of the legal system.
What I'm saying is that Apple asserts rights for itself that it doesn't respect in others.
The iTunes layout is a pretty trivial UI design, and not a particularly novel one. It should be legal for people to build UIs that looks just like it. Yet, Apple will probably be able to stop clones simply through the threat of legal action.
Unfortunately, Apple has a 20 year history of such behavior; it started in the 1980's when they made the preposterous claim that they essentially owned the intellectual property to all UIs, and they were only defeated through a lengthy and costly legal battle.
What is particularly annoying about this is that, in reality, Apple invests very little in research and contributes very little to computer science. Apple makes good products and great designs, but that's all they do.
but Apple also contributed a lot of wholly original ideas and innovations that hadn't been seen before
Apple has contributed incremental improvements; all the big breakthroughs that have made their products successful (object oriented programming, WYSIWYG, MVC, OOP, page description languages, bitmap graphics, scalable vector graphics, metadata and search, direct manipulation, digital audio, video compression, transparency, etc.) were developed elsewhere. Double-click and pull-down menus just aren't at the same level.
As I keep saying: it's fine for Apple to copy user interfaces and technologies from other people. What is not acceptable is when they start claiming that they invented it all or when they start suing people.
Yes, and NeXT itself was largely built from other people's technologies: CMU Mach, Adobe Postscript (itself derived from Xerox technologies), Stepstone Objective C (derived from Xerox Smalltalk), Xerox Smalltalk-like libraries, etc.
It's what Jobs does best: he picks good technologies and assembles them into good products. There is nothing wrong with that. What is wrong is that Apple complains (and sues) when others try to do the same.
Smalltalk was, in fact, developed at Xerox PARC in the 1970's.
NeXT combines the Smalltalk programming model, the Stepstone Objective-C language, the GNU compiler, the CMU Mach kernel, and the Adobe Postscript language (not much original there, but at least NeXT paid for some of it). Jobs did a great job at putting together NeXT out of existing technologies, but he didn't exactly contribute a lot of technology.
Let me repeat: there is nothing wrong for Apple copying from other people, but Apple should stop complaining (and sueing) when people copy from them.
The Netflix executives aren't stupid--you can bet that they have contingency plans for getting into the downloadable content market. Whether they can pull it off is another question.
iTunes may have a lead in this area, but Apple also has big hurdles to overcome to make a good business out of this; a lot of 320x240 downloads isn't going to cut it.
Otherwise, iTunes was totally different from any other jukebox available at the time.
There have been hundreds of jukebox programs before iTunes; how can you say with certainty that it was "totally different" from all of them? In any case, the application domain doesn't really matter much; the UI itself is a rip-off of numerous NeXT and Smalltalk interfaces (with the NeXT interfaces themselves being a rip-off of Smalltalk).
And the thing is: I don't think there is even anything wrong about copying other people's successful interfaces. But there is something wrong about it when Apple complains about it, given that their entire company is based on taking the best ideas out of other UIs and then modifying them. And, unfortunately, Apple has been complaining a lot, throughout their corporate history, and even gone as far as suing people.
Given that a lot of the iTunes interface was copied from other sources as well, this would just be another testament to Apple's corporate philosophy: once we copy it, it's ours.
why the fuck would you give another tool to the Terrorists.
Because it's not just "a tool to the Terrorists", it's also an important tool for research. For example, unrestricted Google Earth might well allow researchers to uncover government corruption and deception, both in the US and abroad.
In any case, all of this is just a temporary issue anyway; over the next decade, anybody will be able to get high resolution aerial photography of anything, whether the government allows it or not. So, the military better prepare for it.
The term "security through obscurity" is a technical term that refers specifically to keeping protocols and algorithms of a cryptographic system secret. Trying to extend that concept to mean "anything that is kept secret" is overextending its meaning. Even standard cryptographic systems rely on keeping things "obscure"--like the key, for example.
The question of whether satellite data of military installations needs to be kept secret is something that warrants a separate discussion. I think that eventually, there will be no way around making all defense and police installations secure against aerial photos, but for the time being, aerial and satellite photography may indeed may make them more vulnerable.
You may have hidden under a rock for the whole discussion, but this is a good summary, if you want to catch up...
Seth hasn't come up with any specific patent claims that Mono/Gnome applications actually violate; if he had, then people would have already removed them from Mono. Furthermore, Seth isn't advocating Java instead of C# anyway, so it's not relevant to this discussion.
But if you think C#'s meager sugar is worth the risk... go for it. I'll find it funny to see how it turns out...
Where does this bullshit assumption come from that Java is somehow free and open? Sun has dozens of patents on technologies in the Java standard; go look on uspto.gov. Furthermore, you can't even access the official Java specifications without agreeing to a license. And Sun has actually pressured open source Java projects with their intellectual property.
If you don't want to use C# because Microsoft's patent freaks you out, I can understand that; I don't think it's a serious concern, but to each their own. But advocating the use of Java instead of C# is ridiculous because the intellectual property situation surrounding Java is far worse than that surrounding C#. And if you think that Microsoft is concerned about open source, open source has been killing Sun.
Yes: look on uspto.gov for "Sun" and "Java". You'll see that, among other things, parts of the byte code verification process required by the Java specification are patented.
You think you can learn C# without learning.NET? Well, it's true, Mono gives you an alternative set of APIs... Until MS sues them and (according to the SCO model) you...
I challenge you to make a legal argument by which Microsoft could sue me over writing a Gnome application in C#.
C++ is easy to learn. Damn near impossible to master, but very easy to learn.
Nice quip, but it doesn't change the facts: languages need to be easy to learn and easy to master. C++ is not, and that's a big problem with the language.
So use Python. Python is a first class language on OS X using the pyObjC bridge.
Python is a scripting language, not a general purpose programming language.
This "objective-C is the only language you can use on OS X" is nonsense.
Yeah, so why are you stating such nonsense?
I hate these fucking developers like this. These people that don't want to write code, but would rather have everything taken care of them in an unpredictable manner. Garbage Collection==excuse for not writing better code and don't give me the excuse that you can write your code faster.
And (to use your language) I hate fucking morons like you: people who don't understand that they can't do memory management as efficiently as a machine, people who don't understand that pointer-based code is usually slower and inhibits optimization opportunities, and people who overestimate their own ability to avoid pointer errors.
After programming in C for nearly 30 years, I can confidently say: I am incapable of writing a substantial C program without memory and pointer error bugs, I don't see the point in doing so, and I have yet to meet anybody who can. And the people who are the ones usually producing the most bugs are usually people like you, people who don't even understand their own limitations.
And also having Sun hide all those pointers behing an extrememly gross hierachy of classes that always seem to hand-off work to another class has its penalties.
Java is a bloated P.O.S., but Java is not representative of garbage collected or safe languages.
Objective C is a very good language. I has a lot of the atractive OO features and still it lets you get as close to the machine as you'd like.
That's a nice combination, but Objective C's fundamental flaw is that it not just allows you to, but forces you to, get close to the machine--you must make decisions about pointers and memory allocation, whether you want to or not. Furthermore, the language lacks runtime safety: an error in any piece of code makes the entire application crash.
Languages like C# give you the same combination of high level and close to the machine features as Objective C, but, unlike Objective C, they are safe and automated by default.
I think the best thing for Apple would be to go back to the beginning and do what they should have done 20 years ago: move to Smalltalk as the programming environment. Smalltalk has all the good stuff of Objective C and none of the disadvantages.
"You don't know C++ well enough to judge its value as a language."
Ease of learning is an important part of language design.
I think C++ is wonderful and natural to program in, as long as one takes the time to design API's in an extensible way
The amount of effort a language forces you to invest up-front in design decisions is also an important factor to consider.
Personally, I think C++ is a great language--but only for specialty applications and very skilled programmers.
For most mainstream desktop applications, people are better served with Python, Visual Basic, or Smalltalk, precisely because those languages are easier to learn and require less experience to use well.
Personally, I prefer Obj-C to .NET, mostly due to the (IMO) superior organization and layout of the object model.
.NET-like language with Objective C's object model.
Well, then you should love Smalltalk. Smalltalk is roughly what you get if you try to create a
Of course, historically, Objective C was actually derived from Smalltalk in an attempt to bring Smalltalk-like features into a world dominated by C programming.
The next generation Objective C and Xcode already exist: Smalltalk and Smalltalk programming environments.
Smalltalk is a language with Objective C's object model, but runtime safety, garbage collection, and reflection. Objective C was an attempt to create a very low overhead version of Smalltalk that would interoperate more easily with C code, but most of the technical reasons for making the compromises that were made in the design of Objective C are gone.
The only thing that would need to be done would be to extend Smalltalk with a notion of "native" or "unsafe" methods; that has been done multiple times before, and it can be done either by permitting C code to be embedded in Smalltalk (reversing the Smalltalk/C situation from Objective C) or by defining a Smalltalk subset that's close to the machine (as Squeak has done).
You dismiss things like the GUI, desktop publishing with a simple "None of those are contributions to computer science."
I don't dismiss them at all--they were great contributions to computer science, they just weren't made at Apple.
If you prefer fundamental changes to incremental changes, then you can dismiss a lot of what we count as science in every field.
I don't "dismiss" incremental changes, but Apple doesn't contribute either incremental or fundamental changes to computer science, they don't contribute at all. (There was a brief period in the 1990's where Apple had the beginnings of a research lab, but it was quickly disbanded.)
I'd argue that the commercial release of the GUI (whose limited ancestor never saw the light of day outside Xerox PARC)
That's false. Xerox released the Star in 1981. Apple's first release of a GUI machine, the Lisa, was two years later and about the same as Xerox's: overpriced and a commercial failure. What the Macintosh did was to cut enough corners to drive the cost down to the point where it was affordable and market in the right way to the right people--great engineering and business, but not computer science.
is a major shift for the entire computing industry, and it changed the way we use computers fundamentally. I can't dismiss it as lightly as you.
I don't dismiss Apple's commercial significance at all. I'm merely pointing out that they didn't originally invent a lot of the technology that they are using, and hence they shouldn't be granted exclusive use of that technology. And, yes, that includes the three pane browser, which Apple also didn't invent.
Believe it or not, I actually like and use Apple products. But I am sick of Apple's arrogance and attempts to establish a monopoly on other people's ideas. Apple is good enough to survive in the market without such bullshit.
Either your definition of "computer science" is quite restrictive, or you are clueless.
.... say Dell, does??
A scientific field is defined by the published, peer-reviewed body of knowledge in that field; employees at Apple do not significantly contribute to the computer science literature.
Apple, at this point, is just a design and engineering shop (but a good one).
As opposed to what,
Microsoft, Xerox, and IBM have world-class research labs. AT&T and DEC used to. Apple and Dell do not.
You don't like their panel-view interface for music,
I like the interface a lot--it's, after all, pretty much the same interface people have been using for browsing in Smalltalk since the 1970's.
As for not contributing to computer science - you're plain wrong there. A list off the top of my head in a few moments includes:
None of those are contributions to computer science. None of those were even original product ideas. What Apple did was good engineering and good marketing.
They spent $534M on research and development last year, according their Sep2005 report. That's not 'very little' in anyone's language.
Computer science contributions are made in the form of peer-reviewed publications; where are Apple's publications? Where are the job postings for computer science researchers at Apple?
Perhaps you can outline a company who has made the difference you're talking about? Microsoft? Dell? Sony? Redhat? I'm not saying that Apple has done more for the industry than these companies, but you need to be more specific when you say that Apple 'contributes very little to computer science' - in contrast with who?
In contrast to AT&T, DEC, IBM, Microsoft, Intel, and Xerox, for example, all of whom have financed research labs that have made sustained and fundamental contributions to computer science.
Which points back to Apple wanting to go after a particular look and feel, meticulously and labourously defending it down to patents and lawsuits.
First of all, this is not Apple's look and feel--Apple copied this browsing style from Smalltalk, they just happened to apply it to music collections. Why should they get any protection for a straightforward application of a known browsing style?
Second, Apple doesn't have a legal right to protect the "look and feel" of an application; if they threaten to sue over this, I consider it an abuse of the legal system.
What I'm saying is that Apple asserts rights for itself that it doesn't respect in others.
The iTunes layout is a pretty trivial UI design, and not a particularly novel one. It should be legal for people to build UIs that looks just like it. Yet, Apple will probably be able to stop clones simply through the threat of legal action.
Unfortunately, Apple has a 20 year history of such behavior; it started in the 1980's when they made the preposterous claim that they essentially owned the intellectual property to all UIs, and they were only defeated through a lengthy and costly legal battle.
What is particularly annoying about this is that, in reality, Apple invests very little in research and contributes very little to computer science. Apple makes good products and great designs, but that's all they do.
but Apple also contributed a lot of wholly original ideas and innovations that hadn't been seen before
Apple has contributed incremental improvements; all the big breakthroughs that have made their products successful (object oriented programming, WYSIWYG, MVC, OOP, page description languages, bitmap graphics, scalable vector graphics, metadata and search, direct manipulation, digital audio, video compression, transparency, etc.) were developed elsewhere. Double-click and pull-down menus just aren't at the same level.
As I keep saying: it's fine for Apple to copy user interfaces and technologies from other people. What is not acceptable is when they start claiming that they invented it all or when they start suing people.
Yes, and NeXT itself was largely built from other people's technologies: CMU Mach, Adobe Postscript (itself derived from Xerox technologies), Stepstone Objective C (derived from Xerox Smalltalk), Xerox Smalltalk-like libraries, etc.
It's what Jobs does best: he picks good technologies and assembles them into good products. There is nothing wrong with that. What is wrong is that Apple complains (and sues) when others try to do the same.
Smalltalk was, in fact, developed at Xerox PARC in the 1970's.
NeXT combines the Smalltalk programming model, the Stepstone Objective-C language, the GNU compiler, the CMU Mach kernel, and the Adobe Postscript language (not much original there, but at least NeXT paid for some of it). Jobs did a great job at putting together NeXT out of existing technologies, but he didn't exactly contribute a lot of technology.
Let me repeat: there is nothing wrong for Apple copying from other people, but Apple should stop complaining (and sueing) when people copy from them.
The Netflix executives aren't stupid--you can bet that they have contingency plans for getting into the downloadable content market. Whether they can pull it off is another question.
iTunes may have a lead in this area, but Apple also has big hurdles to overcome to make a good business out of this; a lot of 320x240 downloads isn't going to cut it.
Otherwise, iTunes was totally different from any other jukebox available at the time.
There have been hundreds of jukebox programs before iTunes; how can you say with certainty that it was "totally different" from all of them? In any case, the application domain doesn't really matter much; the UI itself is a rip-off of numerous NeXT and Smalltalk interfaces (with the NeXT interfaces themselves being a rip-off of Smalltalk).
And the thing is: I don't think there is even anything wrong about copying other people's successful interfaces. But there is something wrong about it when Apple complains about it, given that their entire company is based on taking the best ideas out of other UIs and then modifying them. And, unfortunately, Apple has been complaining a lot, throughout their corporate history, and even gone as far as suing people.
Given that a lot of the iTunes interface was copied from other sources as well, this would just be another testament to Apple's corporate philosophy: once we copy it, it's ours.
why the fuck would you give another tool to the Terrorists.
Because it's not just "a tool to the Terrorists", it's also an important tool for research. For example, unrestricted Google Earth might well allow researchers to uncover government corruption and deception, both in the US and abroad.
In any case, all of this is just a temporary issue anyway; over the next decade, anybody will be able to get high resolution aerial photography of anything, whether the government allows it or not. So, the military better prepare for it.
The term "security through obscurity" is a technical term that refers specifically to keeping protocols and algorithms of a cryptographic system secret. Trying to extend that concept to mean "anything that is kept secret" is overextending its meaning. Even standard cryptographic systems rely on keeping things "obscure"--like the key, for example.
The question of whether satellite data of military installations needs to be kept secret is something that warrants a separate discussion. I think that eventually, there will be no way around making all defense and police installations secure against aerial photos, but for the time being, aerial and satellite photography may indeed may make them more vulnerable.
There is no "strong force" involved in this; "strongly interacting" in this context just means that the particles are interacting a lot.
You may have hidden under a rock for the whole discussion, but this is a good summary, if you want to catch up...
Seth hasn't come up with any specific patent claims that Mono/Gnome applications actually violate; if he had, then people would have already removed them from Mono. Furthermore, Seth isn't advocating Java instead of C# anyway, so it's not relevant to this discussion.
But if you think C#'s meager sugar is worth the risk... go for it. I'll find it funny to see how it turns out...
Where does this bullshit assumption come from that Java is somehow free and open? Sun has dozens of patents on technologies in the Java standard; go look on uspto.gov. Furthermore, you can't even access the official Java specifications without agreeing to a license. And Sun has actually pressured open source Java projects with their intellectual property.
If you don't want to use C# because Microsoft's patent freaks you out, I can understand that; I don't think it's a serious concern, but to each their own. But advocating the use of Java instead of C# is ridiculous because the intellectual property situation surrounding Java is far worse than that surrounding C#. And if you think that Microsoft is concerned about open source, open source has been killing Sun.
Have anything to back it up?
Yes: look on uspto.gov for "Sun" and "Java". You'll see that, among other things, parts of the byte code verification process required by the Java specification are patented.
You think you can learn C# without learning .NET? Well, it's true, Mono gives you an alternative set of APIs... Until MS sues them and (according to the SCO model) you...
I challenge you to make a legal argument by which Microsoft could sue me over writing a Gnome application in C#.
You can't. All you do is spread FUD.
maybe you can fool some people (like this person) into thinking they're not trapped.
.NET in terms of patents.
.NET APIs.
The fools are people like you; Java is far worse than even
standardize part of the platform but keep part proprietary (in this case, the APIs)
I don't care, I don't use the