【悲報】膨大な数のOSをサポートしたスーパーツール「curl」が対応するのが最も大変だったのはWindowsだった

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20221201 114319

先日コマンドラインツール「curl」が、89ものオペレーティングシステムをサポートし、100億ダウンロードを達成するなどの偉業を達成しているという情報をお伝えしましたが、作者のDaniel Stenberg氏は、curlがサポートするのが最も大変なOSは「Windows」だと考えているようです。

同氏はMastodonに以下のような情報を投稿しています。

When shown the huge list of operating systems curl runs on, people often ask me which is the strangest, or hardest, operating system to keep curl support for. The answer is always, and will probably always remain: Windows.

curlが動作するオペレーティングシステムの膨大なリストを見せられると、人々はしばしば、curlのサポートを維持するために最も奇妙な、あるいは最も困難なオペレーティングシステムはどれか、と私に尋ねます。答えはいつも、そしておそらくこれからも変わらないでしょう。Windowsです。

No other operating system has so many custom, special, weird and quirky ways that require special-case solutions in the code.

他のオペレーティングシステムには、コードに特殊なケースのソリューションを必要とする、カスタムで特殊で奇妙で風変わりな方法がこれほど多く存在しません。

同氏はcurlが古い世代のWindowsをサポートするため、Windows側に新しいAPIが追加されたとしてもそれを使えず、新しいコードを追加するしかない、とサポートの大変さを説明しています。

Windowsにはパスセパレータの違いや、馬鹿なシェル、文字セット、selectで非ソケットを除外しない、標準libcが存在しない、DLLに渡すメモリの所有権など、UNIX系OSには存在しないさまざまな問題が存在し、これがcurlサポートの困難さを生み出していると補足しています。

Windows以外の大部分のOSはPOSIXライクなターミナルが使えるのに対し、Windowsは独自のシステムを採用しているため、MacとLinuxで共通のCLIソフトウェアを実行するのは比較的簡単であるものの、Windowsとの間には常に互換性の問題が発生するとのことです。

WindowsもWindows 10やWindows 11では、WSLやWindowsターミナルの導入によって、以前よりコマンドライン環境が充実してきた印象があります。しかし、パスやドライブの問題など、根本部分は変わっておらず、UNIXをベースとしたツールをWindowsのネイティブ環境問題なく動かすためには、他のOSと比較とならない努力が必要なようです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次