This interview is the third in a series of interviews with outstanding WordPress Developers. This time Milan Petrovic was kind enough to answer a few questions.
Hi Milan and thank you for doing this interview.
Hello Lars. Thank you for the invitation.
Could you explain a little about yourself, your history and background?
I have started with Delphi some 10-11 years ago, for desktop development. In 2002 (I think) I needed to make a website, and I was looking for a technology to use, and found PHP. However, in the same time I have replaced Delphi for C# in first version of MS dot NET Framework.
For the last 7 years, I am both C# and PHP developer. In 2006, I have started working for ILUMNIS, Serbian-Canadian Company. They are working mostly with Microsoft development tools (C#, ASP.NET, MS SQL Server) and use mostly ExtJS for web applications front end.
In late 2007, I was creating new company website, and I needed a CMS platform only to handle news. I decided to use WordPress (2.3 was just released). In that time I was developing minor things for WordPress in my free time, but soon things changed, and I published first plugin (GD Pages Navigator). GD Star Rating followed in the summer last year.
For some 8 months, I was working two jobs, and with more WordPress projects, I decided to leave Ilumnis. From March 2009, I work as a freelancer.
You are probably most well-known for your GD Star Rating plugin, which is used extensively on a lot of WordPress blogs around the internet.
Yes, GD Star Rating is very successful plugin. When I started working on it more than a year ago, it was very simple plugin made for a friend. There are only few rating plugins for WP, and only one of them was actually good and regularly updated (Lester Chan’s WP-Post Ratings).
However, that plugin is very limited, and I needed much more control for everything including the comments ratings. Moreover, very early, many blogs started using it, and provided feedback, so the number of features grow over time, and it will continue to grow. I have plans for many new features that will lead to GD Star Rating 2.0 sometime next year.
You mentioned to me at some point that GD Star Rating is over a whooping 20.000 lines of code. How do you develop such as monster?
That number is now much higher. It has 39.000 lines (including CSS and HTML), with 25.000 lines of PHP. It is definitively a lot, but still manageable for only one developer. Plugin has some 500 files, and code split to small pieces so that is easier to find what goes where.
Moreover, I rely on the IDE to keep track of everything. Plugin size is a problem, and at least twice, so far I had to reorganize the code and make it more logical. When you take into account all the plugin features, this is not too big number of lines.
In addition, some of the plugins features have proven very complex to use, so I am also planning to add another feature, called Wizard, which will help in setting plugin using simple systematic setup procedure, like all the installation wizards do. In addition, I will add interesting new visualization of votes using Google Maps.
You are the creator of other well-known plugins such as GD Press Tools, GD Simple Widgets, and many more. Which is your favorite? And why?
GD Press Tools is my favorite because it is very unusual plugin that has more than 50 tools built in, and I use it daily for debug purposes, for keeping the blog clean and much more. Pro version will be released soon and will offer much more, both new features and expansion of existing features.
I also like to mention plugin called GD Affiliate Center. This plugin is still under development, and it will be another month or so before the release. I had so much fun writing it and I experimented with many new things to create better and easier to use interface. Plugin is built for managing affiliates and their promo banners and links, offering easy to use means to add banners into the blog, track impressions and clicks, and more.
You have introduced Premium Support recently, where it is possible to hire you for an hourly rate (4 hours, 100 Euro minimum). What was your experience from launching this? And will you continue to offer this service?
Current premium support is mostly for GD Star Rating and I am doing at least one or two such premium customizations each week. Some things in GDSR are complicated, and some people find it much faster (and cheaper) to pay me to customize theme and integrate GDSR.
Most WordPress users are not developers, and some more complex features that require modifying theme are not always easy. I am working on a new website, and this website will offer a classic premium support for GDSR that will include premium users only forum, email support, video tutorials and more. Even with that, I will be available for more specific GDSR integrations.
The discussion of commercial businesses based around WordPress flares up once in a while. What is your position on this debate?
The debate around GPL and WordPress is still going on, but I do not see a point in that.
WordPress is GPL licensed, and there is nothing to be done anymore, so both designers and developers need to accept that and use it, or if they don’t like it, to move on to some other platform that is not under GPL license. Even with GPL, commercial business is still possible and alive, even with themes.
Many theme designers (Woothemes, StudioPress, ElegantThemes…) have embraced the GPL licensing and still are doing great because they are now selling the support for their products, and for users to know that the product they are paying for is supported and constantly in development is very important.
On the other hand, commercial plugins for WordPress are rare, but the same principle can be applied to them. Since I plan to release few such premium plugins soon, and you have premium plugins, it would be nice for WordPress.org to recognize that as they did with the themes.
How do you see the future of WordPress as a whole?
I think that WordPress is going in the right direction (for the most part). Core is developed with the help and feedback from community, and that is very important. Merging WP and WPMU projects announced few months back is also a good thing and will make easier to make and maintain more complex websites. With number of users growing each day, WordPress is now fastest growing CMS platform.
How do you see the future for WordPress Authors and Theme Developers?
Good thing is that WordPress core will remain simple, and that many features (some even requested as a standard core features) will be left to plugin authors. Always growing number of designers and new companies working on WordPress themes is also a great sign.
Do you see a future for WordPress Authors and WordPress Template designers in a commercial sense? Could people make a living from working with WordPress?
Definitively. I am a freelancer, and I a work only with and for WordPress, and I do not intend to switch to any other platform. I get more offers for projects than I can handle. Many companies are switching to WordPress, they always need some special and custom things done, plugins, expanding theme or something else and there is a lot of work that is ideal for freelancing model. Making free plugins and themes are great ways to start and to build the reputation that will in the end get you paying jobs and projects.
For the past year and a half, I have created some 20 plugins for various clients, and some of those plugins were very complex and expensive. Commercially, WordPress is a great platform.
You are an experienced WordPress Author, what do you think could be improved? Both from a practical/day-to-day sense, but also from a developers perspective?
It is too late now for WordPress 2.9, but WordPress 3.0 must have new management and interface for posts/tags/categories/taxonomies. Current interface is good for smaller blogs, but try managing blog with 10.000 posts with 20.000 tags and 500 categories. Reassigning posts to categories is painful with current interface. There are some plugins for this, but I am sorry to say, none of them is good. This must be solved within the WordPress core. From the developer point of view, WordPress 3.0 should not support PHP4. I recently had problems with GD Star Rating and PHP older than 4.4.9, and it is very hard to test with such outdated and no longer supported software.
Also, it would be nice if WordPress developers create a easy to use set of controls for building the administration side for plugins (for grids, settings and more). Right now, you need to strip things from WordPress default panels.
Your colleague, Vladimir Prelovac, was so kind to share some tricks in Interview with Vladimir Prelovac, do you have some tricks for WordPress Authors you would like to share?
Always write plugins using PHP classes. Even with the simplest tasks, it is much easier to control the code. If your plugins starts to grow, there is no way to keep the functions in place, and classes are the way to go. Try to document the code as much as you can. I use DoxyGate program that can search through the source code and generate HTML (or PDF, CHM) files with your documentation. DoxyGate can be integrated in NetBeans for easier use.
I include such HTML files with all my plugins. It is easier for end-users to figure out how to use plugin, if they have functions documented in an easy to read file. Also, use SVN or some other versioning system. And make regular backups of everything you do.
What kind of software do you use for development? Are you working on PC/Mac? What kind of software do you use? Notepad? 🙂
I have desktop and laptop PC’s, both with Windows, and I work mostly on laptop (Lenovo SL500). I use NETBeans IDE 6.8. It is great for PHP, HTML and CSS. Also, WordPress projects work great and NETBeans maps all functions and classes from WordPress and that is very important for development speed and comfort.
I use HeidiSQL and phpMyAdmin for database access, Tortoise for SVN access (NETBeans also has SVN support built in), Notepad++ and WinMerge for various tasks. In addition, I keep all my projects on SVN.
Do you have a template system when you develop plugins, or do you start from “scratch” so to speak?
I have a few plugin template systems I use, depending on the plugin I develop. More complex are based mostly on GD Star Rating structure. I have a library of same basic classes and functions I use in every project (DB installation, debug, functions for every need, image upload and manipulation). It is painful to start from scratch every time, and many elements are repeating in each project, so having a startup project is necessary.
Last year I started developing GD Plugin Core, that was a base for plugin that even included a wizard capable to generate a fully working plugin: you set name for the plugin and few other things, and plugin generates folder with all needed files, all extending basic Core class. However, this plugin is not maintained anymore. Maybe someday I will resume that work.
How do you feel WordPress is in terms of ease for development? Its advantages and disadvantages?
Compared to Joomla or Drupal, it is much easier to develop for WordPress. However, many things are not so good from the developer’s point of view. Unfortunately WordPress motto: Code Is Poetry cannot be applied to WordPress as a whole.
WordPress has too many functions, many of them doing the same thing; functions use different parameters specifications that can be confusing at times. More functionality needs to be within classes. Some things will not change to retain compatibility with old versions of plugins, themes and WordPress.
Nevertheless, once you get used to these things, they are not so bad. Every system has similar problems, and you cannot find the one that is perfect.
Thank you for doing this short interview, and thank you for sharing your thoughts. Do you have any final words you would like to leave us with?
Thank you for the opportunity Lars, it was a pleasure.