最近，迷上了 Python 這個綜合了 scripting language, object-oriented programming language, dynamic programming language 的程式語言。為此，還拿出大學時期的 programming language 教科書來查閱有關 functional programming 的重點為何，順道了解一下大學同學 cklin 當初為何會這麼推崇 erlang。心得是：大學時，真是不懂事，竟然不曉得有這種可以大大改變寫程式方式與想法的東西，有種「現在才開始了解 computer science 的感覺」。
Python 官網上頭的 Quotes，節取了一些商業公司的人，在使用了 Python 後的心得（一般來說，比較常看到用 Testimonial 而不是 Quote），我挑了幾家我聽過的，而且也是我關心的公司，把它們的 quotes 列出來：
Industrial Light & Magic
“Python plays a key role in our production pipeline. Without it a project the size of Star Wars: Episode II would have been very difficult to pull off. From crowd rendering to batch processing to compositing, Python binds all things together,” said Tommy Burnette, Senior Technical Director, Industrial Light & Magic.
“Python is everywhere at ILM. It’s used to extend the capabilities of our applications, as well as providing the glue between them. Every CG image we create has involved Python somewhere in the process,” said Philip Peterson, Principal Engineer, Research & Development, Industrial Light & Magic.
“Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we’re looking for more people with skills in this language.” said Peter Norvig, director of search quality at Google, Inc.
“Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 25,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback,” said Hilmar Veigar Petursson of CCP Games.
“Like XML, scripting was extremely useful as both a mod tool and an internal development tool. If you don’t have any need to expose code and algorithms in a simple and safe way to others, you can argue that providing a scripting language is not worth the effort. However, if you do have that need, as we did, scripting is a no brainer, and it makes complete sense to use a powerful, documented, cross-platform standard such as Python.”
“Python, like many good technologies, soon spreads virally throughout your development team and finds its way into all sorts of applications and tools. In other words, Python begins to feel like a big hammer and coding tasks look like nails.”
– Mustafa Thamer of Firaxis Games, talking about Civilization IV. Quoted on page 18 of the August 2005 Game Developer Magazine.
“We chose to use python because we wanted a well-supported scripting language that could extend our core code. Indeed, we wrote much more code in python than we were expecting, including all in-game screens and the main interface. It was a huge win for the project because writing code in a language with garbage collection simply goes faster than writing code in C++. The fact that users will be able to easily mod the interface is a nice plus as well. The downside of python was that it significantly increased our build times, mostly from linking with Boost.”
– Soren Johnson, lead designer, Civilization IV. Quoted in a Slashdot interview.
其中的 ILM 是做電影動畫特效的公司，盧卡斯投資下的技術團隊，星際大戰就是出自這個團隊；Google 是現在的當紅炸子雞，號程擁有幹掉現在的軟體巨人 Microsoft 的頭號公司；EVE Online 做了個有趣但我沒玩過的多人線上遊戲；Firaxis Games 則是文明帝國這個會在遊戲歷史上留名的製作公司，而且，我非常的喜愛它們家的文明帝國。
其中，動畫產業裏頭的重量級軟體 SOFTIMAGE | XSI 裏頭的 script 就是 python（Maya 的則是自創的 Maya Embedded Language）；而 Google 似乎真的很愛 python 和 functional language，還發表了數篇平行運算的 paper，其中還有一篇 MapReduce: Simplified Data Processing on Large Clusters。而 EVE 這個多人連線遊戲，開發用到的技術，和遊戲裏頭提供給玩家的 script 正是 Python。
至於我自己，為什麼最近迷上 Python，主要是因為親手試了 wxPython 這個玩意兒後，發覺要寫 GUI 程式非常的快速，然後進而發現到 map, reduce 和 filter 這三個來自 functional programming language 的利器，就一頭裁進這個世界了…