One of the problems using the "port" version from Qt is that both projects stuck with that version until Qt releases updates.
This means that you cannot enable/disable WebKit features (i.e.: navigation timing API) as you build your own Chimera/PhantomJS and this has been one of the most sought after feature request in PhantomJS project.
2) Memory usage (?)
PhantomJS uses about 40-50MB for a simple website like Twitter.com main login page (we're not talking about the whole Twitter.com but just the login page). Not sure if this is because it is piggy backing on Qt or something else?
3) [Varies] Code-style wise
It takes a while to get used to PhantomJS/CasperJS coding style (based on Promises for CasperJS) and it looks like it is due to the nature of the interaction of the browser and the programmable API/tooling.
Btw., along the lines, I just figured out that via Qt Platform Abstraction (former Qt Lighthouse project) (since Qt 4.8), you can have a real headless Qt WebKit now. (Earlier, it always was some headless X-server in between - much heavier.)
Since this embeds QtWebKit which uses JavaScriptCore, does that mean that JavaScript in the browser will be running in a completely different environment? i.e., JavaScriptCore instead of node (V8).
1) Still no Qt version / WebKit features enabler
One of the problems using the "port" version from Qt is that both projects stuck with that version until Qt releases updates.
This means that you cannot enable/disable WebKit features (i.e.: navigation timing API) as you build your own Chimera/PhantomJS and this has been one of the most sought after feature request in PhantomJS project.
2) Memory usage (?)
PhantomJS uses about 40-50MB for a simple website like Twitter.com main login page (we're not talking about the whole Twitter.com but just the login page). Not sure if this is because it is piggy backing on Qt or something else?
3) [Varies] Code-style wise
It takes a while to get used to PhantomJS/CasperJS coding style (based on Promises for CasperJS) and it looks like it is due to the nature of the interaction of the browser and the programmable API/tooling.