the Python Principle is the Principle of Playing

The Python Principle is a principle of playing. Python makes it easy to play with programming.

Recently when I was refactoring my software project, I realized I want to make it easy to play, the same as Python did. So I am thinking about providing a web based python interactive console (possibly with good features similar to ipython console) so other members of the project including non-programmers can play with the code, supplemented with a very concise tutorial as python tutorial provided, some examples, good API reference, and so on, similar to python itself. By thinking this way, it helps me refactoring the code a lot and easily see how I should change the code to make it easy to play with. I guess eventually if the code is easy to play with then it must be very KISS (Keep It Simple, Stupid), readable, well tested, robust and functionally complete.

So I then have a sudden realization about why Python is designed so well. I guess in the design and implementation of Python, Guido (the author of Python), probably followed the principle of playing, treating being able to play with Python as the top priority (for example, it was explicitly stated by Guido Python is made easy to learn and program with — as a programming language for everyone). After meeting that top priority, other concerns such as performance are then considered.

Thus my thoughts went to my understanding of human society, I thought what this Principle of Play implies for the human society. When we are kids, we all like to play. Everything is new to us. We are curious about everything. Everything we see and touch is new to us, and easily accessible (we just need to open our eyes, walk around, and touch things). It is so easy to expand our space, and we definitely enjoy keeping learning of new things. So it is always fun. Nature is at our finger tip. So we can see that play and learning are intrinsically connected, just like in Python.

But as we grow older, it becomes harder and harder to expand our space and feel the space, to be exposed to new things. The space becomes more and more invisible and inaccessible to us (For example, it takes a lot of learning to explore human society, know and understand history and various cultures.). So this difficulty is natural and intrinsic.

Of course, in human history, people at the top of the hierarchy take advantage of this difficulty, and intentionally designed a system to make it harder for people to explore the space. So various approaches were developed to dump people down, such as compulsory schooling.

The significance of Internet and web is that they make the space more easily accessible. The information around the globe and through history can be at your finger tip. Exposed to this space (especially when it is beautifully structured), people want to learn and play again.

By applying the Python Principle to the human world, what we can do is to make the human world easy to play. To make it easy to play, we need to make things handy, easily accessible and visible so people can play with it (just like Python did). We need to build the hierarchy of space so people can learn layer by layer.

The primary projects of my life are: 1., natural learning: how people can learn naturally in real life; 2., open project: how independent artists/professionals can take control of their work/arts/creativity and build their business by cooperating with their peer professionals and professionals in other professions (This is essentially about Playing). To do these two well, on either a smaller scale (such as within an organization) or a larger scale (such as the whole society) we need to apply the Python Principle, by which I mean that by making things easily available and thus easy for people to expand their space. This is essentially social programming, e.g. doing programming not just with computer, but with the whole human society (online and offline) (in which software running on computer and Internet is inextricable part of it).

Note: below are some extras if you are interested in reading more

The experience of the Python programming language helps us gain the concrete experience of the best practices of how to program to make it easy to play with.

The open source movement these years also developed a lot of similar best practices, which I think can be summarized as making things easy to play with. Open source, by making the source code available, is to make it transparent and thus people (at least good programmers) can play with it. The appearance of many mash up webapps in the recent years means more and more people can play with programming now.

To dissect a little bit of the Python Principle, what makes Python easy to play with:

  • transparent (visible instead of invisible/hidden) (Java is a hidden box. But in Python, you are playing inside the box);
  • component, every component is made easy to play with
  • easy to try, ground up and layered;
  • easily accessible (at your finger tip);
  • overall, fun and you can play with.

Above is just a very rough attempt trying to understand the Python Principle.



Filed under Essay, Featured Essays, Grassroots

6 responses to “the Python Principle is the Principle of Playing

  1. Steven

    You have examples of how python helps explore the space of programming. Did you have any examples of how the same can be done in society, apart from python, as you suggest?

    Of course unschooling could be one example, but you’ve written about that alot already.

  2. I hope I will have time soon to write about the application of the Python Principle in various social context soon.

    One example I thought recently is PDA or IPhone. I feel I really need an IPhone to organize my information at run time every day. Having information at any time, being able to review and organize daily info at any time, are really powerful. I hope a lot of great web apps be written to be served over cell phone.

  3. Pingback: Build a better playground « A hacker of the Internet for the purpose of growth, fun, and creation

  4. Pingback: Computer Science is Life Science « A hacker of the Internet for the purpose of growth, fun, and creation

  5. Pingback: Python Design Philosophy and the Principle of Playing « A hacker of the Internet for the purpose of growth, fun, and creation

  6. Pingback: The Fun Theory « A hacker of the Internet for growth, fun, and creation

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s