★ wanayoo — archive 1999 http://starship.python.net/crew/amk/python/publicity.htmlNouvelle recherche | Portail wanayoo
  

HomePython Information
Python Advocacy

Software
Index
Code and Modules
Sample Scripts
Unmaintained code
Documentation
HOWTOs
PSA Bookstore
Articles/Essays
Python Grimoire
Development
XML-SIG
String-SIG
Advocacy
Other Lists
My project list

Email me
amk1@bigfoot.com


Modified: 25 Sep 1999
  

New: Updated for the November 1998 conference Updated commentary is emphasized like this.

One of the running themes at the Sixth Python Conference was the lack of publicity for Python. In order to let us start to counteract the problem, I've put together this page of information. We all know that Python rules, so let's figure out how to let the world know.

Silent Users

There are several companies that use Python for important applications, yet don't want to publicise the fact ...

This is changing; several commercial companies have chosen Python or JPython as the extension language for their products. Awareness of Python has also continued to increase over the last year. We need to keep pushing, but the past year has been a good one, and I expect things to get still better in 1999.

Community Resources

When compared to some other open-source efforts, the Python community is annoyingly backward in terms of documentation, indexes, FAQs, and other supporting structures. Here are some root problems:

  • I find it unbelievable that, several years on, there's still no master list of all the modules and extensions available for Python. This certainly does lead to duplication of work, and means outsiders have no easy way to form an idea of the many available extensions. There have been some abortive attempts on the Locator-SIG, but none of them have ever taken root because no one (including me) has ever pushed hard enough. Perhaps experienced Python-types simply "know" what's out there, because they've been reading the group forever and can do DejaNews searches on comp.lang.python. That's hardly optimal for newbies. Aaron Watters set up an automated modules FAQ, but it foundered from lack of interest.
    The Trove project has stepped into this void, but it's still vapourware because no one has has time to sit down and implement the design. I include myself on the list of easily-distracted people, having done other things instead of getting around to Trove.

    Greg Ward has proposed a Developer's Day session at IPC7 to discuss making Python extensions easier to build and install; I hope Greg's effort produces some improvement, because the lack of any standard way to install an extension is one of Python's weak areas at the moment.

  • The documentation situation is poor in other ways. While the core distribution's documentation is excellent, once you get outside its purview things get iffy. Where is there documentation on using the database API? On writing Web apps? What do you turn to for help? (On the other hand, I don't intend to tar all Python extensions with this brush; some packages such as PIL or ILU are very well documented.)
    I've proposed both HOWTOs and Topic Guides as mechanisms to make finding Python resources easier. Trove would be the ultimate solution here, but these more limited efforts have also turned out to be quite useful. We simply need to produce more HOWTOs and guides.
  • As an extension of the previous point, the documentation slope isn't as easy for newbies as it could be. Probably this is because we've never had a massive influx of newbies which forced us to write documentation to stem the tide.
    I've read a draft of Learning Python, supposed to be published in January 1999, and think that it'll be a great boon for people who want to start using Python. There's also Ken MacDonald's Python book, which may be out in November. These two books will both be excellent choices for a new user.

Other Random Observations

  • Few highly visible public applications are written in Python. There are the Red Hat configuration tools, the defunct Grail Web browser, ILU (which isn't really an end-user application at all), and that's about it. There are sizable internal applications being written, but one rarely hears about them.
    This is slowly improving. Originally Python code was always only announced to the existing Python community, which kept things fairly insular. Now I'm seeing more and more Python-related announcements on Freshmeat and in relevant forums, for Oliver Andrich's Linux RPMs, PySol, PalmPython, and other systems. We still need to get more Python-based applications out there -- you can never have too many, of course.
  • There's too much language hacking, and not enough app/documentation writing. Discussion in comp.lang.python is usually 60% debate about potential language features or fixes for some shortcoming (nested namespaces? garbage collection?), with the remaining 40% divided between questions about the language & standard library (how do I...) and discussions about various extensions.
    This is still the case, though to a lesser degree than when I wrote the above paragraph. The number of newbie questions has been increasing lately, which is a good sign, and the suggestions for new language features are spiraling down to 3 or 4 major issues. Those major issues -- static typing, Python's problematic lambdas, unifying the class/type dichotomy -- are important and difficult to solve, but there aren't very many of them. Therefore, I suspect that once they're fixed, perhaps in a hypothetical Python 2.0, almost all of the pressure to change the core language will no longer exist. (On the other, someone once said similar things about the language being essentially stable with Python 1.0 .)

More Publications

There need to be more printed articles and books about the language. There aren't many articles about Python, causing awareness of the language to be lower than it should be, and as a result, newbies are rarely steered towards it. This is doubly tragic, because Python's so easy to learn and use that it would be well-suited for inexperienced users. The book situation is better, with 2 books already, and at least 3 more on the way for 1998, but most people will need to be interested in the language before buying a book. On the other hand, if you feel like writing a Python book, go for it!

None of the three books has come out yet; one may be released before the November conference, one has been delayed until January 1999, and I know nothing about the status of the third.

Toward the Future

Added in October 1998

Here are some things that I think need to be worked on in 1999.

  • Complete the Trove system
    The need for an index of Python software is still there, and wasn't fixed during 1998. Sunsite still needs Trove, too, so we need to move on this.
  • More application-specific documentation
    This includes more topic guides and HOWTOs, on things like databases, Web programming, XML, extending Python, and anything else that's missing from the current body of documentation.
  • Continue extending Python to new application areas
    As new areas of programming open up, such as XML, BeOS, GNOME programming, or whatever, we need to be sure that Python supports them.
  • Continue publicising Python
    People need to be aware that Python exists, that it can help solve their problems, and that it's a good choice for development because of its power and simplicity.
  • Improve the development environment
    Make life easier for the Python developer. This ranges from completing the job of adding docstrings to the standard modules, to improving Python's interactive mode, to working on IDEs or Python modes for various editors.
  • Settle on a standard extension installation process
    The lack of a standard way to build extensions is an inelegant part of Python. Standardizing this will make it easy for users, ISPs, and software distributors to maintain their Python installation with little trouble.

Here are the editorial calendars for some magazines that might be interested in Python articles. Most magazines have a lead time of 3 to 4 months, so, for example, articles intended to appear in the February 1998 issue must be handed by October or November 1997. Refer to the magazine's Web site for their editorial guidelines.
Month Dr Dobbs' Journal
guidelines
calendar
Linux Journal
guidelines
calendar
Web Techniques
guidelines
calendar
Sys Admin
guidelines
calendar
January Scripting Languages
Reader's Choice
Style Sheets
Linux & Free UNIX
February Java Programming
Cutting Edge Linux
Application Servers
Web Admin
March Simulation & Emulation
I18N/Emerging Market
Web-enabled Devices
SA Tools
April Algorithms
Network Computing / Newcomers
Back to Basics
Backup
May Database Development
Programming
Enterprise Architectures
Network Security
June Object-Oriented Design
Science and Engineering
XML
Connectivity
July Communications and Networking
Linux Standards
 
Database Administration
August Visual Programming
Graphics Applications
 
Storage
September Graphics Programming
Cooking with Linux
 
OS Security
October C++ Programming
Embedded Systems
 
Client Admin
November Operating Systems
Business Solutions / Linux Means Business
 
SA Automation
December Computer Security
System Administration
 
Networking
What other magazines would be interested?

Some article ideas might be: