Note: This page started as an excerpt from another page, and originally had "Lost" in the title. Now read on ...
"Lost" in the sense that we wanted Smalltalk to be the alternative programming language to C++ for all kinds of application development. This lead to amazingly scattered marketing and no deep and sustained penetration of any definable market segments.
My proposal was that we stop fighting the war we lost and we start fighting a new one- finding a market segment we can dominate, where folks will say, "Oh, you're building XXX software? You must be using Smalltalk. You're not? You must be crazy."
Solve for XXX.
I believe this is Business 101- you have to have a home base where you are not scratching and clawing for each and every sale. You can use the profit margins from that segment to expand to other segments.
Apparently my comments pissed some people off. First time that ever happened to me... -- KentBeck
Some questions that come up:
- Whence this page's title? What do you mean with "Entire Programming Languages"? Does it mean "for all kinds of application development"?
- If I understand you correctly, you meant that Smalltalk is still somewhere in the margin, not that the overall use of Smalltalk is going down. My impression was rather that it is going up - but you folks who visited Smalltalk Solutions are in a better position to judge.
- Is there a place where I could find figures about how many projects of which size use what programming language? That would be a kind of 'objective' metric of the popularity of programming languages. If there also are figures about the success of those projects, we even know which language is better. :-) )
- Did you give a solution for XXX? If so, what was it? If not, do you have ideas to share with us?
The page's title came from someone turning an offhanded aside I made on some other page, referring to Kent's remarks at SS, into a page title. Kent has summarized his position above, and would almost certainly not have picked this title.
I will gladly refactor this page to a different name. It was just a quick "What does this mean?" thought. Any suggestions on a page name? -- HankRoark
(guy that took off hand remark and turned it into a page title)
At the Go Smalltalk! session at Smalltalk Solutions, all the discussion I saw was about how great Smalltalk is, not about how to get it successful. (I had to leave to catch a plane: if there were material suggestions later, please post them.)
One approach that could work is to have there be an XXX where ST was the obvious choice. Kent seemed to be suggesting that Pocket stuff might be that area.
Another area where ST is superior is in large evolving projects in little-understood apps. [i.e. almost everything] While this is true, no-one wants to say up front that they don't know what they're doing. If they do, and they say 'therefore Smalltalk', someone will tell them that there are no ST programmers in the building and that ST is adding risk, not removing it. Therefore use something safe, i.e. Java. Unless there gets to be a giant backlash against Java, this is a no-win situation as far as I can see.
Re: large evolving projects in little-understood apps. Isn't this traditionally a strength of lisp? How would you differentiate smalltalk in this area\? It hasn't exactly led lisp to world domination either :)
The place I see the win is in replacing COBOL in IT departments for workstation applications. They need a simple language and fast results. The competitor is Delphi. -- AlistairCockburn
I used to think that, but sadly, I no longer do. IBM (with help from Sun) is heavily pushing Java into the role of "COBOL of the 21st century". The kinds of things that Enterprise Java Beans bring to the table (transaction semantics, distributed transactions, scaleability) make it very hard for Smalltalk to compete in that market. Remember that we were so excited when OTI made Smalltalk run on everything from "a mainframe to a watch"? Well, now Java runs on all of those platforms, too, and there are more Enterprise developers using it. I hope we find Smalltalk's market, but I don't think the Enterprise, "big iron" market is it. -- KyleBrown
Well, I was going to write this up as an April Fool's day joke, but the sad thing is that
it is hard to joke about something these days without someone going out and doing it. [See ParrotLanguage]
Suppose someone decided to market "liquid java", an altered Java compiler and JVM which suppresses compile time checking of all references of class Object. People would be able to have something close to Smalltalk if they use Object as an argument type on their method signatures.
Would anyone do it? I don't know. But, here is how I see things playing out. Refactoring is going to be big in the industry. Very big. It would be nice if people could say that Smalltalk is the price of admission for good refactoring, but a RefactoringBrowserForJava
is inevitable. It will revitalize everything and people will approach their code base more dynamically, but like everything else in object-orientation it will be less powerful than it was in Smalltalk and it may have some gotchas that we don't anticipate right now. People may consider the dynamism too dangerous. In addition, people will over refactor and forget simplicity for a while; just like people have over-analyzed, over-patterned, and over-usecased in the past.
Regarding Smalltalk, I thought it already had good penetration in the financials area. But that is just me standing on the outside hearing things.
I hope that Smalltalk revitalizes in the way that Kent mentioned. In any case, I can't see it ever going completely away if versatility has any survival value at all.
Why not refocus efforts on Python instead? It has most of the SmallTalk
features, but in a language syntax palatable to a wider audience. Even non-OO-zealots can usually tolerate it.
99 talk began by declaring that Smalltalk had lost and the community had better get over it.
Kent, what are your thoughts on what XXX could be?
How about MacOsx CocoaFramework programming? The mainstream is already halfway there by using ObjectiveCee (CeeLanguage interspersed with brackets containing SmallTalk syntax).
For another view " see SmalltalkIndustryCouncil