次世代言語17 Go Rust Kotlin TypeScript Julia

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/09/04(水) 22:10:19.21ID:63Z/rODe
スレタイ以外の言語もok

前スレ
次世代言語15 Go Rust Bosque Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1555679940/
2019/09/24(火) 23:57:00.73ID:0s+B6P7F
>>640
最初はOCamlで集中して後でRustで書き直したという伝説がある
OCamlなんか使って後のこと考えない性格だから集中できたのか
648デフォルトの名無しさん
垢版 |
2019/09/25(水) 00:08:18.35ID:0J019kSy
>>641
なにもかも兼ね備えるとC++の様な闇鍋言語が出来上がる
突き抜けてるC++は好きだけどな
2019/09/25(水) 00:09:20.32ID:Od4KgNLb
>>646
メモリ管理も大変だからGCも備えときましょうね〜

ってあれ?
2019/09/25(水) 00:48:28.74ID:Xiw2tH6C
>>641
JavaScriptがまさにそうだな
2019/09/25(水) 00:51:49.15ID:Z8PGUkrD
>>645
何でも備えた魔法の俺俺言語の処理系をアセンブラで実装したとして、それは俺俺言語が備えているのであってアセンブラが備えている訳ではないだろバカか?
2019/09/25(水) 01:22:27.87ID:Od4KgNLb
行くぞ英雄王ーーー
俺俺ライブラリの貯蔵は十分か
2019/09/25(水) 03:12:27.73ID:ulBaFWWN
トレースオン!
Unlimited OreOre Works!!
2019/09/25(水) 03:21:21.46ID:Od4KgNLb
うわつまんね^^;
2019/09/25(水) 04:41:24.35ID:KyCrJSYd
>>629
ライブラリから呼び出されるコールバック関数がvoid*を引数に取ってて
そのコールバック関数内で実際のポインタ型にキャストしてやらなきゃいけないやつ
純粋なCのライブラリで、特に非同期関連のやつによくある
というかvoid*すら知らないで型の話してたの?
2019/09/25(水) 05:29:13.64ID:rQhNlpv9
はつみみです
2019/09/25(水) 05:35:28.51ID:mqsY7QVO
>>655
void* じゃなくてvoid*地獄について聞いてんだが
2019/09/25(水) 06:02:27.15ID:Xmj5mkWD
最近のJavaScriptってヒョロガリの人間にサイボーグパーツを無理矢理備えつけて強くしてる感あるよな
JavaScriptである必要性がない
2019/09/25(水) 08:26:44.21ID:WDVOBhzi
nullが存在しなかったらOptionl.Noneをデフォで何でもねじ込むようになるから無意味かもね
2019/09/25(水) 08:57:03.50ID:J2adDr87
メモリ管理だけはどうしても言語レベルで設定しなきゃならん。
lisp、c++みたいななんでも備えた言語でもそこだけは変わらん。
661デフォルトの名無しさん
垢版 |
2019/09/25(水) 09:22:26.41ID:f+0xQUif
>>650
型が無いしバイナリにコンパイルも出来ない
2019/09/25(水) 09:33:39.69ID:GHCxkzpX
>>659
その二つが一緒だと思うんだ
2019/09/25(水) 11:51:53.15ID:KaitpITf
nullは分岐を明示しないので例外が発生する位置を明示しない
使わないメモリを節約する代わりに使用中のメモリは断片化する
2019/09/25(水) 12:26:59.15ID:SmUxqnJ3
java scriptはシングルスレッドなのが英断だよね
非同期地獄をpromise、async/awaitで解消してきた歴史もすばらしい
下回りでは平行タスクが多数走るんだけど上位はそんなこと知る必要なく動く
まさにIT土木作業員用言語として天才たちがデザインした結果だと思う
2019/09/25(水) 13:21:11.06ID:KaitpITf
「制御の反転」を提案したオブジェクト指向
に嫉妬してもう一回反転させたのがasync/awaitだ
ルサンチマンの結果だ
2019/09/25(水) 14:12:53.64ID:GHCxkzpX
javaでも新しめのjavaなら許容できる。ラムダきたし、ローカル変数の型推論もきたし。後、async/awaitいれてくれればね
2019/09/25(水) 14:15:39.19ID:GHCxkzpX
async/await褒めるなら最初に発明したのはC#のマイクロソフトの天才たちなの?

褒めるならそっちだな
2019/09/25(水) 14:29:47.58ID:HV92OfVj
C#のasyncはF#由来
マイクロソフトには違いないけどMSのプロダクト部門じゃなくて MS Research の成果
669デフォルトの名無しさん
垢版 |
2019/09/25(水) 15:43:48.87ID:it7hFznu
MS ResearchといえばBosque
2019/09/25(水) 15:49:09.41ID:GHCxkzpX
そっか。
そういや、.net core 3リリースされてc#にもnon nullable reference typesとか使えるようになるけど、既存のライブラリ特に標準のクラスライブラリ使うときはどうなってるの?

kotlinでjavaのAPI使うとき、アノテーションされてないとプラットホーム型とかいううんこになってnull safetyの魅力半減するけど。
2019/09/25(水) 16:49:52.46ID:keTHdpUQ
async/await が地獄じゃん
C# は死んだ、JavaScript も死んだ
Java は死ぬな
2019/09/25(水) 17:10:50.79ID:WMhhFNrj
マイクロソフトが関わった言語はみんな死んで行く
2019/09/25(水) 17:44:08.64ID:c4fBR5Jd
>>672
なでしことアセンブラは?
674デフォルトの名無しさん
垢版 |
2019/09/25(水) 18:09:47.02ID:it7hFznu
なでしこに手を出すとは…無茶しやがって…
2019/09/25(水) 18:10:15.49ID:Si+FDZzQ
>>671
Javaはアノテーションで既に死んでる
2019/09/25(水) 18:14:03.63ID:r1UeD8Lu
>>664
>シングルスレッドなのが英断
それは俺も思う

この前提を壊すことなくマルチスレッドを実現するWeb Workerの概念は
優れた並列機能を実現するgoroutineでのベストプラクティスと同じ

https://blog.golang.org/share-memory-by-communicating
> Do not communicate by sharing memory; instead, share memory by communicating.
メモリの共有で通信するな、通信してメモリを共有しろ

並列で重要なのはむしろスレッドの分離性、
各々がシングルとして動けることだった
2019/09/25(水) 18:37:17.12ID:GHCxkzpX
お手軽言語としては、シングルスレッド実行モデルの方が初心者も間違えにくいからいいけど、
パフォーマンス求めるとコンテキストの切り替えのコストが大きいわな。
2019/09/25(水) 18:41:39.88ID:GHCxkzpX
dartもjavascriptにトランスパイルされたりするからjavascriptをおもいっきり引きずる環境でjavascriptと同じシングルスレッド実行モデルで、isolateって言うが、isolateの切り替えのオーバーヘッドが結構あるらしい
https://medium.com/flutter-jp/isolate-a3f6eab488b5
2019/09/25(水) 18:44:49.45ID:ezuOeX2e
>>675
??
2019/09/25(水) 18:45:07.98ID:qzBXi7SA
色んなドメインが共存する現状が既にカオスなのに
マルチスレッド下でルール無用の資源の奪り合いしたらすごいことになりそう
2019/09/25(水) 18:56:28.15ID:m3QIUPNA
>>670
corefxの既存API(string.IsNullOrEmptyとか)にも使用頻度の高いものから順次対応されてるよ
682デフォルトの名無しさん
垢版 |
2019/09/25(水) 23:08:10.72ID:VDeg47EA
>>680
だから直列化トークンとクリティカルセクションをうまく使いなさいよ
2019/09/25(水) 23:32:59.45ID:6VdVDZCV
JavaのアノテーションもC#から来てるよな
2019/09/25(水) 23:34:49.80ID:rQhNlpv9
これマジ?
2019/09/25(水) 23:40:50.67ID:ulBaFWWN
一時期マルチコアの性能を活かすためにはスレッドが必要とか言われてたけど
ディープラーニングみたいな本当に並列処理しなきゃ話にならないものはGPGPUへ移ったから
もうスレッドは用済み
2019/09/25(水) 23:47:35.85ID:rQhNlpv9
用済みは言い過ぎ
2019/09/26(木) 00:28:18.38ID:fvoXcpl0
レイトレーシングが流行り始めてるからCPUの並列処理はこれから重要度が増えていくさ
2019/09/26(木) 00:28:51.73ID:i7X9kRk3
並列化が重要になる一方でコンテキストスイッチのオーバーヘッドが問題になって
そのトレードオフとして生まれたのが軽量スレッドだろ
async/await もそうだし golang もそう
関数型言語がもてはやされるのも相性が良いから
2019/09/26(木) 01:04:15.23ID:jPZ/Z+b5
>>582 Google が既に Java を捨てただろ。
2019/09/26(木) 01:13:11.48ID:oBtnEd9S
アルゴリズムは色々抽象化されたのに
データ構造がただの文字列とかって絶対おかしいって言い出したのがOOP
だが、ただの文字列は並列化と相性が良かった

言語を関数型にする必要はないよ
データ構造だけ変えろよ
2019/09/26(木) 01:38:55.69ID:mWXTCTsK
つっこみどころ満載で逆に萎えたわ
2019/09/26(木) 01:57:27.49ID:mkqauH83
>>690
なるほど…
693デフォルトの名無しさん
垢版 |
2019/09/26(木) 02:19:21.18ID:KVLNMFAt
>>690
これコピペ?w
めっちゃワロタwww
2019/09/26(木) 04:05:20.30ID:OiPv4SK3
Rust製の新作

https://blog.cloudflare.com/warp-technical-challenges/
2019/09/26(木) 05:43:43.22ID:oCDXWUoM
TypeScriptってClassを使わないとJavaScriptが書けない人向けの介護ツールって認識でいいよね?
2019/09/26(木) 06:14:02.61ID:HRGKiBoF
async/awaitぐらい無い言語でもライブラリレベルで実装してみせよ
ラムダ式が使える言語なら比較的カソタソに似たような書き方にできうる
2019/09/26(木) 06:15:44.02ID:HRGKiBoF
>>689
KotlinはまだJavaくね?
いや知らんけど
2019/09/26(木) 07:16:46.29ID:r7WNlwUq
>>695
それと型がないと頭が働かない知恵遅れ向け
2019/09/26(木) 07:41:21.66ID:fq/2dpZU
むしろTypeScriptにclassは要らん
2019/09/26(木) 08:41:50.36ID:gufv9Ne7
JSもGoもclass不要の言語だったのに
最近はclassの悪口を言う需要はRustに全部持って行かれた
他は「悪口はよくない」って小学生みたいな感情を持つだけの存在
2019/09/26(木) 08:49:51.01ID:r7WNlwUq
>>700
JSの一番面白いところはclass使えるのに誰も使わないところでもあるんだけどな
702デフォルトの名無しさん
垢版 |
2019/09/26(木) 09:25:13.63ID:sTql70fP
Reactのhooks APIもクラスベース開発が嫌で嫌でしょうがなく開発整備されたものだからな。
だいたい状態をひとつにまとめてそのほかでは持たないように徹底することの障害になる。
2019/09/26(木) 09:56:11.12ID:OrvmZwJd
ストールマンってFSFから退任してたんだな
2019/09/26(木) 10:13:51.92ID:OrvmZwJd
JSにclass導入するならするで、メソッド名の参照は
関数にbind(this)したものをメモ化して返すgetter(*1)にするか
もしくは obj::method のような構文糖衣(*2)を入れるべきだった

https://ja.reactjs.org/docs/faq-functions.html
> this.handleClick = this.handleClick.bind(this);
中途半端だからこんなゴミみたいな行が必要になる

onClick={this.handleClick} (*1)
onClick={this::handleClick} (*2)
2019/09/26(木) 12:53:24.65ID:Xxp1nodx
Rubyなら、あらゆる言語の欠点が解消される。

何より、実装が、早い。
スタートアップとか、には必須。

新言語はRubyに決まり!!!!!!!!!
2019/09/26(木) 13:27:51.81ID:SkeMGITL
>>705
シェア1.2%でランク外のマイナー言語がどうした?
https://www.tiobe.com/tiobe-index/
2019/09/26(木) 13:34:16.90ID:wfDbfXjY
Rubyが新言語とか笑わせるがTIOBEを持ってくるのもどうかしている
2019/09/26(木) 13:35:59.57ID:FrFz8qqQ
TypeScript は関数のシグネチャの明示と最低限静的チェックを通る程度に安全なコードを *全員に* 強制するためのツール

そもそも多人数ないし長期で開発するならどうせ関数のシグネチャはDOCコメント書くことになるんだし
どうせ型書くんだから静的解析もしてしまった方が得
2019/09/26(木) 13:42:40.38ID:Hoypu138
kotlin以外どこで何する言語なのかわからない
一つ一つ幅利かせてる分野を教えてちょ
2019/09/26(木) 14:28:50.55ID:A4X4RSur
フロントで型が重要になるシーンってどんなときなの?
711デフォルトの名無しさん
垢版 |
2019/09/26(木) 14:39:07.79ID:SS02qcvm
俺はJuliaしか知らんからよくわからん。
2019/09/26(木) 14:52:00.95ID:+/oUQhss
>>710
自己を満足させるシーンで必要
2019/09/26(木) 15:00:19.91ID:SkeMGITL
>>710
意識高い系のコードレビューをパスするために必要
2019/09/26(木) 15:04:40.92ID:fOcphuaB
>>710
型パズルにハマってる人がいるらしいよ
そんなんしてる暇があるなら機能開発しろよって思うが
715デフォルトの名無しさん
垢版 |
2019/09/26(木) 15:55:17.82ID:xcg9dsbo
>>706
www
2019/09/26(木) 17:49:41.64ID:nQRohaii
TypeScriptって使ったら便利すぎて使わないという選択が無くなるようなものなのに、まだ抵抗してる人いるんだね
今なんかすぐissueにTypeScript化しようぜって来るだろうに
2019/09/26(木) 18:07:28.88ID:FrFz8qqQ
このTypeScriptアンチ、マジで自分一人で開発することしか考えてないし仕事してねえんだろうな
2019/09/26(木) 18:08:45.53ID:9M9Vrdm6
確かにフロントエンドというか、表示周りは型を厳密にするのは面倒なだけに思うわ
C#とかでもViewBag使うし
2019/09/26(木) 18:44:02.99ID:+/oUQhss
coffeescriptって使ったら便利すぎて使わないという選択が無くなるようなものなのに、まだ抵抗してる人いるんだね
720デフォルトの名無しさん
垢版 |
2019/09/26(木) 19:12:19.05ID:EH9TPs/V
便利過ぎてチャンポンコード書きすぎて
元の言語に戻れなくなるor戻った時もチャンポンコード書いて効率落ちる
2019/09/26(木) 19:24:08.49ID:UiaR45d9?2BP(1000)

Juliaって聞くとAV女優しか思いつかん
722デフォルトの名無しさん
垢版 |
2019/09/26(木) 19:28:08.24ID:ZdPjk46K
みんな想像してる成果物が違うよね
クライアントサイドで型が面倒って何作ってたらそう思うんだろうか
関数にnullを渡してないから目視で確認してんのか
2019/09/26(木) 19:30:10.95ID:w/gPDwPD
まるでJavaScriptに型がないと思ってそうなヤツがいるな
明示してるか暗黙にやるかの違いだけでJSにも型はあるんだが
724デフォルトの名無しさん
垢版 |
2019/09/26(木) 19:32:11.37ID:EH9TPs/V
bool型は無いよ
2019/09/26(木) 20:13:57.31ID:ROVRSUwk
TypeScriptは実質SIerへの敗北宣言だと思う
SIerを馬鹿にして動的型付けでスピーディーに作って来たけど負債が酷すぎて結局webも保守的になってきてる
2019/09/26(木) 20:19:50.08ID:1JSYcSFG
nullだけであれだけぐだぐだになるのに動的型付けで中規模以上で長期間保守運用するコード書いたらどうなるかなんて目に見えてる
2019/09/26(木) 20:46:18.58ID:XEZp4VxN
今更nullポがきついとかでTSで型を得ただけで
我は最強の言語を得たり!
みたいな態度がよくわからない
JavaとかC#の人が見たらまだそこ?って顔してるよ
散々Javaをdisってきた人たちが型最高とか言ってるのは面白い
2019/09/26(木) 20:51:40.27ID:w/gPDwPD
>我は最強の言語を得たり!
>みたいな態度がよくわからない
そりゃあそんな態度のヤツお前の中にしかいないからなあ
自分の脳内でよくわからないヤツを作り出して「よくわからない」とか言ってるのは面白い
2019/09/26(木) 20:53:47.58ID:mWXTCTsK
もうちょっと実のある話しようぜ
お互い40代だろ
730デフォルトの名無しさん
垢版 |
2019/09/26(木) 21:00:24.33ID:ZdPjk46K
>>728
ベターという言葉を知らないご老体なんだよ
プログラマやってるのが信じられないな
2019/09/26(木) 21:10:21.04ID:gufv9Ne7
「よくわからない」はデフレマインドの言葉
価値がわからないから、もっと安くするかおまけを付けろってこと
2019/09/26(木) 21:18:01.21ID:LJXyn9bN
まだ10代だけど
2019/09/26(木) 21:20:47.16ID:1JSYcSFG
型と静的型チェックの区別がついてないぐらいだからなあ
2019/09/26(木) 22:39:49.74ID:kR7W3LtZ
TSの話しかしないならTSスレでやればいいのに
2019/09/26(木) 23:15:11.83ID:vw8LSbHz
JavaScript のES5/ES2015 の比較を見てると、多すぎて嫌になるw

Ruby が最もシンプル!
低コストで高品質!
2019/09/26(木) 23:20:20.91ID:sM7kShU6
>>735
RubyはVBA以下のオワコン言語
http://pypl.github.io/PYPL.html
737デフォルトの名無しさん
垢版 |
2019/09/26(木) 23:30:30.09ID:ZdPjk46K
RubyはRoRのおかげで広がって、RoRの所為で死んだ
なんとなく不愉快だし死んでよかった
738735
垢版 |
2019/09/26(木) 23:33:56.27ID:vw8LSbHz
Ruby の型変換。これだけで意味がわかる!
p [ 1, 2 ].map( &:to_s ) #=> [ "1", "2" ]

下のように、処理を読まなくてもよい。
p [ 1, 2 ].map{ |num| num.to_s }

他には、map/map! の違いも、わかりやすい!

! がある方は、レシーバーを直接変更するが、
無い方は、新しい配列を作って返す
2019/09/27(金) 00:00:45.47ID:VCDP0fqs
>>738
Rubyの仕事が激減している
https://insights.dice.com/2019/03/13/ruby-programming-jobs-serious-decline/
2019/09/27(金) 00:06:41.17ID:5FaPwfxq
そういやなんでF#は次世代じゃないんだ?
2019/09/27(金) 00:15:03.02ID:BrSu+ONy
ドットネット言語は文法変えたところでどうせドットネットだから
2019/09/27(金) 00:24:00.79ID:wIp+G4+A
F#が次世代じゃないってのはどこ情報?
2019/09/27(金) 00:30:02.66ID:7AQBen6M
rubyは型弱くて最初はいいが、メンテで死にたくなるっていう典型的言語。
2019/09/27(金) 00:37:54.48ID:4sT2Ig8J
Ocamlの時代が来るはずだ
2019/09/27(金) 02:10:29.85ID:q+bej0N8
>>738
お前がRuby! Ruby!と連呼するほど、Ruby使っているのはキチガイばかりじゃねーかという印象を世に広めるだけだぞ。
2019/09/27(金) 03:34:29.46ID:UIjD6SgZ
まあね
Rubyとか散々1行で書けるからJavaより生産性高いとか言ってたからね
行末にセミコロンいらないとか、どうでもいいし、
別に短くかければ良いってもんでもないよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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