Differences between revisions 22 and 23
Revision 22 as of 2006-12-19 05:49:40
Size: 19143
Editor: RichardJones
Comment:
Revision 23 as of 2006-12-21 14:49:41
Size: 19265
Editor: JeffRush
Comment: completion of a writing task
Deletions are marked like this. Additions are marked like this.
Line 175: Line 175:
'''Title:''' ''About Python, for the Java Programmer'' [[BR]] '''Title:''' ''[http://advocacy.python.org/docs/python-vs-java.3600.en.1 About Python, for the Java Programmer]'' [[BR]]
Line 177: Line 177:
'''Assigned-To:''' (no one; teaming is possible) (date assigned) '''Assigned-To:''' [[MailTo(demian0311 AT gmail DOT com, Demian)]] (2006-11-13) COMPLETED 2006-12-08 (click title above to see)

Writing Materials Wanted:

We need volunteers who can write, to create some of the following materials. Some of it already exists on the net, and where so, let's collect links and I'll contact the authors to see about reusing/reformatting it, with credit.

Although listed together, you don't have to sign up for both the flyer and whitepaper. Once the whitepaper is written, often a flyer isn't too hard to create. Or, if you're a graphic designer expert, team with a writer and do the flyer.

To achieve a precise layout, flyers should be written using Openoffice.org (preferred) or MS Office, and in both U.S. Letter and European A4 paper sizes. Try to use colors that will work with black and white printers.

To get page-level formatting features and fit into the business community, whitepapers should be written using Openoffice.org (preferred) or MS Office. They will be made available in both paper sizes, so try to avoid building assumptions into your content on page break placement.

We'd like to start each whitepaper with a standard office template, but that has not yet been developed yet. If you have one you're proud of, please step forward.

For web content, use of [http://docutils.sourceforge/docs/user/rst/quickref.html reStructuredText] is preferred, to simplify reuse of the content in different formats. And there is an [http://www.hosting4u.cz/jbar/rest/rest.html online parser] so you don't even have to download or run anything -- just edit plain text using your favorite editor.

We would like all content to be licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License (GFDL)] or [http://www.gnu.org/philosophy/license-list.html#TOC2FreeDocumentationLicenses another free license].

In general, the style of writing should be informal, like you would find in an issue of Linux Journal or Dr. Dobbs magazine. Refer to yourself as "we", as you are representing the Python community and other authors may follow you to revise your document. Refer to the reader as "you".

For those who would prefer writing magazine articles, we also have an ArticleIdeas list.


Want to know what is being done with these materials? Check out [wiki:Advocacy the advocacy kits] into which they are being assembled!


Anchor(WhatIsPython) [#WhatIsPython (permalink)] BR Title: [wiki:/WhatIsPython What is Python?] BR Media: a 2-sided flyer BR Assigned-To: (no one; teaming is possible) (date assigned)

For handing out at mixed-topic conferences and user group meetings, where contact with curious people can be made, to make them aware that Python even exists. In this environment we can't be sure of their background but if they are interested in a programming language, we can assume either a basic programming background or team/managerial responsibility.

Include names/logos of your more mainstream companies that are using Python, but probably omit the more obscure ones.


Anchor(UsingPythonWithJava) [#UsingPythonWithJava (permalink)] BR Title: Have you considered Python? BR

  • Using Python to improve Java BR

Media: a 2-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For handing out at Java events - it should bring to their attention the existence of Jython, the co-existence synergies possible, and the interactivity of Jython compared to Java. But do not bash Java - the idea is to get people to add Python to their toolbelt. Do mention the fact that Sun has hired an open source developer who is helping with languages other than Java, such as JRuby and Jython.


Anchor(PythonForCppProgrammers) [#PythonForCppProgrammers (permalink)] BR Title: Python for C/C++ Programmers BR

  • Using Python as a companion language for C/C++ BR

Media: a 2-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

This can show how Python can be used with C/C++ as a way to add scripting to a larger application, or as a way to build on top of existing C/C++ code more quickly and easily than writing more C/C++. It should highlight the ease with which C/C++ code can be wrapped (with swig and boost) and how easily C/C++ code can call back into Python (it's a 2-way integration). Much of this content exists in the documentation, but it's not formatted for advocacy or for easy distribution at events.


Anchor(UsingPythonWithDotNet) [#UsingPythonWithDotNet (permalink)] BR Title: IronPython (Python.NET) BR

  • Using Python to improve .NET BR

Media: a 2-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For handing out at .NET events - it should bring to their attention the existence of IronPython, the co-existence synergies possible, and the interactivity of IronPython compared to C#. But do not bash .NET - the idea is to get people to add Python to their toolbelt. Do mention the fact that Microsoft is funding the IronPython development.


Anchor(StartingAPythonUserGroup) [#StartingAPythonUserGroup (permalink)] BR Title: [wiki:/StartingAUserGroup How to Start and Run a Successful Python User Group] BR Media: a small whitepaper, reStructuredText format BR Assigned-To: MailTo(jeff AT taupro DOT com, Jeff Rush) (2006-12-13)

For putting up on the web - it should discuss the resources available to user groups, such as mailing lists hosts, free wikis and blogs. Mention that user groups can be listed on www.python.org, with python.meetup.com and also Craig's list. Discuss how to reach out and find people, advise patience for growth, and suggest various group activities. When you can't find a speaker, suggest other activities that can be done on a spur of the moment.

Some Source Material:


Anchor(StartingAPythonConference) [#StartingAPythonConference (permalink)] BR Title: [wiki:/RunningAConference How to Start and Run a Successful Python Conference] BR Media: a small whitepaper, reStructuredText format BR Assigned-To: MailTo(amk AT amk DOT ca, Andrew Kuchling) (2006-12-06)

For putting up on the web - it should discuss...


Anchor(PythonYourCompetitiveAdvantage) [#PythonYourCompetitiveAdvantage (permalink)] BR Title: Python: Your Competitive Advantage BR Media: a 2-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For handing out at business functions, where entrepreneurs are present. It should focus on the benefits of Python as regards agility in responding to market needs, the rapid ability to develop something right the first time. Mention Eric Raymond, et. al. in how they were surprised Python was so productive. Provide a brief list of companies using Python, and also a list of the domain areas in which it is used. We also have audio of a lightning talk by a VC, and a talk at PyCon this year about someone who got $5 million in capital for a Python program.

Reddit was written in Lisp, then re-written in Python due to performance and library issues. It subsequently was bought by Conde Nast.


Anchor(CampusFlyer) [#CampusFlyer (permalink)] BR Title: There is more to life; there is Python BR Media: a 1-sided flyer + small whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

A single-sided flyer, for posting on campus bulletin boards, to spread the word about Python. It should cover the highlights of what Python is, and leave a large box for someone to insert directions to a Python Users Group meeting on campus. If not for a user group, it should pre-fill that space with links to visit for more self-guided information.


Anchor(AboutTownFlyer) [#AboutTownFlyer (permalink)] BR Title: Have Fun Programming (Again!) BR Media: a 1-sided flyer + small whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

A single-sided flyer, for posting around town, to spread the word about Python. It should cover the highlights of what Python is, and leave a large box for someone to insert directions to a Python Users Group meeting. If not for a user group, it should pre-fill that space with links to visit for more self-guided information.


Anchor(PythonAndDatabases) [#PythonAndDatabases (permalink)] BR Title: [wiki:/PythonAndDatabases Python and Databases] BR Media: a 2-sided flyer + whitepaper BR Assigned-To: MailTo(gslindstrom AT gmail DOT com, Greg Lindstrom) (2006-12-06)

For handing out at database-centric events, it should make them aware that Python can connect to their favorite database, that it has a standard DB-API and that it works across OS platforms.

Secondarily, it should mention that Python has a selection of ORMs (SQLObject, SQLAlchemy, Django) for those who wish to abstract away the relational details.

And last it make them aware that besides relational databases Python is also a player in the object database world, with ZODB and Durus.


Anchor(ScientificPython) [#ScientificPython (permalink)] BR Title: [wiki:/ScientificPython Scientific Computing with Python] BR Media: a 2-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For handing out at general scientific events, it should make the reader aware of Python's capabilities:

  • numeric and scientific processing using NumPy

  • data I/O format flexibility re netCDF, CSV, Matlab (others?)
  • database abilities re Pydap, Galaxy and other interfaces to bulk
    • containers of scientific data
  • data visualization and graphing
  • Matlab similarities

It should mention the various scientific domains in which it is used: That is a lot to cover, but the objective is to show how Python provides a comprehensive solution and that by learning just one, clear and simple, language, you can cover a lot of ground.

To keep the size down there won't be a lot of graphics. This can be deferred to the separate paper that focuses just of data visualization. That is where the pretty pictures go.

  • oceanography
  • meteorology
  • climate
  • genomics
  • micro machines


Anchor(DataVisualizationWithPython) [#DataVisualizationWithPython (permalink)] BR Title: [wiki:/DataVisualizationGraphing Python: Data Visualization and Graphing] BR Media: a 2-sided flyer + whitepaper BR Assigned-To: MailTo(bugracakir AT gmail DOT com, Bugra Cakir) (2006-12-07)

For use a scientific events, the flyer should be eye-catching with a couple of good graphic demonstrations.

The whitepaper should survey the various visualization and graphing frameworks available for Python and provide examples of the source and output of several. The SciPy website has a rich selection from which to choose.


Anchor(ReplaceMatlabWithPython) [#ReplaceMatlabWithPython (permalink)] BR Title: [wiki:/MatlabAlternative The Python Alternative to Matlab] BR Media: a whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For someone who currently is using Matlab, basically address their concerns point-by-point showing how the NumPy option can accomplish much of what Matlab does. Be honest and also show what it cannot yet do. The idea is to show how using Python can save the college student or researcher a lot of money and still get 80% of the benefit.

Interesting reddit thread: http://programming.reddit.com/info/sz4k/comments/


Anchor(CoolPythonFeatures) [#CoolPythonFeatures (permalink)] BR Title: [wiki:/CoolPythonProgramming Cool Programming Features of Python] BR

  • Python: The Cool Language BR Python: Have Fun Programming (again) BR

Media: a whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

Focused on the language enthusiasist, provide an evening's reading of some of the cool features of Python, such as generators, iterators, contexts. Focus on Python 2.5 and try to get the programmer excited about giving Python a spin. Perhaps in conjuction with the ipython interpreter shell.


Anchor(ComparingPythonToJava) [#ComparingPythonToJava (permalink)] BR Title: [http://advocacy.python.org/docs/python-vs-java.3600.en.1 About Python, for the Java Programmer] BR Media: a reStructured Text document, for the website BR Assigned-To: MailTo(demian0311 AT gmail DOT com, Demian) (2006-11-13) COMPLETED 2006-12-08 (click title above to see)

A 2-5 screen overview of the fundamental differences between Python and Java. Assume the reader is a Java programmer, wondering how Python compares.

When comparing languages, don't just look at syntax. Do cover the innate clarity and less boilerplate that Python has over Java, but also address the richness of the standard and extra libraries, and the maturity of its book and user community.

Briefly cover the availability of the IDEs for Python, as that is a common argument against Python by Java programmers. Also that Python has its own docstring commenting convention, like Java, and also a strong tradition/support of unit testing. Finally soften the conclusion by mentioning its not an either-or choice, with the use of Jython.


Anchor(ComparingPythonToRuby) [#ComparingPythonToRuby (permalink)] BR Title: About Python, for the Ruby Programmer BR Media: a reStructured Text document, for the website BR Assigned-To: (no one; teaming is possible) (date assigned)

A 2-5 screen overview of the fundamental differences between Python and Ruby. Assume the reader is a Ruby programmer, wondering how Python compares.

When comparing languages, don't just look at syntax. Do cover the innate clarity that Python has over Ruby, but also address the richness of the standard and extra libraries, and the maturity of its book and user community.


Anchor(ChoosingBetweenPythonRuby) [#ChoosingBetweenPythonRuby (permalink)] BR Title: Choosing Between Ruby and Python BR Media: a reStructured Text document, for the website BR Assigned-To: (no one; teaming is possible) (date assigned)

A 2-5 screen overview of the fundamental differences between Python and Ruby. Assume the reader is _not_ a Ruby programmer, but someone who is considering picking up another language and is trying to decide between Python and Ruby.

When comparing languages, don't just look at syntax. Do cover the innate clarity that Python has over Ruby, but also address the richness of the standard and extra libraries, and the maturity of its book and user community.


Anchor(PythonInTheClassRoom) [#PythonInTheClassroom (permalink)] BR Title: [wiki:/ClassroomPython Python in the Classroom] BR Media: a 1-sided flyer + whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For use at educational events, posting on campus bulletin boards and to perhaps send to Python champions at schools. Cover the clarity of the source and free availability of the toolset. Survey the available extensions and enviroments, such as Visual Python. Also list the various educational facilities that are currently using Python. Distinguish between "teaching programming _with_ Python" and "teaching a non-programming subject _using_ Python".


Anchor(GamingWithPython) [#GamingWithPython (permalink)] BR Title: [wiki:/GameDevelopment Game Development with Python] BR Media: a small whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

For use at schools to entice students to give Python a try because of their love for games. Using the Pygame framework, show how quickly a game can be put together. Explain how Python supports the various kinds of games, first-person shooters, board games, etc. Mention the EVE online game and how it is based on Python. And, without getting into overwhelming details, provide some coverage of how Stackless Python lets you script the thousands of actors that occur in a game.

I wrote a paper a year ago about this subject that might be useful: http://richard.cgpublisher.com/product/pub.84/prod.37 (there was a follow-up paper this year http://richard.cgpublisher.com/product/pub.84/prod.37 which introduced OpenGL). Personally I think talking about Stackless is unnecessary and confuses the issue. -- RichardJones


Anchor(PythonSpeedIssues) [#PythonSpeedIssues (permalink)] BR Title: The Speedy Python BR

  • Python: The Speed Myth Exposed BR This Python is no Tortoise BR

Media: a whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

Seek to address the common complaint against Python (and other dynamic languages) that it is slow. Assume the reader is a programmer of a static language such as C/C++. Explain that while Python is an interpreted language, that it does compile the source into powerful bytecode. Also that because of its rich libraries written in C/C++, Python spends much of its time away from the interpreter and in the depths of some C module. In many cases depending upon how Python is being used, of course.

Provide some coverage of solutions to speed bottlenecks, when they occur, such as SWIG/SIP, and psyco. Also that Python is often used as a glue language, which exacts a smaller performance hit. This paper may want to defer in-depth discussion of these to the [#LinkingPythonWithYourCode] paper below.

And perhaps some discussion of how Python can be embedded into their existing application, or extended with wrappers of their existing libraries. The idea is that they don't necessarily have to give up their static language and can code the speed-critical pieces there..


Anchor(LinkingPythonWithYourCode) [#LinkingPythonWithYourCode (permalink)] BR Title: Linking Python with your Code BR Media: a whitepaper BR Assigned-To: (no one; teaming is possible) (date assigned)

One of the interesting traits of Python is that you can combine it with code in other languages, using it as a glue language. Survey the various solutions for combining code, such as SWIG, SIP, Python2C, Pyrex and provide the reader some guidance on the tradeoffs and how to choose.


For active discussion on advocating the use of Python, please join the [http://mail.python.org/mailman/listinfo/advocacy Advocacy mailing list] and visit the [http://advocacy.python.org/getinvolved Advocacy - Get Involved!] site.


CategoryAdvocacy

AdvocacyWritingTasks (last edited 2008-11-15 14:00:06 by localhost)

Unable to edit the page? See the FrontPage for instructions.