· 7分で読了

テクノロジーは常に人のためにある(Svelte Society: Frequently Asked Questions メモ)

この記事は中国語から自動翻訳されたものです。翻訳によりニュアンスが失われている場合があります。

僕が新しいライブラリを研究するとき、同時にその人のことも調べる(もちろん全員ではない、そうでなければ npm install 1回で一生かかってしまうだろう)。技術の創作者は人であり、ライブラリの創作者も人、フレームワークの創作者も人、みんな血が通い、感情を持った人間だからだ。

技術は常に人間に奉仕するためのものであり、作者の背後にある動機やストーリーを理解することは、フレームワークそのものを理解するのにも役立つ。

この Svelte の作者である Rich Harris は、もともと rollup の作者であり、それ以前のあまり知られていない Ractive.js も彼が書いたものだ。彼のリポジトリを見ると、彼がゼロから自作するのが大好きな人物であることがわかる。New York Times で Graphic Editor として働いており、本職はジャーナリストだが、後に独学でプログラミングを学んでデータビジュアライゼーションのインタラクションを作り、最終的に rollup と Svelte を生み出した。

これは Rich Harris が Svelte Society でいくつかの質問に答えた動画だ。ぜひ見てみることをおすすめする。ここに少しメモを残しておくが、メモした内容はみんなが見たいものとは少し違うかもしれない。

The best way to learn a technology is just go ahead and build stuff with it and then as you get stuck, figure out how to ask good questions

新しい技術を学ぶ最善の方法は、とにかくそれを使って何かを作ってみること、そして行き詰まったら、状況を把握したり良い質問をする方法を見つけ出すことだ。

公式サイトのサンプルはかなり理解しやすく、しかもすぐ横に REPL があるので、実際に自分で手を動かして試すことができる。

I don’t use component library for the same reason that I don’t buy pasta sauce in jars I like making thing from scratch.

この回答は「普段どのコンポーネントライブラリを使っていますか?」という質問に対するものだ。

彼は自作の達人だから、当然ゼロから自分で書く。しかもとてもユーモラスな例えを使っている。「コンポーネントライブラリを使わない理由は、瓶詰めのパスタソースを買わないのと同じだ。僕はゼロから物を作るのが好きなんだ」。これを聞けば、Svelte のソースコードにある手書きのパーサーがどこから来たのかも理解しやすいだろう。初期のコミットと比較してみても、ほとんど大きな変更はないと言える。

Router: This makes people really unhappy which I understand. If I walk into the farm and see there’s 19 different kinds of shampoo I’m very unhappy. I want 2 kinds of it. Cheap and good. Ideally I want them to be the same kind.

Svelte には公式のルーター(React の react-router や Vue の vue-router のようなもの)がないため、Rich Harris はこう答えている。ルーターには時にさまざまなユースケースがあり、人によって意見が異なるからだと。

実際、現在では Svelte ベースのルーター実装が数多く存在している。作者はこれについて「人々が不満に思うのはよくわかる。もし店に入って19種類ものシャンプーが並んでいたら、僕もすごく嫌だ。安いやつと、良いやつの2種類だけでいい。理想を言えば、その2つが同じもの(1種類)であってほしいくらいだ(笑)」と述べている。

TypeScript support

実のところ、現時点での Svelte の TypeScript サポートはまだそこまで良くないが、現在進行中だ。

I’m just bad at delegating and letting other people take ownership of projects like Sapper.

作者は人に仕事を任せるのがあまり得意ではないため、Sapper の開発は少し遅れ気味だ。そして作者自身、今年はオープンソースから少し離れて休止したいと考えているようだ。

I started svelte for myself. It’s the framework I wanted to exist in the world. I get far more joy from discovering that someone who’s new to development has decided to pick up svelte and is building things that they didn’t think that would be able to build.

この回答は「Svelte の目標は、テック分野(フロントエンド)においてフレームワークの学習の複雑さや大量の複雑な概念を減らすことですか?」という質問に対するものだ。

作者は、React や Vue のように Svelte が企業に採用されるのを見るのも嬉しいが、開発分野に入りたての人たちが Svelte を手に取り、自分では作れないと思っていたものを作り上げている姿を見るほうがはるかに大きな喜びだと述べている。

ここからも、Svelte のシンタックスが簡潔で、コンパイル時にすべてをやってくれようとするのは、ランタイムで思いのままに開発できるようにするためだとよくわかる。Virtual DOM による抽象化も行わず、可能な限りすべてをシンプルにしている。

僕はこのような理念が好きだし、専門分野外のより多くの人たちが一緒にウェブ開発の世界に足を踏み入れることはとてもワクワクすることだと感じている。それはさまざまな可能性を意味しているからだ。

もしそうした人たちが参入して自分よりうまくやり、自分の仕事を奪われるのを恐れるとしたら、それは普段自分が情報格差に頼って実力の差を作っていただけであり、日々の積み重ねによるものではないという証拠でもある。本職のエンジニアたちにとっても、しっかり学ぶための良い戒めになるだろう。

Can I give you money? It’s really heart-warming. But it’s always a difficult topic. None of us who work on the project do so for any reason other than that we want to. And there’s always a fear that getting money involved on open source could have a weird effect on our personal incentive and motivation on working on this project. In a way that you know maybe isn’t best for the community. Thank you for offering as money but we don’t really have a way to accept it.

これはオープンソースソフトウェアでよく直面する難題だ。確かにお金の話が絡むと、全体の方向性がおかしくなりやすい。Svelte 自体も報酬を得ていない多くのコントリビューターたちの尽力によって成り立っている。お金を提供してくれるのはありがたいことだが、今の方向性ではそのお金を受け取る方法がない、というわけだ。

僕は素晴らしい理念だと思うし、これを見てすっかり Rich Harris の熱烈なファンになってしまった。

ただ同時に、オープンソースだからといって無料が当たり前だとか、お金の話をしたらオープンソースではない、などと言うつもりはないことも強調しておきたい。オープンソースでも稼ぐことはできるし、Vue の作者である Evan You はそれをうまくやっている。リソースがあってこそ、より多くの人が貢献したいと思い、より良いソフトウェアを生み出して社会に貢献しようと身を投じることができる。これはすべて繋がっているのだ。ただ、多くの人がお金の話をすることに気後れしたり、要求することを恐れたりしているように感じる。多くの場合、自分から求めなければ、世界は何も与えてくれない。将来的にはインディー開発者という選択肢に進む開発者がもっと増えるかもしれないし、今後の展開がとても楽しみだ。

You presumably spent a considerable amount of time and energy on building svelte because you thought that there must be an alternative to virtual DOM Are there any other things in computer or in society where you think we are trapped in a local maximum for years or decades?

この質問は非常に興味深い。作者は Virtual DOM に代わる何かを変えたいと考えて Svelte を書いたわけだが、この質問は他の事柄についても、ある技術やテーマが何年、何十年にもわたって局所的最適解(local maximum)に囚われていると思うか、と尋ねている。

作者は、例えば HTML 自体はもともとハイパーテキスト(テキスト)を表示するために設計されたものであり、もし今の時代にウェブを再設計するとしたら、僕たちはまったく異なる言語や設計手法を生み出していたかもしれない、と答えている。

同時に、現代社会における資本主義やマルクス主義も、ある種の局所的最適解であると述べている。

If you get into the habit of thinking in terms of local maximum you start seeing everywhere.

僕たちもそろそろ立ち止まって、局所的最適解に達してしまっていて、もっとうまくやれるはずのものには何があるのかを考えてみる時が来ているのかもしれない。

関連記事

他のトピックを探索