Recently, version 2.0 of the PHP Development Tools (PDT) project was officially released. PDT is one of the more popular projects at eclipse.org, with over 1 million unique downloads to date. I caught up with Roy Ganor, the project lead for PDT and Zend Studio for Eclipse to ask him a few questions about the release.
[Ed] What exactly was announced and why should developers care?
[Roy] There is an active community helping evolve PDT. Version 2.0 is the result of this momentum and activity. PDT 2.0 features are focused on creating better usability for developers creating applications. PDT is a great example of how Eclipse works with and handles dynamic languages. Eclipse is truly now a great platform for developing apps in any target language.
With the announcement of the Eclipse PDT 2.0 major release, we have really set new standards for PHP developers that are aligned with "the Eclipse way". For example, many static type language developers who are switching to new, popular dynamic languages like PHP will find this version very similar (feature-wise) to what they are used to in their native environment, with features such as Type Hierarchy, source editing capabilities and behavior, and similar navigation options. Aligning with Eclipse standards also opens up new opportunities with other projects and vendors that have already enhanced their Eclipse environments based on these standards.
[Ed] How did PDT get started, and who are the main contributors?
[Roy] Eclipse PDT started as an initiative by Zend and IBM about three years ago. We predicted that PHP developers would benefit from Eclipse and the Eclipse ecosystem, especially when working in a team and while practicing Agile development. Now that many large and medium sized companies are using PHP as their primary web development language, we see their developers expressing a significant interest in Eclipse and Eclipse-based products.
[Ed] What are the main highlights of PDT 2.0?
[Roy] For a complete list with screenshots see the release notes. Enhancements include:
- Type Hierarchy view that navigates object-oriented PHP code faster and more easily.
- Type and method navigation that allows for easy searching of PHP code based on type information.
- Override indicators that visually tag PHP methods that have been overridden.
- A new indexing and caching engine, based on the Eclipse Dynamic Language Toolkit (DLTK), which significantly improves the overall performance of common PDT operations.
- A new Mark Occurrences indicator that make it easier for developers to see where an element is referenced.
- More sophisticated Code Assist feature that is smarter about providing code completion options based on PHP variable types.
[Ed] How does PDT make a typical PHP developer more productive? Don't most PHP programmers just use a text editor?
[Roy] In addition to the existing Eclipse features which help with project management and navigation, Eclipse PDT provides enhanced source editing features such as code completion, mark occurrences, override indicators and code folding. These and other editing features provide a much better user experience when developing in PHP. I believe that with the help of Eclipse’s Dynamic Languages ToolKit (DLTK) project, we provide the best type inference engine for PHP developers.
Unlike other static type languages (Java, C, C#), PHP type inference is harder to resolve and support for these features in the DLTK has been critical as PHP and other dynamic languages mature and gain these important additions the Eclipse development environment. IDEs that do not provide support for dynamic languages will not have these convenient---some would say, essential---features for developers. Certainly plain text editors do not provide dynamic language type inference.
[Ed] How many people use PDT now?
[Roy] Determining usage is always difficult in an open-source project with multiple download locations, etc. According to analyst firm estimations there are about 5 million PHP developers. Overall, there have been over 1 million unique downloads of Eclipse PDT since project inception and a substantial portion of those have been downloads of Zend Studio for Eclipse commercial products from Zend. We hope the PDT 2.0 release significantly increases that figure!
[Ed] Does the Eclipse framework have support for dynamic languages built-in or did you have to roll your own?
[Roy] As part of Eclipse PDT 2.0 we started using the Dynamic Languages Toolkit project that is comprised of a set of extensible frameworks designed to reduce the complexity of building full featured development environments for dynamic languages. This is another sign from the Eclipse community that it is embracing dynamic languages as equally as they do the statically-typed Java / C plug-ins.
[Ed] What are the good and bad points in your experience as a project within Eclipse?
[Roy] I think that many other open source projects could learn from the Eclipse Foundation and its projects. The openness of decisions and the processes that have been established are a great help in delivering projects on time. However, we should always strive for better quality and support standards. Open source projects are often known as "use at your own risk" and this should not be the case. I think Eclipse is helping to change this perception.
[Ed] What advice do you have for others who want to create a successful open source project?
[Roy] There are many theories behind managing a successful open source project, all of them emphasizing community interaction and involvement. In addition I would also add the importance of extensibility. Each project and especially open source projects should be seen as a platform that can be extended. This is critical as most open source projects are extended by other communities, and communities are essential for great open source ecosystems to develop.
PDT 2.0 is available for download today at eclipse.org.