I would add a few points to those already discussed: 1. I would not posit that Smalltalk "didn't take off" or in anyway "failed." Not many programming languages introduced circa late 70's / early 80's still garner as much attention or hold sway in shaping our current language efforts. One can argue that current OO languages are still catching up to Smalltalk. Obviously, ST never became a mainstream language in the software development community, but it has held a powerful role since its introduction.
2. True, when ST was introduced, C was the primary franca lingua of the developer community. Note that it represented not only an entirely new language (syntactically), but the OO paradigm was foreign to most of the folks in the programming trenches. C++ came along as a way to write code in a familiar language while adopting some of these new-fangled OO design concepts. And even given it's C heritage, it took several years before C++ was accepted by management as a suitable production language, because of skepticism about the whole OO approach. It is due to the historical context which gave rise to C++ that Java adopted a similar syntax and general design principles. While C++ allows one to write OO code, it is far too easy to 'slip back' to plain old procedural approaches when OO design gets in the way (so to speak). Java is an improvement in that it enforces the OO paradigm in a strict way, something C++ can never do (it takes discipline and management oversight which is impossible in large team projects). 3. ST was originally (nearly) inseparable from its IDE (and thanks for introducing the IDE approach to development). This made deployment difficult. However, once PARC freed the language for commercial development, any number of companies built products for programming and deploying applicaitons on the language (IBM, Digitalk, Gemstone, etc.). The combination of IDE and OO design delivered on the promises we keep hearing about: code resuse, agile programming abilities, higher quality code, and the list goes on. A number of commercial ST distributions are still around, and a number of enterprises still employ internal applications written in Smalltalk. The original issue with deployment, along with a lack of native libraries (Windows, Mac, *nix), certainly hindered early adoption for anything outside of teaching and experimentation. Digitalk had a great Windows/Mac product that was quite popular, but given my earlier comment, received little to no traction in among corporate ISV's due to the "everyone uses C | C++" mentality (now replaced with "everyone uses C | C++ | Java"). 4. It only takes a small amount of Googling to see that ST has a large, vibrant, and active user community. There are still a fair number of people paid to write in ST. There is active development of ST VMs, some new, some improvements on existing engines. Seaside is gaining popularity as a server solution for web applications. The language is not dead or dying, and given the grass roots support, it may have more vitality than the Java or C communities (given that there is a commercial aspect to those languages, not so much for ST). 5. Objective-C is another take on blending the C dialect with ST - same pitfalls, but much closer adherence to the principle ideas promoted by the ST language (IMHO). Just to clear up the record: Mac's original language was Pascal, then C, then C++. I would also mention that someone wrote an incredible Object Assembler (for 68K) at Apple - I used it extensively in the early days and I would say that folks could still learn a great deal from the approach used in that language (as opposed to C++). Windows originally languages were Basic, Pascal, and C. TurboPascal gave C a good run for the money, but the overwhelming number of C and later C++ savvy engineers did in Pascal. With the advent of the web and OSS, the freedom to use any language you choose has returned (somewhat) to the hands of developers and the dictates of corporate ISV management. That said, try floating a 'different' language for project even now - if it is not PHP/Perl/JS or Java/C (even C++ has taken some lumps although seems to be having a resurgence), you are going to get some amount of pushback on your proposal. 6. Lastly, I have this theory: Every 10 or so years another programming language comes out of the starting block and gains mainstream traction - at the same time a number of equally qualified (or better) languages come along that fall by the wayside. In the latter half of the 80's it was C++, in the latter half of the 90's it was Java. Once again we are seeing a resurgence of new languages and ideas. I guess the value of a language is how much it influences each succeeding 'crop' of new entrants. ST is having an influence many of these newly minted languages, as it had on Java and C++ before it. Sorry for the Stars Wars allusion, but the "if you strike me down, I will become more powerful than you can possibly imagine" line may applicable. ST was never actually struck down, but it remains a powerful foundation for programming languages today and probably into the future. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
