You seem to be trying to mischaracterize what I originally was saying in this thread,
You responded to my simple statement that original object oriented languages, like Smalltalk, did, in fact, allow addition of methods outside the class, so this feature isn't some amazing new development.
I could make the same case for templates, or generics, or garbage collectors, but it's all nonsense. Different languages are designed for different purposes. I'd rather use a language because it is the right one for the job instead of worrying about purists' definition of abstract language concepts.
Yes, different languages are designed for different purposes. C++ is great for highly experienced teams developing certain kinds of high performance software, or for academics. Based on using C++ as my main programming language ever since cfront prereleases, I can confidently say: C++ is not a good choice for mainstream developers developing mainstream desktop or server applications (and Windows, OpenOffice, KDE, MS Office, etc. are clear evidence of that).
I'm not experienced with Smalltalk, but from talking with people who are, I've gotten the impression that one of the reasons it hasn't caught on is that it's damned slow (at least, back in the days it had a chance to catch on). Stroustrup designed C++ so that it did not have to be any slower than C (admitting that using certain of its features might sacrifice speed for elegence).
I have seen many organizations facing that kind of decision over the years. C++ caught on in the 1980's and 1990's because it was cheap/free, interoperated perfectly with C, and required no retraining; whether the alternatives were fast or slow, better or worse, generally didn't matter.
Java hasnt quite managed to dominate anything -- let alone c++ -- despite java fanatics "dire warnings" to the contrary.
Java had a good chance of doing that, but Sun dropped the ball after Java 1.1 and Sun never got around to working out some serious problems with Java.
Well when you are starting from 0, even 1000 users is "big growth".:)
Java usage seems to have grown to about the same level as C++, but in less than half the time, so Java growth has been bigger--and that despite serious flaws in the Java language.
if you really think buzzwords define a practical/usable language, then why hasn't ruby taken over the world?
No, I just think garbage collection, runtime safety, and reflection are a necessary part of a good, general-purpose language. That these are now buzzwords is just an indication that the industry is catching up with that view.
As for Ruby, at least for now, it is only competing in the crowded field of scripting languages, where there are already lots of good choices (personally, I use Python).
IF Qt manged to become the dominate toolkit on Linux? What planet to you live on? I guess you haven't noticed that KDE has been and still IS the dominate Desktop on Linux
I haven't noticed. In fact, if you have data to support that claim, do share it.
In any case, lots of people use KDE for file management and launch and use non-Qt applications as their primary applications (e.g., Firefox, Thunderbird, Gaim, OpenOffice, Eclipse, etc.). What KDE is written is about as important as what icewm or xterm is written in.
BTW, have you also noticed that the VAST MAJORITY of projects on SourceForge are built using QT? [...] Why is KDE more popular?
but it is disingenuous to say that just because Kay came up with the term, that is can only apply to language features that Kay helped to develop.
No, what is "disingenuous" is that Simula/C++ were hyped up using the term "object oriented", popularized by Smalltalk, even though Nygaard and Stroustrup both full well knew that their languages weren't as powerful. Stroustrup overpromised and underdelivered, and the industry fell for it (including myself).
and I can think of reasons why I wouldn't want to do it (specifically, the ability to know what a class does without having to locate parts of it throughout the sourcecode). You can come up with examples of why its useful, and I could come up with counterexamples of why it would not be required if the design were extensible.
The problem comes up constantly in large software systems developed by multiple groups. There are some patterns you can use as workarounds. But, then, you don't even need any object-oriented features in your language at all in order to do OOP, so why do you even bother with C++ and don't just use straight C?
If you feel like you need the feature, use a language that has it, and let others use the language they want to use.
In what way does our discussions about what features we want to see in languages prevent you from using whatever you want?
The question I'd rather ask is why people like you feel compelled to try to stop discussion of new languages or new language features.
In the US we handle racism and other forms of discriminatory speech correctly. Those that profess it are deemed idiots unworthy of listening to.
What is admirable about the US is that the intellectual elite at the end of the 20th century realized that racism is wrong and has been trying to address the issue. But in practice, racism is rampant in the US, so the US has no credibility when it comes to telling other nations how to deal with it.
Re:Time For Apple To Release The Cocoa Runtime
on
Why Use GTK+?
·
· Score: 1
That wasn't a smart thing to say if you want anyone with even a passing knowledge of the subject to take anything you have to say seriously.
GNUStep isn't going for full compatibility, but the technology, APIs, and libraries are very similar, and large parts of it are identical at the API level.
GTK+ is no more cheaper than Qt, unless you are talking about closed source projects. Gtker's seem to like to advocate proprietary applications.
Indeed, they do that, in the same sense that the GNU project does: certain parts of GNU are under licenses that make commercial use possible because, in the long run, that's good for open source.
Conversely, if Qt managed to become the dominant toolkit on Linux, Linux would be in deep trouble because it would simply not be cost competitive with Windows or Macintosh.
Don't make the mistake of mixing up "GNU" and "open source".
I am not.
Qt is available under the GPL, and therefore it's basically part of that body of software. That's great! If anything the FSF is probably not happy that there's another license option available also, but they don't care how the project is run.
You are, in effect, arguing that anything that is published under the GPL is in accordance with FSF goals, but that's clearly false. First of all, the FSF is revising the GPL because people are using it for purposes that are not in accordance with FSF goals. Furthermore, the FSF has chosen and recommended licenses other than the GPL when it believed those other licenses to be more in the interest of free software. Given that the FSF has given its blessing to both Gtk+ and the GNU C library and that both of those are under less restrictive licenses, it stands to reason that the FSF would find a less restrictive license for Qt also more sensible (however, I can't speak for the FSF).
Either way, it is pretty clear that Troll Tech's model is not what the FSF wants to achieve with the GPL because the dual licensing scheme has an incentive system behind it that causes Troll Tech to push for the creation of more closed source software (because that's how they make money).
Re:Time For Apple To Release The Cocoa Runtime
on
Why Use GTK+?
·
· Score: 0
Cocoa is essentially 1980's NeXTStep, which was available briefly on Windows. You can get a pretty good FOSS approximation as GNUStep. None of those have been really successful. Even Cocoa's success is modest on the Mac itself, with probably the majority of applications being built using other tools.
Personally, I find Gtk+, Swing, and even WinForms to be preferable to Cocoa.
Re:Interestingly...
on
Why Use GTK+?
·
· Score: 2, Insightful
I just hate the GNU zealots. Qt just can't win can they. The entire GNU project is founded on the idea that proprietary software is bad
No, the GNU project is founded on the idea that it is beneficial for people to share contributions to software freely. Troll Tech has adopted the GPL, but it's not being run like an open source project.
But when Qt is using GPL, suddenly the GNU zealots turn around and say,
AFAIK, GNU zealots generally have nothing against Qt.
In fact Qt has the perfect business model
So does the mafia.
Plenty of people seem to be choosing both.
Your examples suggest that both are about equally capable. So, the rational thing to do is to pick the cheaper one--Gtk+.
Everyone knows Qt exists too -- if you believe GTK+ is better, explain why, but don't sweep the discussion under the carpet.
Gtk+ is better to many people because (1) it is developed like an open source toolkit, and (2) it is free for commercial use.
It doesn't necessarily follow that wanting to deprive government of money is the same as wanting to do away with government.
With carefully designed laws, good democratic government might not require more than a small police force. And it certainly seems like our current governments are wasting a lot of taxpayer money on unreasonable subsidies and military spending.
Well, you made the claim that ADA is unnecessarily complex, so don't be suprised if I don't take the claim seriously without supporting evidence.
It's not a claim, it's an opinion.
Just because you think a language without GC or reflection isn't a "serious contender" for being a modern mainstream language doesn't mean it's true.
You're absolutely right: my opinion doesn't matter per se, but the fact that all the languages that have experienced big growth over the last decade have these features supports my assertion.
Continue holding out for The One Hammer(tm) which will turn all problem domains into Nails(tm). I think you'll be waiting quite a while.
Congratulations, what an astute observation. And, in fact, I frequently make the point myself that there isn't one true language but that there are many needs that need to be filled by many languages. However, I believe that any language entering the niches that C++, Java, VB, and C# currently occupy must have garbage collection and reflection.
The rest of us will continue on without you thank you very much:-)
Well, one thing is clear: the rest of us appears to be continuing without Ada.
Alan Kay said about this: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
So, Simula-67 doesn't have the feature, but then Kay's comment applies to Simula-67 as well: the language is defective as an object-oriented language. Inabilitiy to add new methods to existing classes is a huge deficit in C++, to this day.
Misapplying the label "object oriented" to Simula-67/C++ was an big boost to those languages at a time when Smalltalk was enormously popular and influential.
I think it's pointless to debate the finer points of Ada's design flaws (and I'd have to dig my notes up anyway). Ada doesn't have garbage collection or full reflection, and that alone means it's not a serious contender for being a modern mainstream language.
As for Java, I think Java 1.1, while limited, was a reasonable and simple design. (Let's not get into Java 5...)
The funny thing is that the languages you mention are generally pretty dead. And (correct me if I am wrong) have never really catched on. Might be a trend there?
C became popular in the 1980's because of UNIX, because other compilers were expensive, because most people didn't have a clue about OOP or SE, and because machines and applications were small (by today's standards).
Today, machines, applications, programmers, and requirements are completely different.
In fact, gcj-Java and C# are the right kind of languages and they are rightfully popular, they just need a little fine tuning in terms of their implementations.
Memory management in Obj-C is really simple, and making issue of it is an extreme exaggeration. You merely have to follow the rule of "if you allocate it, you're responsible for it",
If that simple rule always worked, then people wouldn't have invented garbage collection. Unfortunately, it fails miserably in many applications.
Objective C's approach, copied from Smalltalk, is the traditional object-oriented approach. The restrictions in Java and C# are decidedly non-object-oriented, inherited from C++.
Just curious what you think the end all to all GC/safe languages is?
I think it would be batch compiled, safe (unless you use an explicit escape hatch), efficient, and usable by current mainstream programmers. It would also have a small, streamlined standard library. It's not rocket science--we have had such languages: Algol, Modula-3, Oberon, Simula, gcj-Java, and various Pascal variants.
These days, I think a gcc-sharp batch native code compiler, analogous to gcj, would be what I would be wishing for. An cleaned up version of Objective C would be another reasonable alternative.
Why must people resort to one or the other? Why not combine C++/Python. Or C++/Ruby.
Because those kinds of systems are a maintenance nightmare and because training costs for them are far too high.
C# and Objective C both had the right idea, by combining a high level language with low-level escape hatches. C#'s problem is its bloated runtime (in.NET and Mono), while Objective C's problem is its lack of runtime safety.
Hopefully, Apple will take C# as a challenge to develop a version of Objective C that keeps Objective C's advantages while separating safe and unsafe code better.
Never used really used Python, have you? It is indeed a general purpose, object oriented, interpreted language. It makes a very good scripting language as well, yes.
Python is, in fact, my favorite language for most day-to-day work. However, I'm not blind to its limitations, and it simply isn't in the same league as Smalltalk. It's not so much what the languages do (Python has a lot of neat features), it's how they are defined.
Smaltalk does not need to be implemented as an image, it can be implemented as a batch compiler.
Furthermore, even image-based Smalltalks usually have an option for creating a stand-alone application that eliminates everything that's not used by the application.
I think Smalltalk is a better language than CommonLisp because it's easier to use and less complex.
You seem to be trying to mischaracterize what I originally was saying in this thread,
You responded to my simple statement that original object oriented languages, like Smalltalk, did, in fact, allow addition of methods outside the class, so this feature isn't some amazing new development.
I could make the same case for templates, or generics, or garbage collectors, but it's all nonsense. Different languages are designed for different purposes. I'd rather use a language because it is the right one for the job instead of worrying about purists' definition of abstract language concepts.
Yes, different languages are designed for different purposes. C++ is great for highly experienced teams developing certain kinds of high performance software, or for academics. Based on using C++ as my main programming language ever since cfront prereleases, I can confidently say: C++ is not a good choice for mainstream developers developing mainstream desktop or server applications (and Windows, OpenOffice, KDE, MS Office, etc. are clear evidence of that).
I'm not experienced with Smalltalk, but from talking with people who are, I've gotten the impression that one of the reasons it hasn't caught on is that it's damned slow (at least, back in the days it had a chance to catch on). Stroustrup designed C++ so that it did not have to be any slower than C (admitting that using certain of its features might sacrifice speed for elegence).
I have seen many organizations facing that kind of decision over the years. C++ caught on in the 1980's and 1990's because it was cheap/free, interoperated perfectly with C, and required no retraining; whether the alternatives were fast or slow, better or worse, generally didn't matter.
Java hasnt quite managed to dominate anything -- let alone c++ -- despite java fanatics "dire warnings" to the contrary.
:)
Java had a good chance of doing that, but Sun dropped the ball after Java 1.1 and Sun never got around to working out some serious problems with Java.
Well when you are starting from 0, even 1000 users is "big growth".
Java usage seems to have grown to about the same level as C++, but in less than half the time, so Java growth has been bigger--and that despite serious flaws in the Java language.
if you really think buzzwords define a practical/usable language, then why hasn't ruby taken over the world?
No, I just think garbage collection, runtime safety, and reflection are a necessary part of a good, general-purpose language. That these are now buzzwords is just an indication that the industry is catching up with that view.
As for Ruby, at least for now, it is only competing in the crowded field of scripting languages, where there are already lots of good choices (personally, I use Python).
I haven't noticed. In fact, if you have data to support that claim, do share it.
In any case, lots of people use KDE for file management and launch and use non-Qt applications as their primary applications (e.g., Firefox, Thunderbird, Gaim, OpenOffice, Eclipse, etc.). What KDE is written is about as important as what icewm or xterm is written in.
BTW, have you also noticed that the VAST MAJORITY of projects on SourceForge are built using QT? [...] Why is KDE more popular?
Doesn't look that way to me. Actual data:
but it is disingenuous to say that just because Kay came up with the term, that is can only apply to language features that Kay helped to develop.
No, what is "disingenuous" is that Simula/C++ were hyped up using the term "object oriented", popularized by Smalltalk, even though Nygaard and Stroustrup both full well knew that their languages weren't as powerful. Stroustrup overpromised and underdelivered, and the industry fell for it (including myself).
and I can think of reasons why I wouldn't want to do it (specifically, the ability to know what a class does without having to locate parts of it throughout the sourcecode). You can come up with examples of why its useful, and I could come up with counterexamples of why it would not be required if the design were extensible.
The problem comes up constantly in large software systems developed by multiple groups. There are some patterns you can use as workarounds. But, then, you don't even need any object-oriented features in your language at all in order to do OOP, so why do you even bother with C++ and don't just use straight C?
If you feel like you need the feature, use a language that has it, and let others use the language they want to use.
In what way does our discussions about what features we want to see in languages prevent you from using whatever you want?
The question I'd rather ask is why people like you feel compelled to try to stop discussion of new languages or new language features.
In the US we handle racism and other forms of discriminatory speech correctly. Those that profess it are deemed idiots unworthy of listening to.
What is admirable about the US is that the intellectual elite at the end of the 20th century realized that racism is wrong and has been trying to address the issue. But in practice, racism is rampant in the US, so the US has no credibility when it comes to telling other nations how to deal with it.
That wasn't a smart thing to say if you want anyone with even a passing knowledge of the subject to take anything you have to say seriously.
There's no need to debate about this, you can simply read the GNUStep Testimonial and Mission Statement.
GNUStep isn't going for full compatibility, but the technology, APIs, and libraries are very similar, and large parts of it are identical at the API level.
GTK+ is no more cheaper than Qt, unless you are talking about closed source projects. Gtker's seem to like to advocate proprietary applications.
Indeed, they do that, in the same sense that the GNU project does: certain parts of GNU are under licenses that make commercial use possible because, in the long run, that's good for open source.
Conversely, if Qt managed to become the dominant toolkit on Linux, Linux would be in deep trouble because it would simply not be cost competitive with Windows or Macintosh.
Don't make the mistake of mixing up "GNU" and "open source".
I am not.
Qt is available under the GPL, and therefore it's basically part of that body of software. That's great! If anything the FSF is probably not happy that there's another license option available also, but they don't care how the project is run.
You are, in effect, arguing that anything that is published under the GPL is in accordance with FSF goals, but that's clearly false. First of all, the FSF is revising the GPL because people are using it for purposes that are not in accordance with FSF goals. Furthermore, the FSF has chosen and recommended licenses other than the GPL when it believed those other licenses to be more in the interest of free software. Given that the FSF has given its blessing to both Gtk+ and the GNU C library and that both of those are under less restrictive licenses, it stands to reason that the FSF would find a less restrictive license for Qt also more sensible (however, I can't speak for the FSF).
Either way, it is pretty clear that Troll Tech's model is not what the FSF wants to achieve with the GPL because the dual licensing scheme has an incentive system behind it that causes Troll Tech to push for the creation of more closed source software (because that's how they make money).
Cocoa is essentially 1980's NeXTStep, which was available briefly on Windows. You can get a pretty good FOSS approximation as GNUStep. None of those have been really successful. Even Cocoa's success is modest on the Mac itself, with probably the majority of applications being built using other tools.
Personally, I find Gtk+, Swing, and even WinForms to be preferable to Cocoa.
I just hate the GNU zealots. Qt just can't win can they. The entire GNU project is founded on the idea that proprietary software is bad
No, the GNU project is founded on the idea that it is beneficial for people to share contributions to software freely. Troll Tech has adopted the GPL, but it's not being run like an open source project.
But when Qt is using GPL, suddenly the GNU zealots turn around and say,
AFAIK, GNU zealots generally have nothing against Qt.
In fact Qt has the perfect business model
So does the mafia.
Plenty of people seem to be choosing both.
Your examples suggest that both are about equally capable. So, the rational thing to do is to pick the cheaper one--Gtk+.
Everyone knows Qt exists too -- if you believe GTK+ is better, explain why, but don't sweep the discussion under the carpet.
Gtk+ is better to many people because (1) it is developed like an open source toolkit, and (2) it is free for commercial use.
It doesn't necessarily follow that wanting to deprive government of money is the same as wanting to do away with government.
With carefully designed laws, good democratic government might not require more than a small police force. And it certainly seems like our current governments are wasting a lot of taxpayer money on unreasonable subsidies and military spending.
I fail to see what requirements on the selection of entertainment products has to do with free speech.
As far as I can tell, French TV stations could broadcast interviews with Americans 100% of the time without running afoul of any French media laws.
Well, you made the claim that ADA is unnecessarily complex, so don't be suprised if I don't take the claim seriously without supporting evidence.
:-)
It's not a claim, it's an opinion.
Just because you think a language without GC or reflection isn't a "serious contender" for being a modern mainstream language doesn't mean it's true.
You're absolutely right: my opinion doesn't matter per se, but the fact that all the languages that have experienced big growth over the last decade have these features supports my assertion.
Continue holding out for The One Hammer(tm) which will turn all problem domains into Nails(tm). I think you'll be waiting quite a while.
Congratulations, what an astute observation. And, in fact, I frequently make the point myself that there isn't one true language but that there are many needs that need to be filled by many languages. However, I believe that any language entering the niches that C++, Java, VB, and C# currently occupy must have garbage collection and reflection.
The rest of us will continue on without you thank you very much
Well, one thing is clear: the rest of us appears to be continuing without Ada.
Alan Kay said about this: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
So, Simula-67 doesn't have the feature, but then Kay's comment applies to Simula-67 as well: the language is defective as an object-oriented language. Inabilitiy to add new methods to existing classes is a huge deficit in C++, to this day.
Misapplying the label "object oriented" to Simula-67/C++ was an big boost to those languages at a time when Smalltalk was enormously popular and influential.
but we're not naive enough to drive them underground so that we don't know what the hell is going on.
No, we're naive enough to let them spread their hate freely and recruit new members into their organizations, which is arguably worse.
I think it's pointless to debate the finer points of Ada's design flaws (and I'd have to dig my notes up anyway). Ada doesn't have garbage collection or full reflection, and that alone means it's not a serious contender for being a modern mainstream language.
As for Java, I think Java 1.1, while limited, was a reasonable and simple design. (Let's not get into Java 5...)
The funny thing is that the languages you mention are generally pretty dead. And (correct me if I am wrong) have never really catched on. Might be a trend there?
C became popular in the 1980's because of UNIX, because other compilers were expensive, because most people didn't have a clue about OOP or SE, and because machines and applications were small (by today's standards).
Today, machines, applications, programmers, and requirements are completely different.
In fact, gcj-Java and C# are the right kind of languages and they are rightfully popular, they just need a little fine tuning in terms of their implementations.
Ada does not have garbage collection. It's also a poorly designed language (unnecessarily complex).
You know, idiots like you make me wonder why we even bother with democracy.
Get your lazy ass out there and start participating in our democracy; don't give us this bullshit about how you are "coerced".
Memory management in Obj-C is really simple, and making issue of it is an extreme exaggeration. You merely have to follow the rule of "if you allocate it, you're responsible for it",
If that simple rule always worked, then people wouldn't have invented garbage collection. Unfortunately, it fails miserably in many applications.
Objective C's approach, copied from Smalltalk, is the traditional object-oriented approach. The restrictions in Java and C# are decidedly non-object-oriented, inherited from C++.
Just curious what you think the end all to all GC/safe languages is?
I think it would be batch compiled, safe (unless you use an explicit escape hatch), efficient, and usable by current mainstream programmers. It would also have a small, streamlined standard library. It's not rocket science--we have had such languages: Algol, Modula-3, Oberon, Simula, gcj-Java, and various Pascal variants.
These days, I think a gcc-sharp batch native code compiler, analogous to gcj, would be what I would be wishing for. An cleaned up version of Objective C would be another reasonable alternative.
Why must people resort to one or the other? Why not combine C++/Python. Or C++/Ruby.
.NET and Mono), while Objective C's problem is its lack of runtime safety.
Because those kinds of systems are a maintenance nightmare and because training costs for them are far too high.
C# and Objective C both had the right idea, by combining a high level language with low-level escape hatches. C#'s problem is its bloated runtime (in
Hopefully, Apple will take C# as a challenge to develop a version of Objective C that keeps Objective C's advantages while separating safe and unsafe code better.
Never used really used Python, have you? It is indeed a general purpose, object oriented, interpreted language. It makes a very good scripting language as well, yes.
Python is, in fact, my favorite language for most day-to-day work. However, I'm not blind to its limitations, and it simply isn't in the same league as Smalltalk. It's not so much what the languages do (Python has a lot of neat features), it's how they are defined.
Smaltalk does not need to be implemented as an image, it can be implemented as a batch compiler.
Furthermore, even image-based Smalltalks usually have an option for creating a stand-alone application that eliminates everything that's not used by the application.
I think Smalltalk is a better language than CommonLisp because it's easier to use and less complex.