I'm an IC Design Engineer with a new mission - developing a simple, open-source platform for circuit designers to use all the tools they need for design entry, simulation, and analysis. My chosen language for this platform is Python, because I want to make it easy for non-programmers to jump in and fix problems or add features as the needs arise. I'm also teaching a circuit-design laboratory at the University of Arizona in which Python will be heavily emphasized. http://ece.arizona.edu/~edatools/

My interest in Python was sparked by years of frustration with the tools used in circuit design. Complex and poorly-designed tool interfaces seem to make every tool a "black box" that never does what you want, and distracts you from focusing on the challenges of your design. If only I could write my own little program to run these tools, I knew I could make them do what I wanted. The available languages, however, either didn't have the capabilities I needed (BASIC), or were too complex (C++) for a technical professional who is not a full-time programmer, and does not have time to master the language and stay in practice. Since learning Python, I almost never use these other languages.

There needs to be a cooperative relationship between commercial design tools and an open-source platform, and an appropriate "division of labor". An open-source, fully-programmable platform, will take the burden of user interafaces off the experts who write the tools, and let them do what they do best - provide tools that solve their special problems better than any other tools in the world. A tool that provides just a simple, but complete programmable interface, will allow users to set up whatever convenient menus and forms they want. An open-source platform will allow users to solve many of the problems that wait years for a solution from an overworked and distant programming staff. With open-source, no one company has the burden of maintaining the code for a world of angry and impatient users.

Python will play two roles in our circuit-design platform. It will be not only the language in which we write the platform, but also the language in which users will write scripts to control the tools. The platorm GUI will give users a quick start by generating scripts to solve the most common design problems. Users will then modify and extend these scripts to do whatever they want. The initial resistance to learning "yet another scripting language" will disappear when users see the power and elegance of Python, and realize that learning Python will help them, not just with one company's tools, not just with the EDA tools that plug into our platform, but almost any computational task they may encounter.

If we do this right, the result will be win-win for both open-source and commercial EDA tools.