JavaScriptにトランスコンパイルする言語でイケてるのは? 80
ストーリー by hylom
JavaScriptもJavaScriptにトランスコンパイルする時代ですが 部門より
JavaScriptもJavaScriptにトランスコンパイルする時代ですが 部門より
昨今では実装したコードをJavaScriptにトランスコンパイル(トランスパイル)できるような言語が複数登場している。代表的なものとしてはTypeScriptやDartがあるが、それ以外にもClojureのような、JavaScriptコードを出力できるコンパイラが用意されている言語もある。その中でもおすすめの言語はどれだろうか。
Anonymous Coward曰く、
タイトルのまんまですが、イケてると思う言語を挙げて欲しい。
Ratfor (スコア:3, 興味深い)
イケてない言語を直接使いたくないから変換して使おうという戦略はRatforを思い出しますねえ。
# じじいです
Re:Ratfor (スコア:1)
ソフトウェア作法を丹念に読んだ口じゃな。
Re: (スコア:0)
C++ -> C -> Assembly -> 機械語
文言(wenyan‑lang) (スコア:2)
サンプルのソースリストしか見ていませんが,javascriptに変換すると大したことないプログラムでも, まるで古典のような格調を感じるように見えるソースリストが書けそうで,時間があったら遊んでみたいです。
Re: (スコア:0)
さらにソースを機械翻訳通すと楽しい
私は持っている一テクニック。名の言う」A家族ふるい」。欲望OKはいテクニック。マスト最初にゲット一数。言う」A」。ナイOKはいテクニック言う。
私は持っている一コラム。名の言う」カバー」。のためにはい」A」全体に。チャージ」カバー」にヤンまた。
を除く」A」に二。名の言う」A半分」。
イケてない言語をイケてないBasicで (スコア:1)
SpiderBasic
https://www.spiderbasic.com/ [spiderbasic.com]
https://www.spiderbasic.com/documentation/ [spiderbasic.com]
Re: (スコア:0)
いっそ行番号付きBasicの方が楽しいかも
Elmはいいぞ (スコア:1)
TypeScriptも触った事はあって、まあbetter JSとして良い言語だとは思ったけど
if for switchが値を返す言語機能が、採用される気配が全然無いし
パターンマッチングも無いし、モダン言語としては寂しい感じがした。
それにany型で台無しとか、nullとは別にundefinedがあるとか、
せっかくinterfaceがあるのに、"obj instanceof Interface"が出来ないとか
Math.floorの挙動がJSとはちょっと違うとか
残念な部分も気になる。基本的には良いものなだけに。
で、Elmに飛びついた。これ最高じゃないの。
実行時エラーが無くなった。
テンプレートエンジンも含む。ReactもVueも要らないよ!
何より、関数型。
もし、今の時点で生のJSを使っている人が、みんなElmに傾倒したら
面白い事になるだろうなあ。
Re: (スコア:0)
俺もまったく同意なんだけど世の平均的なエンジニアにはその良さがわからんらしいんだよね。
そんなやつエンジニア向いてないから業界から出てってくれたほうが将来のためなんだけど
人手不足でそうも言ってられない。
Re: (スコア:0)
親コメを読んで興味を惹かれ、それに付いたレスを見てゲロが出る。
Re:Elmはいいぞ (スコア:1)
「TypeScriptを使用するとJS標準関数がTypeScript側で用意した関数に置き換えられる」というならMath.floorも変わりますが、TypeScriptはそんなことしないんです
#3765705がノータイムでそんな訳はないと言い切れるのもそういう理由から
// #3765177はしばらく前にTypeScriptの欠点を書き並べた結果1行1行勘違いを指摘されてたElm厨じゃないかな
// テンプレートライブラリへの謎のこだわりや言語の思想を理解してない辺りが
JavaScriptがイケてない (スコア:0)
そもそも変換先のJavaScriptが超絶ダサい
Re:JavaScriptがイケてない (スコア:1)
変換先がクソダサい
↓
かっこいい言語(もしくはせめてもう少しマシな言語)で書きたい
↓
トランスパイラの乱立
という流れなんですが…
とりあえず私はTypeScriptを推すかなあ
型システムの柔軟さがいい感じで書きやすい
Re: (スコア:0)
とりあえずanyにしといて後でちゃんと実装しよう=>するわけがない
Re: (スコア:0)
本来「HTMLページに埋め込めるお手軽スクリプト」として意図的にゆるゆるに作られたものにヘビーなことやらせすぎ。
PHPにも似たようなことがいえる
Re:JavaScriptがイケてない (スコア:1)
埋め込みスクリプト言語って言えば常識的にlispだよねEmacsとかもそうだし、
だけどlispのまんまだとみんなカッコに拒否反応示すから、文法だけJavaに似せてみました
という言語なんだよ
最初からおよそ他の言語にできてJavaScriptにできることはないというくらいヘビーな用途を想定した言語なんだよ
Re:JavaScriptがイケてない (スコア:2, おもしろおかしい)
> 最初からおよそ他の言語にできてJavaScriptにできることはないというくらいヘビーな用途を想定した言語なんだよ
ええっ...と、つまり何もできない??。それは確かにヘビーだ。
Re: (スコア:0)
ヘビーか?これ以上ないくらいライトウェイトだろ
Re:JavaScriptがイケてない (スコア:1)
Re: (スコア:0)
処理フロー的にはそうだけど、スクリプト系言語だから厳密な型システムは持たずダックタイピング的な使い方だよね。
それはそれでメリットだけど、ヘビーな使い方をしようとすると型システムのゆるさがネックになるから後付けでクラス定義文法がつかされたり、TypeSctiptが生まれたりしたんじゃないか。
最初のころのJSがヘビーな用途を想定しながらあんな型システムを採用したのだとしたら、頭悪いなーと思うぞ
Re: (スコア:0)
静的型付けやクラスがないと困るようなシステムはJava Appletをご利用ください
って事だったんでしょ当初の予定では
Re: (スコア:0)
そういうのを「ヘビーな用途」と言ってるわけなんだけど…
だいたい初期のJSってブラウザ以外で動かすこと想定していたの?
Re: (スコア:0)
だから「ヘビーな用途」でJSを選ぶのがおかしいって事なのに
お前らが勝手にJavaを拒否したんでしょ
Re: (スコア:0)
thisの一貫していない仕様とかスコープチェーンとかプロトタイプとか、規模が大きくなるとネックになるのが目に見えてる仕組みをわざわざ導入してまで「お手軽に使い捨てスクリプトを組むための言語」にしか見えないんだけど。
これでヘビーな用途を想定していたって頭沸いてんのかとすら思えるわ。
Re: (スコア:0)
型安全、Null安全な方向にゆっくりだけど着実に進んでるだけPHPの方がマシ
それすら出来てないRubyとかいうクソ言語もあるけど
Re: (スコア:0)
AC氏は思った。
(´-`).。oO(JavaScriptは超絶ダサいのに、手間暇かけてダサいものを最終生成する言語に何の意味があるんだろう
Re: (スコア:0)
だって、Dartは結局流行らなかったじゃん?
追及 (スコア:0)
javascriptの代替として
Re: (スコア:0)
さらにわざわざイケてないamd64に変換したりしたあげくに
μopに変換したりて実行したりしているこの環境
Re: (スコア:0)
まあ機械語もダサいけど別にいいんじゃないかな
アセンブラもダサいけど別にいいんじゃないかな(ムーブでコピーとか)
変換するのはソフトの仕事だし
Re: (スコア:0)
確かに細かいとこ、大きなとこで、それはちょっとどうよってのはある。
しかしブラウザで動くのはそれしかない。
いわゆるオタサーの姫的ポジションの言語がJavaScriptではないかと。
今は姫に着せる服はどれがいいかを話してるんだ。
テニサーにはるかに可愛い子がたくさん居るといわれても俺には関係ないん。
Re: (スコア:0)
https://developers.srad.jp/story/16/06/23/1931246/ [developers.srad.jp]
> それに最近は一周してJavascriptの評価は高まってるでしょ
あれからさらに半周くらいしたってことなんかな。
Re: (スコア:0)
ただしどのあたりが超絶ダサいのかは言えません(笑)
Re:JavaScriptがイケてない (スコア:1)
// Java1.1開発関係者の言
かっては自分用言語を作るのが流行っていた (スコア:0)
時期があったような気がするので、趣味として良いかもねえ。
Re: (スコア:0)
Rubyすごい → 人事部:言語作れる人はすごい → 応募者:自分用言語作れば就職に有利 → 言語開発がプチブーム
という流れなんじゃなかろうか。
実際には言語作れることと、プログラマーのスキルとはそれほど相関はないし、
就活のために言語作りを目指すのは本末転倒。その点に人事が気づきさえすれば
ブームが終わるのは時間の問題だったと思うな。
もうブラウザで直接バイナリファイル実行しろよ (スコア:0)
たとえば、ブラウザ上に「WebVM」みたいな仮想マシンを実行するようにするとか
ドメインごとに別仮想マシンにしとけばセキュリティも問題なさそう
Re: (スコア:0)
WASM…
Re: (スコア:0)
そしてIntel CPUの脆弱性がセキュリティーホールになると。
Re: (スコア:0)
Javaアプレットの頃はMSがブラウザのOS化に危機感を持ってたけど、今はWebアセンブリの実装をしてるし、方向として実際にそっちに向かってると思う。
Re:もうブラウザで直接バイナリファイル実行しろよ (スコア:1)
んなこたーない。Microsoftは、ブラウザのOS化(シェル化)をきわめて強力に推進していた。
もともと、後にAJAX等と呼ばれるブラウザのインタラクティブ化はDynamic HTMLという呼び名でMicrosoftが始めたもので、
Netscapeに対する優位性として、IEが普及する要因となったものだ。
同時に、HTMLページをアプリケーションにするという試みはHTML Applicationという名前で実現していた。
実際に、拡張子を「.hta」にしたHTMLファイルをIEで開くと、ファイルなどのローカルリソースにアクセスできるようになっている。
さらにIEは多言語化されており、JavaScript以外の言語を利用可能だ。
例えばVBScriptや、IEで動くRubyであるActiveRubyという実装が存在し、<script>タグの中でこれらの言語を使ってDOMを操作できる。
また、OSのデスクトップをHTML化するActive Desktopなんていうこともやっていた。
結局、全部あまり普及しなかったんだけど。
今GoogleがやっているChrome OSはかつてのMicrosoftの試みを彷彿とさせるものだし、あまり普及していないのも同じだな。
Re: (スコア:0)
あまり中身を知らないので印象でしかないんだけど、Sliverlightってブラウザで動く.NETを狙ってたんじゃないかと勝手に思ってる。
でもあまり相手にされなかったからあきらめてWebAssemblyを推すことにしたとか。
Re: (スコア:0)
NaClとかasm.jsとかあったしWebAssemblyもある。
けどあなたが知らない位の知名度しかない、っていうのは、
結局は利点が少なくて人気もないってこと。
正直JavaScriptで十分なんですよ……
JS嫌ならAltJS使えば良いし……
Re: (スコア:0)
過去にもいくつかあるが現状はWASMが標準化されてるしその用途だね。
JSのチューニングが狂気的に進んでるから思ったほどアドバンテージが無いけど、徐々に増えてるよ。エンジン系には。
Re: (スコア:0)
WebAssemblyという概念があってですね…
C#でクライアント側も実装できるBlazorが超素敵
https://www.publickey1.jp/blog/18/blazorwebassemblynetwebcnet.html [publickey1.jp]
https://www.publickey1.jp/blog/19/blazorcnet_core_30web.html [publickey1.jp]
ClojureScript (スコア:0)
当然みんなも Lisp 触りたいよね
Re: (スコア:0)
括弧いいと思えるか、括弧悪いと思えるかで意見が分かれそう
Re: (スコア:0)
近年はC言語系の手続き型言語にラムダ式とか関数型的機能を加えるのがオシャレみたいですね
個人的にはLisp以上に括弧がぐちゃぐちゃでしんどいと感じるのですが
今となっては懐かしのGWT (スコア:0)
なんでみんな諦めちゃったのかなGWT
AWSの管理コンソールとか結構最後まで使ってくれてたよね
結構不思議なtechnologyでJavaらしきコードがJavaScriptらしきものになってしまう
俺好きだったんだけどなGWT…
Re: (スコア:0)
Java だから説