Eagle and Python
GRAPHICS APPLICATIONS DELIVERED USING PYTHON
Eagle is uniquely flexible for development of world class graphics applications but we recognized that some of the programming methods provided in the existing Eagle SDK, whilst effective, were not all easily recognizable in the mainstream. We valued our existing users but also wanted to find ways to offer more mainstream tools and methods to provide for more cost effective development of the final engineered application to a broader range of developers. We recognized also that developers want to protect long their term hard earned investment in both new and existing developments, and whether they're using tools like the Python language or services like the ones offered at O2 Broadband they need to know they will be of the highest quality in the long-term in a constantly evolving technological environment. Developers and management teams want to ensure that technologies adopted in their organizations have appeal in the mainstream.
We have answered these needs by utilizing Python as a primary programming tool within our framework and in doing so we are natively embracing well know methods. Python is a well respected OOP Open Source dynamic typed language which because of its popularity also as a scripting language provides an ideal framework partnership to Eagle which has similar scripting capabilities. In fact the beauty of Python is it's flexibility which allows the programmer to choose the programming method rather than forcing the style and its extensibility. Python brings Eagle to the mainstream without compromising Eagle’s powerful graphics and data integration capabilities so valued by existing Eagle developers. Eagle is provided exclusively with Python, EagleGL or a combined version which supports both languages making it the ideal tool for both new and existing programmers. Our desire is to provide an environment that makes the relatively complex process of graphic and data integration domains of programming that much more simple so that programmers can concentrate on the implementation of the solution to the problem rather than the core methods of how it is achieved.
The Benefit of Python and Eagle
The core doctrines of Eagle graphics program have always been that we strongly believe in savings driven by reusability of code, the power of prototyping, the flexibility of incremental development, extendibility and ease of use by software engineers of varying levels of skills. In partnering Python with Eagle in the Eagle CDS Framework we have maintain all those core tenets whilst at the same time enhanced the appeal of ability of Eagle to mainstream programming community particularly in the field of domain specific programming .
REAL PROGRAMMER BENEFITS
- World wide accepted language
- Code significantly less than C, C++. Java
- Open and extendable
- Cost effective graphics programming
- Real benefit to programmer career
- Large Open Source community
- Easy to learn reducing training cost
- Save months of graphics developer time
- All team members can achieve complexity
- Permits flexible response to client need
PYTHON IN EAGLE V14 CDS
WHAT IS INCLUDED
Eagle CDS is delivered with Eagle 14 embedded with Python parser Eagle Base Classes, Eagle Foundation Classes (in source) and complete documentation, training materials and UML model of class structures.
WHO WILL BENEFIT FROM EAGLE?
If you are an ISV (Independent Software Vendor), Enterprise Developer, Equipment Manufacturer or Educator and want to develop or integrate leading edge 2D/3D graphics in your application using world class software Eagle CDS is the right choice. Already used in a wide variety of industries providing cost and time saving benefits Eagle and Python allow the developer to simply get on with the job of providing the solution.
Python is Number 1
Don't just take our word for it. Check Python.org and see why Python is in the top 10 in terms of the program-ming languages in the world in every year over the last number of years and often in the top 5 languages in the more recent times.
Python is the world's number 1 scripting language. The choice of Python, ideal for a variety of programming tasks including cloud applications is a real enhancement to Eagle. Eagle provides to Python a graphics framework that makes it the ideal choice for development of domain specific applications.
Python is the most popular scripted languages and also consistently rated high in the top 10 of all programming languages. In many ways Python is quite similar to our own EagleGL (graphics language) as it is a high level interpreted language but unlike EagleGL, which is largely unknown outside its own community, Python is well known and provided by an Open Source foundation supported by a mature and constantly growing community of respected organizations who developing using it. Google, YouTube, AstraZeneca, NASA, Industrial Light and Magic are amongst the organizations using it. Python design philosophy emphasizes code readability, plain language programming as it is sometimes called leads not only to more readable code but also easier to maintain and distribute for third party maintenance.
Much of the power of Eagle is based on the ability to prototype a solution prior to implementing it, Python continues to offer this capability, so in the combined release, for exampel it is possible to code in Eagle and then interactively code in Python wityhout changing session. Remember always that Eagle, like Python is extensible so Windows DLLs can be harnessed in a variety of ways to extend the application capabilities or as method of reusing existing code packaged in an acceptable format. A complete set of Eagle base classes (EBC) implemented in C++ are interfaced with hook via a Semantic layer to Eagle and are subdivided into core, geometry, GUI and utility functions. These classes are then used as the core of an extended class set of Eagle Foundation Classes (EFC) written in Python which provide as a guide method for a greater levels of abstraction. The beauty of this structure is that it is easier to program Eagle functions which at times may have appeared complex or sometimes the links between functions was not immediately apparent to the unseasoned Eagle programmer. Using object oriented approaches with the methods of Inheritance, Encapsulation and Polymorphism Eagle is not only more flexible but it is "programmer friendly" without loosing it's "engineer friendly" reputation.
Avoiding Programmer Resistance
We believe that gaining the confidence of programmers is essential. Corporate needs are best served when they are implement using technology which is seen as a career enhancing experience for the programmers involved. The high costs of training team programmers can also be avoided if the programming language is already learned at universities. We especially did not want to see programmers lose out on the benefits of graphics programming using Eagle so marrying the two in our Framework seemed the obvious choice. Python as a dynamic object oriented language that can be used for many kinds of software development and offers to developers just that confidence. Python offers strong support for integration with other languages and off the shelf developer tools, comes with extensive standard libraries (many of them free), has many well documented books and training materials and can be learned by the programmer within a short time span. Python provides these benefits to Eagle and at the same time Eagle provides to Python the benefits of decades of experience in development of real graphics engineering solutions.
Significant Savings and Flexibility
Utilizing the Eagle CDS framework with Python a developer can typically achieve significant time and costs in coding and implementation. Both Eagle and Python deliver to the developer programming methods at a high level of abstraction thereby shielding the solution implementation from unnecessary level of complexity. Coding in Python is normally 10-15 times less than C and 5-7 times less than Java, now add this to the coding saving achievable from Eagle to implement graphics applications we are looking at any months or years of development time. Simply imagine how long it would take to implement OpenGL or geometrical data import export in a C/C++ application and then understand that the same process in EagleCDS could simply be a matter of a couple of lines of code. The resulting readable code is equally productive in the long term because it is easier to maintain and thereby maintains respect for other development team members which is one of the tenets of XP (Extreme Programming).