Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

textlintとRedpenの比較

Googleで検索すると"redpen vs textlint"とかが検索候補に挙がるのだけれど、詳細な比較は以下くらいしか見あたらなかった。

A comparison of open-source linters · GitHub

インターネットへのアクセスにある程度制限がかかっている環境下で英語論文を書くことを念頭に比較した。

  • RedPenはJava 1.8.40+が必要。textlintは、生だとNode.js 6.0.0+とnpm 2.0.0+がが必要だが、textlint-app*1であればインストーラを実行すればNode.jsやnpmの個別インストールは不要。
  • RedPenは本体にバリデータを同梱している。textlintは同梱のバリデータがなく、すべてnpmでインストールする必要がある(textlint-appでも同様)。
  • GitHub上での最終リリースは、RedPenは2020/01/05*2, textlintは2021/07/10*3。ブログの最終更新は、RedPenは2017/10/09*4, textlintは2021/05/24*5
  • RedPenはJavaのほかにJavaScriptでも拡張できる*6。けどNashornベースなのでJDK 15以降では使えない*7
  • プレーンテキストのほかに、RedPenはMarkdown, AsciiDoc, Wiki, Re:VIEW, LaTeX, Java プロパティ形式に対応。textlintはデフォルトではMarkdownに対応し、それ以外のフォーマットはプラグインで対応。textlintにはreStructuredTextプラグインがあるのが利点かな(Sphinxのチェックに使える)。
  • RedPenもtextlintもWordファイルを直接検査するプラグイン等は見当たらなかった。xdoc2txtやpandocを使ってプレーンテキストを取り出す必要がある。
  • RedPenはオンラインでお試しできるサービスがある*8。textlintには同様のサービスは見当たらなかった。
  • 探した限りでは、The Chicago Manual of Style, APA style, The Gregg Reference Manualなど特定のスタイルマニュアルへの適合を検証するルールセットはRedPenにもtextlintにもない。

所感

  • プロキシの内側や、閉域環境での手軽な利用を考えるとRedPenの方が便利そう。一方で、RedPenは現状活動が鈍っているように見える。
  • 各種学会のスタイルマニュアルへの適合を検証するルールセットが見当たらないのはツラい。英語で論文を書くときにはこれがあるだけでだいぶ楽になると思うのだが。
  • 文の頭に"So"や"But,"を持ってこないとかはproselintやtextlint(というかRousseau?)でもチェックできるのだけれど、In AdditionでなくAdditionallyを使うとか、Thereforeは文頭でなく文中に持ってくるみたいな点をチェックしてくれるlinterは見つけられなかった。自分でルールを作れということか?
  • RedPenを試したのだが"ISO/IEC 12207"に対して「ISO/IECはミススペルでは」「12207は大きい数字なのでカンマで区切れ」と言われるのはちょっとツラい。オプションをOFFにするとチェック漏れが出そうだし……