I think the performance of a developer can be subjective. So in my opinion, this will depend on your needs, vis-a-vis your objectives.
If your developer can meet your objectives, he is okay.
If can exceed it, then he is good
If he can go far and beyond your expectation , then in your context, you can call him outstanding.
With this in mind you need to define S.M.A.R.T objectives
S = Specific : Example: Clone the twitter platform for me.
M = Measurable, Example: All pages should load within 5 secs irrespective of the traffic volume or number of users.
A = Agreed Upon: Example : Sign here if you agree to all my terms.
R = Realistic ... " :Example : Use the best framework you are most comfortable with that meets the objective.
T = Time Bound : Example: Deliver it in 3 months
So at the end of the day, the higher the objectives you set, you can then begin to filter out the outstanding programmers from the mediocres ones,because to some one task is achievable while to others its not.
For example another objective could be:
Develop a software within 6 months that outputs the PHP equivalent of any Python algorithm that I write. The software should out put the PHP algorithm when I load the python script and press an "Execute" button and it should work without being connected to the internet or consume more that 512 MB of Ram.