ID:vG.MUs さんの質問

皆さんJs代替言語ってどう思います?

javascriptとjqueryを触ってみて思ったんですが(試しに原始的なパズルゲームとか作った):
1)Namingが不規則でJqueryとpure javascriptで混ざる。覚えにくい。
2)thisに癖があるので、factory methodだらけになる。
3) {}だらけで読みづらい。
4)継承は複雑すぎて使いたくない
5)コンストラクターもは悪くはないものの不自然。
6)読みにくてCodeの使い回しが難しい。
7)deep copyが面倒。

慣れの問題だとは思います。しかし、書捨てにせず、書いたものをlibraryとして蓄積していく。そんなレベルでjavascriptを使いこなすのに必要な訓練の量って、実はC++のそれを上回るのでは?

一方 googleのdartの方はC++/Java/Rubyのゴチャ混ぜ。個人的には(デザイン面で)覚えなおす手間はほぼゼロ。Server sideも ruby on railsよりも楽々(template engine無いんでapiやstatic asset delivery専用ですが)。
javascriptに変換した時のCode bloatはあるものの、管理は楽。

将来的には、ajaxの応用が進み(e.g. turbolinks)、ウェブがsingle page application化し、ポリマーの様なDesktopのGui framework的なものが主流化するかと思われます。当然複雑化が想定されます。
それでもやっぱjavascript/type scriptの王座は揺るがない?
それとも多極化すると思いますか?

個人的にはウェブは諦めました。javascriptマジ無理。自分で書く分にはdartとRoRで良いわ。てか個人で作るならサーバー負荷より開発速度だしね。

みんなの回答 5 件

ID:n9NvjK さんの回答

時代はあなたが思っているよりずっと先に行っていますよ。
ES6によりクラス・それに伴うより分かりやすい継承が導入。
皆が必要とするライブラリは既にほとんどnpmに蓄積されている。
jQueryの命名規則がいやならそんなもの使わなければいい。いまどきのWebアプリはjQueryなんかより他のフレームワークを採用している場合が多い。
Ajaxという言葉も死語になりつつある。

まあ多様化で覚えることが多くなってきているのは事実だと思いますがね。

ID:vG.MUs

>>nodejs.org/en/docs/es6/
調べたら確かに素晴らしい改善が見られます。
これ既に新言語ですね:
Arrow function =>
$を使ったstring expansion
promise
yield
…dartと完全に被ってます。
dartの開発者はv8 engineの開発者だそうですので当然ですが。
=====
ここまで被ってると、dartからES6への移行は楽と言うか、ほぼ同じ?ES6からdartも同じですが。
Legacy 部分の切り捨てができてないと、後々問題起こすと思うんですけど、そのあたりの整理はどうなってます?
=====
Ajaxは死語でもいいですが:
asynchronous => future or promise
JavaScript => living and kicking
XML => ...
ページの一部だけを書き換えるという、Ajax系列の技術は主流化してますよ?名前が変わっただけで。

ID:1CvP2S さんの回答

トピ主は学生さんかい?我々のようにビジネスのツールとして取り組む者は、世の中の様子を見ながらしかるべきタイミングで勝ち馬に乗る、ただそれだけなんだよ。仕事だからね。そんなのヤだい!と感じるならもっと勉強して研究者として生きるほうが向いてるよ。がんばってね。

ID:vG.MUs

…社会ではコミュニケーション能力が重要なのでは?
質問:今後の技術動向はどのような感じでしょうか?
答え:世の中の様子を見ながらしかるべきタイミングで勝ち馬に乗る
真面目な話をする場じゃないんで、スルーしますが、言語能力に問題が有るのでは?

ID:1CvP2S

うふふ。どうやら本当に学生さんだ。天才肌の中学生かな?将来が楽しみだね。

ID:vG.MUs

わ~本物だー!
世の中の様子を見る為になる聞いたんだけど、分かるかな~?僕ちゃんは聞かなくても解かるてんちゃい?
まあ、こんなところで罵り合うほど暇なんで、同レベルだよな。

ID:oxiGE1

争いは同じレベルの者同士でしか発生しないw

ID:vG.MUs

 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/’r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

ID:wMVUQq

学生でこれだけjs語ってたらそれなりに有望だとおもう

ID:vG.MUs

jsは一週間も打ってないから知らないよ。
ただpython, java,ruby, C++系列から入るとlegacy javascriptにアレルギーを起こす人間は多いと思う。
C++系列のパターンがほぼ使えなくなるから、面白いけど、頭が混乱する。
結局のところ、慣れなんだと思うよ。javascript専門の人はES6とか嫌がるんじゃないかな。俺は全身全霊で感謝したいけど。
n9NvjKfQPIXDさんのおかげで、だいたい流れとしてはdartとjavascriptが同一路線で行ってるのは解るけど…最終的には喰い合うのかな?それともES6の方がコミュニティに拒絶される?
まあ、主導権は海外勢にあるんで、日本の国内事情は影響無いかもだけどね。

ID:wMVUQq

altJSはTypeScriptが今一番勢いあるんじゃなかったっけ?

ID:vG.MUs

TypeScriptは基本javascriptなんで、javascriptメインで来た人達は好きみたいですね。
ただ全体的にそうというよりは、コミュニティ毎に割れてるっぽい。
RoRだと、Coffeescriptがディフォルトで入ってくるんで、TypeScriptはイマイチ流行ってない。Coffeescriptもjavascriptに近いんで、ruby使いの視点ではjsのライブラリーを使うのに近い感覚と思われる。
思い入れもないが、size constraintがないなら使わない理由もない状態?
ある意味、一流の人達は「覚えればいいんだから、なんでも良い」と思ってるのかも。
DartもES7当たりでjavascriptとの違いが(library周り以外では)無くなってそう。そういう意味では、Angularjs, Polymer, そういうウェブの書き方を変えるフレームワークの方が重要なのかも。
現行のLegacy javascriptが死んでくれれば、どれでも良いけど、個人的にはDartが勝ってくれれば楽でいいな。

ID:wMVUQq

TypeScriptが主流になりそうな気がしてます。基本javascriptのTSはフロントの人にとってはかなり大きなメリットかと。あとAngular2がTSでの開発ってのも。今からaltJSの学習を始める人には気になる話題ですよね。

ID:vG.MUs

ご意見ありがとうございます。
やっぱTSかぁ~。Javascriptの発展でaltjsって感じがしませんが、移行の手間が掛からないのは大きいですよね。

ID:QqSqck さんの回答

TS使って普通にES6書いてればいいとおもう。

ID:MvG9o1 さんの回答

今後どうなるかは別として現段階のJS代替言語の主流はCoffeeScriptじゃないかな。JSに関して言えば、速度面ではコンパイル言語には敵わない。でも、rubyなんかよりは全然早い言語だし、言語の応用範囲が、ブラウザの中だけにとどまらず、サーバーやOSレベルにまで来てるので、そんなに簡単に消えることはないと思う。

ID:vG.MUs

>>現段階のJS代替言語の主流はCoffeeScriptじゃないかな。
一般人の感覚ではそうですよね、大規模なweb application開発してる人達はTSにどっぷり浸かってるみたいですけど。
==========
>>JSに関して言えば、速度面ではコンパイル言語には敵わない。でも、rubyなんかよりは全然早い言語だし
dartはjsに比べと三倍は早いとか。速度よりlibraryや慣れが重要とはいえ、サーバーサイドはdartの方が強くなる可能性が結構あるかも。
古い言語は下位互換維持が問題なんですよね。
互換性に重きを置き過ぎると効率が落ちるし、覚えづらくなる。でも、利用者のために下位互換は切れないし、切ったらLegacy assetが使えなくなる。
切る方で行った言語の代表がpythonで、切らない方向で行ったのがC++。
Jsからdart, dartからjsの呼び出しは可能だし、どっちも最終的には似たような言語になるみたいなんで、多分混ぜて使うんでしょうね。

ID:MvG9o1

>大規模なweb application開発してる人達はTSにどっぷり浸かってるみたいですけど。
それをMSの呪縛から逃れられないアレな人たちの集まりと呼ぶんだよ

ID:QqSqck

>それをMSの呪縛から逃れられないアレな人たちの集まりと呼ぶんだよ
どういう呪縛ですか?
単純に取捨選択した結果TSにしてるんだと思うんだけど。

ID:MvG9o1

>単純に取捨選択した結果TSにしてるんだと思う
呪縛にかかっている人は、自分がまさか呪縛にかかっているなんて思わないからね。要は大企業になればなるほど、特にシステム系に多いと思うけど、MSと心中みたいなところほんと多いよね。今時.netフレームワークとかなによって話。それが理由でwindows縛りってほんとばかばかしい。その流れで考えるとさぞかしTSが魅力的に映るんだろうね。

ID:QqSqck

なんの話してるんですか?
TSと.netとか何の関係もないですよ。windows縛りでもないし。
Coffeeとか正直いつの時代だよって思ってる。

ID:wMVUQq

まあCoffeeはRoR使う人ぐらいしか使ってないようなイメージで、Webフレームワークに選択肢の多い最近なので、結局いまんところDartとTSの二大巨塔だと思う。Coffeeはシンタックスシュガーの域を出てないきがす

ID:vG.MUs

今dart試してるけど、毎日ヴァージョンが上がる状態。
安定はしてるけど、変わりまくってるんで、古いやり方を選り分けるのにヒーヒー。
ユーザーが付くと色々変えられないから、今のうちに変えるべきは全部変えるつもりみたい。
Angular teamがTS選んだのも、納得できる。
今のところは、TS一強で良いんじゃないかな。
ただ、将来的には一晩でJSを終わらせるかも。
dart engineを公開した上で、googleのサーヴィスをdart scriptでだけで提供すると発表すれば、全てのブラウザーにdart engineが乗る。学びやすさでも、速度でも段違いなんで、そうなると新規のweb programmerはjs学ばなくなると思う。dartからでもjs scriptは走るかる互換性の問題もないし。
結局のところ、google次第だね。

ID:QqSqck

>提供すると発表すれば、全てのブラウザーにdart engineが乗る。
そうはならないのが大人の世界。

ID:vG.MUs

>>googleのサーヴィスをdart scriptでだけで提供すると発表すれば、全てのブラウザーにdart engineが乗る。
Gmail, google document, utube, google translation, google voice inputこれらが全て使えないWeb browserを使いたがる一般人が果たして何人いる?
しかもandroidもgoogle製で、数の上ではandroidがモバイルデバイスの過半数を占める。
やる理由はないだろうが、Googleなら出来るだろ。

ID:QqSqck

やる理由どころかやらない理由が多すぎるだろ。

ID:LIlqJG さんの回答

1997年のホムペ制作者が、タイムスリップして2016年のWeb技術を見たら、主のようなわけのわからないコメントが出てくるんだろうね。

最終更新日:2015-12-28 (2,250 views)

関連するトピックス

ページ上部に戻る