Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「TypeScript」を含む日記RSS

はてなキーワード:TypeScriptとは

次の25件>

2025-10-04

Rustの悪魔「お前もRust最高と言いなさい!」

まずはarrayの型にreadonlyを付けるのをおすすめします!https://t.co/6F0dKo3r6E— suin・読者6万人『サバイバルTypeScript』公開中! (@suin)October 4, 2025

Permalink |記事への反応(0) | 16:53

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-30

うちの会社にやってきた「できるエンジニア」がやばかった

3ヶ月前、うちの開発チームに新しいエンジニアがやってきた。佐々木仮名)、29歳。

経歴書を見た時点で、正直ビビった。

GitHubスター数がやばい

技術ブログ記事数もやばい

使える技術スタックが俺の3倍はある。

React、VueNext.jsTypeScriptGo、Rust、DockerKubernetes…もう何がなんだかわからない。

「また意識高い系が来たよ」

と同僚の田村仮名)がつぶやいた。

俺も同感だった。

案の定初日からすごかった。

レガシーコードを見て「これはちょっと…」みたいな顔をする。

技術選定の会議

モダン構成リファクタリングしませんか?」

提案してくる。

コードレビューでは容赦なくダメ出し

「このコンポーネント責任が多すぎますね」

「ここのエラーハンドリング、もう少し丁寧にやりましょう」

テストコード書きましょうよ」

うぜぇ。

俺たちがなんで汚いコードを書いているか知ってるのか?

毎日終電まで働いて、土日も障害対応で呼び出されて、

そんな中で何とか動くものを作ってるんだよ。

綺麗なコードなんて書いてる余裕ないんだよ。

でも、佐々木コードは確かにしかった。

読みやすくて、テストちゃんと書いてあって、

ドキュメント完璧

俺たちが1週間かけて実装する機能を、

3日で仕上げてくる。

しかった。

あいつ、前の会社どこだっけ?」

「確か、某有名Web企業らしいよ」

「やっぱりな。恵まれ環境にいたから、あんなことできるんだよ」

俺たちは佐々木を妬んでいた。

SIer出身の俺たちと、

最初からモダン環境にいた佐々木

スタートラインが違うんだから

勝負になるわけがない。

そう思っていた。

ところが先週、佐々木と飲みに行く機会があった。

酒が入って、だんだん本音を話すようになって、

そこで知った事実愕然とした。

佐々木は、元々文系出身プログラミング完全未経験者だった。

新卒で入った会社は、まさに俺たちと同じようなSIerJavaCOBOLレガシーシステムの保守をやっていた。

毎日終電、土日出勤当たり前。

技術負債まみれのクソコードと格闘する日々。

最初の3年間は地獄でした」と佐々木は言った。

でも、佐々木はそこで諦めなかった。

毎朝5時に起きて、出社前に2時間勉強

帰宅後も疲れていても1時間は必ずコードを書く。

土日は技術書を読み漁り、

オンライン講座を受講し、

個人開発を続けた。

「平日は合計3時間、土日は10時間以上勉強してました。それを4年間続けました」

4年間。毎日3時間。土日10時間

俺は計算した。

平日3時間×240日×4年+土日10時間×100日×4年

=6,880時間

7,000時間近く勉強していた。

最初転職活動100社受けて全部落ちました。でも諦めずに勉強を続けて、2回目の転職活動でようやく今のレベル会社に入れました」

俺は恥ずかしくなった。

佐々木を「恵まれ環境にいたから」と妬んでいたが、実際は俺たちと同じ、いやそれ以下のスタートラインから、血のにじむような努力で這い上がってきた人だった。

俺は何をしていた?

環境が悪い」

時間がない」

SIerから仕方ない」。

そう言い訳して、

家に帰ったらゲームして、

土日はYouTube見て、何も勉強しなかった。

佐々木と俺の差は、才能でも環境でもない。

努力の量だ。

「今からでも遅くないですよ」

佐々木は言った。

「一緒に勉強しませんか?朝活やってるんです」

恥ずかしかったけど、頷いた。

明日から佐々木朝活を始める。

毎朝1時間でもいい。変わりたい。

29歳。まだ間に合うよな?

Permalink |記事への反応(3) | 13:57

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-30

自動車各社クラウド人材比較

テスラの「Sr.Software Engineer, Full Stack - Tesla Cloud Platform(TCP)」の求人https://www.tesla.com/careers/search/job/sr-software-engineer-full-stack-tesla-cloud-platform-249132)を起点に、自動車各社が同種人材採用する“目的”の違いを整理した。日本勢はIT基盤やSRE運用比重が高い一方、テスラは社内クラウド自体プロダクトとして内製し、中国勢のNIOやXPengはAIインフラ自動運転やロボティクス、エネルギー連携)に特化、ECARXはOEM向けの外販プラットフォームという立て付けである

各社比較

会社主要目的What to ExpectWhatYoull DoWhatYoull BringCompensation and Benefits
Tesla社内クラウドTCP)を“製品として”内製し、全社サービスの速度と統制を握るTCPテスラの内製クラウドであり、複数DCにまたがる計算ストレージネットワークID提供し、開発者セルフサービスで使える基盤をつくるチームであるコアAPIサービス設計実装セルフプロビジョニングの自動化、可観測性、ReactやNextTypeScriptによるダッシュボードGoやReactやNextTypeScriptKubernetes仮想化CI/CD分散システムの知見年収133,440〜292,800USDに加え、現金賞与株式付与および福利厚生提示額は勤務地、市場水準、職務関連の知識スキル経験など個別要因により異なる。本職の総合的な報酬パッケージには、提示される職位に応じて他の要素が含まれ場合がある。各種福利厚生制度の詳細は、内定時に案内される。
WovenbyToyota製品直結サービスを“止めない”SRE運用(AreneやEnterpriseAICity Platform)ミッションクリティカル運用信頼性最適化を担う監視や可観測性やインシデント対応運用自動化マルチクラウド横断SRE実務、Kubernetes、Terraformなどの基盤スキル給与は多くが非公開。米拠点類似シニアは$169K–$200Kの例あり。
Nissan全社ITや開発のモダナイズと標準化(Platform EngineeringやDevEx)社内開発者クラウド活用底上げする基盤を整えるCI/CD、セキュア環境供給教育や展開、オンプレクラウド統合運用クラウドコンテナCI/CDセキュリティ設計多くがレンジ非公開(地域により待遇差)
Honda(Drivemode含む)製品直結のAWS基盤と開発者体験高速化(DevEx)モバイルやIVIやバックエンドの横断基盤を整えるAWS設計運用、GitOps型プロビジョニング、CI/CD観測セキュリティ自動化AWS、TerraformやCDK、Kubernetesなど本体US求人レンジ非開示が多い。Drivemodeはホンダ完全子会社(前提関係
NIOAI学習や推論インフラの内製強化とエネルギー運用統合自動運転やVLMやLLMなどのAI基盤を構築するGPU最適化分散学習データパイプライン整備深層学習分散処理、クラウド最適化SJ拠点で$163.5K–$212.4Kレンジ例。
XPengFuyaoAI PlatformによるADやロボやコックピット向けAI基盤社内共通MLプラットフォーム提供データローダやデータセット管理学習や推論スループット最適化分散処理、MLプラットフォーム運用クラウドサンタクララ拠点公募多数(給与媒体募集による)
ECARX(Geely系)OEM向けに外販するクラウドソフト製品(Cloudpeakなど)車載SoCからクラウドまでを束ねる外販スタック製品機能開発や統合、導入支援機能安全準拠車載クラウド統合機能安全顧客導入ハイパーバイザなど 直近レンジ情報は公開少なめ(事業広報は多数)

なお、関連するポストとして、SETI Park氏のポストを挙げる。

https://x.com/seti_park/status/1961629836054859810

自動車メーカーがなぜクラウド専門人材を探すのか」に答える文脈で、2024/07公開のテスラ特許(US2024249571A1)を手がかりに、ロボタクシーフリート運用の中核となるクラウド基盤が競争優位になり得る点を示唆している。

単なるストレージではなく、フリート運行データ連携統合管理する“中核プラットフォーム”としての重要性が強調される。

上記テスラTCP求人セルフサービスIaaSダッシュボードプロビジョニング自動化の開発)という具体の採用整合である

Permalink |記事への反応(1) | 20:22

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-11

anond:20250810162429

「Math.minを使えば1行で書けるのでそうしてください」

この指摘が的外れだと思うな

javascripttypescriptだとおもうけど、

三項演算子でも1行で書けるし

if 文でも1行で書ける

あと Math.minは Math.max に変換できるね

まり「1行で書ける」は、 Math.min を使うべき理由にはならないんだ

「1行で書ける」以外の理由を示さないと、同意は得られないと思うよ

Permalink |記事への反応(1) | 00:03

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-24

LLMとTypescriptって実は相性悪いよねって話

今時点の使えそうな Sonnet4 を使ってコード生成とか業務でやる時にTypescript は案外うまくいかないことが多い。

UIとかシンプルものであれば結構うまくいくけど、graphql,prisma みたいなところになると、token数すごくなるし結局完成しない。

この辺りが、なんとも小骨がひっかかるからTypescriptの型ってやっぱりあれなのかと思って調べてもらったんだ。

↓↓↓↓↓↓↓

##ソフトウェア工学から見たTypeScriptの3つの根本課題

Web上の専門的な議論論文では、TypeScript課題は主に以下の3点に集約されます。これらはすべて、JavaScriptという土台との不適合性に起因するものです。

1. 不健全な型システム (Unsound Type System)

ソフトウェア工学において、型システムの**「健全性(Soundness)」**とは、「コンパイル時に型エラーがなかったプログラムは、実行時に型エラーを起こさない」という保証を指します。

TypeScriptは、この健全性を意図的放棄しています

設計目標の不在:TypeScript公式ドキュメントには「健全であること」は設計目標ではないと明記されています。これは、JavaScriptとの互換性や開発者利便性を優先した、根本的なトレードオフです。

具体的な不健全さ:

配列の扱い:string 型の変数に (string |number) 型の配列を代入できてしまうなど、配列の扱いに不健全な部分があります。これが原因で、実行時に数値を取り出してしまい、string型のメソッドを呼び出してエラーになる、といったことが起こり得ます

any型と型アサーション:any型の存在や、開発者コンパイラに「これはこの型で間違いない」と強制する型アサーションas構文)は、健全性を根本から破壊する「抜け道」です。

関数引数(Bivariance):関数引数の型チェックが、他の多くの言語(反変)とは異なり、より緩いルール(双変)になっています。これも実用性を優先した結果、理論的な正しさを犠牲にしている例です。

学術的な観点では、この「不健全さ」はTypeScriptの型システムが持つ最大の弱点と見なされています

2.構造的部分型(Structural Typing)の罠

TypeScriptは、クラス名などによらず「構造が同じなら同じ型」とみなす構造的部分型を採用しています。これはダックタピングが主流のJavaScript文化に合わせた賢い選択ですが、ソフトウェア工学的にはいくつかの罠があります

意図しない互換性: 全く異なる目的で作られた二つのオブジェクトが、偶然同じ構造を持っていたために、型チェックをパスしてしまうことがあります。これにより、ドメイン業務領域)の意図とは無関係コードが結合してしまい、予期せぬバグを生む原因となります

過剰なプロパティの許容:constconfig: { port:number } = { port: 8080, host: 'localhost' }; のように、変数経由で代入すると、型に定義されていない余分なプロパティ(host)がエラーになりません。これは仕様ですが、開発者意図しないデータが紛れ込むことを許容してしまい、セキュリティバグリスクに繋がります

これは「TypeScriptの型は、データの『形状』を記述するが、その『意味』や『文脈』を保証しない」という根本的な限界を示しています

3. 「漏れのある抽象化(Leaky Abstraction)」としての本質

Joel Spolskyが提唱した「漏れのある抽象化法則」に倣えば、TypeScriptはまさにその典型例です。

TypeScriptは「静的型付け」という抽象化レイヤー提供しますが、開発者は常にその下にあるJavaScriptの泥臭い現実(undefined, null, thisの挙動など)を意識し続けなければなりません。

抽象化の不徹底: 型を書いているときも、最終的にそれがundefinedになりうることや、thisが何を指すかを常に考えなければなりません。抽象化レイヤーが、下位レイヤーの詳細を隠蔽しきれていないのです。

摩擦コスト: この「漏れ」が、これまで議論してきた「Union地獄」や「境界での型変換の手間」といった、開発上の継続的な摩擦コストを生み出しています

##結論

ソフトウェア工学的な観点から見ると、Web上の専門家議論は我々の対話結論を強く裏付けています

TypeScript課題は、個別機能の優劣ではなく、「健全性を犠牲にしてでも、JavaScriptという動的な土台との互換性を最優先した」という、その成り立ちそのものにあります。その結果として生じる「不健全さ」「構造的部分型の罠」「漏れのある抽象化」といった問題は、この言語を使い続ける限り、アーキテクトが向き合い続けなければならない、本質的なトレードオフなのです。

Permalink |記事への反応(0) | 23:52

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-14

TypeScriptにしてからアップデートが面倒すぎる

昔のJSの頃も複雑で面倒ではあったけどまぁどうにかなるものだった

実行してエラーが出るところをそのライブラリの変更点に応じて変えるくらいだったし

 

でもTSになると実行すれば動くものなのに型エラーが山ほど出る

関連ツールも増えてしか依存関係があるから片方だけあげて見るとかはできず全部上がる

それでよくわからんエラーが出てどうしろ状態

 

最近あったのはこれまでだと期待通りに推論されてたところが勝手anyとみなされるようなった

その結果あちこちに暗黙的なany の受取はダメみたいなエラー

さすがに何百ページもあるのにそれ全部に実際の型を書いてられない

型がとても複雑だから推論に任せてたのに

その原因を辿ろうにもTS自体の推論方法が変わったのかライブラリの推論させるための型定義が変わったのかわからない

深く探ろうにもライブラリが多数組合わさってるところで簡単特定できない

そもそも原因をできたところでどうしようもないと思う

推論されなくなった以上自分で書くしかないんだから

 

さすがにこの規模はやってられないということでアップデートはせず元のバージョンに戻した

数年もすればきっと大幅に作り直すことになるんだろうし、そのときに一から作り直せばいいんじゃないかなと未来に投げた

ただそのプロジェクトに関わるメンバーの再編でビジネスロジック実装レベルならできるが開発環境更新とかそういう事できる人が残ってないわけで、どうなるんだろうな

まあ自分はもうそときには関わらないプロジェクトなんだしいいか

Permalink |記事への反応(0) | 11:54

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-28

LLMはエンジニア仕事を奪うのか?否、仕事抽象度を「Why」の次元

序文コード蒸発する時代と、それでも残る「Why」という名の問い

2025年私たちソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たち仕事は、いずれAIに奪われるのではないか」と。

この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマ仕事本質が、歴史上かつてないレベル抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考要求されることになる。

本稿では、プログラミング歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわちWhy(なぜ作るのか)」を定義し、記述する能力重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略提示である

第1章:プログラミング歴史的変遷 ― HowからWhatへの長い道のり

LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。

1-1.手続き時代:Howを記述することに終始した黎明期

コンピュータ黎明期プログラミングとは、計算機理解できる命令(How)を、一行一行、丹念に記述する作業のものであった。アセンブリ言語や初期のFORTRANCOBOLといった言語は、ハードウェアの制約を強く受けており、プログラマメモリ管理プロセッサ動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。

この時代テストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジック実装の詳細が密結合し、コード特定の処理手順を記述した、硬直的な塊となっていた。

1-2.テスト駆動した振る舞いへの注目:Whatへの小さな一歩

風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミングXP)の中で、テスト駆動開発(TDD)という考え方が登場する。

TDD本質は、単なるテスト手法改善ではない。それは、プログラミングパラダイム根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマ意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。

テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーログインボタンクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。

この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式ソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャービジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである

1-3.宣言プログラミングの台頭とフレームワーク役割

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」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。

現状は、この歴史的変遷の延長線上にある。プログラマ仕事は、手続き記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。

第2章:LLMがもたらす究極のパラダイムシフト ― 汎用変換器の誕生

フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定領域に特化した変換器」であったのに対し、LLMは「あらゆる領域対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。

2-1.フレームワークの制約を超えて

前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たち特定の「制約」を課してきた。Reactを使うならコンポーネントベース思考し、状態管理作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。

しかし、LLMはこの前提を覆す。LLMは、特定フレームワーク言語知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由形式で「What」を伝えることができる。

例えば、こうだ。

ユーザー認証機能付きのシンプルブログアプリを作ってほしい。フロントエンドはReactとTypeScriptUIコンポーネントはMUIを使う。バックエンドNode.jsExpressで、データベースPostgreSQLユーザーGoogleアカウントログインでき、新しい記事作成編集、削除できる。記事にはマークダウン記法が使えて、画像アップロードできるようにしてほしい。

この要求(What)は、特定フレームワーク流儀に則ったものではない。複数技術スタックを横断し、機能要求自然言語で並べただけのものであるしかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベル要求からディレクトリ構造設定ファイルAPIエンドポイントフロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。

これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定フレームワーク存在しなかったニッチ領域や、複数技術を組み合わせる複雑なシステム構築においても、AIによる宣言プログラミング恩恵を受けられる時代が始まろうとしているのだ。

2-2. 「What」の解像度がすべてを決める世界

LLMという汎用変換器の登場により、プログラマ生産性は、いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである

質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である

これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーデザイナーとの対話を通じて、日常的に行ってきた思考プロセスのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力プロンプト)という形で、明示的に言語化されることを要求するのだ。

やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDテストコードという形式で「What」を記述したように、私たち自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コード蒸発していく未来である

第3章:それでもAIには決められない ― 「Why」の不在という致命的な欠陥

「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。

答えは、明確にNoである

ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ずWhy(なぜそう作るのか)」という、背景、文脈、そしてトレードオフ考慮必要不可欠となる。

3-1.トレードオフの海に溺れるLLM

簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。

これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。

LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報必要からだ。

これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネス目標組織文化ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。

3-2.エンジニアが暗黙的に行ってきた「Why」に基づく意思決定

ここで重要なのはこれまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。

私たち技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single PageApplication)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニア採用市場が活発だからWhy)」といった、様々な「Permalink |記事への反応(0) | 17:09

このエントリーをはてなブックマークに追加ツイートシェア

LLMはエンジニア仕事を奪うのか?否、仕事抽象度を「Why」の次元

序文コード蒸発する時代と、それでも残る「Why」という名の問い

2025年私たちソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たち仕事は、いずれAIに奪われるのではないか」と。

この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマ仕事本質が、歴史上かつてないレベル抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考要求されることになる。

本稿では、プログラミング歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわちWhy(なぜ作るのか)」を定義し、記述する能力重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略提示である

第1章:プログラミング歴史的変遷 ― HowからWhatへの長い道のり

LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。

1-1.手続き時代:Howを記述することに終始した黎明期

コンピュータ黎明期プログラミングとは、計算機理解できる命令(How)を、一行一行、丹念に記述する作業のものであった。アセンブリ言語や初期のFORTRANCOBOLといった言語は、ハードウェアの制約を強く受けており、プログラマメモリ管理プロセッサ動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。

この時代テストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジック実装の詳細が密結合し、コード特定の処理手順を記述した、硬直的な塊となっていた。

1-2.テスト駆動した振る舞いへの注目:Whatへの小さな一歩

風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミングXP)の中で、テスト駆動開発(TDD)という考え方が登場する。

TDD本質は、単なるテスト手法改善ではない。それは、プログラミングパラダイム根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマ意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。

テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーログインボタンクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。

この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式ソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャービジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである

1-3.宣言プログラミングの台頭とフレームワーク役割

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」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。

現状は、この歴史的変遷の延長線上にある。プログラマ仕事は、手続き記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。

第2章:LLMがもたらす究極のパラダイムシフト ― 汎用変換器の誕生

フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定領域に特化した変換器」であったのに対し、LLMは「あらゆる領域対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。

2-1.フレームワークの制約を超えて

前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たち特定の「制約」を課してきた。Reactを使うならコンポーネントベース思考し、状態管理作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。

しかし、LLMはこの前提を覆す。LLMは、特定フレームワーク言語知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由形式で「What」を伝えることができる。

例えば、こうだ。

ユーザー認証機能付きのシンプルブログアプリを作ってほしい。フロントエンドはReactとTypeScriptUIコンポーネントはMUIを使う。バックエンドNode.jsExpressで、データベースPostgreSQLユーザーGoogleアカウントログインでき、新しい記事作成編集、削除できる。記事にはマークダウン記法が使えて、画像アップロードできるようにしてほしい。

この要求(What)は、特定フレームワーク流儀に則ったものではない。複数技術スタックを横断し、機能要求自然言語で並べただけのものであるしかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベル要求からディレクトリ構造設定ファイルAPIエンドポイントフロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。

これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定フレームワーク存在しなかったニッチ領域や、複数技術を組み合わせる複雑なシステム構築においても、AIによる宣言プログラミング恩恵を受けられる時代が始まろうとしているのだ。

2-2. 「What」の解像度がすべてを決める世界

LLMという汎用変換器の登場により、プログラマ生産性は、いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである

質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である

これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーデザイナーとの対話を通じて、日常的に行ってきた思考プロセスのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力プロンプト)という形で、明示的に言語化されることを要求するのだ。

やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDテストコードという形式で「What」を記述したように、私たち自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コード蒸発していく未来である

第3章:それでもAIには決められない ― 「Why」の不在という致命的な欠陥

「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。

答えは、明確にNoである

ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ずWhy(なぜそう作るのか)」という、背景、文脈、そしてトレードオフ考慮必要不可欠となる。

3-1.トレードオフの海に溺れるLLM

簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。

これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。

LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報必要からだ。

これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネス目標組織文化ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。

3-2.エンジニアが暗黙的に行ってきた「Why」に基づく意思決定

ここで重要なのはこれまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。

私たち技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single PageApplication)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニア採用市場が活発だからWhy)」といった、様々な「Permalink |記事への反応(0) | 17:09

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-12

すべての不幸はブラウザ上で動く言語JavaScriptだけであることに始まる

何がトランスコンパイル

TypeScriptが直で動けるようにしろ

Permalink |記事への反応(1) | 10:08

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-11

40代中年最近まで知らなかったこと。今もわかってないこと。

めちゃくちゃいっぱいある。

順不同、脈絡なく書いていく。

最近まで知らなかったことだけじゃなく、書いたけど結局わからんことも書く(そっちのほうが多い)。

製造業用語いろいろ

5Sといって整理、整頓、清掃、清潔、躾だそうだ。

全部日本語じゃねーかって思った。

QCサークルとか、サークルっていうから酒でも飲むのかと思ったら普通に業務じゃないか

会計用語いろいろ

簿記とか会計に疎かったので、営業利益とか経常利益とか違いがわからんかった。

ググってみても、本業の稼ぎが営業利益とか出てきて意味がわからなかった。

経費削減っていうから会社支出は全部経費かと思ったら、材労経だろJK

それにケイツネも特別もあるだろって言われた。

原価といっても全部原価とか直接原価とか標準原価とか次々新しい名前が出てきていまでもわからん

税金用語いろいろ

所得年収は違うことは知ってたが、わからん

雑損てなんだ?

配偶者控除配偶者特別控除の違いとかわからん

散々計算した挙句所得定義国税地方税で違うとか温厚な俺でもキレそうになる。 

税金難しすぎる。

消費税の仕組み、仮払いとか仮受けとかも知らんかった。

法律用語いろいろ

一番よくわからない。善意第三者っていえば、普通に考えて、親切な人だろ?なんで事情を知らない人をいうんだよ?

ヒトのことを、法人に対して自然人というとか、お前頭沸いてんのか?と思った。

法令政令省令とかもわからん

法令はそうそう変えられないから、細かいことは政令政令に定めるとか省令に任せるってことにしといて、パブコメだけで規則変えるのって頭いいけどズルくね?

統計学用語とか

母数は分母のことじゃないとか、n=100は標本数じゃなく標本サイズだとか、そういうの。

分類とクラスタリングは違うとか、俺がなにか喋るたびに訂正される。

自転車運転とか

自転車車道って言われても、5叉路とかになるとどの信号みていいかわからん

降りて歩行者になってる。

車道は無理じゃね?交通量と道の広さ考えると。

保育園とか学童保育とか放課後デイサービスとか

仕組みがよくわからん

なんでこんな何枚も似たような書類をいろんなところに書かないといけないのか。

事業者書類書いて、なんちゃら福祉事務所に書いて、自治体に書いてとまあ。

自治体に提出しにいくと、これは福祉課、これは子育て支援課、年収判定は課税課、子育て支援ゴミ無料になるから環境課に行けとかいろいろ。

その度に住所と名前を書く。

名目GDPとか実質GDPとか

あとイールドカーブとかも知らんかった。

住民票戸籍

説明されてもわからん

なんで住所情報管理するシステム家族関係管理するシステムが別なのかわからん

ガンダム用語とか

ジークアクスみてるんだけど、宇宙世紀教養なのか?知らねーよ。

IT言語とか

もう全部わからん

フレームワークなにそれ?Gitって美味しいの?

いにしえから続く名前をつけて保存しか知らねーよ。

コマンドプロンプトPowerShellの違いすらわかんないってのに、TypeScriptJavaScriptの違いなんか興味もないわな。

markdownだとかtexで書かれても困るわ。

Wordpdfで頼むよ。

女の化粧

下地ってなんだ?

エンジン

ジェスチャーエンジンの動きを教えてくれた人がいてさ、水平対向エンジンはこう、Vツインはこう、と熱心にモノマネしてくれたんだけど、気が狂ったのかと思った。

実は、そもそも4サイクルと2サイクルの仕組みすらわかってないんだ。

ディーゼルはまた別なんだろ?

軽油っていうけど、ガソリンのほうが軽いんだろ?違う?

電気とか電化製品のこと

前項でエンジンわからんって言ったけど、身の回り電化製品とかもほとんどわからん

例えばテレビの仕組みとかわからん

地上波デジタルってのは、VHFとUHFと違うのか?

手形とか印紙とか為替とか

収入印紙と少額小為替とかわかってない。

手形廃止されるとか聞いたけど、そんなものたこともない。

金融商品

株式だってよくわかってないし、先物とかオプションとかスワップとかって説明されてもわからん

PMSとか

生理周期とメンタルが関連するって聞いたけど、機嫌が悪いのは生理前なのか生理ときなのか生理直後なのか。

聞くのも憚られるから、女が怒ってるときは「なんかわかんないけどホルモンのせいだな」と諦めてる。

国会議員

誰が何をした人だとかどの選挙区だとか、さっぱりわからん

そもそも自民党共産党以外、どの党がどういう支持母体でなりたってるのかわかってない。

立憲民主党国民民主党の違いとか知らんし、維新の会ってなに?

Permalink |記事への反応(4) | 20:15

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-28

anond:20250528223226

窓際どころかもうWEB仕事やってねーよ。

htmlも覚えたのにcssに取って替わられるし、JavascriptフレームワークモダンCSSだJamstackだTypeScriptだやってらんねーわ。

Permalink |記事への反応(5) | 22:36

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-20

ガチプログラマーは淘汰されるかもしれない

先日の日曜、某IT系勉強会に参加してきたんだけど、そこでも話題に上がったのが「AIによって人間プログラマー不要になるのか?」って話。

正直俺も含めてその場にいたほとんどの人間が、腹の底ではいやいや、それはないっしょって笑ってたわけ。

たとえばChatGPTとかGitHub Copilotとか、最近はTabnine、Amazon CodeWhispererなんかもあるけど、どれも便利ではある。

でも結局のところAIが書いたコード品質をチェックするのは人間だし、プロンプト自体が難しいから結局基礎ができてないと無理だよねっていうある種の安心バイアスがあった。

でもその考え、甘かったっぽい。

聞いた話では今のAIでは分業化が進んでるらしい。

例えば、一般的言語モデルであるGPT-4はもちろん優秀なんだけど、今はそこからさらに“ドメイン特化型”のAIが開発されていて、分野別に専門AIが配置されてる。

データベース設計ならこのAIフロントエンドならこっち、セキュリティに関してはあっち、みたいな。

まり何が起きてるかっていうと、素人が「こういうアプリ作りたいんだけど」ってざっくりした質問をしたとしても、AIの中で自動的専門家AIルーティングされて、実際にプロレベルの回答が返ってくるようになってきてる。

マジでやばい

人間経験とか判断力に頼っていた領域が、いよいよAI侵食されはじめてる。

しか進化スピードが異常でMistralやAnthropic Claude、MetaのLlama 3、Google Geminiあたりの最新モデルはすでに「構文の正しさ」や「コード全体の可読性」まで含めて自己チェックできるようになってきてるらしく、OpenAIが次に出すGPT-5では、おそらく「仕様の良し悪し」までも判断できるって噂まである

もうこうなると、中堅レベルプログラマーが真っ先にいらなくなる可能性が出てくる。いやマジで

実務経験を積んでやっと「これがベターだな」って判断できるスキルが、AIにあっさり再現されるとしたらそれ以下の人材は何を武器にすればいいんだ?

正直かなりゾッとした。

俺も完全にその中堅側にいるから。

これまではいくらAIがすごくても使いこなせるのは人間だけって思ってた。

でも今後は違うかもしれない。

……たぶん、生き残るのは本当に一握りの設計思想まで含めて自分AIを育てられるレベルプログラマーだけになる。

言語でいうなら、RustやGoTypeScriptKotlinとかをベースに、フレームワークだけじゃなくて抽象化設計思想まで一人で持てるような人。

おかげで週末はとっても陰鬱な気分で過ごす羽目になった。

助けてドラえもん!!!

Permalink |記事への反応(3) | 19:04

このエントリーをはてなブックマークに追加ツイートシェア

エンジニアになりたかったけど喫煙所で心折れた

エンジニア転職を夢見て

基本情報技術者試験

ポートフォリオのためにreact,typescriptアプリ作成

競技プログラミング

帰宅後や休日コツコツやってる26歳男です。現職は旅行代理店

ビル喫煙所一服してたら私服男性2名が入ってきた。このビル私服なのはIT系会社だけ。仮にA社とする。

喫煙所に俺とその2人の3人しか居なかった。だからA社の人達雑談が耳に入るんだよね。

そしたら断片的だけど「DNSが〜」とか「要件が〜」とかまあ、話していたわけよ。

外部で話したらダメだろということは置いておいて、今勉強している単語たちが断片的に聞こえるわけな。

そしたら「あーならこうすればいいのか」とか「なるほどね」とかどんどん盛り上がって来ていたわけよ。課題解決したのかな。

ただ、難しい単語だらけ。

そしてたまに聞こえる知っている単語、俺が勉強しても勉強してもよく分からない概念だったりするわけよ。

それをさも当然かのように、まるで簡単かのように話しているわけよ。

見た目は汚いおっさんなんよ。私服もヨレヨレ。無精髭生やしてさ。

けど、その難しい概念簡単に使いこなし、それでどんどん楽しくなって行ってる(ように見える)

心が折れかけた。なんか、レベルが違いすぎた。

それでも向こうは専門職で何年もやっているだけ。そう思いたい。

そこに、スーツ若い男が入って来た。2人に混ざって雑談開始。多分新卒さんかなあ。若いし、スーツだし。

するとさ、「基本情報簡単でした」みたいなことが聞こえて来たわけよ。

僕がヒーコラ言ってる基本情報簡単扱いなんよ。

なんかさ、もうさ、怖い。

なんであれが簡単になるのさ。

人種が違いすぎる。

転職、別業種にしようかな。それとも同業種への転職にしようかな。

なんかさ、もうさ、本当にさ、エンジニアさんって凄いんだね。

Permalink |記事への反応(7) | 13:09

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-03

2020年2024年IT技術の人気ランキング比較

https://survey.stackoverflow.co/2024/technology

https://survey.stackoverflow.co/2020#technology

言語

-2020---2024
JS67.7---62.3
Python44.1---51
TS25.4---38.5
Java40.2---30.3
C#31.4---27.1
C++23.9---23
C言語21.8---20.3
PHP26.2---18.2
Go8.8---13.5
Rust5.1---12.6
kotlin7.8---9.4
Lua----6.2
Dart4.0---6
Ruby7.1---5.2
Swift5.9---4.7
Scala3.6---2.6

HTML/CSS,SQL,Bash/Shell,とかそういうのは省いた


順調に伸びるPython人気、そしてTypescriptの伸びがすごいな

Javaって永遠に人気なのかと思ってたけどじわじわと人気が落ちている

PHPも長期的にみると厳しそう。

GoとRustが着実に人気を獲得。

Luaが地味に人気出てる。


データベース

-2020---2024
PostgraSQL36.1---48.7
MySQL55.6---40.3
SQLite31.2---33.1
SQLServer33.0---25.3
MongoDB26.4---24.8
Redis18.3---20
MariaDB16.8---17.2
Elasticsearch13.8---12.5
Oracle16.5---10.1


PostgraSQLの勢いが止まらない

MySQL+MariaDBではまだMySQL系が多いが・・・


フレームワーク

-2020---2024
Node.js51.4---40.8
React35.9---39.5
jQuery43.3---21.4
Next.js----17.9
Express21.2---17.8
Angular25.1---17.1
ASP.NETCORE19.1---16.9
Vue.js17.3---15.4
ASP.NET21.9---12.9
Flask14.2---12.9
Spring16.4---12.7
Django14.2---12
FastAPI----9.9
Laravel11.1---7.9
Svelte----6.5
Rails7.0---4.7

フロントバックエンドがごちゃごちゃなのなんでだろう。Node.jsってフレームワークじゃないだろ・・・


Next.jsの勢いがすごい。やはりWEBTSNext.js時代なのか

Pythonの人気は盤石だけど、DjangoとかFlaskは人気が落ちてる。FastAPIに食われたか

LaravelとRailsはこのまま消えていく予感

Permalink |記事への反応(0) | 15:36

このエントリーをはてなブックマークに追加ツイートシェア

2025-04-29

Why ChooseNext.jsOver React.js forWebsite Development in 2025?

Speed,SEO, scalability, and developer productivity aremore critical than ever. While React.js remains a powerhouse forbuilding interactiveuser interfaces, many businesses and developers arenow leaning towardNext.js for complete, production-ready solutions.So what exactly makesNext.js amore favorable choiceover React.js in 2025?Let’s explorethe reasons in detail.

🧱 React.js vsNext.js:Core Distinction

React.jsis aJavaScript library focused solelyonbuildingUI components.

Next.jsis a full-fledgedframework builtontop of React that includeseverythingyouneed for production — routing,SSR,SEO optimization, static site generation, andmore.

In essence, React givesyou the tools to build aninterface, whileNext.js givesyou thestructure to build, deploy, andscale a completewebapplication.

🚀Key Advantages of ChoosingNext.js in 2025

1. Built-in Server-Side Rendering (SSR)

2. ImprovedSEOOut of theBox

3. Hybrid Rendering Capabilities

4. Full Routing System

5.Image & Font Optimization

This alignsperfectly withGoogle’sperformance guidelines in 2025. React.js doesn’t offer this natively.

6.APIRoutes Without a Backend

7. Enhanced Developer Experience

Next.jshas evolved intoone ofthe most developer-friendlyframeworks in 2025, backedby the Vercelecosystem.In 2025,Next.js standsoutas the smarter, faster, andmore scalable solution forbuilding modernwebsites andwebapplications.It inheritseverything great about React —and addsstructure, optimization, and production-readiness. Ifyou’re planning to build awebsite that demands speed,SEO,and a seamless development process,Next.jsis the clear choice.

Formore details read this informative article:https://www.nimblechapps.com/blog/choosing-nextjs-over-reactjs-for-website-development

Permalink |記事への反応(0) | 17:34

このエントリーをはてなブックマークに追加ツイートシェア

2025-04-23

anond:20250423070910

それあるなら諦めず応募してたら受かるだろ。もっとザコかと思ってたわ

もっとポートフォリオサイト作ってDockerk8sAWSGCPAI使ってアピールしろRAGMCPサーバー構築できると良い。AWSとかの資格も取れ。あとはコード設計な。デザインパターンやれ。MVC理解したあとDDDやれ。IT系ビジネスの本も読め。Figmaデザイン作れ。とにかくがむしゃらに受かるまでやれば受かる。どうせ全部あとで役に立つ。AtCoder緑あるならコンパイラ作れるだろ。そういうの作ってGitHubに置け。Slack自分で使え。bot作れ。SOLID原則理解しろJava以外も書け。特にTypeScriptJava分かるなら楽勝だろ。データベース勉強しろNginx立てろ。プロマネの本も読め。勉強会参加してこい

あととにかくコード書け。たぶん足りん。

あと履歴書を規格通り出してないだろうな。履歴書なんかほぼ不要から何作って何ができてどこまで知ってるか全部精密に書け。

Permalink |記事への反応(2) | 07:36

このエントリーをはてなブックマークに追加ツイートシェア

2025-04-03

anond:20250403182822

もうReactもtypescriptも死んで巨大な技術負債になり、みんなHTMLXで作り直して終わるんだわ

Permalink |記事への反応(2) | 18:34

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-30

anond:20250330171320

TypeScriptの是非はともかく、そういうアレルギー反応は技術屋の今後にとっていい傾向を生まないと思いますね…。

Permalink |記事への反応(1) | 17:15

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250330160555

TypeScriptインストール時点でうお~~~xんでくれ~~~~ってなったから徹底的に思想が合わない

Permalink |記事への反応(1) | 17:13

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250330162356

TypeScriptのやりたいことってすでにバックエンドで終わるから存在自体無駄

無駄フロント開発者食わせるためだけの公共事業みたいなとこある

フロント開発者バックエンドの動向に無知な人が多いから、自分たちのやってること無駄だって気づいてない

Permalink |記事への反応(1) | 16:29

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250330160159

TypeScript共通言語になりつつあるのて流行ってるとか関係なく書けるようになっとけ

Permalink |記事への反応(3) | 16:05

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250330155934

最近は何が流行ってんの?TypeScript

Permalink |記事への反応(2) | 16:01

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-25

PHPは💩言語だとかJavaScript仕様が💩だとかF**kばかりほざいているやつ

掲題の通りだ。

じゃあお前が言語を作れよ。

プロなら、仕様通りに動くものを作れよ、金もらってやってるんだから

◯◯が💩なんて、猿でも言える。

俺達はほぼ例外なく無能で、先人たちが作ってくれたOSプロトコルにしたがって積み木を積んでいるだけだ。

新しいものなんて作れない。

JavaScriptを使うしかねーんじゃん。今は。TypeScriptとかあるかもしれないけど、実質はJavaScriptだ。

スクリプト以外の言語も、どうせもとを辿ればC言語だ。

重箱の隅をつつくようなことばかり言って理解したような気になってキーキー言っている猿どもは狭い世界で生きてる。

ダニング・クルーガー効果だよ。

最後に、俺もPHPJavaScriptは💩だと思う。

それと、バッチファイル。💩の極みだ

Permalink |記事への反応(0) | 12:37

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-18

anond:20250318121310

今はGoとかTypeScriptとか流行ってるけど、Railsが爆発的に流行った頃はまだなくて、静的型付け言語Webに向いてるって言えば、JavaC#だった記憶

どっちにしろRails以上の負債になってそうだが

Permalink |記事への反応(0) | 12:25

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-13

病院内で提供されるWiFi挙動メモ

身体を壊して先日ちょっと入院していたのだが、病院内ではWiFi提供されていたので、消灯時間外の日常生活アクセスはそれのお世話になっていた。消灯時間は夜9時から朝6時までだ。

事前に「入院生活にそぐわないサイトには接続できません」という告知が為されていたので、覚悟の上で使ったのだが、Webアプリ開発者としての業務必要サイトとかも禁止されていたので、ここにメモしておく。

どうせ数年以内には持病が悪化して再び入院するし。

通信制のしくみの考察

通信禁止されていると思われるサイト接続すると、ブラウザ側ではタイムアウトエラーとして表示される。もちろん、それなりに待たされる。ブラウザの開発ツールの様子を見るに、おそらくTCP handshake に失敗していそう。

正常に接続できるサイトの様子を見た範囲では、HTTPS接続証明書改ざんは行われていないようだったこからHTTPS暗号を解読してどうのこうの、という処理をしていない可能性が非常に高い。つまり通信制限は接続ドメインまたはIPアドレスによる判断実施している可能性が高い。

また、中間的なサイト存在する。通常2秒以内で表示できるようなサイトの表示に10秒(体感)かかるところがある。稀にタイムアウトする。

なのは通信禁止されていそうなサイトでも「待たされた挙句、つながることが非常に稀にある」ということと、curl等ではすんなりと接続できることである

DNS設定と一緒にproxy設定が落ちてきているのであればこの挙動理解できるのだが、手元のOSネットワーク設定にはproxy情報が何も出てこない。ちょっとよくわからない。

もしもDNSに対するAレコード(AAAAも?)問い合わせに対してニセモノを返すという仕組みで通信制限しているのだとしたら、「非常に稀につながる」挙動にはならないはずなので、透過型proxyによって頑張っているのではないか想像するところである

なお、消灯時間中は全てのリクエストタイムアウトになる。消灯時間開始直前にHTTP Request を送出して、応答が来る頃には消灯時間に入っている場合にはどういう挙動をするのか、というテストをやる暇は無かった。スマソ

つながるサイトと、つながらないサイトメモ

業務で使う全部のサイト検証できた訳じゃなくてゴメンね。結局のところ仕事携帯回線でやっちゃったから。

ドメインサイト概要接続の様子
hatelabo.jpはてな実験サービス置き場すんなり
anond.hatelabo.jp増田禁止
??????.hatenablog.jpはてなブログドメインの一つ、そして増田中の人ブログ遅い
console.aws.amazon.comAWS管理コンソール禁止
www.amazon.co.jpショッピングめちゃくちゃ遅いけどつながる
www.amazon.comショッピングめちゃくちゃ遅いけどつながる
ja.wikipedia.org百科事典禁止
www.php.netプログラミング言語PHP禁止
www.typescriptlang.orgプログラミング言語TypeScriptすんなり
stackoverflow.comプログラミング質問サイト(英語)すんなり
qiita.comプログラミング質問サイト(日本語)禁止
packagist.orgPHPパッケージ管理遅い(通常通り?w)
www.npmjs.comJSパッケージ管理すんなり

なお、自分ドメインサブドメイン禁止ドメインを入れたようなもの、例えばanond.hatelabo.jp.example.com のようなドメインに対する接続可否は検証していない(面倒だったw)

どこの会社受託しているのか?

サーバ目線で見えるclientIPwhois等で調べると、某F社さんだった。AWS管理コンソールへの接続禁止するあたり「あっ…!」と思ったり…w

Permalink |記事への反応(1) | 09:08

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp