How to market [Tcl] to make it appealing to * Business users * Programmers Things to work on: * Show that it's possible to design complex applications in Tcl that don't get too hairy. * Show that it's possible to design serious applications that have a [GUI separate from the backend code] (no [Tk] spaghetti!). * When someone says that XYZ language is better - ask them why they think that, and how they arrived at that conclusion. Try and determine what factors (peers, press, job pressure) are most responsible for their state of mind. Then convince them Tcl is better:-) Concrete things to do: * [Tile] * Tcl Tutorial: http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html * Create "one object system to rule them all". * Update the web site. * Consistent, easily available packages, both pure Tcl and C code. * Give talks. This goes double for the core team, because being "core team" is something that will get you in doors to give the talks in the first place. This is a good way to chat with potential Tcl users, see what they're interested in, what their conceptions are, what they're using now, and so on - getting a feel for the market, in short. Random thoughts: * Don't name your applications 'tk*'. Focus on what it does, so that people will take a look even if they aren't tk fans, or have preconceptions about projects that use it. * Show how easy it is to build applications, and how, with a smaller amount of code, it is easier to maintain and extend. * Demonstrate cross-platform usability without modification. ([RS]) * Show how much smaller similar applications are when implemented in [Tcl/Tk] than in other languages. ([escargo], 18 Aug 2003) Discussion moved to [Tcl Marketing discussion] '''Why Marketing Matters''' In order to understand why it's important to try and sell something that's free, some concepts from the field of economics are useful. First and foremost, "demand side economies of scale", or "positive network externalities". What these terms mean, basically, is that for some products, they become more valuable the more people use them. The classic example is a cell phone. It's worth nothing if you're the only one to have one, and is much more valuable to you if all your friends have one. Programming languages are not valuable only because of the 'networks' they belong to, but it is something that's helpful. Think about being able to ask questions on comp.lang.tcl, or the chat room. Or be able to easily hire someone to work with your Tcl code, or conversely, easily find jobs where your Tcl skills are valuable. Think of the group of all users of a language as a pyramid, with Dr. Ousterhout, or Larry Wall, or Guido van Rossum at the top. Those guys are brilliant, but think of all the value provided by successive layers down the pyramid. All the libraries, the QA work, the books, the documentation, the user group meetings, and so on. All those things happen because the language is widely used. But, you say, Tcl is widely used, why bother? Cobol and Fortran are still used well after their heyday, aren't they? Sure, that's true. Programming languages also have a lot of "lock-in". Switching costs are very expensive in some cases, meaning that once you've got a system up and running, redoing it is not going to be cheap. This is an incentive to keep maintaining and incrementally improving/upgrading existing systems, in whatever language they are written. Tcl is deployed widely enough that there are many existing users who will keep using it for years to come. However, if we only count on lock-in for Tcl users, we are looking at a long, steady decline. Sure it won't be gone tommorow, and their is money to be had riding it all the way down, but the size of the pie will continue to dwindle. What we'd like to see, instead, is Tcl gaining in popularity, and being used for new projects. New projects in Tcl will create new users, some of whom will create more valuable projects. In short, there is positive feedback involved, which means that the strong get stronger, and the weak get weaker. I would like to see Tcl on the 'getting stronger' side of that equation! Also, when we talk about marketing, we don't mean used car advertising - trying to sell people junk they don't want or won't do the job for them. We mean increasing the appeal and perceptions of Tcl in order to effectively communicate its strengths to potential users. ''See the book Information Rules for more information on the economic aspects of high-tech: http://www.inforules.com/'' '''The Competition''' * [Perl] - still very popular, but dropping off. There are lots of potential converts here. * [PHP] - Tcl isn't likely to make a dent in PHP's primary market, web programming. Even though we were there first with systems like AOLserver, PHP has taken off, and has really captured this market, along with Java for more complex applications. Tcl needs to watch out for PHP trying to break out of the web niche and expand into Tcl's territory - graphical apps and system scripting. * [Python] - Probably Tcl's main competition right now. Python is going very strongly, and is seen as a good choice for many people who want to use a scripting language - it may not be the best choice for any given problem, but it's usually 'good enough'. What areas is Python dominant in that we can catch-up to? What strengths does Tcl have that we can use to our advantage? * [Ruby] - Still not all that popular compared with the other languages, and probably more of a direct competitor to Python. * [Lua] - Gaining ground amongst those who need a very small, simple language to embed in their apps. One way to fend off this challenge would be to modularize the Tcl core in order to make it more competitive in limited-resource environments. Tcl is more dynamic and more featureful than Lua, so for larger apps, Lua is not as competitive. * [Java] - Primarily a competitor in the GUI space because it claims to be "cross platform". The main Java GUI toolkit suffers from the same problem that Tk does, in that it doesn't integrate perfectly in all desktop environments (Mac OS X, Windows, one of Gnome or KDE). * [Visual Basic] - I don't know much about this one. Windows only, so we have a cross-platform advantage. ---- [MSW]: Show how many professional tools use tcl as their scripting plugin making it possible to write applications which either run in a standalone tclsh/wish or be loaded directly onto tools from which you can gain additional information for your own application. ---- ---- [category community]