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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/04/25(水) 07:02:27.60ID:OmWDt0SE
スレタイ以外の言語もok

前スレ
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
http://mevius.5ch.net/test/read.cgi/tech/1520298555/
2018/04/30(月) 19:38:34.18ID:VNBrLSx6
ふと思ったんだけど、そもそもADHDの煽りカスって時点でコミュニケーションは無理だよね
ADHDはやめられないし、煽りカスも辞めないという。これは厳しい
2018/04/30(月) 19:43:11.80ID:IW/uLpnH
言語の話しろよ
2018/04/30(月) 19:50:35.50ID:u1hVCPKT
ある意味言語の話だな
これほど真面目に自然言語について議論してるスレはなかなか無いぞ
2018/04/30(月) 20:18:05.96ID:kQcRd75k
>>259
まあ、板違いだけどね。

「あ」とやらがコテつけてくれるのが最も現実的で皆が幸せになる解決策だと思うよ。
2018/04/30(月) 20:31:29.13ID:nkNJAN4m
>>255
意思疎通しようとする努力はしてるつもりだよ。
匿名の俺に触れてしまい、と言うか、結構匿名の俺と普通に議論してることもあるんだよ。
ただ、単に一部の人間が、haskellについてマイナスにも取れる事を言うと燃え上がるだけであって。

いずれにせよ、余計なことは言わないようにするよ。
特にhaskellに関してはその存在すら触れないようにする。

では。
2018/04/30(月) 20:41:42.49ID:lJZKagtE
ある人物がいるところには必ず悪い結果が生じる
ある言語に触れたら必ず悪い結果が生じる
こういう因果関係に縛られて身動きが取れない世界観をなんとかできないのか
2018/04/30(月) 21:44:21.59ID:lJZKagtE
逆張りが必要だ
旧世代のジンクスが破れる方に賭けないと次世代は出てこない
2018/04/30(月) 23:45:34.54ID:oQ8WGmv4
ひでぇな…ちょっと見てない間にこの有り様かよ。
俺も煽り耐性ないほうだから「ROMって様子見るつもり」が耐えきれず出て来ちゃったよ。
このスレにはADHDと知ってなお煽るカスがいるのかよ。
特にID:c3w1WFHIだよ。
おまえ「コテ付けたら話しかけない」とか言ってるが
>>240,>>246,>>249,>>255,>>256の中で「コテ付けてほしい」って言ってるのが
>>255のたったの1つだけ。他は全て「あ」に対しての「煽りや批判」。
おまえの本心は「コテ付けて欲しい」でも「「あ」と話したくない」でもなく、
ただ単に「煽ったり批判したりしたい」だけだよ。
「「相互」に努力しろ」って言ってるだろうが。
解決するつもりが欠片でもあるなら、いちいち煽ってんじゃねぇよ。
解決するつもりが全くないなら、それ以上は俺もどうしようもできねぇよ。

自分からこの話振っといて言えた立場じゃないのは重々承知なんだけど、
そろそろ次世代言語の話に戻ろう。ご迷惑お掛けしました。
2018/05/01(火) 00:33:30.64ID:xd1ck8hZ
Haskellやってから$で後ろの文を優先度低いコードにするやつが欲しいけどそういうの流行ってないのけ?
2018/05/01(火) 00:57:22.30ID:ur47byug
haskell触ると各種括弧が煩わしくなるね
2018/05/01(火) 01:18:59.27ID:ZcmzMd+9
オブジェクト指向捨てて関数型の鬱陶しいところ解決したら次世代言語でいいよ
2018/05/01(火) 01:20:01.70ID:2fuYCH09
HaskellはCommon Lisp の力強さとSchemeの美しさを併せ持ち、インデントに意味を持たせることで極限まで括弧を減らした言語だってLand of Lispかなんかに書いてあった希ガス
2018/05/01(火) 02:23:29.29ID:6vH9r7He
それは気のせい
270デフォルトの名無しさん
垢版 |
2018/05/01(火) 02:52:22.58ID:4yrhftk/
みんなxcodeでカード書いてるんでしょ?
どうやってxcodeの使い方覚えた?
visualstudioしか今まで使ってこなかったからIDEの操作で右往左往してるわ
271デフォルトの名無しさん
垢版 |
2018/05/01(火) 02:52:52.65ID:4yrhftk/
誤字ってた
カードじゃなくてコード
2018/05/01(火) 06:06:49.46ID:BQXmdu4P
iOSアプリ入門で覚えた。
xcode自体は割と素直な環境だと思うけどな。ただし俺の知識はswift2で止まってるが。
2018/05/01(火) 06:24:30.92ID:BQXmdu4P
ここでhaskell押しをよく見るけど、正直取っ付きやすさは最悪だと思うんだけど、、
関数プログラミング実践入門
ってやつを読み進めてみたけど、半分過ぎても helloWorldまで行かなくて、なんてヘビィな言語だと思ったわ。
一方go言語は一時間で動かせました。
学習日一日目でphpで書いたバッチ処理をgoに移植できたよ。
2018/05/01(火) 08:13:28.92ID:4+zKgECd
なんだかんだでgoは学習コストとできるコードのバランスは良いと思うよ。
あんまり無作法なことするとコンパイラがコンパイルしてくれないくらいか。
gofmtあるし、vscodeでもプラグイン入れたらわかりやすいし。
2018/05/01(火) 08:33:48.84ID:BQXmdu4P
後、結構組み込みに向いてないかなgoは?
例えばラズパイでsdに録画したデータを外部サーバにpostしようとしたときに、
一度メモリ上に、全部配置してからじゃないと動かない挙動だったんだけど、
検証したらpost処理時にsdからreadしながら転送できるように修正できた。
2018/05/01(火) 08:33:49.85ID:4kJCxQxL
純粋オブジェクト指向言語が定着しなかったのと同じで
純粋関数型言語もメインストリームにはなれないと思う
2018/05/01(火) 08:35:30.68ID:BQXmdu4P
goの良さって標準ライブラリが全部goで書き直されていて、それを読めば解決策が思いつくことがあるってことだな
2018/05/01(火) 08:38:56.70ID:4+zKgECd
>>275
リッチな組み込みには向いてると思ってる。
linuxのarm用にコンパイルしたら、androidでも動くし(普通のSDKアプリからプロセス起こして遊んでみた)
GCの動作と、そもそもリアルタイムが出せないを許容できるなら便利かと。
たしかqiitaでも、組み込みに押してる人居たよ。
2018/05/01(火) 08:50:20.21ID:BQXmdu4P
goって組み込みでも使えるしwebでも行けるしスマホアプリも作れなくもないし
wasmにも対応間近だからwebクライアントにも進出しそうだし、いい感じ。
280デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:14:08.18ID:jT7wV8oq
rustでいいやん
2018/05/01(火) 09:21:25.08ID:DdhcnubW
>>280
Rustはどうしても手軽じゃないんだよね
とはいえ、Rustも慣れると案外サクサク書けるから悪くはないと思う
慣れるまでメチャクチャ時間がかかることがそもそも問題なんだけどね…
282デフォルトの名無しさん
垢版 |
2018/05/01(火) 10:05:10.06ID:jT7wV8oq
メチャクチャっていうけど一週間もあればそれなりに書けるようになるでしょ
2018/05/01(火) 10:22:04.99ID:jugg/3+t
慌てるなよ
自分が数学を何年勉強したか思い出せ
1週間で何ができる?何もできないでしょ
2018/05/01(火) 10:22:33.15ID:DdhcnubW
>>282
Rustが一週間とか羨ましい頭してるな
毎日まじめにやってたわけじゃないのもあるけど、半年かかったわ
一週間とかおれには無理
285デフォルトの名無しさん
垢版 |
2018/05/01(火) 10:27:41.79ID:btT/kXg5
>>283
一つのプログラミング言語を現場に持ち込むのに数年かけているのか?

>>284
phpで書いたバッチの移植くらいならできるでしょ
2018/05/01(火) 10:32:48.52ID:DdhcnubW
>>285
それくらいならまあギリギリ
でもちょっとでも複雑になっただけですぐアウト
2018/05/01(火) 10:42:57.85ID:KdOUAylP
とっつきやすさとかいうほど重要か?Javaとかそんなにとっつきやすかったイメージないけど
2018/05/01(火) 10:54:12.75ID:jugg/3+t
金のことばっかり考えると勉強ができなくなるようだな
子供は金持ってないのが当たり前だから何年も勉強できる
2018/05/01(火) 11:12:05.04ID:mR7q/yna
>>273
> 関数プログラミング実践入門
それは関数型言語の入門書だからHaskellのHello, Worldがなかなか出てこないのは当然
Haskellが「ヘビィな言語」なんじゃなくてあなたが「関数型言語」に馴染みが無いだけだと思うよ
2018/05/01(火) 11:34:41.33ID:KdOUAylP
まあたしかにHaskellのHello worldなんて大した長さじゃないし、本の最初のほうに配置するべきよな
そして最初に配置している本は見たことがない。あるのか?
2018/05/01(火) 11:42:18.17ID:BQXmdu4P
>>289
馴染みのある人間が 入門 を果たして読むのか。
2018/05/01(火) 11:49:01.59ID:jugg/3+t
Haskellの難易度はC++とほぼ同じと気付くまでにあと何年かかるかな
2018/05/01(火) 11:50:27.39ID:BQXmdu4P
phpで並列処理が書きづらくて、goに触り始めて感動して。
ちょっと触ってみて使えるのを確認して、
goを本格的に触るようになった。
ちょっとしたモチベーションで気軽に始められる。
ローリスクハイリターンな感じ?

haskellとかrustに触るモチベーションって言語マニア以外は何があるかな?
2018/05/01(火) 11:50:49.86ID:mR7q/yna
>>290
関数型とはなんぞやをすっとばしても入出力を扱うには副作用・モナドあたりを先に
やる必要があるから仕方ないね

>>291
つまり馴染みのないあなたにはHaskellが「ヘビィ」かどうかなんて判断できないってことだよ
2018/05/01(火) 11:53:26.62ID:KdOUAylP
>>294
そんなんHello wordするためにはincludeを理解する必要があるって言ってるようなもんじゃん
IOアクションなんて最初は「おまじない」で良くね?
2018/05/01(火) 11:59:45.69ID:DdhcnubW
>>293
Haskellの方は知らん
RustはC++の代替え
C++はもう嫌だ
2018/05/01(火) 12:01:56.82ID:KdOUAylP
D……
2018/05/01(火) 12:05:51.63ID:BQXmdu4P
>>294
そうかな。elixirも関数型言語だけど、だいぶ遊びやすかったけど。
俺みたいなショボいプログラマーはhaskellに近づかないほうが良いのかな。
素直にelm辺りを触ってみますわ。
2018/05/01(火) 12:09:09.54ID:jugg/3+t
C++にはbetter Cとかいうチート技があるから1秒で即戦力
1時間で自慢してるやつは恥を知れ
2018/05/01(火) 12:23:26.29ID:KdOUAylP
>>293
Haskell 勉強中なんだけど、ちょっとパーサーをいっぱい書く必要があって、パーサーを量産することがモチベーションになってる。Real world Haskell でチュートリアル的にJsonパーサー作れるくらいにはパーサー書きやすいんだと思う
でも環境周りとか正直鬱陶しいから、もしもっと書きやすい言語があったらそっちにしたい
301デフォルトの名無しさん
垢版 |
2018/05/01(火) 12:32:50.54ID:4yrhftk/
>>272
ありがとう
それは書籍?
302デフォルトの名無しさん
垢版 |
2018/05/01(火) 13:22:56.98ID:btT/kXg5
>>293
rustやhaskellを選択しない自分に劣等感を抱いてるのかね
他の言語をオタク専用であるかのように揶揄して自尊心を満たそうとするのはやめんしゃい

わしはGCとおさらばしたいしresult/optionの扱いが気に入ってrustを使ってる
2018/05/01(火) 13:42:38.59ID:BQXmdu4P
>>301
特定の書籍ではないね。本屋に山ほどあるどの本でも良いのでわ?
もしくは最近だとmixiとかが社内研修用のコンテンツを無料で公開してるからそれを利用しても良いと思う。
2018/05/01(火) 14:17:29.04ID:4+zKgECd
GCフリーは確かに魅力だけど、充分に賢ければGC言語でもそこまで問題になる事は無いと思うが。
2018/05/01(火) 14:18:21.90ID:KdOUAylP
そこは状況によるし一概に否定出来ることではない
2018/05/01(火) 14:25:43.54ID:4+zKgECd
そういや、rustだと、自身も誰かから特定のイベントを受け取るか、誰もイベントを送り得なくなったら死ぬような感じの、
タイマーみたいな自発的にイベントを起こすイベントソースは誰か所有すべきなのかな。
タイマー起こしたやつってのも変だし。
2018/05/01(火) 14:43:22.00ID:jugg/3+t
Rustの Rc<T> 型の問題
Haskellの IO a 型の問題
難易度下げたいなら型を書くのをやめればいいんだよ
2018/05/01(火) 14:45:09.99ID:KdOUAylP
書きたくないなら省略すれば良い
309デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:52:11.01ID:DdhcnubW
>>307
とりあえずRustの話だが、Box<T>にせよRc<T>にせよ書かねえと
ボローチェッカを満足させられない or コストを可視化できねえんだよ
2018/05/01(火) 15:07:40.80ID:jugg/3+t
>>309
そうだね
チェックしたいなら学習コストを犠牲にすればいい
コスト下げたいならチェック機能を犠牲にすればいい
311デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:20:54.24ID:DdhcnubW
>>310
なんか勘違いされた気がするから補足
コストってのは学習コストのことじゃなくて実行時のコストのことね
Boxを明示することでヒープであるコストを可視化する
Rcを明示することで参照カウンタであるコストを可視化する
2018/05/01(火) 15:24:30.26ID:vzW3/HLG
コードの短さこそ正義。ただし、可読性を損なわない範囲で
313デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:26:12.15ID:DdhcnubW
つまり、書かないとボローチェッカを満たせないというのももちろん理由の一つだけど
実行時のコストを可視化するという意味でも書いておいたほうがいいというわけ
Rustは実行速度が速くないといけない言語なんでね
2018/05/01(火) 15:53:34.08ID:jugg/3+t
2種類のコストの概念を学習するのが面倒臭い
だから色々なコストを無視して作ったフリーソフトが無双してるんだと思う
2018/05/01(火) 19:39:03.13ID:vzW3/HLG
リスト内包表記が読みにくいって人たまに見かけるけど、このスレにもおる?
2018/05/01(火) 19:42:50.63ID:xd1ck8hZ
Haskellのリスト内包表記がモナドと知った時の衝撃
まあ3項演算子と同じで慣れよね
2018/05/01(火) 19:49:54.02ID:KdOUAylP
doといい、内包表記といい、全部ちゃんと何かのシンタックスシュガーになっているのには恐れ入るわ
ユーザーからしてみればそこまでしてもらわなくてもいいっちゃいいもん。
開発側の強い拘りを感じて好きだわ
2018/05/01(火) 19:52:14.09ID:vzW3/HLG
Fortranのあれは内包表記と扱って良いものか悩む
2018/05/01(火) 20:23:57.89ID:KdOUAylP
RustはDみたいに.mapとか.filterとか繋げるのが主流かいな?
2018/05/01(火) 20:31:00.33ID:pBAnst7/
拘りっつーか関数型言語なんでそりゃそう作るでしょうよ
適当に文法導入してそれが関数に還元できないものだったら理論破綻するじゃん
2018/05/01(火) 20:37:38.61ID:KdOUAylP
そういえば純粋関数型だったな。Haskellは
純粋の意味を忘れておった
322デフォルトの名無しさん
垢版 |
2018/05/01(火) 20:45:19.66ID:DdhcnubW
>>319
Dはやったことないから知らんけど多分同じ
C#のLINQみたいな感じでメソッドチェーンする
2018/05/01(火) 21:21:46.75ID:KdOUAylP
>>322
Rustは速くなくっちゃいけないとの事だけど、それって速いの?
324デフォルトの名無しさん
垢版 |
2018/05/01(火) 21:29:57.85ID:btT/kXg5
早いの?ってなにに対して?
2018/05/01(火) 21:35:11.22ID:KdOUAylP
>>324
ループで書いた場合
326デフォルトの名無しさん
垢版 |
2018/05/01(火) 21:42:41.95ID:btT/kXg5
ループってCのループ?
2018/05/01(火) 21:55:33.38ID:KdOUAylP
>>326
え、rustのループとCのループって速度違うの!?
じ、じゃあCのループで
328デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:04:27.49ID:btT/kXg5
rustのmap,filterとcで同等のことをするのは、真ん中とって同じくらい速いと考えてよろしいですよ
2018/05/01(火) 22:07:47.19ID:KdOUAylP
おお、マジかすげー!!
330デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:22:36.78ID:btT/kXg5
でしょ、rustおススメさ
2018/05/02(水) 00:38:20.18ID:dFHCtPB7
rustは速さとモダンな記述のバランスが良い
2018/05/02(水) 00:58:58.35ID:+3mXDJV1
大変非本質的なことを書いて申し訳ないんだが、<>と::に拒否反応が出る。俺だけかな
2018/05/02(水) 01:41:11.00ID:7KDFadEV
無茶苦茶な事敢えて言うがやっぱプログラミングするに至って世界に記号が足りない。だから2個記号を並べるというダメな記法になる
ついでにアルファベットも50個くらいにしてくれ
334デフォルトの名無しさん
垢版 |
2018/05/02(水) 01:45:52.01ID:vteIglDu
やっぱりAPLって神だわ
335デフォルトの名無しさん
垢版 |
2018/05/02(水) 01:47:50.27ID:vteIglDu
Vimでなんかのプラグイン入れてhaskell書いてたらラムダ式のバックスラッシュをλに変えられて草生えた
2018/05/02(水) 10:07:19.34ID:mp5av7vO
>>333
Juliaみたいにユニコード完全対応するとギリシャ文字を変数に使えたりするが
いまいち流行りそうな感じがしない
2018/05/02(水) 10:25:48.10ID:RzHnyLgy
変数とかじゃなくて記号としてだろ

λとか { (x,y) | x ∈ R, y ∈ R } とかアリではあるのだろうけど入力面倒そうでもある。
Int や Real を意味する派手な(縦線が二本線)大文字の I や R も欲しい
2018/05/02(水) 10:53:03.53ID:oEkIWn2X
Agdaとかその辺徹底してる。

作者自身が教えてる動画で、その記号どうやって打つのて何度も聞かれてて、
最後は何でユニコードにするの?て聞かれて、だってそっちの方が美しいじゃん?て答えて失笑されてた。
めんどくせ、こりゃ流行らんわと思ったけど、慣れると\より\lambdaて打ちたくなる不思議。
2018/05/02(水) 11:41:13.27ID:NVRwXhE8
中置の二項演算ができたら記号は何でもいい
他には分数のように縦に並べたい
340デフォルトの名無しさん
垢版 |
2018/05/02(水) 17:37:54.83ID:Sw4XeVpF
欧米の人たちは∈∧∋とかどうやって入力してるんだろう?
2018/05/02(水) 17:37:57.52ID:+3mXDJV1
>>337
わかる
2018/05/02(水) 18:15:31.48ID:vteIglDu
Unicode打ち込むエディタとして、Junoは良く出来てる
2018/05/02(水) 18:41:04.95ID:1b+D0yU2
そんなクソ機能、バグを生み出す元でしかないわ。
2018/05/02(水) 20:25:38.31ID:HO4ioabV
>>339
Vimで表現出来なそうでつらみ
2018/05/03(木) 01:00:22.05ID:VEudjtBb
RAIIとGCってどっちがパフォーマンス優れているの?直感としてはGCの方が効率良さそうに感じるんだけど
2018/05/03(木) 01:08:46.71ID:bKSKRSB9
感じるならしょうがないけど
GCは解放していいオブジェクトがどうか判定しなきゃいけないけど
RAIIだと不要だよね
2018/05/03(木) 01:08:55.36ID:gY2lED9C
究極的には圧倒的にGC
GCはメモリの再配置が可能という極めて大きな最適化の自由度があるからね
2018/05/03(木) 01:10:48.34ID:1+qiVSYV
>>346
RAIIで面倒見きれるような単寿命のオブジェクトはほとんどGCのコスト無いんだぜ
2018/05/03(木) 01:11:29.45ID:bKSKRSB9
再配置できるのはメモリアドレスを抽象化してる場合でしょ
GCとは直接関係ない
2018/05/03(木) 01:14:39.15ID:hvfEvXXP
>>347
メモリの再配置なんて、C++ に慣れた身からみると、いかにもにコストが高そうだが…

>>349
その「メモリアドレス抽象化」はアプリケーションに益をもたらす性質があるのでしょうか?
2018/05/03(木) 01:16:22.58ID:bKSKRSB9
>>348
RAIIが短寿命?
関数スコープのスタックにオブジェクトを置くだけがRAIIじゃないよ
どっちにせよ同じ条件でRAIIより速くはならんでしょ
2018/05/03(木) 01:29:46.74ID:VEudjtBb
解放のコストもさることながら、確保のコストが気になります
2018/05/03(木) 01:31:56.63ID:bKSKRSB9
>>350
やっぱり第一にメモリコンパクションじゃない?
アクセス透過性みたいなのも原理的にはできるだろうけどプログラミング言語レベルで
そういうの実現してるのはなさそう
2018/05/03(木) 01:34:20.53ID:bKSKRSB9
>>352
気になるんならしかたないけど
確保はほぼ違いがないよね
2018/05/03(木) 01:35:38.85ID:bKSKRSB9
補足すると
GC言語はヒープを多用する傾向はあるけど
そういう場合スレッドローカルなヒープだったりするからね
2018/05/03(木) 01:40:50.12ID:yApXR4/8
>>355
スレッドローカルなヒープってどういうこと?
普通のヒープ(Cのmallocとか)とどう違うん?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。