
はてなキーワード:jQueryとは
2025年、私たちはソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代を現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たちの仕事は、いずれAIに奪われるのではないか」と。
この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマの仕事の本質が、歴史上かつてないレベルで抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考を要求されることになる。
本稿では、プログラミングの歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわち「Why(なぜ作るのか)」を定義し、記述する能力の重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略の提示である。
LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。
コンピュータの黎明期、プログラミングとは、計算機が理解できる命令(How)を、一行一行、丹念に記述する作業そのものであった。アセンブリ言語や初期のFORTRAN、COBOLといった言語は、ハードウェアの制約を強く受けており、プログラマはメモリ管理やプロセッサの動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。
この時代のテストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定の入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジックと実装の詳細が密結合し、コードは特定の処理手順を記述した、硬直的な塊となっていた。
風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間の認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミング(XP)の中で、テスト駆動開発(TDD)という考え方が登場する。
TDDの本質は、単なるテスト手法の改善ではない。それは、プログラミングのパラダイムを根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマの意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。
テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーがログインボタンをクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。
この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式でソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャーやビジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである。
TDD/BDDによってプログラマの意識が「What」に向かい始めると、コードそのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンなフレームワークの存在だ。
Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQueryに代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンがクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。
しかし、Reactは「UIとは、ある状態(state)に対する純粋な写像である」という宣言的なモデルを提示した。プログラマがやるべきことは、UIの状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的に更新するかという面倒な「How」の部分は、Reactの仮想DOMと差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。
この「WhatからHowへの変換」は、様々な領域で見られる。
これらのフレームワークやツールは、いわば「特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。
現状は、この歴史的変遷の延長線上にある。プログラマの仕事は、手続きを記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。
フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定の領域に特化した変換器」であったのに対し、LLMは「あらゆる領域に対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。
前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たちに特定の「制約」を課してきた。Reactを使うならコンポーネントベースで思考し、状態管理の作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。
しかし、LLMはこの前提を覆す。LLMは、特定のフレームワークや言語の知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由な形式で「What」を伝えることができる。
例えば、こうだ。
ユーザー認証機能付きのシンプルなブログアプリを作ってほしい。フロントエンドはReactとTypeScript、UIコンポーネントはMUIを使う。バックエンドはNode.jsとExpressで、データベースはPostgreSQL。ユーザーはGoogleアカウントでログインでき、新しい記事を作成、編集、削除できる。記事にはマークダウン記法が使えて、画像もアップロードできるようにしてほしい。
この要求(What)は、特定のフレームワークの流儀に則ったものではない。複数の技術スタックを横断し、機能要求を自然言語で並べただけのものである。しかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベルの要求から、ディレクトリ構造、設定ファイル、APIエンドポイント、フロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。
これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定のフレームワークが存在しなかったニッチな領域や、複数の技術を組み合わせる複雑なシステム構築においても、AIによる宣言的プログラミングの恩恵を受けられる時代が始まろうとしているのだ。
LLMという汎用変換器の登場により、プログラマの生産性は、「いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである。
質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である。
これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーやデザイナーとの対話を通じて、日常的に行ってきた思考プロセスそのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力(プロンプト)という形で、明示的に言語化されることを要求するのだ。
やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDがテストコードという形式で「What」を記述したように、私たちは自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コードが蒸発していく未来である。
「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。
答えは、明確にNoである。
ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ず「Why(なぜそう作るのか)」という、背景、文脈、そしてトレードオフの考慮が必要不可欠となる。
簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。
これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストとシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。
LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報が必要だからだ。
これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネスの目標、組織の文化、ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。
ここで重要なのは、これまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。
私たちが技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single PageApplication)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニアの採用市場が活発だから(Why)」といった、様々な「Permalink |記事への反応(0) | 17:09
2025年、私たちはソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代を現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たちの仕事は、いずれAIに奪われるのではないか」と。
この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマの仕事の本質が、歴史上かつてないレベルで抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考を要求されることになる。
本稿では、プログラミングの歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわち「Why(なぜ作るのか)」を定義し、記述する能力の重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略の提示である。
LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。
コンピュータの黎明期、プログラミングとは、計算機が理解できる命令(How)を、一行一行、丹念に記述する作業そのものであった。アセンブリ言語や初期のFORTRAN、COBOLといった言語は、ハードウェアの制約を強く受けており、プログラマはメモリ管理やプロセッサの動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。
この時代のテストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定の入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジックと実装の詳細が密結合し、コードは特定の処理手順を記述した、硬直的な塊となっていた。
風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間の認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミング(XP)の中で、テスト駆動開発(TDD)という考え方が登場する。
TDDの本質は、単なるテスト手法の改善ではない。それは、プログラミングのパラダイムを根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマの意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。
テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーがログインボタンをクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。
この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式でソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャーやビジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである。
TDD/BDDによってプログラマの意識が「What」に向かい始めると、コードそのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンなフレームワークの存在だ。
Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQueryに代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンがクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。
しかし、Reactは「UIとは、ある状態(state)に対する純粋な写像である」という宣言的なモデルを提示した。プログラマがやるべきことは、UIの状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的に更新するかという面倒な「How」の部分は、Reactの仮想DOMと差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。
この「WhatからHowへの変換」は、様々な領域で見られる。
これらのフレームワークやツールは、いわば「特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。
現状は、この歴史的変遷の延長線上にある。プログラマの仕事は、手続きを記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。
フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定の領域に特化した変換器」であったのに対し、LLMは「あらゆる領域に対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。
前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たちに特定の「制約」を課してきた。Reactを使うならコンポーネントベースで思考し、状態管理の作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。
しかし、LLMはこの前提を覆す。LLMは、特定のフレームワークや言語の知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由な形式で「What」を伝えることができる。
例えば、こうだ。
ユーザー認証機能付きのシンプルなブログアプリを作ってほしい。フロントエンドはReactとTypeScript、UIコンポーネントはMUIを使う。バックエンドはNode.jsとExpressで、データベースはPostgreSQL。ユーザーはGoogleアカウントでログインでき、新しい記事を作成、編集、削除できる。記事にはマークダウン記法が使えて、画像もアップロードできるようにしてほしい。
この要求(What)は、特定のフレームワークの流儀に則ったものではない。複数の技術スタックを横断し、機能要求を自然言語で並べただけのものである。しかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベルの要求から、ディレクトリ構造、設定ファイル、APIエンドポイント、フロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。
これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定のフレームワークが存在しなかったニッチな領域や、複数の技術を組み合わせる複雑なシステム構築においても、AIによる宣言的プログラミングの恩恵を受けられる時代が始まろうとしているのだ。
LLMという汎用変換器の登場により、プログラマの生産性は、「いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである。
質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である。
これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーやデザイナーとの対話を通じて、日常的に行ってきた思考プロセスそのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力(プロンプト)という形で、明示的に言語化されることを要求するのだ。
やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDがテストコードという形式で「What」を記述したように、私たちは自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コードが蒸発していく未来である。
「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。
答えは、明確にNoである。
ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ず「Why(なぜそう作るのか)」という、背景、文脈、そしてトレードオフの考慮が必要不可欠となる。
簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。
これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストとシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。
LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報が必要だからだ。
これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネスの目標、組織の文化、ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。
ここで重要なのは、これまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。
私たちが技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single PageApplication)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニアの採用市場が活発だから(Why)」といった、様々な「Permalink |記事への反応(0) | 17:09
それによって読み込まれるらしいファイル:https[:]//wpscriptbox[.]com/vGTVRK?return=js.client&&se_referrer=.......
ttps://www.yosegi-g.com/
=====
pluginlibery.com/queryjs
株式会社NSS(改ざん失敗)←日本時間土曜朝追記:いや、トップページが改ざんされて危険なようだ
若干書き直しました
https[:]//pluginlibery.com/min-jquery が
https[:]//wpscriptbox.com/vGTVRK?return=js.client&&se_referrer=https%3A%2F%2Fwww.google.com%2F&default_keyword=%E4%BC%9D%E7%B5%B1%E5%B7%A5%E8%8A%B8%E5%93%81%E3%83%BB%E7%AE%B1%E6%A0%B9%E5%AF%84%E6%9C%A8%E7%B4%B0%E5%B7%A5%20%E9%9C%B2%E6%9C%A8%E6%9C%A8%E5%B7%A5%E6%89%80&landing_url=www.yosegi-g.com%2F&name=_y63Y5hh5t5n1Xkp8&host=https%3A%2F%2Fwpscriptbox.com%2FvGTVRK
を読み込んでいる?
https://survey.stackoverflow.co/2024/technology
https://survey.stackoverflow.co/2020#technology
| - | 2020 | - | - | - | 2024 |
| JS | 67.7 | - | - | - | 62.3 |
| Python | 44.1 | - | - | - | 51 |
| TS | 25.4 | - | - | - | 38.5 |
| Java | 40.2 | - | - | - | 30.3 |
| C# | 31.4 | - | - | - | 27.1 |
| C++ | 23.9 | - | - | - | 23 |
| C言語 | 21.8 | - | - | - | 20.3 |
| PHP | 26.2 | - | - | - | 18.2 |
| Go | 8.8 | - | - | - | 13.5 |
| Rust | 5.1 | - | - | - | 12.6 |
| kotlin | 7.8 | - | - | - | 9.4 |
| Lua | - | - | - | - | 6.2 |
| Dart | 4.0 | - | - | - | 6 |
| Ruby | 7.1 | - | - | - | 5.2 |
| Swift | 5.9 | - | - | - | 4.7 |
| Scala | 3.6 | - | - | - | 2.6 |
※HTML/CSS,SQL,Bash/Shell,とかそういうのは省いた
順調に伸びるPython人気、そしてTypescriptの伸びがすごいな
Javaって永遠に人気なのかと思ってたけどじわじわと人気が落ちている
PHPも長期的にみると厳しそう。
GoとRustが着実に人気を獲得。
Luaが地味に人気出てる。
| - | 2020 | - | - | - | 2024 |
| PostgraSQL | 36.1 | - | - | - | 48.7 |
| MySQL | 55.6 | - | - | - | 40.3 |
| SQLite | 31.2 | - | - | - | 33.1 |
| SQLServer | 33.0 | - | - | - | 25.3 |
| MongoDB | 26.4 | - | - | - | 24.8 |
| Redis | 18.3 | - | - | - | 20 |
| MariaDB | 16.8 | - | - | - | 17.2 |
| Elasticsearch | 13.8 | - | - | - | 12.5 |
| Oracle | 16.5 | - | - | - | 10.1 |
MySQL+MariaDBではまだMySQL系が多いが・・・
| - | 2020 | - | - | - | 2024 |
| Node.js | 51.4 | - | - | - | 40.8 |
| React | 35.9 | - | - | - | 39.5 |
| jQuery | 43.3 | - | - | - | 21.4 |
| Next.js | - | - | - | - | 17.9 |
| Express | 21.2 | - | - | - | 17.8 |
| Angular | 25.1 | - | - | - | 17.1 |
| ASP.NETCORE | 19.1 | - | - | - | 16.9 |
| Vue.js | 17.3 | - | - | - | 15.4 |
| ASP.NET | 21.9 | - | - | - | 12.9 |
| Flask | 14.2 | - | - | - | 12.9 |
| Spring | 16.4 | - | - | - | 12.7 |
| Django | 14.2 | - | - | - | 12 |
| FastAPI | - | - | - | - | 9.9 |
| Laravel | 11.1 | - | - | - | 7.9 |
| Svelte | - | - | - | - | 6.5 |
| Rails | 7.0 | - | - | - | 4.7 |
※フロントとバックエンドがごちゃごちゃなのなんでだろう。Node.jsってフレームワークじゃないだろ・・・
Next.jsの勢いがすごい。やはりWEBはTSでNext.jsの時代なのか
Pythonの人気は盤石だけど、DjangoとかFlaskは人気が落ちてる。FastAPIに食われたか?
LaravelとRailsはこのまま消えていく予感
単純に羨ましい。
大したスキルも職歴もなく行き当たりばったりで一時は年収600万を超えて生活レベルが高い、しかもミドサーという感じで転職が難しいんだ。。
働いたら高評価はもらえるんだけどなあ。
今後のキャリアを決めないといけないタイミングだからリファラルで適当にっていうわけにもいかない。
というかリファラルだとJTC系は人事のハードル高くてキャリアで弾かれたり契約社員からだったりする。
SESで500万以上出してもらえるとこがあるけど…やっぱり職歴としては強くない案件でその後どうするか?を考えるとキツイ。
高校、大学と情報系だったし当時は基本情報の午後試験ぐらいなら無勉で解けたもんだ(白目)
Webデザイナーの勉強を一通りしたこともあるし直近も仕事でGASとかは書いてたからJSで関数電卓ぐらいは作れる(白目)
クラス分けっていうの?functionで分けるやつ。あれとかむずい。jQueryの野良プラグインとかwebデザイナーの勉強してた当時も読み解けなかったよ。。
周りはSESのITエンジニアばかりで意識高い系には全然あったことないんだけどどれぐらいの年収から日々キャッチアップに励んでいるんだろうなあ。
未経験OKのハード職場は全然いいんだけどそういうとこって転職前提だよね。年齢考えると転職キツイだろうなあ。
はー、宝くじあたってほしい。買ってないけど
やり方は色々あると思うんだよな
一回押したら押せないようにするとか、ユニークIDをhiddenに隠すとかさ
SNSでボタンの連打による連投を防ぐための修正方法として、以下のバリエーションが挙げられます。
んんwwww 拙者としては、その薄っぺらい擁護論調に少々呆れを禁じ得ませぬな!あまりに表面的な理解でReactを持ち上げるとは、お見受けしたところ、あなたの「強力な武器」とやらはただの小枝程度ではありませぬか?
Reactの複雑さを「大規模開発では必要」などと得意げに語られますが、その主張はあまりにも浅薄。幾多のプロジェクトで、最初はReactに憧れたものの、周辺ツールやベストプラクティスの沼にはまり、自らの開発速度と思考力を削り取られたエンジニアたちがいかに多いか、ご存じないのですかな? その「柔軟性」とやらが本当に業務効率を担保するとでも?実際には、下手なトリックを組み合わせて、頭でっかちになるだけのケースが後を絶ちませぬ。あなたの“管理が困難になる”というjQuery批判も、Reactが生み出す過剰な抽象化と結局大差ないことに気づきませぬか?
また、学習コストの減少などとぬかしておられますが、拙者から見れば、その「学習リソースの豊富さ」こそReactがどれほど歪に肥大化しているかの証左に過ぎませぬな。新人エンジニアに「怠慢」とレッテルを貼る態度も滑稽な限り。フレームワークが偏屈な難しさを内包していることこそ問題であり、それを喝破できぬのは、あなたがReact信者的ポジショントークに溺れている証拠ではありませぬか。
「強力なコミュニティ」や「頻繁なアップデート」といった定型句で飾り立てても、根底にある不自然な複雑さや導入過剰による開発コスト増大の現実は消えませぬぞ。妄信を指摘されているのに、自らを省みず「スキルセットを見直せ」とは、逆にあなたが凝り固まった思考から抜け出せない証拠ではございませぬか? 実に浅はかで狭量な反論、お見事ですな。今一度、時代に追随するのと本質を見失うことの違いを、しっかりと噛みしめていただきたいものですな!
んんwwww増田氏の意見、なかなか味わい深いですな。しかし、拙者の乏しい見識をもってすれば、React.jsの評価には少々偏見があるように感じますぞ。たしかに、Reactのエコシステムは複雑かもしれませんが、それこそが強力な武器になることがお分かりでしょうか?
拙者はこの件でマウントを取らせていただく所存ですぞ。まず、React.jsは確かに複雑ですが、それはスケーラビリティとコンポーネントベースの設計における柔軟性を提供するためのものですぞ。大規模なプロジェクトやチーム開発の現場で、コンポーネントの再利用性は非常に重要な要素であることをご理解いただきたく存じます。
また、jQueryなどの伝統的な方法では処理が複雑化し、管理が困難になる部分もあるのですぞ。Reactの状態管理やフックは、そのような部分でしばしば役立つのです。確かに学習コストはありますが、自動化ツールやコマンドラインの進化により、その導入障壁はかつてと比べてだいぶ低くなってきております。
新人エンジニアがReactの導入で消耗するという話も、学習リソースが豊富に存在することを考慮すれば、単なる怠慢ではないかと拙者は考えますぞ。時代の流れについていくこと、そしてツールをうまく活用することがエンジニアには求められているのですからな。
Reactの「絶対正義」としての扱いに違和感を持つ意見もわかりますが、Reactが持つ強力なコミュニティと頻繁なアップデートは、常に最新のウェブ技術を享受することを可能にしているのですぞ。それを妄信とし決めつける前に、増田氏は一度自身のスキルセットを見直し、Reactの利点を再評価することをお勧めする次第でありますぞ。
最近のフロントエンド開発界隈で持て囃されるReact.jsだが、正直言って、その過剰な複雑さと必要以上に手間ばかり増やす構造には嫌気が差す。ごくシンプルなタスク――たとえばAPIからデータをfetchして表示する程度のことが、なぜこれほどまでに意味不明なコンポーネントや状態管理ツール、無駄なベストプラクティスの学習コストにつながるのか?
jQueryなら数行で済むところを、Reactでは「Hooksがどうの、カスタムフックがどうの、Routerはどれ使うか、ReduxかRecoilかZustandか」と、次々に沼へ引きずり込む。現場のエンジニアが「これは本当に生産的なのか?」と疑問を抱くのも当然だろう。Reactの複雑さを「モダンなフロントエンド開発の必然」などと擁護する声もあるが、実際は一部のフロントエンドオタクが自己満足に浸るための余興でしかない場合も多い。
本来、フロントエンドは「エンドユーザーにとって使いやすいUIを短期間で組み上げる」ことが重要なはずだ。しかしReact導入後は、下手をすると新人エンジニアがReact+周辺ライブラリの難解な世界に消耗し、基本的な機能実装に時間を奪われる。挙句の果てに、保守運用でも「なぜこんな遠回りな実装を?」と後悔したくなるコードが山のように残る。
一部の巨大プロジェクトや複雑な状態管理が要求されるケースではReactの恩恵もあるだろう。しかし、その「本当にReactが必要な場面」以外で、このツールキットを無批判に使い続けることは、多くの場合オーバーエンジニアリングの極みだ。Reactを「絶対正義」のように祭り上げる風潮こそ、現実的な業務効率を蔑ろにした妄信に他ならない。
React信者たちが喜々として新しい手法を生み出し、複雑さを自己正当化する姿は、もはやエンジニアリングではなく一種の祭りに近い。合理的な判断を放棄し、ツールに踊らされる人々が多い限り、Reactの過剰な複雑さと生産性の低下は続くだろう。もう少しシンプルに物事を進められないのか? React中心主義に染まった業界は、その問いに真摯に向き合うべきだ。
Ruby全盛期のちょっと後くらいからWebエンジニアをしているんだけど、React.jsがいろんな意味で扱いにくすぎる
関わっている人にもフロントエンドエンジニア(=React.jsしかやりたくない)が多いので毒気で吐き出しておきたい
ライフサイクルや裏側の仕組みをなんとなく理解していないと使えず無意味に複雑
useEffect一つとっても~~の場合はuseStateでいけるとかTIPS集みたいのがあるけど、そういうウンチクみたいなのわかってないと使いこなせないのは仕事増えてない?
仮想DOMで高速化とか言っているけどライフサイクル理解しないと速度でないよね?いつものプロジェクトそんなにちゃんと書けてる?jQueryで良くない?
ベストプラクティス知っててちゃんと設計しないと改修する工数がすごいことになる
そもそもプロジェクトにおいて作るものは都度変わっていくので完璧な設計は存在しない。なので、設計をきちんとしないとカオスになるのはReact.jsのほうが間違っている
React.jsと別のフロントエンドライブラリ比較するだけで空気悪くなるので正直フロントエンドエンジニアの人の前で話せない話題がある
なぜかフロントエンドライブラリをReact.jsしか許さない人が多いのはなぜ
言うまでもないけどNext.jsの記法はひどすぎる。Remixは良いけどそれならもうReact.jsじゃなくていい
数少ないメリットだったエコシステムだけど、もうReact.jsしか対応していないことなんてほぼ無い
フロントエンドリッチでアクセス数ものすごいサイトを運用するのにフロントエンドライブラリが必要だった時代にReact.jsを開発する必要があったのはわかるけど、もっと便利なフロントエンドライブラリあるし正直時代遅れなのを理解してくれ
有名ライブラリを批判すれば権威性が上がると思ってるのか知らないけど
フロントエンド界隈では~~は技術的負債(になり得る)という言説がかなり短い周期で同じライブラリに対して繰り返し行われる
批判する人間が代替となるライブラリを作るならまだ健全だが、コイツらはそんなこともせずにシレッとそのライブラリを仕事で使っている
ハッキリ言ってこの人たちは全員気色悪いしフロントエンド界隈のレベルが低いのもこういう人間の声がでかいからだ
フロントエンドの流行が早く見えるのは確かだが有名ライブラリはきちんとメンテされてるし使い続けても殆どのケースにおいて問題はない
経年して流行から遅れただけでやれ技術負債だのほざいて下らない戯言を撒き散らすのをいますぐやめろゴミ共