Thursday, November 08, 2007
DC PHP Conference Takeaway Thoughts
Well, I'm heading back from the PHP conference in DC. This was a simple, small, conference, but I came away from it quite impressed. The speakers were good, the organization was informal but solid, and (this is something quite unusual) the food was quite good. If you're interested, they're already planning to have the next one in the same venue (George Washington University campus of all places, but actually quite cozy) in early June of 2008.
I'm not a PHP programmer myself -- the main goal of my visit was to gain a better understanding of "who" a PHP developer is (if you can make such broad generalizations) and what their priorities are for database tooling. So I spent a lot of time at lunch and breaks chatting up my table buddies and asking them lots of questions. Sometimes I'd even pull out my survey and walk through it with them.
Many of the developers I met are the single "IT guy/gal" in their department. They had more computer skills than the rest in the team, and just pulled out the web and PHP books when they needed to build something. Over time they did this more and more and all of a sudden they were doing PHP for their day job.
In tems of tooling, a vast number of them use and love phpmyadmin (duh, say some of you, I'm sure:)), so I am definitely going to take a look at that.
In general, the primary database tool they care about is SQL query editing and execution. There are frameworks out there like PDO that hide the SQL from the developer, but this is used by a very small minority (I couldn't find anyone using PDO).
Another theme I heard was that Entity/Relationship (E/R) diagrams are useful, not as a design tool, but primarily as a communication tool. Developers need to understand existing schemas, and also communicate their schemas to the end users. There was a lot of head nodding around a feature to allow you to print an E/R diagram to PDF to make it easily distributable over the web and email.
I also particularly wanted to know how important visual query building is. This is a feature that lets you build a query by dragging tables onto a pallette, selecting/deselecting columns, adding filters, joining tables with a line, and the resulting SQL query is built for you. The strong answer I got here was "ah, that would be nice, but I don't really do that. I mostly just hack SQL on the command line."
Many folks don't use an IDE and don't know what value it could have for them. One of them even said "there was this one tool I used that color coded my code for me and when I typed a letter it would show me all methods that started with that letter, man that was so cool!" So I could see that if they get started on an IDE, they would really love it.
However, one thing I noticed is: these are keyboard guys, they want fast response time and fast round trip. They will be turned off by an IDE if it feels "heavy." Luckily NetBeans is modular, and we can provide a PHP bundle that is quite lightweight and should have a reasonable startup time.
Another interesting theme I gathered was that many PHP developers don't have an entire LAMP stack on their machine. They work in the office, connected to the network, and use remote access to their server to deploy and test, even during development.
I need to spend some time thinking about the implications of this for database tooling. In particular, if the database server is only accessible through HTTP, then all our database tooling that requires a direct database connection is not going to be of much value... I can see why phpmyadmin is so popular, because it is web based...
I could imagine building a set of REST services for database tooling like schema metadata management, query editing, and so on, and access these services through NetBeans, allowing you to manage a database over the web through NetBeans. Pretty cool, now that I think of it...