OSSのWebフレームワークが突如TypeScriptからJavaScriptに移行して紛糾 130
ストーリー by nagazou
紛糾 部門より
紛糾 部門より
あるAnonymous Coward 曰く、
「Turbo 8」というOSSのWebフレームワークが、「Remove TypeScript」というプルリクで突然にTypeScriptからJavaScriptへの移行を行ったことで、OSS界隈で大きな話題となっているらしい。一般にTypeScriptは型のあるベターなJavaScriptとして扱われるが、移行理由として厳しい型付けやコンパイルの要否などが挙げられている。ただしプルリク提出から2時間で議論する間も無くマージされたので、相当のツッコミも入っているようだ(Turbo 8 is dropping TypeScript、GitHub Remove TypeScript by afcapel、DEVCLASS、はてなブックマーク)。
VB.NET (スコア:2)
C#でやるよ!!ってなってたのに
型とかわからん言い出してVB.NETになったようなもん?
JavaScriptに移行した後に書いた作者の気持ち (スコア:2)
https://world.hey.com/dhh/open-source-hooliganism-and-the-typescript-m... [hey.com]
も紹介しないと片手落ちな気もしますが・・・
Re: (スコア:0)
ゲームハード論争が引き合いに出されてて笑う
確かに言語・フレームワーク狂信者(特に外野)はゲハ論争者に近い
DHHが脱TSしたがる気持ちはよくわかる (スコア:2, 興味深い)
Turbo ってほとんど Rails ありきのモノだし、メンテナ本人がその方が良いと判断したのだから尊重すべき。
というか殆どの人はTurboがどんな風に使われているか知らないんじゃないか?
そしてTS原理主義者のウザさについてはどこでも同じなんだという感想。
奴らPHPやRailsのプロジェクトに顔突っ込んできて「誰かが作った流行りの手法」の導入には熱心だが、
枯れてなくて、信じると後でツールメンテで地獄。
TS/JS界隈のツールはなんとなく良さげに見えるが、足が速くて半年持たずに全とっかえみたいな事を経験するとDHHの言に一理と感じる。
サーバサイドもTS/JSでっていうのも、毎年の様に「20xx年のRails」と称する短命なフレームワークを毎年の様に見てきた立場からすると、
継続性と蓄積でPHPやRailsの方がメンテは圧倒的に楽。
# それこそWebAssemblyが進展すればJSすら要らなくなるのではと夢想する。
コンパイル? (スコア:0)
ソースコードを機械語に変換することをコンパイルって言うんですよね
https://dictionary.cambridge.org/dictionary/english/compile [cambridge.org]
tsはjsに変換するんだからコンパイルではなくね?
Re:コンパイル? (スコア:2, 参考になる)
トランスパイルですね。
トランスコンパイルともいうのでコンパイルでも間違いではないかと。
コンパイルだよ (スコア:1)
同程度に高水準な言語に変換するのがトランスパイルと呼び、実行環境 (またはコードジェネレータ) として別言語処理系を経由するものはコンパイラに分類するのが通例。
機械語を生成する前提の C コンパイラだってアセンブラを経由するものは普通にあるわけだしな。
ただ、変換元・変換先の言語が同じであっても用途や処理系設計理念によって違う側に分類が必要なこともあるし、多少は曖昧なこともある。
Re: (スコア:0)
その定義が正しいなら、Java や C# はコンパイル言語ではなくなるね。
Re: (スコア:0)
そりゃコンパイル言語じゃないからね
Re: (スコア:0)
C#には機械語を出力する機能がありますよ?
Re: (スコア:0)
ソースコードを機械語に変換することをコンパイルって言うんですよね
その理屈で行くとjavacはコンパイラじゃないということになるなあw
Re: (スコア:0)
TypeScriptはコンパイラ言語なの?
Re: (スコア:0)
きみみたいなめんどくさそうな人たちはトランスパイルっていうてますね。
Re: (スコア:0)
でも我慢できなくてレスしちゃうw
Re: (スコア:0)
ただ疑問を投げかけているだけの人にわざわざそういうこと書いちゃう君の方がめんどくさいぞ
Re: (スコア:0)
疑問?なんと素直な。知っててケチつけてるんじゃ。
Re: (スコア:0)
まあ、コンパイラじゃないな。とは思うもののCコンパイラが直接機械語ではなく、アセンブラのソースを出力してた時代とかあったなあ。
Re: (スコア:0)
> ソースコードを機械語に変換することをコンパイルって言うんですよね
> https://dictionary.cambridge.org/dictionary/english/compile [cambridge.org]
Cambridge Dictionary は一般の辞書であって、IT用語の正確性については一歩劣ると思います。
こういうのは英語Wikipediaの方がむしろ正確で、そっちを見ると
https://en.wikipedia.org/wiki/Compiler [wikipedia.org]
In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language). The name "compi
Re: (スコア:0)
Wikipediaは二次ソースだと思うんですが一次ソースはどこから持ってきたものなんですか?
Re: (スコア:0)
Wikipedia のこの部分の記述には出典らしきものがないみたいなので(探し方が悪いかも?)
たぶん米国の Computer Science 系学科で習う内容そのまんまなのではないかと。
たとえば適当にググって出てきたブラウン大学 Computer Science 学科の講義資料がこれ
https://cs.brown.edu/courses/csci1260/spring-2021/lectures/what-is-a-c... [brown.edu]
A compiler is a program that takes in source code written in one language
(called the source lang
Re: (スコア:0)
たぶん米国の Computer Science 系学科で習う内容そのまんまなのではないかと。
プリンストン大学では違うみたいですよ
https://introcs.cs.princeton.edu/java/82compiler/ [princeton.edu]
Re: (スコア:0)
> プリンストン大学では違うみたいですよ
URLからわかるとおり、これは Java の講義のようで
Java VM byte code は machine language code (for some machine architecture) 扱いだし
javac はコンパイラ扱いです。
つまり machine language code は仮想機械の実行コードも含むわけです。
そして現代のブラウザでは JavaScript は JavaScript 仮想機械の実行コードであると見なせますから
そういう意味で machine language code 扱いでもいいわけですし
TypeScript もコンパイラでいいことになるのでは?
Re: (スコア:0)
そして現代のブラウザでは JavaScript は JavaScript 仮想機械の実行コードであると見なせます
これはあなたの感想ですよね
Re: (スコア:0)
> そして現代のブラウザでは JavaScript は JavaScript 仮想機械の実行コードであると見なせますから
この解釈が許されるなら人間が読めるソースコードも仮想機械の実行コードと見做せるから
最初からmachine codeからmachine codeの変換でしかなくなってしまうんだよね
そしてこれはmachine codeの定義と矛盾するので誤りとなる
https://en.wikipedia.org/wiki/Machine_code [wikipedia.org]
Re: (スコア:0)
例えば「コンパイラ言語は速い」という風説が広まると
そうでない言語は遅いという事実を覆い隠す必要が出てくるので
定義を曖昧化したり勝手に広げようとする
悪徳企業がよくやること
ネイティブアプリとWebアプリの時もそうだった
いや、こっちの方が後か
Re: (スコア:0)
別に機械語に変換しなくてものーみそコネコネすればコンパイルだよ?
「gcc -c test.c」だろうと「clang -S test.c」だろうとコンパイル。
Re: (スコア:0)
https://en.wikipedia.org/wiki/Source-to-source_compiler [wikipedia.org]
自分で調べないやつは害悪だから死ねばいいのに。
Re: (スコア:0)
他のコメントも読めないやつは害悪だから死ねばいいのに。
作者のブログ見にいったら (スコア:0)
> 実際、私はJavaScriptが割と好きだ。Rubyの次、二番目に好きな言語と言ってもいいくらい。
Rubyが一番か...察し。
Re:作者のブログ見にいったら (スコア:2)
それはそうでしょう。Ruby on Railsの作者ですよ。
Re:作者のブログ見にいったら (スコア:1)
正直Turboというフレームワークの存在を初めて知ったんだけど実質RoRのフロントでしか使われないのか。フレームワーク使用者の思想に偏りが生じるわけだ
Re: (スコア:0)
Rubyと言えば
「マイクロソフトを嫌っていたのではない、われわれが嫌われていたのだ」 [itmedia.co.jp]
を思い出す
アンチMSの人たちはTP使いたくないよね (スコア:0)
俺もそう
Re: (スコア:0)
いやいや。
GPLに敵対していた頃の記憶が抜けないので、まだアンチMSな気持ちも残ってるけど
TypeScriptはOKですよ。
自分から積極的に使うことはないけど、C# もまあ OK。
このあたりは Turbo Pascal のファンだった頃の記憶が影響しているかも。
C# も TypeScript も、Turbo Pascal を作った Anders Hejlsberg の言語ですからね。
Re: (スコア:0)
絶対に使わん
Re: (スコア:0)
子供っぽいなその考え。
Re: (スコア:0)
同意。そもそも遅いし
Re: (スコア:0)
それに加えて、TypeScriptやAltJSを使ってるサイトって、
いつでもコードが壊れてHTMLコードを再生できない可能性があるし、JS切ってる人やネット環境が遅い人に優しくないし、
サイトが見れなくなる可能性を全く考えてない。Internet ArchiveにもJSファイル全部読み込まれないとちゃんとサイトが保存・表示できない。
互換性考えずにコーダー側の都合でサイトを作って、サーバーで処理するべきことを閲覧者でやらせようとする、
コンビニのセルフレジみたいな感じだよ。ほんと客に仕事させるな。
HTMLとJSとCSSで数十行以内で済むようなことですら、ほとんど使わない何十MBのJSファイルを読み込ませて、無駄な電気とメモリ読み書きさせて地球環境にも悪いね。
jQueryよりもひどいよ。
Re: (スコア:0)
それ、TypeScriptやAltJSの問題じゃなくて、SPAの話じゃね?
そして、TypeScriptは型がある言語だから、素のJavaScriptに比べてコードが壊れる可能性は格段に低いよ。
あと、JS切るのはもう諦めろ。今は2023年だ。2003年じゃない。
Re: (スコア:0)
面白いよな、新しい技術を使った方が遅くなるって
殆どのサイトは実はJSは不要 [technicalsuwako.moe]
これも新しさに訴える誤謬 [wikipedia.org]の一例か
Re: (スコア:0)
JSが必要ないって主張は最近よく見るようになった
特にプライバシー志向の方々の間で
完全に悪質なブラウザフィンガープリンティングのせいだと思っていたが、これも理由としてありそうだな
Re: (スコア:0)
OnionサイトとかだとJS嫌いはよく見るね
JSオンにしてるとオフにしろ!って怒って来たり
これだけでかなりの脆弱性を緩和できるからセキュリティ的には正しいとも言えるし
それにWebのコンテンツなんて殆どメインはテキストか動画で
あとは補足的に画像などがあるだけだからユーザー視点だとJavaScriptはいらないと言えばいらないんだよね
デフォではオフにしてブラウザゲームとかのどうしても必要なサイトだけ選択的にオンにするのがいいと思う
Re:アンチMSの人たちはTP使いたくないよね (スコア:1)
JS無しでGoogle Map作れって言われたら絶望しかない
Re: (スコア:0)
そういう理由でTypeScript使いたくない人たちはどこに向かうんだ?ピュアJSが最上になるのか?
Re: (スコア:0)
WebAssemblyでしょ。
Re: (スコア:0)
WebAssemblyも実態はJSじゃなかった?
Re:アンチMSの人たちはTP使いたくないよね (スコア:1)
マシン語プログラムを動かそうしたら、読み込みと実行はBASICに依存するような
昔の8bitパソコンを思い出した。
その場合に「マシン語の実態はBASIC」と言ったら過言だと思う。
嫌ならフォークしろよ (スコア:0)
で終わる話やんけこれと一緒
https://opensource.srad.jp/story/23/07/05/1354227/ [opensource.srad.jp]
Re: (スコア:0)
MisskeyはWebアプリだからユーザーにとって言語はどうでもいいけど、今回のはWebフレームワークらしいからTypeScript→JavaScript変更は利用者も巻き添えで、そこまで簡単な話でもないよ。
(プルリクにも、型が消えて困るというコメント多数。)
Re: (スコア:0)
TypeScriptだった時のをフォークして使えよって元コメントは言ってるんじゃないかな
メンテナーは誰も文句言ってない様な希ガス