次世代言語11[Rust Swift TypeScript Dart]

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/06/03(日) 23:53:27.92ID:vrBh4O6u
スレタイ以外の言語もok

前スレ
次世代言語10[Rust Swift TypeScript Dart]
https://mevius.5ch.net/test/read.cgi/tech/1524607347/
2018/06/24(日) 14:22:38.79ID:aS0z5WOn
>>714
は?日本語でやりなおせこのカス
しょうもない神とかいってマウント取ってチンポおっ立ててるゴミは死なす
2018/06/24(日) 14:26:16.08ID:afUW8/ml
> If the new version of foo is going to throw a new exception that clients should think about handling, isn't their code broken just by the fact that they didn't expect that exception when they wrote the code?
> Anders Hejlsberg: No, because in a lot of cases, people don't care. They're not going to handle any of these exceptions.
これを堂々と言えるのがヘルスバーグの凄さだよな
言語厨はこういうくだらない問題に固執して、その結果、使えないものを生み出す
2018/06/24(日) 15:08:00.23ID:zgy+o43M
1つの誤りを減らすために倍の工数をかけるのは意味がある
100万行に1つエラーがあるとき1つ減ったら品質2倍
2018/06/24(日) 15:23:54.41ID:I6qT+7Vz
チェック例外はステータスコードをリターンして呼び出し側に毎回チェックを要求するようなもの
例外を開発した根本的な理由を否定するおかしな機能だ
2018/06/24(日) 15:34:52.16ID:W9MJDxOG
>>715
英語も読めない奴がなんでこのスレにおるん?
2018/06/24(日) 15:37:10.47ID:zUb4/N1b
>>715
https://translate.google.co.jp/translate?u=https%3A//www.artima.com/intv/handcuffs.html
2018/06/24(日) 15:57:11.31ID:zgy+o43M
>>719
ステータスコードとか黙殺されるじゃないか
2018/06/24(日) 16:08:53.37ID:NdKqGL5r
exitがあるならexitを使え
exitとは違うと言いたいだけのためにcatchするのはやめろ
2018/06/24(日) 17:10:33.48ID:5X6JCb05
>>701
まあ一理あるよ。
実際転職してこういうバカがいない環境で作業するようになったが
めちゃくちゃ楽になったというのはある。
バカと議論するくらいなら自分の環境を変える方が有効なのは事実だ。
2018/06/24(日) 18:21:51.58ID:7besbNmD
そういえば、Swiftってチェック例外しか無いけど
StackOverflowExceptionみたいなどうしようもないタイプのエラーはどう扱ってるんだ?
2018/06/24(日) 18:37:51.28ID:zUb4/N1b
いさぎよ死
2018/06/24(日) 19:10:21.85ID:rCnjXQm/
Swiftのthrowsは投げる例外の種類を特定できない
規模が大きくなればほぼ全てのメソッドにthrowsが付くので何の意味もなくなる
iOSアプリ専用言語ってことでスケーラビリティを捨てて簡潔さを取ったんだよ
全く検査例外の問題を解決していない
728デフォルトの名無しさん
垢版 |
2018/06/24(日) 19:20:57.72ID:yrJGTcca
議論しなくて楽といいながら反論しないと我慢できないあたり、敗北に耐えられなくなったんだろうなあ
2018/06/24(日) 20:13:53.05ID:LdM/sNf2
はあ……はぁ…… 敗北者?
2018/06/24(日) 21:04:40.84ID:+NknEUst
Jカス死ね
外に持ち出すな
2018/06/24(日) 21:13:15.40ID:IMfFDE+Z
Goの例外機構は素晴らしい
2018/06/24(日) 22:53:08.23ID:aS0z5WOn
>>730
おいよせのるな立ち止まるな戻れ
2018/06/24(日) 23:42:03.20ID:454A8npo
Goに例外機構あったの??
2018/06/24(日) 23:54:12.95ID:n0+oKw/B
パニック パニック パニック みんなが あわててる
2018/06/25(月) 01:21:07.81ID:sauGlQNA
Nim vs Pony
https://www.slant.co/versus/395/15833/~nim_vs_pony

Nimの圧勝www
2018/06/25(月) 01:43:43.51ID:MLyw+FoY
マイナーvsマイナーで圧勝とは
2018/06/25(月) 02:28:15.40ID:Emoxa88w
Java8基準で考えていく
2018/06/25(月) 02:39:47.18ID:sauGlQNA
日本じゃ全然話題にならないけどEveのトピックはいつも大論争になる。
果たしてEveは革新的なプロジェクトなのか、誤って定義した問題を解決しようとしているに過ぎないのか。
https://news.ycombinator.com/item?id=12817468
https://news.ycombinator.com/item?id=13010396
https://news.ycombinator.com/item?id=16227130
https://news.ycombinator.com/item?id=16630359
2018/06/25(月) 03:16:00.10ID:/4lQWXmM
Egisonのパターンマッチちょっと感動した
2018/06/25(月) 03:17:17.70ID:44m9rNA8
記号なしの数学はより分かりやすく役に立つか
2018/06/25(月) 09:16:08.84ID:5QtoeHUB
パトロン見つからなくてプロジェクト終了してたんだな。残念
2018/06/25(月) 14:24:03.82ID:KTJIIKxw
>>170
は?vscodeもtsも不安しかねえんだけど
シェア一強になるまでは低姿勢、なった瞬間に手のひら返し、が今までのMSのテンプレ

今回もまったく芸のないテンプレでむしろ呆れてるところ
お前みたいなバカが信者かわからんがMS持ち上げる阿呆が出てくるからタチ悪い
2018/06/25(月) 14:27:50.78ID:NzmJfW7/
マイナーvsマイナーだと、設計そのものの良し悪しよりも
どれだけ労力をかけて作り込まれているかの方が影響でかいからなあ……
作ってる側が「いやそこの最適化は後回し」とか思ってるところを測ってもしょうがないし
(いやメジャーvsメジャーでもそういうとこあるけど)
2018/06/25(月) 15:24:30.75ID:3bOE7bXX
一生疑って暮らすのは楽しいのかなぁ
2018/06/25(月) 15:50:06.67ID:d4UYbnp8
「疑う」の反対は「割る」
割れば楽しいのはわかった上で敢えて疑う方を選ぶんだろう
746デフォルトの名無しさん
垢版 |
2018/06/25(月) 16:43:18.37ID:1uudit/q
>>738
なんかSmalltalk風味があるな・・・
2018/06/25(月) 19:42:46.10ID:Vbt8BrVm
MSのやり方について講釈垂れる前に
ライセンス見ろよとしか(VSCode,vscode)
2018/06/25(月) 23:28:09.79ID:RDIsdPp/
>>742
陰謀論者は生きづらそうで大変ですね。
もしMSが手のひら返したら、forkするだけですけど?
2018/06/25(月) 23:37:34.43ID:XbrJPmKw
forkするだけ(藁)
強がっちゃってまあ

いいのか?フォフォフォカヌポォしますぞ!!!(憤怒)←草www
2018/06/25(月) 23:47:42.02ID:d4UYbnp8
forkするより製品版を単純にコピーするだけの方が早い
MSの影響で民度が下がる
MSと無関係でいる方が安全
2018/06/26(火) 00:04:43.71ID:Si7josaM
永遠にvimかemacsしか使わなければよい
2018/06/26(火) 00:07:22.28ID:RrNymGzT
数年前の意識高い系達が「Web開発のスピードにIDEなど邪魔(キリッ」とか言ってたのが嘘みたいだよな
結局のところ彼等は電気を知らない原始人だったのだ
2018/06/26(火) 00:09:45.57ID:5qApnOMl
火に怯えてた猿、の間違いだろw
2018/06/26(火) 00:10:17.87ID:PwoRxl17
Vimは操作性や立ち上がりの速さが優れている
Guiのエディタはプラグイン導入の楽さが優れている
Emacsは間くらい
2018/06/26(火) 01:10:33.16ID:OhefK1bS
>>742
つーか誰もツッコんでないんだけど、なんでこんな遅レスなんだっていう
2018/06/26(火) 02:31:41.82ID:z7QfCwwb
>>742
不安を感じないものを上げてみて
2018/06/26(火) 07:48:27.74ID:8nfGtP67
アメリカ人「銃があれば原始人を倒せるのに」
2018/06/26(火) 10:23:19.59ID:/82hZ4jz
>>756
Gitlabは少なくとも信頼できる
Azureで動いてるとか言ってる奴いるけどもうやめるって話出てる

エディタはEmacsで十分だし、babelあればES2016でもまともに書けるからTSは不要
2018/06/26(火) 10:30:34.11ID:Uq9cj0Jx
>>758
DB消すようなとこが信頼できる?
2018/06/26(火) 10:39:38.33ID:/82hZ4jz
>>759
消したあとの対応は信頼できる
MSなら消しても揉み消してた
2018/06/26(火) 10:43:02.43ID:jiePcum7
>>760
MSそんな事したことあったっけ?
ただの妄想?
2018/06/26(火) 11:38:55.58ID:8nfGtP67
疑問を持つ人はいっぱいいるが疑問を解決する人は少ないのが現実で
すぐに解決すると思うのは非現実的
2018/06/26(火) 17:29:52.82ID:iZChSW1/
年食うと一度学んだ思考回路は変えられないんだろうな
多分死ぬまでMSは邪悪でEmacsは最高のエディタなんだろう
764デフォルトの名無しさん
垢版 |
2018/06/26(火) 18:29:07.51ID:SLOKSalZ
>>677
https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fast.html

Swiftは遅い
2018/06/26(火) 19:30:48.24ID:Si7josaM
Goより速いじゃん
2018/06/26(火) 19:55:40.04ID:HsrbbpJS
>>763
それも偏った思考回路だな
767デフォルトの名無しさん
垢版 |
2018/06/26(火) 19:56:14.90ID:SLOKSalZ
あとSwiftでパターンマッチ使うときさ「case let」の「let」ってなんの意味有るの?
そもそも「case」自体いらないよね。
Rustみたいに簡潔な構文にしない意味がわからん。
2018/06/26(火) 20:18:13.51ID:ouGSlrDx
簡潔って記号だらけにしろってこと?
perlでも使ってれば
2018/06/26(火) 20:22:26.08ID:wzcThIhT
Rustの構文が簡潔……??
770デフォルトの名無しさん
垢版 |
2018/06/26(火) 20:23:51.43ID:SLOKSalZ
Scalaも構文ダメだけど、Dottyでかなり改善されてるみたいだね

http://dotty.epfl.ch/
771デフォルトの名無しさん
垢版 |
2018/06/26(火) 20:32:08.64ID:SLOKSalZ
>>768
>>769
冗長な構文にするなってこと。

```Rust
match number {
1 => "one",
2 => "two",
_ => "else",
}
```
```swift
switch number {
case 1: return "one"
case 2: return "two"
default: return "else"
}
```
2018/06/26(火) 20:36:27.71ID:Rm57MuZK
msが嫌いならflow使っとけばいいよ。
俺はTypeScriptで行く
2018/06/26(火) 20:37:59.55ID:Rm57MuZK
>>771
rustをそんなに押すなら、
毎日ちょっとずつ使い方教えていけよ。
面白い内容ならそのまま覚えるから
2018/06/26(火) 20:40:42.88ID:wjruZlWa
>>767
case varがあるからでは
2018/06/26(火) 21:03:22.89ID:1/94qv1z
>>770
dottyは流石に見苦しいわ
今更互換性ブチ壊して誰がわざわざScalaなんか使い続けるんだよ
Lightbendは一度プラットフォーム主導者の味を覚えてしまってもう後に引けなくなってるんだろうな
2018/06/26(火) 21:08:47.59ID:SIV9Ebow
元が冗長だと、機能追加したときの新構文(大抵元と区別のために冗長になる)が
あまり違和感なくなるというメリット?もある
C++とか酷いだろ。rustも多分20年ぐらいしたら酷くなる
777デフォルトの名無しさん
垢版 |
2018/06/26(火) 21:18:39.20ID:SLOKSalZ
>>774
Rust: https://play.rust-lang.org/?gist=374b461ab0c7a5de9f5e0dc6db6c630b&;version=undefined&mode=undefined
Swift: https://ideone.com/4yPERL

この場合Rustのようにlet書く必要ないと思うんだけど?
2018/06/26(火) 21:33:59.71ID:uCVrG76/
>>776
Rustが20年も残ってるとか信者かよ
2018/06/26(火) 21:38:20.73ID:uCVrG76/
>>763
いつMSが邪悪じゃなくなったんだよ

エディタについてはVimとEmacs以上のものがいまだにないだけ
2018/06/26(火) 21:42:01.06ID:z7QfCwwb
>>779
老害おつ
2018/06/26(火) 21:43:00.71ID:SIV9Ebow
>>778
ObjectPascalは30年経ってるが、元が冗長と言われまくってたPascalだったおかげで
魔改造されまくった今でもあんまり浮いた構文は無いぞ
初期Macで採用されてたのは別格としても、その後は大したプロダクトもないDelphiぐらいでしか残ってないのに
一応生き残ってるんだから、FirefoxのあるRustも同じぐらいは残るだろ多分
2018/06/26(火) 21:46:10.71ID:uCVrG76/
>>780
どっちかっていうと、若者がMSの暴虐の歴史を学んでないから
今現在進んでる暴虐が暴虐と分からないだけだぞ
2018/06/26(火) 21:49:11.80ID:uCVrG76/
>>781
火狐に使われてるから残るとか
火狐の世界シェア見てから言おうぜ……

Rustごと自殺して消えるって自白したようなもん
2018/06/26(火) 21:49:29.84ID:1/94qv1z
完全に半島人
785デフォルトの名無しさん
垢版 |
2018/06/26(火) 21:49:47.34ID:jiePcum7
>>777
だからletとvarがあるんだって
let: https://ideone.com/eB3UWN
var: https://ideone.com/ae3qzC
2018/06/26(火) 21:50:20.36ID:z7QfCwwb
>>782
具体的に
2018/06/26(火) 21:50:49.04ID:K3KwuDCb
Delphiで残れたのなら火狐で残れるだろ
788デフォルトの名無しさん
垢版 |
2018/06/26(火) 21:54:24.01ID:1lcgGYQy
この爺さんはこのスレに何しにきとるんだ
特養じゃないっつの
2018/06/26(火) 21:56:05.20ID:SIV9Ebow
>>787が書いてくれたが
俺も、どっちも細々としたもんだがFirefoxのほうがDelphi(製アプリ)よりはまだマシだろう、というつもりだった
その上で20年後の変更されまくったrustはDelphiやswiftより汚くなってそう、という予想
2018/06/26(火) 22:07:57.87ID:TI86xS9J
すでに汚いしな。
791デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:12:37.76ID:SLOKSalZ
>>785

varがあるのはわかるけど、そこでvarを使う場面てあるのかね?

https://ideone.com/vMGLEg
```swift
case let .B(n):
let t = n+1
return String(t)
```

だって変わらんし
792デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:24:29.16ID:SLOKSalZ
>>785
それにvarのときだけつければ良くないかね,Rustだと「mut」つけるだけだけど

https://play.rust-lang.org/?gist=f7bb032027fcdbc6db2f033c4874c27c&;version=stable&mode=debug
```rust
AB::B(mut n) => {
n+=1;
n.to_string().into()
}
```
2018/06/26(火) 22:33:54.59ID:wjruZlWa
>>791
変数束縛にletとvarがある言語において、switchのときだけ変数束縛を特別扱いしてletやvarを省略できるのは一貫性が無いという考え方もある
2018/06/26(火) 22:39:59.15ID:wjruZlWa
それに短ければ良いなら、rustのlet mulよりswiftのvarの方が短い
パターンマッチより変数宣言方が良く出て来るしね
2018/06/26(火) 22:47:02.38ID:b30is1tn
20年後に汚くなるってのはみんなわりと納得するんじゃね?
C++もJavaも、時間経過とともにきっちり汚くなった
言語仕様こねくり回すのが仕事の人が存在するからしゃーないっちゃあしゃーない
2018/06/26(火) 22:48:50.88ID:cumK515O
難しい・易しいではなく汚い・美しいという見方をするのはなんでだろう
数学を諦めた感が漂ってる
797デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:49:48.96ID:SLOKSalZ
>>793
そういう見方もあるけどね

でも
```
case let .B(x): return String(n)
```

```
case .B(let x): return String(n)
```
の違いってなんなのかね、違いがないなら「let」省略できたほうがいいように思うが
798デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:51:21.79ID:SLOKSalZ
>>797
訂正: xじゃなくてn
799デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:57:45.92ID:SLOKSalZ
>>794
短いことがいいんじゃないよ、理由なく冗長な構文がだめなだけ。

Rustはわざと「var」とかじゃなく「let mut」にしている理由は、通常イミュータブルを使うようにするため。
ミュータブルの構文が長いことでプログラマがイミュータブルをより一般的に使うよう促す効果がある。
2018/06/26(火) 23:00:40.71ID:HsrbbpJS
可読性の高い綺麗なPerlコードを書けるものだけが石を投げなさい
2018/06/26(火) 23:12:38.14ID:SIV9Ebow
>>799みたいなのは設計当初は綺麗なんだけど
後から、例えばD言語のconst/immutableみたいな選択肢を追加してしまうと罠に化けそうじゃない?(妄想だけど)
その点元が冗長ならある程度耐性がある、という話。後から省略可能にする方はできるしな
802デフォルトの名無しさん
垢版 |
2018/06/26(火) 23:29:44.42ID:SLOKSalZ
>>801
Dは全然知らないけど、調べたらデフォルトがミュータブルで、immutableをつけるとイミュータブルになるのか。

```
int x = 3; // ミュータブル
immutable int x = 3; // イミュータブル
auto s = "hello"; // イミュータブル
```

これはひどいな
2018/06/26(火) 23:32:04.35ID:SIV9Ebow
>>802
そこはまあしょうがないとして、イミュータブルにも種類があるという点に注目してくれ
2018/06/26(火) 23:40:45.19ID:cumK515O
コンパイル時に値がわかるのが定数
実行時に初期化するがその後は変更しないのがimmutableかな
2018/06/26(火) 23:56:28.51ID:SIV9Ebow
加えて、現在のスコープからは変更不可能だが実体はミュータブルかもしれないのがconst
更にそれぞれに推移のON/OFFがある

何も書かないのがイミュータブルだとその内の1つを適当に使ってるということで
選択肢が増えたときにどれか1つが不自然に短く書けてたことになるし
現状を突き詰め直したときにコンテキスト毎に別のだったなんてことになると目も当てられない
2018/06/27(水) 00:01:32.20ID:3Z0mJH5D
やっぱり言語仕様は頻繁に変えるべきということだな!w
2018/06/27(水) 00:50:40.19ID:jdISqR1B
>>802
ゲェジかな
ワイの方がよっぽどいい設計できるわ
この作者はワイのケツ穴でも舐めてた方が幾分有益な人生になったんじゃないかw
2018/06/27(水) 00:59:47.78ID:CkpNpuYk
>>805
GCが必須ではない言語の場合、ミュータブルならばメモリ解放もできる

現在のスコープからは変更不可能だが実体はメモリ解放するかも
というのは非常にまずい
現在のスコープから変更不可能ならば実体も変更不可能にしたい
2018/06/27(水) 01:19:45.86ID:9jxZxPuA
>>808
それだとイミュータブルなオブジェクトを貰って何かする関数に
ミュータブルなオブジェクトを渡せなくならない?

そうすると print とか toString とか hash とか compare とかありとあらゆるものが
immutable / mutable 2種類必要になる
引数に2つオブジェクトがあると4種
3つなら8種
2018/06/27(水) 20:24:28.42ID:GckfUNYK
ただの再代入不可な変数をイミュータブルって言い始めたのって何の言語からなの
2018/06/27(水) 21:06:16.07ID:7rLtDwhR
>>810
たぶん英語だと思う
2018/06/28(木) 08:21:12.64ID:1UW06GNd
>>795
pythonなんかも細かいところはど汚いわけだがあんまりそういう汚いところ
触らんでも仕事になるって違いはある。
てかシンタックスなんててきとうにチェックでもそんな問題にならんよ。
self書かされることなんて文法で規制されてるわけでもないが問題になることなんてない。
2018/06/29(金) 09:12:05.44ID:iOzvNZgV
>>810
変更可、不可という概念は別に変数に限った話じゃない
2018/06/29(金) 09:23:47.61ID:XwuS30Hh
Pythonの型アノテーション試してるけど正直苦痛
TypeScriptを使ってるときには全く感じなかった無駄なもの書かされてる感がすごい
というかTypeScriptの統合が完璧すぎるんだな
型書くことはノイズになるどころかコードをむしろ美しくするとすら思えるもんな
2018/06/29(金) 10:57:44.57ID:0VaRYdhC
少しでも欲を出せばそうなる
完璧な無欲か完璧な満足かの1bitしかない
HaskellやRustのようになるまで止まらないぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。