X



次世代言語Part7[Go Rust Swift Kotlin TypeScript]
■ このスレッドは過去ログ倉庫に格納されています
0006デフォルトの名無しさん
垢版 |
2017/10/19(木) 23:43:07.41ID:1zFRkFBm
生JSもVSCodeによってコード補完がTypeScriptと比べてさほど遜色ないレベルにまで引き上げられたからなあ
結局MSが本気で開発環境を作ればどんな言語でもゴリ押しできることが証明されてしまった
0007デフォルトの名無しさん
垢版 |
2017/10/20(金) 00:38:29.46ID:2lESXdgM
次世代というか、2010年代の企業発の静的型付け言語でまとめてみた
まだ載ってないのだとNim Hack Julia Crystal辺りがいいのかな
0009デフォルトの名無しさん
垢版 |
2017/10/20(金) 01:56:31.26ID:Ka6W9rl7
>>6
JS含む動的言語は大抵ダックタイピングって時点で補完が効かないじゃん。

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

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

だから動的言語が初かの真偽はともかくVBがしかも1990年代にもなってから「最初」ということはあり得ない
0020デフォルトの名無しさん
垢版 |
2017/10/20(金) 14:49:05.79ID:RMJRt52l
typescriptの凄さってIDEの機能言語に組み込んだことだよな。
リファクタリングの機能を言語に用意してるから、
どのエディターでも使える。
0021デフォルトの名無しさん
垢版 |
2017/10/20(金) 14:53:55.28ID:yLtxI7rs
>>16
>>18

Wikipediaが間違ってるんじゃなくてお前らの読み方が間違ってるだけだろ
最初にコード補完をIDEに組み込んだのはVBなんて事どこにも書いてない
0023デフォルトの名無しさん
垢版 |
2017/10/20(金) 18:06:03.89ID:yevn4/qi
折角の補完機能ガン無視してVimで書いててすまん
Vimに補完つけると重いんだよな
0026デフォルトの名無しさん
垢版 |
2017/10/20(金) 18:59:15.83ID:YvXWjlAq
>>20
MSは昔からやってるけどね
MSにとって目新しいのは、コンパイラ及びエディタをコード補完やリファクタリングに対応させるためのオープンなプロトコルを策定したこと
これほど早い段階でそのレベルにまで達するのはMSにしかできないこと
0027デフォルトの名無しさん
垢版 |
2017/10/20(金) 21:43:00.33ID:x/nMj/Ym
誰だよ未だにプログラミング言語未満のRustをスレタイにいれてるやつ
ハロワ以上のプログラムをことごとくコンパイル弾く欠陥品、言語としての体をなしていない
0032デフォルトの名無しさん
垢版 |
2017/10/20(金) 23:15:48.68ID:KNQSc5p/
自動補完は正直うざいからオフにする
0034デフォルトの名無しさん
垢版 |
2017/10/21(土) 00:09:44.49ID:WA0WypxL
>>33
ほい

enum Tree<T> {
Leaf(T),
Node(Box<Tree<T>>, Box<Tree<T>>),
}
0035デフォルトの名無しさん
垢版 |
2017/10/21(土) 00:44:54.19ID:DO/riCmW
まあそれが一番素直な実装だね。

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

んで、どうしようもないから後付けでフロウ
クソみたいな生JSに後から挿入れられるのはメリットだわな
ライブラリの対応はゴミだけど
0043デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:46:16.50ID:DO/riCmW
>>41
まあそういうところもあるけど、Rust なんかはだいぶ機能を整理した方かなとは思うよ。
実際に作って使ってみるとボローイングの解決しづらさがよくわかるってのはある。
理論と実践は繰り返してなんぼ。
0045デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:02:01.91ID:VqKLKVGY
>>42
Typescriptも該当ディレクトリ内にXXXX.d.ts(XXXは生jsのファイル名)を置くだけで
型が付与できるけどな。しかも生jsの箇所をいじらずに。
どっちがいいかは何とも言えないが。
0046デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:03:37.91ID:VqKLKVGY
jsというかTypeScriptを使ってるんだけど。async-awaitマジでいいわ
と思ったが例えばclassのコンストラクタをasync対応してくれたらな〜って思うわ
初期化時に非同期関数使いたいと詰む。
0050デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:32:26.28ID:7p4/5GBE
>>46
constructor() {
 (async () => {
  await this.hogeAsync();
 })();
}
インスタンス作成側ではawait newとかできないけど、分かってて使えば
今のとここれで特に問題ないわ。
0051デフォルトの名無しさん
垢版 |
2017/10/21(土) 18:32:34.18ID:VqKLKVGY
>>50
非同期関数がそのクラスの生成タイミングで終わる保証無いだろ。
大概ストレージとかネットワークアクセスしてるわけだし。
それで事足りてんの?マジで?
0052
垢版 |
2017/10/21(土) 18:53:01.32ID:RC5niii9
>>9
使ってみたらわかるが、ちょっと頭おかしいレベルで補完効くぞ。
関数の型が、「Date | "不正日付" | "演算不能"」と、stringの中身まできちんと出してきたときにはびっくりした。
0053デフォルトの名無しさん
垢版 |
2017/10/21(土) 19:06:53.76ID:guA6ZzKE
コンストラクタ非同期にしたい時は>>51の言ってる問題があるから、値をセットするだけのprivate constructor準備してpublicは別に公開したほうがいい

例↓

class Hoge{
  private constructor(public foo:string){}
  async create():Promise<Hoge>{
    const foo=await asyncFunction();
    return new Hoge(foo);
  }
}
0057デフォルトの名無しさん
垢版 |
2017/10/21(土) 23:03:18.92ID:P/rJp3kV
>>43
> 理論と実践は繰り返してなんぼ。

同意
0059デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:34:14.15ID:jKdYjftV
その通り
テキストエディタで打ったコードにこそ温もりがある
補完や静的解析なんて邪道
日本人ならPHPを使うべき
0060デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:56:35.88ID:bmxwOMJ1
>>59
日本人ならとか言うんならRuby使えよ。。。
何でPHPなんだよアホちゃうかと。。。
0061デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:06:21.14ID:ZsHOZNag
HSPだろ。
0063デフォルトの名無しさん
垢版 |
2017/10/22(日) 05:30:54.86ID:MmMCQJb7
Elixirってダメなん?将来性ないの?
サーバーがCowboyとかいう変なやつになるからダメなのかな
0067名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 13:12:06.46ID:yUcYB3x3
>>63
将来性とかさ〜自分で判断しろや。
それともここで将来性あるとか言われたらなんも考えずにその言語使っちゃうわけ?
将来メンテされなけりゃおれがやるくらいの気概をもって言語使ってほしいわ。
0068名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 15:32:24.31ID:bmxwOMJ1
>>64
それはあくまで偏見の塊の君の個人的意見だろ。
そんなこと言い出したら
「日本人はもともと職人気質の人間が多いから
使いこなすのに職人レベルの技術が求められるC++と相性がいい。
だからC++こそ日本人のための言語だ。」
なんていう、今俺が適当に作ったトンデモ論法でも通っちまうだろうが。
0069
垢版 |
2017/10/22(日) 15:36:36.11ID:dq05v2c8
>>65
違うよ。自作関数の戻り値と、それが代入されてる変数のヒントに出る。
自分でライブラリ作ってもバッチリ出てくれるけど、doc書いといたら間違いは更にないな。
0071デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:08:52.70ID:yoTgiwcF
>>68
いや、日本人はPHPでしょ
空気読んで面倒臭いことはナーナーにして
今が良ければそれでよし

当事者がたんまりお金盗って無事退職した後、
年単位越しでツケ払って大騒ぎ

PHPですか?いいえ、日本です
0072デフォルトの名無しさん
垢版 |
2017/10/22(日) 21:46:29.44ID:c7gPCMa+
日本の技術力ガーとか言ってたくせに
結局全部嘘ばかり
バカチョン以下やでホンマ
そりゃペチパーが闊歩しますわ
0074
垢版 |
2017/10/23(月) 01:37:49.26ID:ko03P2Yp
>>72
多分お前よりはまともなもの作ってるとおもうわ。
0076デフォルトの名無しさん
垢版 |
2017/10/23(月) 03:18:43.18ID:7Pp5HgLl
PHp本当に速くなったからな
相変わらずポーリングも特殊操作でしかできないクソだけど
0078デフォルトの名無しさん
垢版 |
2017/10/23(月) 08:27:35.76ID:+M73J5jp
気に食わない奴でも合法なら許す
違法なら許さない
この優先順位を歪めるから無法地帯になるのだ
0079デフォルトの名無しさん
垢版 |
2017/10/23(月) 08:52:16.45ID:xr09IWoG
>>70
Elixirってrubyに強く影響受けてる言語なんだよな。
Phoenix触ってたらRailsの匂いを感じる。
でも今は動的言語は弱い気がする。Elixir + 型 が欲しい
TypeScriptが触ってて気持ちいいからサーバサイドもJSがいい気がする。
0080デフォルトの名無しさん
垢版 |
2017/10/23(月) 10:51:25.73ID:WMNCDJb0
Elixirの問題は込み入ったことやるとErlangに足突っ込まなきゃいけないことで
プロダクションコードに突っ込むには人材要求が高すぎること
0081デフォルトの名無しさん
垢版 |
2017/10/23(月) 14:31:56.92ID:f3vYk0Y4
結局ネットワーク系統のエラー処理は低レイヤーに突っ込んでいかないとどうにもならんよ。
抽象レイヤーでなんとかしたいって願望はわかるけどさ。
0082デフォルトの名無しさん
垢版 |
2017/10/23(月) 17:32:43.36ID:KBSkknSp
Elixir(というかBEAM=ErlangVM)の場合はプロセス復活のために型情報が必要だし
静的にしたからって型情報は省略できない
0083デフォルトの名無しさん
垢版 |
2017/10/23(月) 19:47:51.56ID:fT3gFD4f
C++を書きたくないんだが代替言語は今だとrustとdどっちがゆうぼ?
最近はnimと言うのが注目されてるとも聞いたが……
0088デフォルトの名無しさん
垢版 |
2017/10/23(月) 21:25:58.19ID:xr09IWoG
>>84
Goも弱点が多い言語だけど初期の学習コストとか考えると
rustよりGoかな。
もちろんrustもいいんだけどc++並に学習コスト高そう感ある。
0089デフォルトの名無しさん
垢版 |
2017/10/23(月) 21:47:48.94ID:C8zrSpyb
Rustは言語と名乗れる水準に達してないのでGo
深くシステムに触るのには向いてないがな
0090デフォルトの名無しさん
垢版 |
2017/10/23(月) 22:05:15.62ID:fT3gFD4f
Goなのか……
他言語が純粋な次世代Cを目指してる中、Goは微妙に設計思想が違うイメージだからあえて外したんだが……やっぱりgoogle正義なのか
0091デフォルトの名無しさん
垢版 |
2017/10/23(月) 22:05:44.54ID:f3vYk0Y4
>>83
c++ で何を書くつもりなの?
無理に c++ で書かなきゃならんものって最近は減ってると思うけど。
0092デフォルトの名無しさん
垢版 |
2017/10/23(月) 22:17:08.30ID:fT3gFD4f
>>91
c++ で書かれたオープンソースプログラムのdllプラグイン
悲しいことにc++ 選ぶ理由なんて結局既存ソースがc++ だからの理由に尽きる……
0093デフォルトの名無しさん
垢版 |
2017/10/23(月) 22:32:24.88ID:QdR3J7Zg
>>90
goとか言ってる連中の言うこと本気にするなよ。
goは数年周期でバズってるだけでC++の代替なら
Dかrustって考えは間違ってないしrust理解できないやつが
こことrustスレで騒いでるだけだぞ。

Dはもう流行らんだろうが、rustは学習コストより標準ライブラリの弱さが面倒。
自分で書くか外部ライブラリに依存しまくるかで基本的なスレッドプールすら無い。
低レベル向けだから結局自分で書くならrustでいいし、それが嫌ならDでいいよ。

rustとD位の差なら正直好みの差。
0094デフォルトの名無しさん
垢版 |
2017/10/23(月) 22:40:54.47ID:5YqbDQKx
>>92
ならやっぱりrustじゃない?
bindgen使えばc++のヘッダもパースしてc ffi用のglue code生成してくれる。
bindgenがどの程度まで万能かは俺もよくは知らんけど、
mozillaがfirefox quantumでservoとgeckoの橋渡しのために使ってるくらいだから
結構まともに動くんじゃないかとは思ってる。
0095デフォルトの名無しさん
垢版 |
2017/10/23(月) 23:08:38.91ID:Y0tE+5bm
おまんらの大好き ぷ〜えちピーーブリブリッ でも使えばええじゃろw
0096デフォルトの名無しさん
垢版 |
2017/10/23(月) 23:35:53.28ID:b+23gIO2
みんなサンクス。
Goは学習コスト低いらしいから後追いでもなんとかなりそうだし、とりあえずrustで書いてみることにするわ
一刻も早くc++ が絶滅する事を祈る
0097デフォルトの名無しさん
垢版 |
2017/10/24(火) 00:05:09.11ID:9ZgmGLcB
TypeScriptとGoを交互に触ってるけど
やっぱりnull安全な言語とそうじゃない言語の差が際立つな。
Goのほうは早速null pointerアクセスで落ちる。
0098デフォルトの名無しさん
垢版 |
2017/10/24(火) 00:39:57.10ID:7j3gEWSq
c++が絶滅したら今c++で書かれてる様々なコードベースが色んな言語に分裂するんだぜ
バベルの塔
0100デフォルトの名無しさん
垢版 |
2017/10/24(火) 01:31:49.56ID:KQRKQofh
>>93
既存のまともに動いてるCコード移植しようとしてまともにコンパイルも通らなかった経験からまともな言語の水準に達してないといってるわけだが
少なくともRustでものが書けると信じこんでるお前よりはRust理解してるぞ
■ このスレッドは過去ログ倉庫に格納されています

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