Replace Smalltalk with any similarly well-designed high-level language (eg, not Java).
If programmers had a gram of self-respect, or social responsibility really, they'd demand a written indemnity for having to work in languages they know to be inferior using techniques they know are obsolete. Educate management in a language they understand, liability!
And please none of that constant moaning and whining about how management won't do this or that. Or about what "went wrong" with Smalltalk either. What do I care why Smalltalk didn't get adopted? I don't live in the past, buddy, so I want to know what you're doing to get it adopted now! And I don't want to hear any crap we all know won't work so think outside the box goddamnit!
What about starting a professional association for programmers? Apparently, it's been tried repeatedly in Quebec.
What about lobbying / propagandizing for criminal responsibility for software writers? Imagine waking up in a brave new world where ProgrammersAreCriminals?.
What about lobbying / propagandizing for criminal sanctions to illegal software licenses? If California can pass a law against spammers, I'm pretty sure it can make bad licenses illegal. Come to think of it, since adhesion licenses aren't legal, that's all software licenses. Simplifies matters a lot!
What about lobbying / propagandizing for criminal sanctions against illegal / misrepresentative disclaimers?
What state or country would be most amenable to bringing about the above? EuropeVsAmerica??
You want to "sell" ST? Produce some solid evidence that it is better rather than "use it and trust me" arrogance. HowCanSomethingBeSuperGreatWithoutProducingExternalEvidence
Not contracts, licenses, though judges are divided on the issue with some jurisdictions being pro-corporate and others being sane.
At the risk of stating the obvious, the HowTo we should all be concerned with is HowToImproveSoftwareQuality?, not HowToAdvanceSomebodysFavoriteTool?. While use of Smalltalk and other non-mainstream languages/technologies might be a means to that end; this page is guilty of ConfusingTheMeansWithTheEnd.
And if by some strange act AlanKay became dictator of the world, and summarily outlawed use of C++/VB/Java/C#/etc. - I doubt we'd see significant improvements in programmer productivity or code quality - even after the transition costs were fully paid for. Why? Because then the legions of OneStarProgrammers? that currently produce barely-working code in the current crop of industrial languages would instead produce barely-working code in Smalltalk (or Lisp or what-have-you). One possible benefit is that common programming errors might result in DoesNotUnderstand rather than UndefinedBehavior; but the customer will likely be just as annoyed.
See also PersonalChoiceElevatedToMoralImperative.
Okay, first of all, an achievable goal has to be concrete as opposed to nebulous crap like "improve software quality". Second of all, I don't want to hear about problems. Do you have any freaking solutions? An accreditation system perhaps (that does not depend either on universities or on industry)?
I don't know who anyone else here works for or sells to, but my company produces software that it has to sell. The contracts for which we bid frequently specify that C++ must be used for the majority of the code base. How would you deal with that?
Well, you have several choices (stating the obvious again): a) Refuse the work. b) Accept the customer's terms - it's their dime, after all, and use C++. c) Make a counterproposal. If you think Smalltalk is that much more productive than C++ (or something else), than you should be able to quote the customer a lower fee for using it. Put your money where your mouth is.
Unless we have a demonstrable system that is fully compliant with their specification we don't get past the first stage of bidding - your third choice is no choice. Virtually all the contracts available specify C++ - your first choice is no choice. We therefore are forced to use C++.
Why is this that case? Our customers employ consultants to help them write the specifications. The consultants have never heard of Smalltalk, Python, Ruby, Lua or Io. They "know" that "everyone" can program in C++, so future maintainability will be assured. They "know" that C++ is fast and easy to read and write. They "know" that C++ is the "industry standard."
I'd love to "put my money where my mouth is", but until the random consultant "knows" that Smalltalk at least exists then I for one cannot use it.
Help me - get Smalltalk mainstream. I'd love for you to succeed, but I can't see how you'll do it.
First, I think we should ignore people who give advice, the gist of which is always "accept being an atomized individual and submit to authority".
Second, something's gotta be done about those sodding consultants. An InteractionDesigner wouldn't give a damn what bloody language you're writing things in.
Third, programming has got to be professionalized. Until that's done, you'll never be taken seriously. Until it's done, you shouldn't be taken seriously.
If programmers collectivize (into a professional association) then they can clean their own house (putting professional standards in place) and as a side-effect also amass a great deal of power over working conditions. At that point, they can give up some of the responsibilities they're not any good at (like designing) to people who are good at them (InteractionDesigners) and get back complete control over what they are good at (state of the art programming in a state of the art language using state of the art tools).
So I THINK that the first step is to figure out HowToProfessionalizeProgramming.
PS: I don't know the ins and outs of the programming industry. The consultants writing requirements was new to me. It helps to design a plan of action when I know details like that.
This is not the programming industry, this is an industry that uses computers. Customers are advised most strongly to insist on "common, mainstream languages", preferably in the "modern object oriented style". They go on to say "C++ is the best choice", and so that is written into the specification.
And who is it that advises them if not some part of the programming industry? I'm confused.
"Consultants" - people who have many, many years in that industry and who are employed on contract to investigate the various systems available and assist in creating the specification. In their minds they're not buying a computer system, they're buying a system to perform a task for them - think payroll, I don't want to mention the actual industry - and these "independent experts" read all the literature and cherry-pick. They don't know the computer industry, they've never heard of Smalltalk, Python, Ruby, etc., and they "know" that C++ is well-known, and easy to find maintenance programmers for.
So either substitute someone for the consultants or simply reflect on the fact that outsiders have such mistrust and demonstrated contempt for the programming industry that they're willing to specify technological issues rather than leave them up to the experts. Either way, trying to "educate" the consultants and/or clients is a sure-fire loser. And doing nothing has already been tried.
I'm trying to understand this comment and not really succeeding. Let's try again. The following is an attempt to summarize the situation.
How about including the C/C++ source for a RealLanguage implementation (compiler, interpreter, VirtualMachine, other runtime stuff and tools) in the project, and then calling the RealLanguage sources "configuration files"?
Really, unless the customer expects to be maintaining the code themselves, they have no call to be specifying implementation details.
So I'm saying "The world is like this" and you're saying "Well it shouldn't be" and I'm saying "Well it is" and you're saying "Well it shouldn't be." You're not helping.
See also: MayZeroFive, HowToSellGoldenHammers