次世代言語Part7[Go Rust Swift Kotlin TypeScript]

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/19(木) 17:51:38.66ID:EPSDvC75
文字数制限きついので改題
スレタイ以外の言語もok

前スレ
次世代言語議論スレ[Rust Kotlin Haskell]第6世代
http://mevius.5ch.net/test/read.cgi/tech/1503924817/
2017/10/19(木) 17:56:35.46ID:EPSDvC75
そろそろSwiftとTypeScript入れときたかったので
2017/10/19(木) 19:23:30.17ID:33xh/nBB
5chってなんだよ
2017/10/19(木) 19:35:46.24ID:C3Fl3waR
2ちゃんねる、正式に「5ちゃんねる」に名称変更!色々あって5chが誕生!
http://www.yukawanet.com/51096/archives/5274335.html
2017/10/19(木) 23:31:42.71ID:nu6ztsFr
TSは普通に現代だろ
生JSはもうやれない
2017/10/19(木) 23:43:07.41ID:1zFRkFBm
生JSもVSCodeによってコード補完がTypeScriptと比べてさほど遜色ないレベルにまで引き上げられたからなあ
結局MSが本気で開発環境を作ればどんな言語でもゴリ押しできることが証明されてしまった
2017/10/20(金) 00:38:29.46ID:2lESXdgM
次世代というか、2010年代の企業発の静的型付け言語でまとめてみた
まだ載ってないのだとNim Hack Julia Crystal辺りがいいのかな
2017/10/20(金) 01:01:22.11ID:eMg2A2/G
>>6
限定的な型補完のみだろ
静的チェックには絶対型が必要
9デフォルトの名無しさん
垢版 |
2017/10/20(金) 01:56:31.26ID:Ka6W9rl7
>>6
JS含む動的言語は大抵ダックタイピングって時点で補完が効かないじゃん。

個人的には「ダックタイピングのほうがインターフェース書かなくて済むから
手軽で良い」って言ってる奴がマジで理解できん
補完できなきゃどのメソッド呼べるのかいちいちコードかドキュメント見に行かんとならんからむしろ面倒
2017/10/20(金) 02:15:40.71ID:yLtxI7rs
>>9
型が決まってれば動的言語だろうと補完できるでしょ
11デフォルトの名無しさん
垢版 |
2017/10/20(金) 02:54:33.08ID:Ka6W9rl7
>>10
JSDocに型を書いてないコードとかあったら発狂したくならない?
仕事じゃ周りのアホどもが書いてくれないからよくにあるんだけど
12デフォルトの名無しさん
垢版 |
2017/10/20(金) 03:57:09.23ID:YyMx7jsp
>>9
最初にコード補完をIDEに組み込んだのは動的言語
13デフォルトの名無しさん
垢版 |
2017/10/20(金) 04:05:45.74ID:Ka6W9rl7
>>12
それは知らんかった
何て言語?
14デフォルトの名無しさん
垢版 |
2017/10/20(金) 05:20:27.14ID:VprmOZRL
>>13
皆さんよくご存じのVBです。
2017/10/20(金) 06:44:15.18ID:dSzguJuu
>>14
バカいうんじゃないSmalltalkに決まっとるがな
16デフォルトの名無しさん
垢版 |
2017/10/20(金) 06:50:33.12ID:VprmOZRL
>>15
https://en.wikipedia.org/wiki/Intelligent_code_completion
2017/10/20(金) 07:06:06.25ID:eMg2A2/G
>>9
ホンコレンゴ
2017/10/20(金) 11:11:11.05ID:P8/EFRxC
>>16
何を調べるにしてもウィキペ情報は参考程度に留めておいたほうがいいよ

ご多分に漏れずこの件に関しても間違っていてちょっとググっただけでも
少なくとも1980年代にはコンテキストを考慮した補完機能を有するAliceというPascalのIDEが出ていることがわかる
http://www.atarimagazines.com/v6n2/Alice.html

だから動的言語が初かの真偽はともかくVBがしかも1990年代にもなってから「最初」ということはあり得ない
2017/10/20(金) 13:06:03.49ID:6HQ5gdkc
動的か静的かよりも暗黙に型変換するのかしないのかのが重要。
2017/10/20(金) 14:49:05.79ID:RMJRt52l
typescriptの凄さってIDEの機能言語に組み込んだことだよな。
リファクタリングの機能を言語に用意してるから、
どのエディターでも使える。
2017/10/20(金) 14:53:55.28ID:yLtxI7rs
>>16
>>18

Wikipediaが間違ってるんじゃなくてお前らの読み方が間違ってるだけだろ
最初にコード補完をIDEに組み込んだのはVBなんて事どこにも書いてない
2017/10/20(金) 14:55:26.74ID:yLtxI7rs
>>11
JSDocとコード補完と何か関係あるの?
2017/10/20(金) 18:06:03.89ID:yevn4/qi
折角の補完機能ガン無視してVimで書いててすまん
Vimに補完つけると重いんだよな
2017/10/20(金) 18:12:51.51ID:UMfeFQLW
vimの補間が重い…?
2017/10/20(金) 18:49:47.42ID:yevn4/qi
Jedi-vimとか謎に重くならん?
あれ?そうでもない?
2017/10/20(金) 18:59:15.83ID:YvXWjlAq
>>20
MSは昔からやってるけどね
MSにとって目新しいのは、コンパイラ及びエディタをコード補完やリファクタリングに対応させるためのオープンなプロトコルを策定したこと
これほど早い段階でそのレベルにまで達するのはMSにしかできないこと
2017/10/20(金) 21:43:00.33ID:x/nMj/Ym
誰だよ未だにプログラミング言語未満のRustをスレタイにいれてるやつ
ハロワ以上のプログラムをことごとくコンパイル弾く欠陥品、言語としての体をなしていない
2017/10/20(金) 22:07:39.64ID:6WjQxFol
普通にrestでwebserverたててるが…
2017/10/20(金) 22:07:46.81ID:6WjQxFol
Rustね
2017/10/20(金) 22:29:29.77ID:dSzguJuu
名前間違う時点でろくすっぽ使ってないのバレバレ
2017/10/20(金) 22:33:08.26ID:6WjQxFol
晩酌してたのとRest APIと混ざったんだよ
めちゃめちゃ使ってるっちゅーの
32デフォルトの名無しさん
垢版 |
2017/10/20(金) 23:15:48.68ID:KNQSc5p/
自動補完は正直うざいからオフにする
2017/10/20(金) 23:58:05.68ID:K0f4yEve
>>31
じゃあさくっと木構造実装してみてよ
34デフォルトの名無しさん
垢版 |
2017/10/21(土) 00:09:44.49ID:WA0WypxL
>>33
ほい

enum Tree<T> {
Leaf(T),
Node(Box<Tree<T>>, Box<Tree<T>>),
}
2017/10/21(土) 00:44:54.19ID:DO/riCmW
まあそれが一番素直な実装だね。

問題は循環するかもなグラフの場合。持ち主が曖昧になるから。
2017/10/21(土) 01:18:33.12ID:EatcavDb
>>34
データ構造定義だけ書かれてもな
それに対して余計なアロケーション発生させずにappendとdelete実装してみてくれよ
できるもんなら
2017/10/21(土) 02:15:10.99ID:VqKLKVGY
問題はTypeScriptに対して競合としてflowがあることだよな。
Reactを使うのにTypeScript使っててすごく便利なんだけどReactがflow押ししそうで怖い。
38デフォルトの名無しさん
垢版 |
2017/10/21(土) 03:03:32.99ID:WA0WypxL
>>36
まずはCかC++でお前の言う無駄なアロケーションのないappendとdelete付きの木構造とやらを書け。
そしたらそれをRustで書き直してやるよ。
2017/10/21(土) 05:46:24.53ID:VmqPmNn/
>>37
Web系に言語は作れないってのはさすがにCoffeeやDartで世間に理解されたと信じたい
40デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:28:21.87ID:wl/wLs0J
>>20
IDEの機能を言語に組み込むぐらい、LISPもSmalltalkもとっくの昔にやってるじゃん。
41デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:29:25.77ID:wl/wLs0J
おまえらが次世代と呼んでいる機能のほとんどが60年代の再発明だなw
2017/10/21(土) 11:01:34.95ID:sh0YDQHh
>>37
うちの案件フロウ使ってるわ
最初の技術選定でクソ馬鹿野郎が生JS選択したせい
しかも途中で辞職、いやいなくなってくれてせいせいしたが

んで、どうしようもないから後付けでフロウ
クソみたいな生JSに後から挿入れられるのはメリットだわな
ライブラリの対応はゴミだけど
2017/10/21(土) 11:46:16.50ID:DO/riCmW
>>41
まあそういうところもあるけど、Rust なんかはだいぶ機能を整理した方かなとは思うよ。
実際に作って使ってみるとボローイングの解決しづらさがよくわかるってのはある。
理論と実践は繰り返してなんぼ。
2017/10/21(土) 12:04:58.67ID:SwYl7d2P
言語レベルのリファクタリングを備えたTypeScript 2.5がリリース
https://www.infoq.com/jp/news/2017/10/typescript-2-5-refactoring
2017/10/21(土) 13:02:01.91ID:VqKLKVGY
>>42
Typescriptも該当ディレクトリ内にXXXX.d.ts(XXXは生jsのファイル名)を置くだけで
型が付与できるけどな。しかも生jsの箇所をいじらずに。
どっちがいいかは何とも言えないが。
2017/10/21(土) 13:03:37.91ID:VqKLKVGY
jsというかTypeScriptを使ってるんだけど。async-awaitマジでいいわ
と思ったが例えばclassのコンストラクタをasync対応してくれたらな〜って思うわ
初期化時に非同期関数使いたいと詰む。
2017/10/21(土) 13:38:53.78ID:ZiJpfJlj
>>46
c#でずいぶんお世話になってるから嬉しいわ
2017/10/21(土) 13:51:38.02ID:sh0YDQHh
>>45
ま?
2017/10/21(土) 14:20:00.52ID:SGUxbDYw
>>46
わざわざasyncのinitializeメソッド作るの馬鹿らしいよな、仕方ないんだけど
2017/10/21(土) 14:32:26.28ID:7p4/5GBE
>>46
constructor() {
 (async () => {
  await this.hogeAsync();
 })();
}
インスタンス作成側ではawait newとかできないけど、分かってて使えば
今のとここれで特に問題ないわ。
2017/10/21(土) 18:32:34.18ID:VqKLKVGY
>>50
非同期関数がそのクラスの生成タイミングで終わる保証無いだろ。
大概ストレージとかネットワークアクセスしてるわけだし。
それで事足りてんの?マジで?
52
垢版 |
2017/10/21(土) 18:53:01.32ID:RC5niii9
>>9
使ってみたらわかるが、ちょっと頭おかしいレベルで補完効くぞ。
関数の型が、「Date | "不正日付" | "演算不能"」と、stringの中身まできちんと出してきたときにはびっくりした。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況