Phantom.jsがメンテナンス終了になる件を調べてみた

はじめに

Phantom.jsというヘッドレスなブラウザがメンテナンス終了になるという話を今年の4月ごろ聞いた。

いま仕事でやっているプロジェクトはRailsで、E2EテストをCapybara+Poltergeistで回している。 PoltergeistっていうのはPhantom.jsをCapybaraで動かすためのdriverなので、Phantom.jsがメンテナンス終了になるんだったらPoltergeistから乗り換えないといけないという話をしていた。

ただ自分の中で「なぜメンテナンスをやめてしまうのか」ということについて、興味が湧いてきたので調べてみることにしたというのが発端。

ソース

ソースはこのディスカッション

https://groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE

Hi,

I want to make an announcement.

Headless Chrome is coming - https://www.chromestatus.com/features/5678767817097216
(https://news.ycombinator.com/item?id=14101233)

I think people will switch to it, eventually. Chrome is faster and more stable than PhantomJS. And it doesn't eat memory like crazy.

I don't see any future in developing PhantomJS. Developing PhantomJS 2 and 2.5 as a single developer is a bloody hell.
Even with recently released 2.5 Beta version with new and shiny QtWebKit, I can't physically support all 3 platforms at once (I even bought the Mac for that!). We have no support.
From now, I am stepping down as maintainer. If someone wants to continue - feel free to reach me.


I want to give credits to Ariya, James and Ivan! It was the pleasure to work with you. Cheers!
I also want to say thanks to all people who supported and tried to help us. Thank you!

With regards,
Vitaly.

以下意訳

やぁ

アナウンスメントしようと思う

Headless Chromeが来ました

最終的には、人々はChromeに乗り換えるようになると思う。Chromeは早くてPhantomJSより安定している。そして狂ったようにメモリを食わない。

私は開発中のPhantomJSに未来を見ない。PhantomJS 2と2.5を一人で開発するのは、もう限界だ。
さらに最近リリースした2.5 Betaには新しくてピカピカのQtWebKitがついているが、3つのプラットフォームをいっぺんにサポートすることは物理的にできない(私はそのためにMacを買いさえしたのに!)私たちにはサポートが無い。
今から私はメンテナーを辞める。もし続けたい人がいれば連絡してくれ。

私はAriyaとJamesとIvanに賞賛を贈りたいと思う。あなたと仕事ができてよかった。乾杯!
私はサポートをしてくれたり、私達を助けてくれたすべての人たちに対して感謝を言いたい。ありがとう!

敬具
Vitaly.

日本語に意訳してみたら、かなりつらそうな気持ちが伝わってきた(小並感)

Poltergeistメンテナーの反応

それと この件についてPoltergeistのリポジトリでIssueが上がっていた

github.com

It doesn't surprise me. With the number of people repeatedly posting issues (and demanding fixes with no contribution) in the PhantomJS repo, that were obviously issues with Webkit, trying to develop/maintain PhantomJS was probably a nightmare. There has been no work done in Poltergeist with regards to Headless Chrome, however once it is released it should be usable through selenium.

以下、超意訳

それについて私は驚いてない。
多くの人々がPhantomJSのリポジトリの中で何度もIssueを投稿していた(コントリビュートすることなしに修正を要求し続けてきた)
それはWebkitによる明らかな問題で、PhantomJSを開発・メンテナンスするのは悪夢だ
Headless Chromeに関するPoltergeistの仕事は無かったが、一方ではHeadlessChromeがリリースされるとSeleniumによって使うことができるはずだ

QtWebKitの問題

この問題の背景を知るのにこの記事がすごく参考になった

jser.info

以下、引用します

PhantomJSはQtWebKitを利用しており、QtWebKitは一度削除され最近また復活しています。
QtWebKitのAlternativeとしてChromiumベースのQtWebEngineが提供されています。

(中略)

どちらを利用した場合もPhantomJSには大量の修正が必要となり、サポートコストが高いためPhantomJSのメンテナンスを終了するとのことです。

感想

  • OSSの開発って大変だなぁと思いました(小並感)
  • QtWebKitの先行きもどうなるかわからないというのも一因なんだと思った
  • Headless Chromeで今のプロジェクトのテストを通してみたのだけど、何個か通ってないテストがあるし、実行速度は正直HeadlessChromeのほうが遅いという問題があるのだけど、乗り換えたいなぁと思った

自分の英語力がゴミなので、間違っている部分があればコメントなどで指摘いただければ助かります