メインコンテンツへスキップ

地味な技術は古いのではなく、成熟している!その理由とは?

·3 分
2025/02 技術 成熟 イノベーション トレンド ビジネス

地味な技術は古いのではなく、成熟している!その理由とは?

引用元:https://news.ycombinator.com/item?id=43012862

_fat_santa 2025-02-11T15:08:06

個人的には、退屈な技術って素晴らしいと思うんだ。自分が作ってるSaaSアプリでは、実際のプロダクトに関する先進的なことに集中できるから。データベースやバックエンドフレームワークみたいな裏方の部分は退屈で安定している方がいい。時間が限られているから、興味深い新機能に集中したいんだ。結局、顧客はNodeとDenoの違いや最新のバージョンについて知らないけど、アプリがどう動くかや機能についてはすごく気にするから。

steveBK123 2025-02-11T15:10:32

その通り。これを知っているのは年配者だけで、若者はあまり意識してない。何度も同じ車輪を再発明してきたから、もう車輪のことは忘れて、ユーザーの問題解決やお金を稼ぐことに専念したい。一方で、新しくてすぐに廃れる技術を使う同僚がいて、プロジェクトに苦労をもたらすんだよね。

steveBK123 2025-02-11T15:29:10

個人的に好きなのが、数十年の古いアプリを年以内の新技術で完全に書き直そうとする人たち。新しい技術は必ずしも生き残らないし、問題点やトレードオフもわからないまま。製品に使われてないときは、すべてが完璧でバグなしに見えるけど、実際には後で破滅を見ちゃうことが多い。

woliveirajr 2025-02-11T18:50:51

これは、>「すべての新しいソースコード!まるでソースコードが錆びるかのようだ。」を思い出させる。

gregors 2025-02-11T23:01:49

Joelが完全に書き直してブログに載せたことを思い出してほしい。>「新しい言語で書き直せないわけじゃなくて、少しずつ進めるのが良い。」というのが本質。大きな変更を一気にやるのはダメだよ。

dnel 2025-02-11T20:00:03

25年前の記事なのに、今の時代とまるで変わらない内容で、時間の試練に耐えたって感じだね。

efnx 2025-02-11T19:08:54

ただ、やっぱり技術は周りの変化に影響されて劣化するんだよ。

jay_kyburz 2025-02-11T20:18:56

だから、もう誰かのプラットフォームには乗らないことにしてる。これからは、自分がデプロイできる退屈な技術だけを使うよ。

stevoski 2025-02-11T21:12:01

皮肉なことに、Joelの”FogBugz”は後で再作成されているから面白いよね。

robocat 2025-02-11T23:47:24

それは皮肉じゃないよ。能力のある人は制約を知ってて、ルールを破るタイミングもわかってる。良いエンジニアリングは、適切な妥協をすることだから。

swat535 2025-02-12T14:02:53

数年前に経験したことがある。データが数週間ごとにランダムに消えるシステムでコンサルタントとして雇われたんだけど、エンジニアチームが古いJavaアプリをAWS Amplifyで再構築しようとしていたんだ。テストもパイプラインもなく、環境変数を間違えて開発することもあった。結局、データを消してしまう原因は、debuggingで本番環境にアクセスしたエンジニアが切り替え忘れたことだった。全くの悪夢だった。

Spivak 2025-02-11T15:36:17

新しい技術が成熟して退屈になるには、そういう人たちが使う必要があるのは、寛容に考えると理解できるよ。その尖ったところに捕まっちゃうのは、後のためなんだから。その犠牲に感謝しなきゃね。

hylaride 2025-02-11T17:03:08

新しい技術が本当に価値を加えるなら、古い技術を置き換えるべきだと思う。でも、過去に「クラウド」に飛び込んで、ただ古いものをそのまま移した会社が多かったのを見てきてるから。技術的負債に苦しむ人が多いんだ。>「ブロックチェーンをどこかに使いたがる人が多い」みたいな話も多かった。

whstl 2025-02-11T17:42:16

完全に同意だけど、クラウドを退屈じゃない例に使うのが面白いよね。HNの人々は、EC2に直接ホスティングするのは冒険者だけだと考えていると思う。

hylaride 2025-02-12T15:15:25

確かに、そのくらい流行ってた頃の例だったね。

teemur 2025-02-11T17:50:09

あの動画、懐かしいね。Low code fallacyやクラウドに関する良いコンテンツってあるかな?

steveBK123 2025-02-11T15:39:35

そうだよ、誰かが最初にならないといけないんだ。でも、それはあなたじゃなくてもいい!新しい大きなプロジェクトを任されたら、試したことのあるツールを使ってどうにかするべきだよ。他の変数がたくさんあるんだから、リスクを増やす必要はないよね。でも、そういう挑戦者がいるのは嬉しいけど、私も一緒に働きたくはないな。

eirikbakke 2025-02-11T17:04:20

理想的には、フレームワークのコードは既存の動作する製品から派生して、役立つから分離されたものであるべきだよ。フレームワークのために作られたフレームワークは、最初のアプリ開発者を引き寄せることを期待している。

WesolyKubeczek 2025-02-11T20:53:44

確かに、Symfonyは1.xの頃からすごく良かった。昔のPHPがそれほど嫌ではなくなるきっかけだったし、どの製品から生まれたかは覚えてないな。

notjoemama 2025-02-11T22:16:40

>あなたの持っている、試したことのあるツールを使ってどうにかするべきだよ
ハハ、そうだね。でも、上層部がS&P 500から追い出されたトップマネジメントで構成されていると、彼らはいつも別の会社の試したことのあるツールを前提に決めるんだ。今のエンジニアリングスタッフが持っているハンマーじゃないんだから…。ビジネススクールの卒業生には拍手を送ってるよ。

もっとコメントを表示
cbozeman 2025-02-11T18:27:33

>多世代古いアプリのグリーンフィールド再構築について
「多世代古いアプリ」とはどういう意味かによるね。ExcelもWindowsも多世代古いアプリだ。でも、どちらもまだ開発が続いていて、新しい機能が追加されている。それが新鮮さを保っている要因なんだ。20年間放置された多世代アプリは、再構築が必要だね。おそらく、あなたが言いたかったのはそういうことじゃないかな。

steveBK123 2025-02-11T18:42:38

Excelを書き直すっていうプロジェクト、たまに見かけるよ。”ExcelはXで書かれているからクソだ、俺は賢いから、ブラウザ専用で新しいフレームワークを使って書き直す、マイクロサービスでKotlin/Rust/新しい流行の技術を使って、AWSのベータ版を利用する!”って感じだね。で、Excelの新機能の開発を止めるから、開発チームの80%をくれって言うの。ところが、彼らは俺が決めた技術の使い方を理解してないから、彼らも解雇しなきゃならなくなる。特別なスキルを持った人を雇わなきゃいけないし。

bluGill 2025-02-11T19:04:07

最終的にはCOBOLは死んだと認めて再構築する必要があるけど、いろんな選択肢があって、コアロジックを変えずに少しずつレガシーコードを取り除いていくのが一番かも。UIのリニューアルももっと頻繁に必要になってくるよ。

pjmlp 2025-02-12T08:52:27

COBOL2023がリリースされて、クールなツールVisual COBOLも出たんだ。LLMが実行可能ファイルを直接生成できるようになったら、プログラミング言語の価値は薄れるだろう、それが新しいアセンブリ言語になるから。

motorest 2025-02-11T19:46:59

>最終的にはCOBOLは死んだと認めて再構築する必要があるけど。
それってどういう意味?TIOBEはCOBOLを19位にランクしてるよ、Rubyよりも上に。

gf000 2025-02-11T23:04:08

TIOBEはプログラミング言語がr/programmerhumorのミームに出てくる回数を数えているのと同じくらい無意味だよ。これよりいいリストがあって、COBOLはトップ20にも入ってない、Rubyは9位だ。

bluGill 2025-02-11T21:15:58

人気があるからといって生きているとは限らない。COBOLは昔は革新的だったが、今となっては悪いアイデアも多い。別の言語に切り替えるのは非常に困難で高いコストがかかるから、使われ続ける。

steveBK123 2025-02-11T20:41:49

それに、COBOLはSwiftやKotlinよりも人気があるからね。

cbozeman 2025-02-11T21:10:53

ハハ、Steve。これは痛々しいほど正確だね。ミーティングにいる気分だよ。

marsovo 2025-02-11T19:44:54

今やWindowsがその良い例とは思わないな。むしろ、新しいフレームワークでUIを再構築することで、機能を失ってしまったから、それこそが言いたかったんだ。

bigiain 2025-02-12T22:13:01

自分の知識で、何人かの関係者のその後を語れるよ。特に、80%の売上を上げてたクライアントが別の会社を見つけたせいで、約100人が職を失った事件もあったし。

ffsm8 2025-02-11T17:58:57

君の言い回しだと、Greenfieldの書き換えは常に間違いみたいに聞こえるけど、プロジェクトによってはそれが唯一の現実的選択肢になることもある。例えば、Angularのアプリケーションが技術的負債のせいで小さな変更も数日かかる場合なんてそう。

bluGill 2025-02-11T18:55:38

うちの会社、数年前にコア商品の書き換えに数十億円かけたけど、振り返るとそのままリファクタリングしてもよかった気がする。結局、新しいコードを書いたのに、予測できなかった問題が出て、また書き換えるか、直接リファクタリングが必要になった。

ep103 2025-02-11T19:56:25

数年後、書き換えたコードベースは元の質に戻ると思うよ。書き換えが必要になるのは、チームの能力が変わる時か、新しい技術でチームが能力を発揮できる場合。本来なら、アプリを細かく分けて進めるべきだと思う。

bluGill 2025-02-11T21:18:57

コードが始まった時から書き換えをした時まで、私たちの会社は成長してきた。書き換えはC++98から始まったけど、今はC++23があるし、新しい可能性がある。

pjmlp 2025-02-12T08:49:22

昔、Perl/C++/CORBAからJavaへの大きな書き換えをしたことがあった。3年かけて結局何も生まれなかったけど、あの古いコードを掃除しておくのが良かったと思う。

monsieurbanana 2025-02-11T18:46:29

別の例もそうだけど、2年の書き換えだったと言えるね。全体が終わるまで待たずに、新しいプロジェクトを使い始めるのはボーナスポイントだ。

steveBK123 2025-02-11T19:14:07

これが正しいやり方だと思う。だけど、やる人は少なくて難しいから。旧システムと新システムをつなぐ橋を作りながら、徐々に置き換えていくことが大事。

bluGill 2025-02-11T19:40:48

橋を作ることを意識した設計が大事だ。マイクロサービスの大きな利点は、そこに架け橋があることだと思う。モノリスでは、物事を分けるのが難しいし、いつも他の悩みが出てくる。

MDGeist 2025-02-11T15:42:26

賛成だよ。でも、若い同僚が流行りの言語を使っている理由は、就職のために学ぶように言われたからなんじゃないかな。面白いのは、こういった古めかしいインフラが、CIOのキャリア向上のために壊されることだよね。

whstl 2025-02-11T17:56:22

こういうことをしている人には多くの敬意を表するよ。安定を求める人にも同じく。管理者がこういう選択をするのが仕事なんだから。

szundi 2025-02-11T19:29:49

そういう管理者たちは、成功したらすぐ次の仕事に移るのが賢いんだろうね。成功したと思ったら、すぐに次のところに行く。

steveBK123 2025-02-11T20:42:56

ウォール街のテクノロジーでは、2年ごとにリーダーシップの役割を替えるのは普通だよ。世界を約束して、構築して、結果を出せずに次の仕事に移る、そういう感じ。

whstl 2025-02-12T07:39:33

そうだね。でも、彼らがゲームをやっている限りは、それでいいんじゃない?自己の利益を優先するのは尊敬に値する。

II2II 2025-02-11T17:44:00

モダナイゼーションって、50年前の技術を’20年前’の技術に置き換えることもあるよね。’古い’と思われる技術はアクティブに開発されてて、実はモダンで退屈なんだよね。

bluGill 2025-02-11T19:09:56

50年前の技術には色々あるよ。Fortranは古いけどニッチで活躍中。COBOLも古いのに今は置き換えられてる。Cは50年以上経ったけどまだ今も使われてるし、C++も進化中。Rustは最新だけど、30年後にはどうなってるかわからないな。

steveBK123 2025-02-11T15:56:04

中堅の人たちが知らないか、意識してないことが多いのが見受けられる。新卒が複雑なプロジェクトを引っ張るわけじゃないからね。

silverquiet 2025-02-11T16:17:00

自分も中堅だけど、競争が激しいから苦労してる。周りのリクルーターや管理者はあまり分かってないみたいだし。

bluGill 2025-02-11T19:15:32

10年のJavaと5年のC#が必須って求人を見たことがある。当時Javaは8年、C#は3年だったのに、そんな要件で採用された人がいたんじゃないかな。

marc_abonce 2025-02-11T16:23:16

残念ながら履歴書ドリブン開発が主流で、企業もメンテナンスより新しい技術を優先する傾向があるね。

steveBK123 2025-02-11T18:08:55

これは誤った二分法だよ。’最新技術’対’メンテナンス作業’じゃないんだ。Javaで新しいプロジェクトを作ることもできるし、最新技術でもちょっとした改良ができるんだよ。

latexr 2025-02-11T17:29:21

“若者たち”が金儲けについて気にしてないと思うのは間違い。でも、最近はお金を稼ぐためだけにプログラミングしてる人が多くて、あまり良い結果になってないね。

kelvinjps10 2025-02-11T22:52:59

最近のインセンティブは新技術を学ぶことに向いてるから、FANG企業がそれを作ってるから、みんなこういう技術を学びたがるんだ。

rubymancer 2025-02-11T18:01:11

MongoDBやElasticacheをメインのデータストアに使うことには反対してきたけど、結局リレーショナルデータベースに落ち着いたよ。MongoはPostgresに移行できたけど、Elasticacheはもう無理。

jimbokun 2025-02-11T18:46:05

ノンリレーショナルDBを使う理由は主にスケーラビリティとパフォーマンス。分散システムでの結合やトランザクションは難しいから、データが大きいときに役立つかな。

gf000 2025-02-11T23:15:27

大企業はデータを過大評価してることが多くて、実際は何十年前のサーバーで余裕で扱える量だったりするんだよね。

9rx 2025-02-11T19:13:00

ノンリレーショナルDBを使う唯一の理由はスケーラビリティとパフォーマンスだけじゃないよ。リレーショナルDBが手に入らなくて、自分で作るのもリスキーだから。ただ、タブラー形式のDBが大多数のユースケースに適してるし、理解しやすいのにも理由があるんだ。

rootnod3 2025-02-11T18:34:40

再発明するのは学習目的であればいいけど、SQLiteの代わりに提案するのは相当大胆だと思うよ。新しいプロジェクトの中でやってみる分には面白いかもね。

bbbobbb 2025-02-11T20:56:15

多くの人は面白い新機能に取り組めないことが多くて、顧客に関心を持つ仕事でもない。ほとんどの仕事が退屈だから、少しでも技術的に面白くないと気が狂いそうになる。退屈な技術で素早く仕事を終わらせるのが一番楽しい。

ozim 2025-02-11T21:20:24

普通の技術ってJava 8や.NET 2.0じゃなくて、新しいJavaや.NETこそが面白いけど安定してるよ。Angularのv17やv18も興味深いけど、地味で安定した技術だね。信号やスタンドアロンコンポーネントへの移行はちょっと面倒だけど、そんなに難しくないよ。

andrei_says_ 2025-02-11T19:11:14

長いことやってきた私たちには、無駄話をする気がない。仕事をさっさと終わらせて、次に進むだけなんだ。それに、要求の変化にも対応しなきゃいけないし。

hinkley 2025-02-11T19:09:30

新しい技術は若い開発者たちの願望にすぎない。彼らは長年の経験を積んだ人たちの知識に追いつくのに何年もかかるんだ。それでも、新しい技術には似たような問題が出てくることに気づくよ。

eastbound 2025-02-11T20:57:25

Linuxの知識は基本的なcd/cp/chmoxを超えていらないかもしれない。Dockerで置き換わるから、init.dやSystemDを選ぶ必要もない。

hinkley 2025-02-11T21:04:54

私はコンテナが壊れている理由を探るのに時間をかけすぎた。一般的なUnixの知識は必要だけど、Linuxの知識はそれほど求められない時代が来るかもしれない。

CursedSilicon 2025-02-12T23:34:18

AWSでサポートエンジニアとして働いてた時、容赦なくコンテナチームに投げ込まれた。顧客のアプリが100%CPU使用率になって、健康チェックに失敗して再起動していたけど、下層のインフラに関心を持たないチームとのやり取りは辛かった。Linuxの知識が不必要なんて、無知すぎる。

gf000 2025-02-11T23:34:00

彼らは本当に新しいものを再発明しているだけだと理解していない。でも、時には本当に革新的なものもあるから、新しい技術をちゃんと評価することも大事だよ。

hinkley 2025-02-12T17:08:14

再発明は大事じゃなくて、問題を解決するかどうかが重要。以前に放棄されたものが再び放棄されるのはよくあること。

steveBK123 2025-02-12T20:47:55

SQLやリレーショナルDBに取って代わろうとする流行に似たものは多い。結局、SQLはまだ良く機能しているよ。

hinkley 2025-02-13T00:03:34

ハイパースケーラーパソコンラックは再発明されたスーパコンピュータであり、クラウドソフトウェアは90年代の機能を再現している。考えてみて。

mooreds 2025-02-11T15:13:37

結局、私の顧客はNodeかDeno、最新のNodeやPostgresのバージョンに関心がない。彼らはただ機能するものを求めてるだけなんだ。

Avicebron 2025-02-11T15:30:22

エンジニアは、自分の作ったものがどれだけ素晴らしいかを誇示したがるけど、実際には顧客への説明が重要だと思う。

latexr 2025-02-11T17:40:27

このような absurdity にこだわっていると、自分のやっていることがどうでもよくなり、本来の目的を忘れがちだ。要は、ツールよりも結果が重要だよ。

some-guy 2025-02-11T18:00:16

昔、エレキギターに夢中だった頃、機材ばかり気になって実際には練習を怠ってたことを思い出す。

ptmcc 2025-02-11T19:09:08

趣味には、実際の活動よりも機材に夢中になる人がいるよね。

bluGill 2025-02-11T19:47:06

自分の周りにもいるけど、ギターを集めたり、取引したりしてる人って、結構自分の腕前をわかってるんだよね。俺も色んな機材に憧れるけど、結局プレイすることが大事だから、手持ちのもので頑張ることにしてる。時々道具が悪いせいで上手くいかないこともあるけど、自分の問題が大きいのもわかってる。

asalahli 2025-02-11T21:49:15

ああ、所謂Gear Acquisition Syndromeだね。

mooreds 2025-02-11T19:27:13

これ、いろんな趣味で見てきた現象だよ。機材に気を取られるほうが、お金を使いやすいし、難しいことをやるより簡単だからね。

datadrivenangel 2025-02-11T15:37:43

お前のドリルは時間とコストに追われたエンジニアが設計したものだろうね。組み立てたのは、工場でそれを気にしない人だよ。

mschnell 2025-02-11T17:28:57

でも、しっかり設計された製品は、気にしない人が作れることがあるんだよね。ソフトウェアはそれが可能かは疑問だけど。

bigstrat2003 2025-02-11T17:44:21

でも、ドリルが壊れると物理的に怪我する可能性はあるよね。ユーザーは道具の作り方より、ちゃんと動くことを気にするだけだよ。

bigstrat2003 2025-02-11T17:45:21

正直、そんなに違わないと思う。エンジニアも、ユーザーが技術じゃなくて結果を気にするってことを忘れがちなんだよ。

sofixa 2025-02-11T16:30:03

>なぜソフトウェアが特別なのか?
それはソフトウェアが生きてるし、色んな人の個人情報があったり、他のことにも使われるデバイスで動くからなんだ。攻撃面が膨大で、アクセスしやすい。もし銀行のサイトが古いJavaフレームワーク使ってるのは気にしないけど、詐欺に合ったら大変だもん。

kitd 2025-02-11T15:36:13

俺は「Stackoverflowability」って呼んでるよ。成熟した技術についての質問が多いほど、参考になる質問がSOにあるから。

marcosdumay 2025-02-11T15:54:00

SOの質問が多くて、ユーザーが少ないと、そのプラットフォームは成熟してないってことだ。

d0mine 2025-02-11T20:56:37

それは間違ってると思う。質問が多い言語はPythonやJavaScriptとかで、これらは新しいわけじゃないから。

kitd 2025-02-12T09:20:07

「総ユーザー数」とは、単に普及を指してるんだと思う。あまり使われてない技術で質問が多いのは、未成熟を示すかもしれないね。

giancarlostoro 2025-02-11T17:42:59

気持ち分かるわ。次のサイドプロジェクトを考えてて、Djangoを使うことにした。ゼロから作ることもできるけど、無駄に時間を使う意味ないし、アイデアを特別にするための重要な部分にもっと時間をかけたい。

no_wizard 2025-02-11T16:07:46

依存関係が古いのは、成熟した技術を使っているのとは違うよ。少なくともバグやセキュリティの修正のために定期的にアップデートしてるよね?

carlosjobim 2025-02-11T16:24:38

アップデートはバグやセキュリティの問題を増やすこともあるから、これが議論になるのは微妙だよ。システムがしっかりしてれば、セキュリティの問題には耐えられる。

kstrauser 2025-02-11T17:14:55

新しいバージョンは、まだ誰も知らない新しいバグをもたらす。古いバージョンには広く知られた古いバグがある。安定性の観点からは古い方が良いかも。でも古いのはセキュリティの観点からは割と危険。

carlosjobim 2025-02-11T18:52:20

免疫システムはあるよ。脆弱性に繋がる部分を外部と接続しなければ安全だし、Hacker Newsのコメント欄でPCが乗っ取られることはない。

ianburrell 2025-02-12T02:17:36

画像ライブラリに脆弱性があった場合、画像をアップロードすることで攻撃されることがある。解決策はライブラリを更新すること。OpenSSLのバグでサーバーの公開鍵が危険にさらされた事例もあるよ。

kstrauser 2025-02-11T19:24:43

Stuxnetの事例を知ってる?全く隔離されたシステムも感染することがあるから、甘く見ない方がいい。

kstrauser 2025-02-12T07:03:54

例え話を理解してるよね?その人が言ったのは免疫システムのこと。私はそんなのはもう信じてない。

gf000 2025-02-11T23:39:35

依存関係を最新の状態に保つ(既知の脆弱性を更新すること)は、ただの怠慢な「アドバイス」ではないし、契約を取るためのチェックリスト的なセキュリティソフトはただのマルウェアであることが多い。

carlosjobim 2025-02-12T11:49:26

安全なシステムを作るには、システムを壊す可能性のある依存関係はなくすべき。

kstrauser 2025-02-12T15:36:42

お前はその安全なシステム用に何のウェブサーバー書いた?どのOSで動かしてる?どのファームウェアを書いたの?全て依存関係の積み重ねだ。

carlosjobim 2025-02-12T19:54:05

ウチは数年前からアップデートしてないオペレーティングシステムとウェブサーバーを使ってる。サーバーが機密情報にアクセスすることは無いし、客の注文を受けるだけなら万が一サーバーが壊れてもバックアップから10分で復旧できる。

kstrauser 2025-02-12T20:35:07

最悪の場合、攻撃者は顧客の注文情報にアクセスできるだけだよ。それが問題だと思わない?

carlosjobim 2025-02-12T21:51:39

最悪の場合、攻撃者が意味不明な顧客注文を送ってスタッフが見ると削除されるだけ。年に2回くらい起こるけど、顧客注文なんてサーバーには保存されてないしな。

gf000 2025-02-13T06:59:34

支払いが通らないのに注文が完了するシナリオなんて考えられないの?それこそ大損失だし、GDPR後の時代にプライベートデータ漏洩も重大問題だぞ。

carlosjobim 2025-02-13T16:56:00

注文、請求、配送が分かれてるから、そんなことは起きない。プライベートデータ漏洩はRAMにアクセスされるハッカーの話になるし、全てのビジネスが心配する必要はない。地元の自動車ディーラーに電話して全車両が欲しいと言ったら、そんな簡単には全車送ってこないだろ。

kabigon 2025-02-11T16:50:06

新しいスタックやフレームワーク、派手な新しいライブラリはユーザー体験にはあまり寄与してないと思う。Reactは良いけど、そのせいでグチャグチャになってる。

gf000 2025-02-11T23:40:20

Reactも11歳だよ。ウェブUIの世界では“退屈な技術”なんだ。

HumblyTossed 2025-02-11T16:53:26

退屈な技術は素晴らしい。筋肉記憶ができて、面白い問題を考える邪魔にならないから。

miiiiiike 2025-02-11T16:57:01

pnpmは今やかなり退屈な存在。Turborepoと使い始めたら、npmよりずっと楽になった。

maccard 2025-02-11T19:00:08

今週npmが10年ぶりにキーを回して、pnpmでデプロイしたサイトが全部壊れた。Digital Oceanの3つのサイトを修正するためにnpmに戻さなきゃならなかった。エコシステム全体が全然退屈じゃないし。

kjs3 2025-02-12T15:47:37

退屈な技術は素晴らしい。製品の実際の技術に集中できるから。ただし、時代遅れにならないようにしないと。5年以上の経験があるCTOがアイデアもブログすら書かないのは、そもそもSaaSスタートアップなのか?

aard 2025-02-11T16:01:04

君の見解は分かるけど、反論もある。自分の好みに合うソフトを選んで“退屈”と言うことで、他を軽視するのは危険。退屈だから当然良いわけではないし、ちゃんとした議論が必要だ。

whstl 2025-02-11T18:53:55

そうそう、この話題で多くの人がそうやってる。お金を生むものは退屈、好きなものは退屈って。明日には退屈な技術が世界平和をもたらすなんて言う人も出てくるんじゃない?“退屈”って言葉は話を終わらせるだけだ。

citrin_ru 2025-02-11T20:42:48

>“退屈だから当然良い”って考えには注意が必要。新しいから当然良いって言うのも危険。昔は俺もそう思ってたけど、新しいものを盲目的に指示するのは悪手。ソフトウェアの比較は難しいし、個人の好みもある。でも議論して明らかにどちらかが優れてないなら、古くて確立された技術を選ぶ方がいいね。

kubb 2025-02-11T17:44:39

デマゴーグは本物の議論より圧倒的に良い。ほとんどの人は後者を理解するのが難しいし、時間もないから。彼らに「正しい選択をしてる」って安心感を与えるのが支援を得る方法だ。

DavidPiper 2025-02-11T23:01:31

エンジニアの視点からは明らかな冗談なのか、組織リーダーの視点からは真面目なのか、見極めが難しいね。

mybazongas 2025-02-11T22:05:12

みんな、クラスタのオーケストレーションシステムとかレンダラーの中のレンダラーが必要って主張する人と議論するのに疲れたんだと思う。やっぱり”つまらない技術”を使えって言う方が楽だよね。分かる人には分かるって感じ。

paulddraper 2025-02-11T19:21:41

例えば、Javaはつまらない。でもKotlinはJavaの”つまらない利点”を活かしつつ新機能を追加してるから、そっちの方がオススメ。

taeric 2025-02-11T14:56:36

”つまらない”技術には”安定してる”って付け加えたい。ここで言う安定は、”壊れない”という意味じゃなく、”変わらない”ってこと。そういう技術は通常、古くて確立されたもので見られるけど、何も保証されていない。

andrewmutz 2025-02-11T15:56:54

すべてのつまらない技術が変わらないわけじゃない。Railsは20年間続いてて、実際新しい解決策が毎回出てくる。

jaredklewis 2025-02-11T17:52:00

定義を議論するのは無意味だと思う。”つまらない”は単に誰かが好きなものって意味になっちゃってるから。この用語は、具体的な議論を避けるための言い訳として使われがち。

taeric 2025-02-12T16:09:32

昨日の話を逃してしまったけど、”つまらない”ってのは”安定してる”ってことでもある。去年学んだことが今も通用する信頼感を持てるから。

whstl 2025-02-11T18:49:36

Railsは定義上、つまらなくはない。驚きやメタプログラミングの魔法があって、毎年ベストプラクティスが変わるコミュニティがあるから。つまらないを”好きなもの”に再定義すべきじゃない。

taeric 2025-02-11T16:11:58

それが絶対的ではないのは公平だけど、完全に静的だとは主張してない。

vrnvu 2025-02-11T15:06:57

永遠の議論は古いか新しいか、つまらないか刺激的かじゃない。成熟してるかどうかが重要で、安定性やシンプルさが成熟の指標。Pythonが成熟してるかは疑問。依存関係の更新で壊れるシステムは成熟してるとは言えない。

zozbot234 2025-02-11T15:19:18

GoやRustが”つまらしい”のは、0.x.yバージョンの依存関係を使ったときだけ。すべての更新を丁寧にチェックしておかないと、壊れる可能性がある。

pkolaczk 2025-02-11T16:34:42

Rustの0.x依存関係は、成熟したJavaの35.x依存よりも問題が少なかった経験があるよ。

skydhash 2025-02-11T16:11:33

Goの良いところは、たくさんのライブラリが標準ライブラリのためのすごく良いAPIってこと。最小限のサポートコストでフォークしたりベンダーできる。

grandempire 2025-02-11T15:30:07

(本当に質問)たまにPythonを書くけど、venvを使ってrequirementsファイルをインストールするだけ。Pythonにはどんなツールチェーンの問題があるの?

hylaride 2025-02-11T17:10:12

大きなプロジェクトだと依存関係の競合がほんとにイライラするよね。セキュリティ上の理由で依存関係をアップグレードしたいのに、別の依存関係がそのバージョンを固定しちゃってるとか。

bigtimesink 2025-02-11T19:30:55

言語に関係なく、大きなプロジェクトでは依存関係の競合は問題になるよね。動的なランタイムでは、ライブラリがサードパーティのHTTPクライアントを使わないことも多いから、マシだと思うけど。ライブラリの数を減らす選択肢もあるけど、結局最終的にモノレポに入れることになると、アップグレードが大変なんだ。

grandempire 2025-02-11T18:21:51

それは悪夢だね。でも、NPMみたいに同じライブラリの複数のバージョンを読み込めるダイナミックなランタイム以外は、全てのパッケージシステムで問題になるんじゃないかな?

hylaride 2025-02-12T15:27:46

どの言語でも問題だけど、解決の仕方が異なるんだよね。NPMのやり方は一つの問題を解決するけど、他の問題を生むこともある。インタプリタ言語を扱うとき、ランタイム前に問題を特定するのが難しいのが大きな問題だね。コンパイル済みまたは静的型付けの言語の方が、問題を早く把握しやすいよ。証明書の問題を解決するためにrequestsを更新したけど、ランタイムまでその効果がわからないんだ。

grandempire 2025-02-12T16:50:23

賛成だよ。NPMが良いとは言わないけど、ランタイムを通じて依存関係の解決問題を回避してるのは確かだね。だけど、同じライブラリが20個もプロセスにあったらいやだよ。

SatvikBeri 2025-02-11T18:16:32

どこで働いても、依存関係を更新したら、Aのマシンで問題なく動くのに、Bのマシンだと全部壊れることがあったよ。特にnumpyやscipyの環境でね。1回その修正に数日かかったのは信じられない。この経験は他の言語ではしたことがない。しかも、当時は数値ライブラリをインストールするのにanacondaが推奨されていたんだ。他のパッケージマネージャーの方が良いかも。

nyarlathotep_ 2025-02-11T20:14:34

ネイティブな依存関係は、その特性とプラットフォーム間の互換性の欠如によって、非常に手間がかかることがある。これってCIでも問題になるよ。

mybazongas 2025-02-11T22:06:16

まぁ、半年ごとに誰かがPythonの配布問題を解決してるみたいだね。

superkuh 2025-02-11T19:14:45

Rustは実際には成熟してないと思う。言語が成熟してても、使う開発者のスタイルがそれに見合ってないとダメだよ。古い・新しいの影響もあって、Rustは進化が速すぎて、ほんの3ヶ月前のrustcじゃ新しい機能を使ったプログラムをコンパイルできないことがあった。Rustがもっと一般的に人気になれば、状況が改善されるとは思うけど。

LinXitoW 2025-02-11T19:42:05

プロジェクトに合ったRustのバージョンをそのまま使わない理由があるの?最新の21バージョンを使ってるJavaプロジェクトもあれば、古い8のもあるし。

superkuh 2025-02-11T19:46:02

システムライブラリとプログラムがインストールされたOSで、rustcをcurl|shからインストールするのは避けてるよ。他の言語の場合、アプリごとにカスタムインストールを設定しなくても済むのが普通なのに、Rustだけはそれが不合理で問題を招くから、できるだけ避けたいね。コンテナ設定も解決策にはならないと思う。

nicoburns 2025-02-11T22:43:46

rustupはシステムのパッケージマネージャーからインストールできるよ。手順を守らないと’退屈’な道を外れることになるけどね。どの言語を使ってるの?バージョン管理を使うことで多くの問題が解決するとは思うけど。Rustに公式のバージョン管理があるのはありがたいことだ。

superkuh 2025-02-12T17:03:10

rustupのダウンロード方法自体は簡単だけど、コンパイラやツールチェーンとして使うには不安だね。古いCやPerlを使ってると、今日書いたperl+inline Cのプログラムが昔のシステムでも動くのが嬉しいよ。RustやPythonの進化が早すぎて新機能の採用がすぐに影響を出すことに比べて、CやPerlは安定してると思う。

0xbadcafebee 2025-02-11T18:06:01

退屈な技術を使っても誰も昇進しないし、雇われないんだ。退屈な作業をしてきたから、仕事の応募に満足な返信が来ない気がする。オープンソースならシェルスクリプトを書いてきたけど、これは全くセクシーじゃないから無視されがちだと思う。要するに、もし私の履歴書がPythonとShellじゃなくて、GoやRustだらけだったら、もっと簡単に雇われるだろうね。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。