💨

フロントエンド恐怖症

2021/10/21に公開

警告:この記事は、自分の意見や考えを書き出すものであり、開発同士に対する批判ではありません。

徐々に成熟したフロントエンド

フロントエンド領域では徐々に成熟し、フロントエンドフレームワークもすでにある開発手法、哲学など保っていて、コンポーネントという中心的な思考は今でも採用されています。

なので今の改善ほとんどは、esbuild、vite、snowpack によるコンパイルスピードのような開発体験向上だったり、あるいは vue3が composition APIの導入、React の最近発表されたReact Server など、既存のフレームワークでさまざまな最適化を行うなどの傾向が受けられている。

もう 1 つの傾向は、Web Serial APIWeb BluetoothWebNFCのような通信プロトコルとの統合であり、ブラウザの利便性を借りて、ユーザーはソフトウェアやドライバを追加する必要がなくなり、すべての操作はウェブで完結できます。こういうウェブアプリでは、スムーズにデバイスと接続することが目的であり、見た目をよくする必要はありません。

一方、CSS フレームワークとコンポーネントライブラリも成熟しており、Web ページを作成するコストどんどん下げると思う。多くの場合は GitHub 上で好きなライブラリを選んでコードを修正する。

翻訳する

翻訳者がやっていることと同じように考えている。必須要件をコードに翻訳し、テストとアクセシビリティを書くと感じますが。それは本質的には翻訳者とほとんど変わりません。

以前のライブで Copilot で Vue3 を書いていた。実装された機能はとてもシンプルで参照値はそれほど高くないかもしれませんが、Copilot が生成するコードを見ると、開発に一助になることが期待できると感じました。そして開発者もっと価値があることに集中することができるでしょう。

これは、Copilot を使用する一部の例です。全部 AI によって自動的に生成された。

  • Serial に変数値をプリントするには、バフを宣言するだけで、Copilot はこの関数の変数に基づいて何をプリントしたいかを推測できる

  • AVR Timer の設定:どの register を使用するかを知るには datasheet を見る必要がありますが、Copilot は直接提示する。(ちょっとずれがあるが私がやりたいことと近い)

  • 関数に基づいて、copilot は stop 関数を望むかもしれないと推測していた

「AI が書けるとしても基本を知るべきだ!」と反論する人もいるでしょう。はい、スキルのあるエンジニアにとって、これらは単なるツールであり、正しい考え方を持っている限り、変化を恐れる必要はないと私も同感です。

しかし、次は私が不快に感じるところです。

ウェブはメディア

ウェブ開発における多くのアプリケーションは、「メディア」または「キャリア」に属しています。 例えば、私はオンラインショップで商品を販売する場合。取引を成立させるのを助けるためのツールですが、オンラインストアのウェブサイトだけではお金を取得することができない。(もちろん作る開発者がお金もらえるが、ここはウェブはメディアのことを強調したい)

Netflixのような機能を持つサイトを書くことができますが、映画、スタジオ、制作、監督などはサイトだけでは、ユーザーがお金を出さないでしょう。
ブログは、コンテンツなしでは読者は読まないでしょう。

これらの例を挙げると、Web ページは多くの場合、単なるメディアであり、その価値はサービスやプロダクトにあるので、ページ自体だけで価値を生み出すことは難しい(不可能ではない)。

このこと自体はよく悪くもなく、インターネットの Webページではそういう役割であり、決して変わっていない。

しかし、私にとっては心配している。先も言った通り、メディアであることは何も悪くないし、別にメディアであっても何も価値はないわけでもない。シーと言えば気持ちの問題だけだと思います。

ウェブはピラミッドの上位にある

Web ページはブラウザに依存するため、HTML、CSS、JavaScript 標準も完全に公開されており、提案、ドラフト、最終的にブラウザの実装を待つ必要があることを指している。 Chrome はさまざまな実験的な API を提供しますが、他のプラットフォームそうではない。なのでBluetooth、NFC など数年前に存在していたもの、他のプラットフォームで当たり前のように使っている技術は、Web ページ上の開発者がブラウザが実際に動作するまで待たなければならないことが多くて、正直遅れている感じもします。

なんか全部の新技術が体験した後、あとはウェブという流れが多かった。

ちょっとまとめると

要するに不安を感じるソースは:

  • Web ページでは、単に「メディア」と「キャリア」であり、価値を提供するのは「直接」ではない
  • フロントエンド開発は成熟しているように感じている
  • ほとんどのコードは Translation であり、AI に置き換えることができます
  • Web ページ自体は、巨大な抽象化に依存しています

価値というもの

この前に記事でも同じ概念を言及したが。

例えばキッチンタイマーは、機能的に単純ですが、日常生活にはとても便利なものなので、すぐに買わせることができる。しかし、同じ価格は、ソフトウェアを購入することがいかに難しいと思う。もう 1 つの例としては、最近 SwitchBot が買ってたが、簡単にいえば Bluetooth 機能搭載のチップ+赤外線発射機であって、アプリとの連携をちゃんとすれば優れた IoT アプリケーションになれる。

最初のステップ

私は価値の生産者(直接)に近づきたいと思い、この1年ではその方向に進んでいます。
自分の結論としては、ハードウェアの方は価値を作りやすいかなと思う。(個人的の意見です)

私の最初のステップは、ハードウェアまたはIoTアプリケーションの研究です。Arduino(中国製)、AVRチップ、ラスベリーPipico、STM32などの低消費電力のシングルチップを非常に安価な価格で購入できるようになって非常に助かった。この一年ではいろんな知識を勉強できて非常に充実だと思ってる。

ステップ2

ただの実験回路を完成品のに近づけて、Fusion360で3Dモデルや基本的な3Dプリンティングを勉強して、どうやってPCBを描くのかも理解しようとすること。たとえば、静電容量キーボードの原理を理解するために、自分でPCBを設計し完成品を印刷しようとした。

ステップ 3: ハードとソフトの統合

最近では、より可能性の高いプラットフォームをためしている。現在、Macbook や iPhone は、開発デバイスや携帯電話として使用されているため、iOS から始めることとする。 この映画では、Bluetoothモジュールを使用してMacBookに接続し、現在のトマト時計の状態をコンピュータに接続し、ブラウザでレイヤーをパックすることなく、コンピュータ上で直接状態を制御することができ、CoreBluetoothを介して直接接続することができます。

https://dnf7fm7877tpg.cloudfront.net/movie.mp4

この例は単純で、回路も醜いように見えますが、ハードとソフトの統合 (または IoT 統合) が価値をさらに高めることができるという考え方を表現したいと思う。

もともと見過ごされがちなトマトベルの通知は、物理的なブザー、LEDディスプレイ、他のアプリケーションにも適用できます。

次のステップ

正直何をするかまだわからない。

ウェブ開発ももちろん楽しいが、そもそも違う分野を覗くところだったと思った。

Discussion