トップページtech
1002コメント326KB

次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/11/18(金) 10:59:09.20ID:SgtZza8z
いざ、語ろうぞ。
0002デフォルトの名無しさん2016/11/18(金) 11:58:44.66ID:dYh5XD+c
Go
0003デフォルトの名無しさん2016/11/18(金) 12:47:48.81ID:OlRP+CLk
Haskellとかいう前世代の言語が混ざってるのはギャグかな?
0004デフォルトの名無しさん2016/11/18(金) 19:21:13.92ID:eISdsYkv
native使えるrust, crystal, nim辺りしか注目してない
そういえば廃れてはいないけどvalaはめっきり聞かなくなったな
0005デフォルトの名無しさん2016/11/19(土) 01:56:44.45ID:Ze2KC2Nd
ブラウザで動くのはJavaScriptでありつづけるだろう
0006デフォルトの名無しさん2016/11/19(土) 02:47:14.11ID:/H+O8GBj
>>3
おまえが使ってる数学も、10世紀前のレベルなんだが。
0007デフォルトの名無しさん2016/11/19(土) 02:52:48.03ID:38qtnmNR
そうじゃなくてHaskellはすでに現役ってことだろ
ということで代わりに永遠の次世代言語F#を入れましょう
0008デフォルトの名無しさん2016/11/19(土) 04:23:53.49ID:4/BQsFya
GoとScalaは人気が上向き、HaskellとErlangは低迷、Rustはまだこれから

https://www.google.co.jp/trends/explore?cat=31&;q=%2Fm%2F09gbxjr,%2Fm%2F0dsbpg6,%2Fm%2F03j_q,%2Fm%2F091hdj,%2Fm%2F02mm3
0009デフォルトの名無しさん2016/11/19(土) 11:41:33.31ID:CUeEegkW
言語における世代の違いとは?
0010デフォルトの名無しさん2016/11/19(土) 12:47:28.61ID:T/wP/yiF
第1世代 FORTRAN COBOL LISP FORTH
第2世代 C PASCAL BASIC Delphi SmallTalk
第3世代 C/C++ Java Perl PHP
第4世代(現在) 上記 + C# JavaScript Ruby Python Swift

的なイメージ
0011デフォルトの名無しさん2016/11/19(土) 14:07:21.31ID:xFJxjIup
>>10
JavaScriptはJavaと同世代だしょ
0012デフォルトの名無しさん2016/11/19(土) 19:00:53.02ID:z0fjHGJX
Smalltalk の t は小文字な
0013デフォルトの名無しさん2016/11/20(日) 00:39:41.16ID:zuVL9nD+
結局どれがいいの?
0014デフォルトの名無しさん2016/11/20(日) 01:21:38.56ID:PZEuAd0p
どれも雇われで使うほど普及してなくて、個人事業や趣味で使うものだから、どれがいいのかは自分で選ぶしかないだろう。
今後求人が増えそうな言語、という意味なら… どれだろう?
0015デフォルトの名無しさん2016/11/20(日) 06:36:24.49ID:R76BQYGo
今後の伸びならScalaでしょ
Javaから悪い所を取り除いたような言語だし
0016デフォルトの名無しさん2016/11/20(日) 07:07:52.27ID:mRRC2G0e
今のところScalaの求人が多そう
0017デフォルトの名無しさん2016/11/20(日) 09:31:46.05ID:zhAQ+Nfm
altJavaでは、静的言語からの順番で、Scala, Kotlin, Groovy。
WEB+DB vol.94 の特集が、Kotlin, Electron

altJSでは、Haxe

Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS(ES5), Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応。IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/

Haxeプログラミング入門、尾野政樹、2015
0018デフォルトの名無しさん2016/11/20(日) 09:40:09.50ID:hq0fgw+5
Scalaはない
0019デフォルトの名無しさん2016/11/20(日) 18:10:11.59ID:zuVL9nD+
へックスって読むのか、かってに「ハッセ」だと思ってた。
0020デフォルトの名無しさん2016/11/20(日) 21:57:40.72ID:zhAQ+Nfm
よく考えたら、Haxe → Java → Kotlin

など、Javaに変換すれば、そこから様々な言語に変換できそうw
0021デフォルトの名無しさん2016/11/21(月) 10:45:59.65ID:Z9LRReIl
>>10
DelphiのところにはPrologが入るべき。
BASICは第一世代ではないか。
それからJavascriptとPythonは第三世代。
0022デフォルトの名無しさん2016/11/21(月) 13:49:39.00ID:CfCqFwF8
まだまだ伸び続けているという意味ではPythonは第4世代で問題ない。
Javascriptも需要が高まり続けているから第4世代でOK。
Rubyは残念ながら過去の言語となりつつあるから第3世代に置いても良さそう。
0023デフォルトの名無しさん2016/11/21(月) 21:46:00.46ID:q1m1IXb3
静的枠:
・Go:ポストJavaの進化形。GC
・Rust:関数型枠。並行処理得意
・Scala:関数型兼Java互換のオブジェクト指向、記述の省力化
・Haskell:ガチの関数型。数学枠
・Haxe:関数型。他の言語に変換できる互換性が強み。

スクリプト枠:
・Erlang:並行処理得意。
・Elixir:Erlangの拡張版。Webが得意

結構住み分け的にバランスとれてんのな。

スクリプト枠:
・Erlang:
0024デフォルトの名無しさん2016/11/23(水) 10:47:49.98ID:DH1nBS+W
>>22
今更、Javascriptが伸び続けているなんていえないし。ウェブの時代は終わった。
0025デフォルトの名無しさん2016/11/24(木) 00:21:27.40ID:0bzOqP+y
Webの時代って典型的なサーブレットとかLAMPモデルの事
言ってる?
ApacheじゃなくてNGINX
MySQLだけじゃなくてPostgleやNoSQLやRedisみたいな多様なDBがある。
IoTではHTTPが組み込みにまで拡張されるし、
人工知能だってWebと無関係ではない。
JavaScriptの時代は終わり得るかもしれないけどWebの時代が終わるわけ
じゃないよ。
0026デフォルトの名無しさん2016/11/24(木) 02:12:37.56ID:wmLpPjU0
haxeはよっぽどのキラーアプリでも出ないと開発リソース的にないと思う。
けっこう古くからあるけど未だに広まる気配は無いしょ
0027デフォルトの名無しさん2016/11/24(木) 06:33:27.18ID:g1cJ7kXy
Haxeは大規模開発向きだから、いずれ、TypeScriptを抜くかも?

Haxeには、ブロックスコープ { } がある。
this も正常に、インスタンスを指す

同一・異なる言語間で、ソースコードを文字列化して送っても、型が消えない。
全く同じ処理を、複数言語で作らなくてよい

引数付き Enum
Scalaのようなパターンマッチありの、switch

引数付きEnumは、強力。
Input がEnumとすると、引数の型を変えられるから、
別々のインターフェースを実装しなくていい

switch(input){
case Input.Key(keyCode) : trace(keyCode);
case Input.Click(x, y) : trace([x, y]);
}
0028デフォルトの名無しさん2016/11/24(木) 11:41:20.13ID:hdvNkC/E
2年前ならいい勝負をしていたaltJS競争だけどもうHaxeに勝ち目はない
というかTypeScriptの隆盛での勝敗がついた

https://www.google.co.jp/trends/explore?cat=31&;q=%2Fm%2F0dbjtf,%2Fm%2F0n50hxv,%2Fm%2F0hjc5m0,%2Fm%2F0h52xr1
0029デフォルトの名無しさん2016/11/24(木) 13:03:28.21ID:0bzOqP+y
>>2
何で敬語なわけ?何でこのスレにレスした訳?
丁寧な口調で侮辱されるのが一番腹立つ。
0030デフォルトの名無しさん2016/11/25(金) 11:42:23.81ID:Ds5ZOy/e
敬語を探してみたがどこにもなかった
0031デフォルトの名無しさん2016/11/26(土) 06:16:37.93ID:QJATEtRs
Go は敬語だった...?
0032デフォルトの名無しさん2016/11/26(土) 08:10:45.17ID:7Iw1TmHS
お逝きなさい
0033デフォルトの名無しさん2016/11/26(土) 15:51:56.37ID:GTqt9DX8
hexaって10年前にOSS AS3コンパイラとして流行ったヤツかいなと思ったら本当にソレだった
まだ生きてたんだな、この言語
0034デフォルトの名無しさん2016/11/26(土) 16:50:22.10ID:fvd5Kdkk
JavaScriptならともかくActionScriptはそのまま書けばよかったと思う
0035デフォルトの名無しさん2016/11/27(日) 03:04:35.30ID:LylNNra/
情強はErlangを使う
0036デフォルトの名無しさん2016/11/27(日) 05:47:13.16ID:ZtHaodfN
Erlang/Elixir はオブジェクト指向できないのがつらみ
0037デフォルトの名無しさん2016/11/28(月) 04:59:37.27ID:ZvcFWjYe
Flash APIと同等の、OpenFLの開発言語は、Haxeで、
ワンソースからクロスプラットフォームに出力できる

各プラットフォームの出力機構を使って、ネイティブコードになるから、
Javaで作ったAndroidアプリよりも、速く動く
0038デフォルトの名無しさん2016/11/28(月) 06:47:47.10ID:padn7mYh
速いだけでその言語学ぼうなんて思わないから。
大体近年のパフォーマンスのボトルネックは計算時間じゃなくて
データがただ単に膨大なだけの IO待ちがボトルネックな訳で、
つまりJavaだろうがCだろうがPythonだのの違いなんて体感レベル
には関係ないよ。
その点マルチスレッドや複数のディスクにIO を物理的に分散できる
Erlangは本当に速い。
0039デフォルトの名無しさん2016/11/28(月) 14:49:55.71ID:idbpwLs0
一番大事なのは低賃金でプログラマを雇えるかとうかですぜ兄貴
0040デフォルトの名無しさん2016/11/28(月) 21:56:07.22ID:GHhkk0F/
>>38
でも型推論無いんでしょう?
0041デフォルトの名無しさん2016/11/28(月) 22:49:54.86ID:hdcKwTEq
100のスレッドにIOを分散すると100倍の速度になるのでしょうか。
IOがボトルネックだと自分で言ってるのにw
0042デフォルトの名無しさん2016/11/29(火) 00:01:49.78ID:W5pjxeIa
そうだよ、CPUもディスクもバスも複数あるからね。
0043デフォルトの名無しさん2016/11/29(火) 01:33:11.25ID:T2gsp5HS
Erlang開発効率が高いけど性能を求めるならErlangは間違い
0044デフォルトの名無しさん2016/11/30(水) 01:44:20.70ID:ZKyAnMFn
erlangのボトルネックはerlang自体
0045デフォルトの名無しさん2016/11/30(水) 03:47:07.04ID:tfyAgmME
erolang
0046デフォルトの名無しさん2016/11/30(水) 10:07:42.12ID:QrNzcyxl
notChild = condom(chinko) -> manko
0047デフォルトの名無しさん2016/11/30(水) 18:26:34.04ID:8wpifVGr
>>40
Prologには型概念がないけれど、Erlangに型はありますね。型推論は知らないけれど。
0048デフォルトの名無しさん2016/11/30(水) 19:47:35.26ID:OW21XJk/
>>47
>>40には型推論ってハッキリ書いてるけど
0049デフォルトの名無しさん2016/11/30(水) 23:01:01.11ID:QrNzcyxl
>>48
でも型推論無いんでしょう?
0050デフォルトの名無しさん2016/12/01(木) 06:40:02.77ID:6Ua6SiVz
ところでclojureはいかんの?
0051デフォルトの名無しさん2016/12/01(木) 07:01:04.97ID:q2hojMc7
>>49
Prologの推論機能は捨ててしまいました。
0052デフォルトの名無しさん2016/12/01(木) 10:18:36.28ID:isdetJjt
推論自体が実行時の動作のPrologとコンパイル時の型推論とは別のものじゃ
0053デフォルトの名無しさん2016/12/01(木) 16:29:33.44ID:mgNdczCi
考えてみれば既存のメジャー言語の株を奪うのって容易じゃないよな
コンパイラ、クロスプラットフォームシステム、IDE、パッケインスト管理、
既存ライブラリ、環境自動化システム、Webフレームワーク、DBフレーム
ワーク、非同期処理用ライブラリ、単純に構文覚えるのがめんどくさい

既存言語が築き上げた障壁がぶ厚すぎるぜ…
0054デフォルトの名無しさん2016/12/01(木) 16:47:42.43ID:OWujHEiH
前方面で戦う必要はない
一点突破してよいサイクルが出来たら充実していけばいい
0055デフォルトの名無しさん2016/12/01(木) 18:15:59.70ID:aVqOQbdr
普及を考えるのなら、どんな問題を解決するのかの方がよっぽど大事。
PHPとかHSPとかですら流行ったからな。
0056デフォルトの名無しさん2016/12/01(木) 19:21:45.02ID:5qk2sqQ8
>>52
これなんかは? http://qiita.com/h_sakurai/items/717dad7d25bac18d40ab
0057デフォルトの名無しさん2016/12/01(木) 21:30:19.62ID:XF2FB4o/
>>55
悪貨は良貨を駆逐するといってだな
0058デフォルトの名無しさん2016/12/01(木) 23:06:04.88ID:mgNdczCi
というかJavaScriptに対抗するプロトタイプ指向の言語ってないの?
ErlangとかElixirってどんな感じなん、HTML埋め込みとかjQueryみたいな
ajax的な機能とか持ってるん?
0059デフォルトの名無しさん2016/12/01(木) 23:23:42.82ID:XF2FB4o/
プロトタイプ指向とかただの糞やん
ES5以降じゃ見捨てられたし
0060デフォルトの名無しさん2016/12/02(金) 01:07:32.69ID:pKSfy0xc
プログラミングElixir、2016

Ruby界隈から、名著が出た。
著者は「プログラミングRuby」のDave Thomas

関数型言語Elixirは、Ruby + Rails + ErlangVM で、並行処理が得意
0061デフォルトの名無しさん2016/12/02(金) 21:54:13.04ID:/62N2Ze8
>>59 その糞がいまかなり人気なんですが…
0062デフォルトの名無しさん2016/12/02(金) 22:25:51.30ID:m+3RpHqs
Kotlinをスレタイからハブるなんてとんでもないだろ
0063デフォルトの名無しさん2016/12/02(金) 22:46:48.09ID:8JZv7iKy
Dart, Boo, Cobra, Genie, Groovy, Nemerl, Vala …… (´;ω;`)
0064デフォルトの名無しさん2016/12/02(金) 23:12:33.09ID:+/BurYJT
>>61
どこ情報?
ワイのなかで今人気なのは関数型(Scala)やで
0065デフォルトの名無しさん2016/12/02(金) 23:17:19.52ID:gT4xVOuK
純粋関数型以外は関数型とは認めません
0066デフォルトの名無しさん2016/12/02(金) 23:36:23.76ID:+/BurYJT
>>65
おはスケル
ちょっと文法が難しすぎんのよ〜
0067デフォルトの名無しさん2016/12/03(土) 08:40:53.91ID:KTQmXTV9
>>1
ちょっと待って!? 岡村さんが入ってないとかこれマジ?
0068デフォルトの名無しさん2016/12/03(土) 19:06:36.75ID:hHkjqHSd
haskell は文法簡潔だろ
0069デフォルトの名無しさん2016/12/03(土) 20:03:28.66ID:uGz1+3L0
>>68
あんな実行順序のよくわからんもの使えるか
0070デフォルトの名無しさん2016/12/03(土) 20:30:41.97ID:Y9I90W1E
ハスケル実サービスで使ってるとこなんて皆無だろ
Javaの資産使えるScalaがやN1だと思うわ
0071デフォルトの名無しさん2016/12/03(土) 20:38:44.60ID:Y9I90W1E
Javaの資産使いつつ関数型できるScalaがやN1だと思うわ
0072デフォルトの名無しさん2016/12/03(土) 22:52:14.69ID:MCWCirTG
Clojureがナンバーワン!!
0073デフォルトの名無しさん2016/12/04(日) 03:21:07.46ID:QXL9G2QO
ゲハ臭がしてきたな
0074デフォルトの名無しさん2016/12/04(日) 10:43:14.55ID:ijuOYWzP
>>70
まあ個人が趣味でやるようなもんじゃないかもな。
金融サービスとか文献・ステートメント解析ではよく使うが。
0075デフォルトの名無しさん2016/12/04(日) 10:48:44.88ID:q5ZWXjRo
厳格な定義を好む開発者が多い分野では今後Haskellが伸びると思う。
0076デフォルトの名無しさん2016/12/04(日) 12:26:15.93ID:dWip5QS2
日本トップのHaskellerが
競技プログラムの問題解くのにC++使ってたのを見て
Haskellは趣味の言語だと見限ったわ来がないこ
0077デフォルトの名無しさん2016/12/04(日) 14:04:30.04ID:iVFW+LnC
堅く書くことが目的なんであって
早く書くことが目的じゃねいんじゃねーのハケルス
ワオScalaラバーズだけどコーディングサイトで解くときはPython使うし
コンパイルなんかしてられんもん
0078デフォルトの名無しさん2016/12/06(火) 15:56:58.63ID:GwUkD2Q0
>>59
駆逐されたならプロトコル指向は良貨じゃん
0079デフォルトの名無しさん2016/12/06(火) 16:41:32.53ID:K0FvZgpo
論理学の初歩からやり直せ
0080デフォルトの名無しさん2016/12/06(火) 23:37:42.05ID:ZdJwFyPe
なあ、ディープラーニングってゴルフと同じだよな?
ゴルフと全く同じだってきずいたんだよ。
そう考えるとそれほど難しくないな。
0081デフォルトの名無しさん2016/12/06(火) 23:42:07.03ID:r0hSL9Mg
どの辺がゴルフなのさ?
0082デフォルトの名無しさん2016/12/07(水) 09:19:46.65ID:5VwP5aCe
まずは道具を揃えろってことか。
0083デフォルトの名無しさん2016/12/07(水) 09:28:58.83ID:WkIilmtL
球が転がり落ちていく様子がAdaと似てるとか?
0084デフォルトの名無しさん2016/12/07(水) 10:28:23.50ID:1xQzW6oG
おそれず、あなどらず
0085デフォルトの名無しさん2016/12/07(水) 10:29:05.90ID:1xQzW6oG
大敵と見て恐れず小敵と見て侮らず
0086デフォルトの名無しさん2016/12/07(水) 17:02:19.47ID:MY/cuqD+



0087デフォルトの名無しさん2016/12/07(水) 17:39:03.12ID:5VwP5aCe



0088デフォルトの名無しさん2016/12/10(土) 23:09:36.92ID:SCCkpZrN
スカラは頭一つ優位なイメージだな。
0089デフォルトの名無しさん2016/12/11(日) 01:46:41.69ID:ZTpNN/gU
学習コストの高さ(特にあのメチャクチャな記号)とJava8の逆襲で、逆にオワコン気味なイメージだわ>スカラ
0090デフォルトの名無しさん2016/12/11(日) 02:06:42.58ID:pm6ghExK
>>89
じゃあ、ハジコンは何ですか?
0091デフォルトの名無しさん2016/12/11(日) 06:36:59.90ID:hiiS8aXy
AltJavaでは、静的言語の順に、Scala, Kotlin, Groovyがあるけど、

Scalaは他よりも、少し難しい
0092デフォルトの名無しさん2016/12/11(日) 09:54:34.34ID:ZTpNN/gU
>>90
PHP7やろなぁ
0093デフォルトの名無しさん2016/12/11(日) 11:10:26.18ID:f0tlS9W7
難しいのではなく経験が活かしにくいだけ
初めからScalaを学ぶなら他の言語と学習コストは変わらん
0094デフォルトの名無しさん2016/12/11(日) 11:25:13.90ID:ZTpNN/gU
>>91
難しい上にコンパイル速度も糞遅いし
それに見合う対価は得られるのだろうか?っていう
0095デフォルトの名無しさん2016/12/11(日) 13:18:45.79ID:givNk4mN
Scalaは日本では絶対に流行らない
なぜなら人を集められないことを見越したSIerがプロジェクトに採用しないからだ
0096デフォルトの名無しさん2016/12/11(日) 13:53:11.63ID:ZTpNN/gU
某チャットの会社も失敗したらしいしなぁ
0097デフォルトの名無しさん2016/12/11(日) 16:41:42.81ID:pm6ghExK
ScalaってJava系というよりJavaScriptに近い気がするけど違うの?
0098デフォルトの名無しさん2016/12/11(日) 16:57:53.44ID:xRu9Q2yy
>>97
少し触った感じではぜんぜん違う。JVMで動いてるだけでJavaともぜんぜん違う。
0099デフォルトの名無しさん2016/12/11(日) 18:39:15.03ID:yIoYPFKI
Haskellはwindowsのサポート弱すぎ
0100デフォルトの名無しさん2016/12/11(日) 19:28:34.84ID:XLAOeW6t
SIだったら言語はCOBOLかJavaだけでしょう
場合によってはC/C++

それ以外は(例えばJP1/Scriptのような運用系の人が使うようなものを除いて)
使っているのを見たことがない

人を集められるか以前に
どこの馬の骨だかわからないようなオープンソースの実装を使うわけにはいかないでしょう
0101デフォルトの名無しさん2016/12/11(日) 19:35:13.71ID:ZTpNN/gU
ガラパゴスジャップランド土人のSIなんて話題に出すな
汚らわしい
0102デフォルトの名無しさん2016/12/11(日) 19:55:18.62ID:wc7LxWrn
オープンソース否定してる人ってオープンソースのコードよりマシなコード書ける人集められるつもりなんだろうか?
0103デフォルトの名無しさん2016/12/11(日) 20:11:04.48ID:UUDzf3sv
オープンソースは責任の所在やサポート問題が宙ぶらりんだからな。
使うとしてもRed Hatのような支援体制の整ったものでしょう。
0104デフォルトの名無しさん2016/12/11(日) 20:25:02.05ID:yIoYPFKI
下請けって責任取るためにいるんだなあ
0105デフォルトの名無しさん2016/12/11(日) 20:57:34.20ID:pm6ghExK
一生Javaでエンプラ系作ってろ
企業のために覚えるわけじゃあるまいし、俺はScala覚えるよ
SIlerとか下請けとか心底どうでもいいし
0106デフォルトの名無しさん2016/12/11(日) 21:58:58.64ID:XLAOeW6t
オープンソースというのは自己責任の限界があるということ
オープンソースの開発にかかわっているのは日本人以外が多い
中国やロシアもかなりの割合だ

日本を代表するようなインフラにそういった素性のものを活用すべきだろうか?
日本の平和を維持するために他国の技術をどこまで利用するべきだろうか?

わざわざ自社でCOBOLやGitもどき、SIツールもどきを作っているのは
なにもガラパゴス色を出したいだけじゃない

ハードウェアは中国と手を組み、オフショアも盛んに行っているかもしれないが
決して譲れない部分もある
0107デフォルトの名無しさん2016/12/11(日) 22:03:26.11ID:ZTpNN/gU
決して譲れない部分(納期とメンツ)
0108デフォルトの名無しさん2016/12/11(日) 22:15:29.66ID:xRu9Q2yy
>>106
日本人以外が作ったOSSを使うことにはリスクがあるから使わないというのがSIerの意見なのかな?
0109デフォルトの名無しさん2016/12/11(日) 22:37:29.72ID:ZTpNN/gU
SIerが書いたソースが一番のリスクという真実

万里あるやろ?
0110デフォルトの名無しさん2016/12/11(日) 23:58:53.09ID:Cg3P+2IZ
>>103
サーバをredhat系にしてパッケージ少ないから結局サードパーティのリポジトリ追加したりして何だかなぁってよく思う。
0111デフォルトの名無しさん2016/12/12(月) 03:39:38.71ID:5lmNURKr
>>107
日本の企業ってほんとつまらんメンツにこだわるよな
カスみたいなもんなのに
0112デフォルトの名無しさん2016/12/12(月) 04:47:30.38ID:SVFks7Ub
Scalaなんか覚えて何を作るんだと思う一方で、
OSSは他国の技術でもあるから日本で使うべきじゃないとかいう変な思想も、お上や大企業臭くて嫌悪する
0113デフォルトの名無しさん2016/12/12(月) 08:35:50.39ID:SW2srtAl
Haskellめっちゃ好きなんだけどパッケージ周りが糞すぎ
代数的データ型とかHaskellっぽくかける言語って何がある?
0114デフォルトの名無しさん2016/12/12(月) 09:45:14.01ID:dG+hv8AD
>>113
そんな事も自力で調べられない検索力で
マイナー言語を学ぼうとか頭悪そう
0115デフォルトの名無しさん2016/12/12(月) 10:00:13.74ID:d2bpb6Pd
F#おすすめ
0116デフォルトの名無しさん2016/12/12(月) 10:21:13.92ID:eXQ8bj54
Haskellって日本ではC++から現実逃避した連中の吹き溜まりだよね
将棋ソフトの大会にHaskell使用者が0名だったのは笑わせて貰った
C++並の速度が出せるとかいう虚勢はどこに行ったんだか
0117デフォルトの名無しさん2016/12/12(月) 10:50:49.02ID:URLATzKi
CのほうがC++より速いわけだが
0118デフォルトの名無しさん2016/12/12(月) 11:37:29.60ID:SW2srtAl
C++からなんか逃げたいに決まってるだろ
S/N比悪すぎ
0119デフォルトの名無しさん2016/12/12(月) 12:00:11.17ID:SW2srtAl
>>115
型の定義と共に継承するインターフェースの実装も書かなくていけなくて、見た目悪いイメージあるんだけど、案外慣れるもん?
0120デフォルトの名無しさん2016/12/12(月) 12:09:54.92ID:wAsQV1H6
>>118
逃げたいけど逃げる先が今の所無いという現実か
0121デフォルトの名無しさん2016/12/12(月) 12:30:21.74ID:URLATzKi
objective-cがある
0122デフォルトの名無しさん2016/12/12(月) 14:41:52.06ID:tdNqUxnO
julia
0123デフォルトの名無しさん2016/12/12(月) 14:48:01.25ID:GIqpZSIx
>>117
速かったり遅かったりだけどC++の方が最適化が効きやすい印象
0124デフォルトの名無しさん2016/12/12(月) 14:51:06.22ID:DhBCg1f9
まあこれからはpythonよね。
変なテクニック使わなくても短く書けるから生産性が段違い。
実行速度の言語とコーディング速度の言語での棲み分けが進むでしょう。
0125デフォルトの名無しさん2016/12/12(月) 15:42:03.13ID:URLATzKi
結局、同じ中間コードに変換されるから最適化は同じだよ
オーバーヘッドがないC言語のほうが早いよ
最近ではスマートポインターとかいうやつ使うから
さらに速度は低下してる
0126デフォルトの名無しさん2016/12/12(月) 16:08:34.94ID:GIqpZSIx
>>125
> 同じ中間コードに変換されるから最適化は同じ
> オーバーヘッドがないC言語のほうが早い

俺の知らない処理系ではそうなのかもしれないから出鱈目とは言わないが
すくなくてもgcc/g++やclang/clang++は当てはまらないな
0127デフォルトの名無しさん2016/12/12(月) 16:29:10.20ID:URLATzKi
clang++とgcc++はただのフロントエンドから、
最適化は同じバイトコードに変換されたあとだから
同じだよ
0128デフォルトの名無しさん2016/12/12(月) 18:02:40.89ID:GIqpZSIx
CならCの、C++ならC++なりのコードを書くから全く同じバイトコードになることはまず無いし
それらの違いが最適化に影響するのは当然のことなんだけどな
0129デフォルトの名無しさん2016/12/13(火) 00:02:25.09ID:wm86+Ixr
昔はCのqsortよりC++のstd::sortの方が最適化が効きやすくて速かったんだけど最近は同じになったん?
0130デフォルトの名無しさん2016/12/13(火) 00:11:23.71ID:E8ACHl16
つかC++やJavaはまだいいとしてCOBOLとか正気で言っているとは
思えないな。

つか >>1 のスレタイの言語の抜擢基準は何なんだ?
一般的な承認を得ているのか?
0131デフォルトの名無しさん2016/12/13(火) 00:21:40.67ID:QKhZWs7J
Scala最強はい終わり
ペチパーやコボラーは早く首吊って死ね
0132デフォルトの名無しさん2016/12/13(火) 01:50:20.71ID:ts6Fg0hq
COBOLの代替は見つからないんだし
次世代でも生き残る可能性は高いと思うよ
バッチがなくなることはないだろ?
プリミティブなものってなかなかなくならないもんだよ
COBOLを言語だと思うから古臭く感じるだけ
0133デフォルトの名無しさん2016/12/13(火) 08:33:50.37ID:BMnwgeAA
オブジェクト志向と関数型のハイブリッド系ってオブジェクト志向的なメソッドと関数型的な関数をどう使い分ければいいのかよくわからん
0134デフォルトの名無しさん2016/12/13(火) 09:19:21.40ID:2oGa6DNb
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
0135デフォルトの名無しさん2016/12/14(水) 23:53:46.75ID:Wj/eE5z1
ぶっちゃけJavaって使いづらいし、案件もJava使うのってスマホアプリ系じゃなければIT土方(何でもいいから人数集めろ)系ばかりだ。
早く他の言語広まってほしい
0136デフォルトの名無しさん2016/12/15(木) 00:06:15.32ID:TY3h+L6y
Delphiは良かったのになぜ.NETにしたのか(ちなみに同じ開発者)
ていうかJavaとC++のせいらしいが(C++はバッファオーバーラン問題で移行させるも似てないとやだって話)
Javaは無料だからかな?
Javaもそれ真似した.NETも、それ以前のWin系に比べてオープン系とは言い難いような
たくさんコンポーネント用意するかわりに、単一環境に閉じようとしてるので、クローズ系と言いたい感じ
0137デフォルトの名無しさん2016/12/15(木) 00:48:52.70ID:GBhksizf
>>135
広まった言語が次のIT土方系言語になるだけだそ
0138デフォルトの名無しさん2016/12/15(木) 00:52:57.14ID:TeVpWuQ6
rustを勉強しとくと何かいいことある?
0139デフォルトの名無しさん2016/12/15(木) 01:03:02.46ID:9iWeiPqy
Delphiはよかったな
でもVB6と比べて.NETがかなり高速だし
ネイティブはつらいんじゃないか?

常識的に考えるとネイティブのほうが遅いって信じられんが
0140デフォルトの名無しさん2016/12/15(木) 01:15:05.88ID:ryYHdhLD
効率悪いコードならネイティブでも遅いってだけだろ
0141デフォルトの名無しさん2016/12/15(木) 02:14:01.63ID:GBhksizf
C/C++は英語みたいなもんだな。
ある程度は読めないと
吸収出来る知識の幅が大きく狭まる。

特にマイナー言語なんてサンプルコードも落ちてないのがザラだから
C++で書かれたコードを自力で翻訳するのが基本の勉強法になるし。
0142デフォルトの名無しさん2016/12/15(木) 07:58:52.62ID:f53xuNGE
関数型だとそのポジションはhaskellだな
関数型の説明はどこもhaskellのサンプルばっかり
haskellは覚える気なかったのに
0143デフォルトの名無しさん2016/12/15(木) 10:15:13.90ID:TY3h+L6y
DelphiはC++のノウハウが直訳で使えたのもよかった
0144デフォルトの名無しさん2016/12/15(木) 12:25:25.65ID:7KRIzock
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
0145デフォルトの名無しさん2016/12/15(木) 12:36:19.06ID:jYtTego3
>>135
ほんそれ

>>137
集まる人は変わらない

>>136
>Javaは無料だからかな?
企業はそんなセコい理由で選ばない
0146デフォルトの名無しさん2016/12/15(木) 14:17:59.22ID:TY3h+L6y
>>145
企業じゃなくて、大学とか
習得人口が多ければ企業も自然とそうなるんじゃないかと
0147デフォルトの名無しさん2016/12/15(木) 14:38:29.35ID:45UipUv6
機械学習を凌いで中二が集まるスレ
0148デフォルトの名無しさん2016/12/15(木) 20:52:29.09ID:9iWeiPqy
とはいえ中小企業にOracle契約してよとか、グレープシティ買ってよといっても
出し渋るわけで、無料なのはある程度大事じゃないか?
0149デフォルトの名無しさん2016/12/15(木) 23:05:50.52ID:tdNKFUea
来年は、Ceylon でも触ってみるか
0150デフォルトの名無しさん2016/12/16(金) 18:34:54.52ID:BRSJ0aiG
F#どうなん?
0151デフォルトの名無しさん2016/12/16(金) 18:35:06.82ID:UN7/R1CA
頭の体操用: Haskell Ruby Scala
実用: C/C++ Python JavaScript C#
土方、Slerの奴隷用: Java COBOL PHP
0152デフォルトの名無しさん2016/12/16(金) 22:07:31.70ID:1qE67r3j
Lispはもういらない子なの?
0153デフォルトの名無しさん2016/12/16(金) 22:17:47.23ID:kbc66K65
Clojure好き
0154デフォルトの名無しさん2016/12/16(金) 22:49:40.41ID:Rf32SvPx
>>151がScalaのステマ
0155デフォルトの名無しさん2016/12/17(土) 00:12:22.45ID:YI3ufh9D
2017年からSmalltalkに(再)挑戦したい人へ
http://phaendal.hatenablog.com/entry/2016/12/14/230422
0156デフォルトの名無しさん2016/12/17(土) 00:19:02.63ID:I1a9emLd
Smalltalkが再挑戦しろ
0157デフォルトの名無しさん2016/12/17(土) 00:58:27.79ID:lu7YUydK
AltJavaでは、Scala以外に、Kotlin, Groovy があるから。

それと、Ruby, Haxe をやれば、たいていの事はできる
0158デフォルトの名無しさん2016/12/17(土) 01:10:19.67ID:HUzLix+O
それただの器用貧乏ですやん
0159デフォルトの名無しさん2016/12/17(土) 01:30:49.89ID:HUzLix+O
たいていの事はできる(たいした事はできない)
0160デフォルトの名無しさん2016/12/17(土) 01:58:04.72ID:tizNM2+U
プログラマーなら普通は複数の言語を身に付けているし、
それを器用貧乏と評するのは意味がわからん
0161デフォルトの名無しさん2016/12/17(土) 03:00:01.83ID:snvYzUCe
AltJavaだけで三つも四つも憶えるのは効率悪い
更にそれ以外がRubyとHaxeという選択は筋が悪い
0162デフォルトの名無しさん2016/12/17(土) 06:00:32.59ID:lu7YUydK
JSは、Haxeで、
Javaは、Groovyで、
Androidは、Kotlinで、
シェルスクリプトは、Rubyでやる

他には、Electron
0163デフォルトの名無しさん2016/12/17(土) 07:23:16.03ID:MJ/TQYFY
swiftは次世代言語ですか?
0164デフォルトの名無しさん2016/12/17(土) 08:13:52.21ID:bYUfwITN
>>155
良い
0165デフォルトの名無しさん2016/12/17(土) 08:54:47.18ID:u0MCFX41
smalltalkってゴミだな
0166デフォルトの名無しさん2016/12/17(土) 09:09:48.13ID:lTxyqRlM
ひねった言語に逃げなくても
C++とHaskellだけ学べば他の言語は応用効くでしょ。

「C++余裕だけどJava難しい」とか
「Haskellから来たけどScala挫折しました」
とか聞いた事ないし。
0167デフォルトの名無しさん2016/12/17(土) 09:32:05.96ID:SZHJDyPT
>>166
C++はわりと出来るけどCOBOLは挫折する(やる前から)
0168デフォルトの名無しさん2016/12/17(土) 10:26:56.52ID:HUzLix+O
>>166
C++難しい
Haskell挫折しました
0169デフォルトの名無しさん2016/12/17(土) 10:34:17.41ID:I1a9emLd
HaskellはWindowsで厄介
0170デフォルトの名無しさん2016/12/17(土) 11:45:18.62ID:eluHTQQy
そういう話なら論理型言語代表の Prolog も入れてあげて。
手続き型とも関数型とも違う世界でやってる言語だから、教養としては重要だよ。
0171デフォルトの名無しさん2016/12/17(土) 12:24:58.17ID:0gKLg1TK
>>170
Prologっていわゆる業務系みたいなアプリ作れるの?ウェブアプリとか。できなくはないんだろうけど実績とかあるのかな。アカデミックな領域がメイン?
0172デフォルトの名無しさん2016/12/17(土) 15:17:46.57ID:ViZRp8Ek
煽る訳じゃないけど
Prologが代表って時点でもう
論理型言語そのものが終わってない?
0173デフォルトの名無しさん2016/12/17(土) 15:37:46.78ID:cI2MiRpF
むしろ今からじゃないの
AI隆盛になって自然言語処理とかもさらに活発化するだろうし
ただの知ったかだけどさ
0174デフォルトの名無しさん2016/12/17(土) 16:13:23.71ID:2Jm0iG/u
機能もろくに差別化されていないのに文字コードのように
覇権争いになるのは勘弁願いたい
個人的に「○○言語の拡張」みたいな感じで似たような
言語は乱発してほしくない。
新言語学ぶなら唯一無二の機能が欲しいな。
描きやすさを追求した言語ならPythonは凌駕してほしいところ
今のところ俺の中でPythonがダントツ
0175デフォルトの名無しさん2016/12/17(土) 16:28:09.78ID:HUzLix+O
中途半端なOOPで腐ったPythonのどこがええんや
糞や
0176デフォルトの名無しさん2016/12/17(土) 16:32:05.33ID:EjoxwQPp
いわゆるLL言語でオブジェクト指向がうまくいってる言語ってなくね?Rubyぐらい?
0177デフォルトの名無しさん2016/12/17(土) 17:23:09.78ID:0gKLg1TK
>>176
OOPってオブジェクトが定義できて継承とポリモーフィズムあれば十分じゃない?
どのLLでも手段は提供されてるからあとは使い手の腕次第だと思うけど。
0178デフォルトの名無しさん2016/12/17(土) 17:26:32.03ID:HUzLix+O
使い手の腕次第(笑)
で、どっかの「PHP7で堅牢なコードを書く」みたいに
車輪の劣化再発明を繰り返すのか
LLの連中って頭までLだよな
0179デフォルトの名無しさん2016/12/17(土) 17:35:18.54ID:u0MCFX41
オブジェクト指向と堅牢なコードになんの関係があるの?
0180デフォルトの名無しさん2016/12/17(土) 17:55:16.63ID:HUzLix+O
使い手の腕次第とかいって目的と手段をはき違えてるバカに言ってんだよターコ
0181デフォルトの名無しさん2016/12/17(土) 18:01:38.13ID:u0MCFX41
お前、C++難しくてHaskell挫折してPythonもダメって言ってんじゃねーか

性能も追及できず理想に準じることも出来ず実用性で妥協も出来ないなら
お前の気にいる言語なんてねーよw
0182デフォルトの名無しさん2016/12/17(土) 18:30:21.42ID:2Jm0iG/u
Pythonはモジュール作るのも他人の既存のモジュールを解析するのも
簡単、以上。
必要以上にオブジェクト指向である必要がない。
よくわからないものをブラックボックスのままとりあえず参照
って使い方じゃなくて、ざっとモジュール読んで、
モジュール書いて、必要なものだけインポートして使える。
あんま継承は使わないし、既存のものを丸ごとコピッて
要らないとこ削って使えるくらいimportの構文がシンプル。
0183デフォルトの名無しさん2016/12/17(土) 18:33:42.34ID:yLbp/UkZ
競技プログラミング系のサイトだと
Pythonの回答はえらい短い事が多いよね。
その点に関しては右に出る言語はなさそう。
0184デフォルトの名無しさん2016/12/17(土) 18:44:11.39ID:b79E6Pux
>>182
土方言語として優れた特質だな。
0185デフォルトの名無しさん2016/12/17(土) 18:54:36.05ID:HUzLix+O
土方ならJava7以下かPHPだろ
0186デフォルトの名無しさん2016/12/17(土) 21:52:35.83ID:zhH9hqJS
本屋行ったらpython本が増殖してた。
0187デフォルトの名無しさん2016/12/17(土) 22:01:00.84ID:0gKLg1TK
>>180
だからどの言語も一般的な機能は備えてるんだからあとは使い方次第ってこと。言語は手段で道具なんだからあとはどう使うかだけでしょ。Pythonできれいなコード書けるけどPHPだと書けませんって人はいないよ。どっちも汚いかどっちも綺麗かだけ。
0188デフォルトの名無しさん2016/12/17(土) 22:01:29.61ID:0gKLg1TK
>>186
機械学習が流行ってるからね。
0189デフォルトの名無しさん2016/12/17(土) 22:27:22.02ID:2Jm0iG/u
でもJavaScriptだけは汚いイメージが払拭できない
0190デフォルトの名無しさん2016/12/17(土) 22:46:09.48ID:K7bSiR2D
ねえねえrustはどうなのみんな
0191デフォルトの名無しさん2016/12/17(土) 22:53:03.85ID:EjoxwQPp
Pythonも入門書ばかりでその上をあまり見かけないね
C++やJavaはその辺が厚いんだが・・・
近所の本屋の売れ行きの都合かもしれんが何かいい本あるか?
0192デフォルトの名無しさん2016/12/18(日) 00:26:42.84ID:aCKcGLhu
Python, JS には、ブロックスコープが無い

だから、Ruby, Haxe が堅牢
0193デフォルトの名無しさん2016/12/18(日) 00:44:36.30ID:KFsMSIdd
Haxeってすごいんだね
ディズニーやトヨタやBBSやコカコーラが使ってるらしい

Haxe - Wikipedia
https://en.wikipedia.org/wiki/Haxe
0194デフォルトの名無しさん2016/12/18(日) 00:56:16.48ID:v8zNK0rs
Haxeでググルとtypescriptを勧められる始末


TypeScript最強伝説
0195デフォルトの名無しさん2016/12/18(日) 01:49:18.31ID:5HKYrKlu
10億人流出の米国ヤフーは何の言語使ってるのかな〜と思ったら
https://en.m.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
まさかのPHP一本足打法・・・
0196デフォルトの名無しさん2016/12/18(日) 02:03:38.29ID:sPLdNIEi
>>192
つ let
0197デフォルトの名無しさん2016/12/18(日) 02:23:43.04ID:v8zNK0rs
>>195
アホーゴミ過ぎワロタ
0198デフォルトの名無しさん2016/12/18(日) 12:34:24.22ID:8F2gNr16
Clojureが相手にされてないのは寂しい
0199デフォルトの名無しさん2016/12/18(日) 15:21:13.61ID:1DW+/DGy
なんで関数型やりたがる人ってClojureやF#すっ飛ばしてHaskellやりたがるん?
ただただ手間じゃねアレ
0200デフォルトの名無しさん2016/12/18(日) 15:48:06.84ID:5HKYrKlu
参考文献や日本語の解説が充実しているから。
0201デフォルトの名無しさん2016/12/18(日) 16:30:19.60ID:8F2gNr16
Lispは神の言語だけどHaskellみたいなデータ型がないのが頂けない
0202デフォルトの名無しさん2016/12/18(日) 16:31:55.95ID:v8zNK0rs
LispってFortranとかCOBOLの仲間だろ
完全に死んだ老害言語
0203デフォルトの名無しさん2016/12/18(日) 17:12:01.68ID:lPdYfHUm
>>202
またまたご冗談をwww
0204デフォルトの名無しさん2016/12/18(日) 18:13:50.19ID:v8zNK0rs
Lispのプロダクトなんて聞いたことない
ないよね?
0205デフォルトの名無しさん2016/12/18(日) 18:20:44.14ID:+J9lZQEn
クラッシュバンディクー(震え声)
0206デフォルトの名無しさん2016/12/18(日) 20:19:13.32ID:kFQZgr3z
Lispをバカにするのは自分のアンテナの低さを露呈するもんだな
0207デフォルトの名無しさん2016/12/18(日) 21:22:59.82ID:+J9lZQEn
でも正直common lispとかschemeの関数名の雑然とした感じ嫌い
0208デフォルトの名無しさん2016/12/18(日) 21:55:11.61ID:XOBRXwmr
COBOLは老外
FORTRANは科学者の中で現役
LISPはなんていうかプログラミング言語のメタを行く存在
プロダクトが聞いたことが無いのはLISPはインスタンスではなくて、
その上の抽象的な存在だから。Haskellもそういった類だね。
0209デフォルトの名無しさん2016/12/18(日) 23:17:04.06ID:v8zNK0rs
Haskell haskell = new Lisp(Haskell.class);

こうですか?わかりません><;;;;
0210デフォルトの名無しさん2016/12/18(日) 23:28:49.90ID:XOBRXwmr
んーとね、ポケモンに「メタモン」っているだろ?
LISPもメタモンなんだよ
0211デフォルトの名無しさん2016/12/18(日) 23:29:55.38ID:BnvcAWRa
COBOLも現役だぞ
銀行以外でもまだまだ使われてる
計算メインだとああなっちゃうよ
画面制御なんかはCOBOLでやりたいとは思わんが
金勘定ならむしろ楽だよ
0212デフォルトの名無しさん2016/12/19(月) 03:32:43.92ID:x/DzWopZ
現役の定義を
新規の案件で採用される事と定義すると
COBOLは現役引退近い状況でしょう。

まあスレで語られているのは
一度も現役になった事のない言語が大半だけどね。
(例えばHaskellは現時点では新規も保守も需要がない)
0213デフォルトの名無しさん2016/12/19(月) 21:35:37.92ID:q+GbM0Hb
>>209
型とインスタンスが逆じゃね?
0214デフォルトの名無しさん2016/12/21(水) 01:09:09.16ID:NlXO0i2+
アレだろ清純とビッチどっちが抜けるかって議論を始めるに当たって
とりあえず清純の頂点として性知識一切なしの女の子定義しましたってのがHaskellだろ?
「それ抜けるじゃん!」ってなった奴がHaskellラー
0215デフォルトの名無しさん2016/12/21(水) 06:35:26.81ID:Fv4yEKAo
Lispはどんな女の子なの?
0216デフォルトの名無しさん2016/12/21(水) 11:19:26.79ID:pQngWRnW
Lispは服(構文)を着ない野生児的な女の子(ちなみに生まれた頃は比較的普通の服を着ていた=M式)
ただこれで意外と育ちは良くて(ANSI)、教養(仕様)もしかっりしている
マクロという裁縫術を心得ていて、必要な服をいつでも作って着分けることができる
0217デフォルトの名無しさん2016/12/21(水) 19:44:11.45ID:DAWAuc9g
LISP(の方言)は不滅じゃね?emacsの上で
0218デフォルトの名無しさん2016/12/21(水) 21:00:19.84ID:SAz7LbLJ
>>212
個人から見たらそうなのかw
0219デフォルトの名無しさん2016/12/21(水) 21:37:06.90ID:LwOfWJ5k
集団から見ると違うのか
0220デフォルトの名無しさん2016/12/21(水) 22:22:07.11ID:EHIXxsY5
俺みたいなアジャイルでスクラムなチームでスプリントしながら振り返りDDDな目線だと、また新しい視点が見えてくるね
0221デフォルトの名無しさん2016/12/22(木) 02:31:44.42ID:LKHTDYaz
>>217
なんでemacsの不滅は前提なんですかね…
0222デフォルトの名無しさん2016/12/22(木) 08:43:00.02ID:tQtLk2Co
Lispは標準関数名汚すぎな
Clojureはまだマシだけど
0223デフォルトの名無しさん2016/12/22(木) 09:19:52.84ID:8qaRbIfF
Haskellを純粋関数型って言葉やめない?
参照透過型言語と呼ぶべき.

これなら最近増えた
表面だけパクった言語達と同じカテゴリに入らなくて済む。
0224デフォルトの名無しさん2016/12/22(木) 09:22:45.26ID:piqYaj8F
参照透過を徹底してる言語なんてHaskellしかないんだから
ストレートにHaskellって呼べば良くない?
0225デフォルトの名無しさん2016/12/22(木) 12:42:33.24ID:LVFOwIG/
lazyとstrictで大分違うのにいっしょくたに語られる関数型
0226デフォルトの名無しさん2016/12/22(木) 18:03:40.60ID:mT17SxA8
ていうかなんで言語開発者はHaskellなんてめんどくさいだけの言語パクりたがるのか分からん
後のアップデートで結局Haskellらしさを潰して使いやすくしました!とかやってるし意味が分からん
0227デフォルトの名無しさん2016/12/23(金) 14:30:21.94ID:FYU3Gmnx
Rustの用途ってc++で書かれたプログラムの移植版を作ることでいいのか?
0228デフォルトの名無しさん2016/12/23(金) 14:44:06.63ID:yIxDn18f
mozilla開発ってだけでなんかもう負け組臭が酷い
0229デフォルトの名無しさん2016/12/23(金) 14:54:07.50ID:TK7Butbo
Goより明らかにいい言語なのにバックの印象で負けてるrust
0230デフォルトの名無しさん2016/12/23(金) 15:00:36.49ID:Np2+Er+t
えっ? rust が?
0231デフォルトの名無しさん2016/12/23(金) 15:31:23.69ID:F0XljJId
>>228
googleがrust作ってたらpython, ruby, c++開発者が流れたよね
0232デフォルトの名無しさん2016/12/23(金) 15:39:29.01ID:yIxDn18f
>>231
歴史に鱈レバーはないが
そうかもしれぬ
0233デフォルトの名無しさん2016/12/23(金) 19:34:45.48ID:yIxDn18f
Rustにもマスコットが必要だな
ゴファはモッサイから、もっとケモナーの精巣に響くようなマスコットがいい
0234デフォルトの名無しさん2016/12/23(金) 19:34:49.78ID:RCL+KsCc
資金力が違いすぎるからなぁ
0235デフォルトの名無しさん2016/12/23(金) 19:53:22.32ID:TK7Butbo
Lolifoxだな
0236デフォルトの名無しさん2016/12/24(土) 08:38:43.16ID:di+rXJ0g
>>229
雷鳥「一体何が不満なんですか?」
0237デフォルトの名無しさん2016/12/24(土) 19:01:30.80ID:hxBGGNm6
量産されているHaskellのパクリ言語が
どれも本家より良いとは言われない不思議
0238デフォルトの名無しさん2016/12/25(日) 13:34:16.89ID:kF/mK/Cf
自分自身をコンパイルできるコンパイラ
またはCで書かれた中間言語コンパイラ
このどちらかがあると良い
0239デフォルトの名無しさん2016/12/28(水) 02:12:07.16ID:Pt7cMAGf
lisp未だにCADの組み込み言語で使うから、全く馬鹿にできんが、
俺はGoを会社では推してる。
未経験でも2日でわかる、言語仕様ちゃちいから闇が浅い、フォーマットは強制、リンターが強力
threadやら、Runnableやら、synclockやら、哲学者の食事やら教えんでも8割くらいがチャンネルで解決する。
コンパイルしたらワンファイルでどこでも動く。
0240デフォルトの名無しさん2016/12/28(水) 08:34:54.14ID:bvnjBJpz
>>239
> 闇が浅い、
型台無しにするinterface{}とか闇と思う。
0241デフォルトの名無しさん2016/12/28(水) 09:55:30.25ID:JT952dSj
>>240
今のところジェネリックスないからなぁ。
インターフェイスが勝手に実装されるんだから使いそうな値は全部名前つけて管理しろと思う。
intに ScreenYPosとか型名つけれるのマジ便利。
0242デフォルトの名無しさん2016/12/28(水) 11:22:58.21ID:h6cUbtbL
MapもReduceもなくて三行かけてループで書く言語はちょっと……
0243デフォルトの名無しさん2016/12/28(水) 12:06:37.48ID:JT952dSj
まあ、タイプ数は多いけど。
mapやreduceが何スレッド使ってどう動くかをかける分、rangeとゴルーチンとチャンネルの方が便利じゃない?

mapのmapのreduceのmapとかになって来たら、チャンネル繋げたほうがわかりやすいし。
一台では捌けんなと思ったら、受け取ってネットワークに投げるチャンネルと
ネットワークから拾って次のチャンネルに渡すチャンネル書けば、割と解決するし。

Erlangも同じ理由で好き。
0244デフォルトの名無しさん2016/12/28(水) 13:57:13.59ID:MIXabYYa
Goはシンプルでいいんだけど、コードが冗長にならない?if文がつらつら並んでしまうことよくある。書き方が悪いのかな。
文字列処理が中心のウェブアプリだとこの傾向が顕著な気がする。APIだけならまだマシだが。
0245デフォルトの名無しさん2016/12/28(水) 14:19:25.35ID:kFL7wfb2
うむ
0246デフォルトの名無しさん2016/12/28(水) 19:02:14.47ID:pwprnBc6
golang はよくも悪くも実用性第一の言語なんだから、言語に高度な抽象化や表現力を求める層に勧めてもニーズがずれてるんと違うん。
0247デフォルトの名無しさん2016/12/28(水) 23:29:01.55ID:Eve+QkKl
自動ダックタイピングとか、基地外!

老害プログラマが言語を作っとる
0248デフォルトの名無しさん2016/12/28(水) 23:43:54.55ID:NN0/J7oE
自分で理想のプログラミング言語作って使ってればええやん
0249デフォルトの名無しさん2016/12/28(水) 23:48:59.74ID:JT952dSj
>>244
switchで、かなぁ。
テーブルジャンプになりそうな所はそうしてしまうって発想に近いと思う。
抽象化って言語仕様的にはこれ以上必要ないレベルまで抽象化されてると思うよ。
interface定義すればそれが一致すればすべてその実装とみなすとか。
cppで書いたバカみたいなvirtualの塊をコンパイルしたようなコードになるなら、コンパイラが全部解決しとけってのは理にかなってるんじゃないかな。
さもなくばJavaScriptでダックタイプしとけと思ってしまう。あれはあれで便利だし。
大体の言語のカスい所を削るとあれになった感があるけど。
0250デフォルトの名無しさん2016/12/29(木) 00:03:11.38ID:RruPXahs
>>246
表現力ってよくわからんのよね。
何もかもを表す言語って自然言語には無いんよ。
霧雨や狐の嫁入りを綺麗に英語には出来ないし
Be it as.と単文では日本語にはニュアンスが出せないようなもんで、
ある言語がある領域で万能であれる訳がないのに、
まやかしの如くその辺を解決した気になってる言語が純粋に気持ち悪い。
あるゆる、演算子をオーバーライドできる言語に対して思う。
0251デフォルトの名無しさん2016/12/29(木) 00:07:10.35ID:byMsx2NY
>>250
実際にタイプする文字の量ということで良いんじゃない?
0252デフォルトの名無しさん2016/12/29(木) 00:09:42.38ID:rvAXIAg7
>>250
表現力の解説は他の人に任せるとして、取り敢えず演算子オーバーライド出来ないと線形代数が悲惨なことになるのでその最後の行は頂けない
0253デフォルトの名無しさん2016/12/29(木) 00:20:16.74ID:CZgr2A6D
タイプする文字の量で行ったらPythonが最強でしょう。
0254デフォルトの名無しさん2016/12/29(木) 00:38:47.33ID:jOhOrzjU
>>246
この意見には賛同できるな。Scalaのパターンマッチとかコレクションの操作は表現力が高いと思う。何をしようとしてるか明確だから。Goはもっとプリミティブな操作しか持ってないから。
0255デフォルトの名無しさん2016/12/29(木) 00:39:17.73ID:OGBMppob
>>250
お前は文字列処理だけやっとけ低脳
0256デフォルトの名無しさん2016/12/29(木) 01:11:04.33ID:RruPXahs
>>252
要らないだろ。
ベクトルとベクトルの掛け算が外積なのはわかるが、三次以上のテンソルとテンソルの掛け算がどう定義されるか、
ベクトルとスカラのタプル同士の掛け算がどうなるかなんか、型同士で勝手に定義されても困る。

>>254
何をしようとしてるか明確なのはその型作った奴だけだろ。

>>255
文字列なんかほとんど触らんわ。
0257デフォルトの名無しさん2016/12/29(木) 01:25:58.55ID:rvAXIAg7
>>256
ベクトルの足し算をa+bと書くよりもvector_add(a, b)と書いた方がいいということ?あり得んだろそんなの
0258デフォルトの名無しさん2016/12/29(木) 02:27:22.56ID:RruPXahs
>>257
だから、ベクトルと単に定義すんなと。
何のベクトルかを型として持つべきでしょ。
加速度のベクトルと角加速度のベクトルは系が違うんだし。

関数名も嫌な感じ。演算子のオーバーライドと次元同じじゃん。
型が適当だからそんな発想出るんじゃないの?
ものによっては交換法則が成り立たんのだから、addは適切じゃない上に、aにaddするのか、aにaddしたものを返すのかもわからん。
a+b はオーバーライドされて、原点からの距離になります(ただしAが南北方向加速度、Bが東西方向加速度の場合)
みたいな例外でしか構成されてない仕組みで埋め尽くされるじゃん。
なんとかvector.CombineZX(z ZVecror,x Xvector)でしかない。
0259デフォルトの名無しさん2016/12/29(木) 02:48:32.46ID:rvAXIAg7
>>258
ちょっと適当に関数定義していいから、線分クラスを始点と方向ベクトルで構成されるものとして、2線分の交点を算出するプログラム書いて見てよ
Numpyより見やすくな
0260デフォルトの名無しさん2016/12/29(木) 03:07:10.97ID:yr0J1az9
会話の流れを一切無視した要求に笑ったw
まあPythonはこの面子では抜けてるとは思うよ
0261デフォルトの名無しさん2016/12/29(木) 06:18:55.17ID:13IxHxtA
うむ
0262デフォルトの名無しさん2016/12/29(木) 06:56:51.24ID:V7u6j1LO
演算子オーバーライドはご飯に卵を掛けたら卵掛けご飯にならなきゃおかしいっていう人のためのものだ
0263デフォルトの名無しさん2016/12/29(木) 09:40:32.87ID:MXIaWcPX
>>259
> 書いて見てよ
> Numpyより見やすくな

こう言うこと言うと絶対相手は逃げちゃうよな
書いてるの100人に1人くらいのもんだよ(俺調べ)
0264デフォルトの名無しさん2016/12/29(木) 10:27:49.91ID:CAvee1NA
    ∧_∧  ミ _ ドスッ
    (    )┌─┴┴─┐
    /    つ. 終  了 |
   :/o   /´ .└─┬┬─┘
  (_(_) ;;、`;。;`| |
0265デフォルトの名無しさん2016/12/29(木) 10:52:33.95ID:OGBMppob
>>256
> 三次以上のテンソルとテンソルの掛け算がどう定義されるか、
> ベクトルとスカラのタプル同士の掛け算がどうなるか

ちょっとそれ定義してみてくれよ低脳
0266デフォルトの名無しさん2016/12/29(木) 10:59:44.31ID:AIw2bcpm
>>259
Numpyも中途半端だけどなぁ。
確かに書くコード量は少ないだろうが、
書いてないコード量は圧倒的に多いじゃん。
でもその定義ならMaximaで解けるよ。
プログラム組むまでもない。
0267デフォルトの名無しさん2016/12/29(木) 11:01:35.01ID:AIw2bcpm
>>265
使いみち次第だよ、Goなら正直。
むしろ、何か推してる言語あるならそれでこう書けば万能って言ってくれると、
新しい知識が得られて嬉しい。
0268デフォルトの名無しさん2016/12/29(木) 12:42:34.63ID:rvAXIAg7
>>266
いや、その式をMaximaとかで解いてプログラムに埋め込むのよ
アスペみたいなこと言わんといてくれ
0269デフォルトの名無しさん2016/12/29(木) 12:47:44.02ID:yr0J1az9
その代わりPython側も何か書くというイーブンな条件なら良いんじゃね?
何を書くのかしらんけど
0270デフォルトの名無しさん2016/12/29(木) 12:49:14.73ID:rvAXIAg7
よく考えたら例題がよくなかったな
(a+b*c-d*e/f)/(a@f-b@c)-hとかをvector.Combinezxとやらで書けとするべきだった。
まあどうでもいいけどな
0271デフォルトの名無しさん2016/12/29(木) 22:40:40.45ID:5yPVbf0y
>>268
馬鹿じゃねえの?
なら何の多性態もいらねえじゃん、言語には。

>>270
自明でない式に意味なんかねえよ。
サンプルにでもabcdなんて命名する奴に全くセンス自体がないから、そういう発想になるんだろうな。
0272デフォルトの名無しさん2016/12/30(金) 00:53:59.91ID:RKFPkfCK
>>271
ほーん負け惜しみはいいから書いてみ?
0273デフォルトの名無しさん2016/12/30(金) 01:13:07.40ID:S2I7JRvC
つーかこいつ線形代数エアプすぎてMaximaとかで解いた結果>>270みたいな感じのちょっとややこしいベクトルの式が解になることがあることすら理解してなさそう
そういう時に演算子オーバーロードは本当にコードを見やすくするのに。
馬鹿すぎて>>259すら自力で解けないんだろなあ
0274デフォルトの名無しさん2016/12/30(金) 07:44:18.97ID:sL0wWCmI
今時ジェネリクスも無い go は次世代言語として筋が悪い
個人的には、google 信者か動的型言語しか使った事が無い人が go をマンセーしてるイメージがある
0275デフォルトの名無しさん2016/12/30(金) 08:22:50.47ID:n0+bjvYh
>>274
Google自身もそれほど推してないから。
GoがAndroidバイナリー作れるようになってから1年以上たつわけで、推してたらNDKのようにAndroid SDKからダウンロード出来るようにするはずだよね。
0276デフォルトの名無しさん2016/12/30(金) 10:54:37.77ID:NmKeqyEh
ジェネリクスね。。
バカが俺様ライブラリを無駄に作り出すだけじゃん。
0277デフォルトの名無しさん2016/12/30(金) 11:04:50.67ID:Sfay42t+
https://golang.org/doc/faq#generics

Why does Go not have generic types?
Generics may well be added at some point. We don't feel an urgency for them, although we understand some programmers do.

Go公式ですらこう言ってるのに馬鹿みたいな意見いらないから
0278デフォルトの名無しさん2016/12/30(金) 11:08:20.23ID:NmKeqyEh
だから慌てて入れて c++ のテンプレみたいなバカみたいな状況になりたくないつってんだろw
0279デフォルトの名無しさん2016/12/30(金) 11:12:29.79ID:Sfay42t+
それはお前が決めることじゃない
0280デフォルトの名無しさん2016/12/30(金) 12:38:19.14ID:qVys9VlH
generics が無くても困らんのでな
0281デフォルトの名無しさん2016/12/30(金) 13:45:01.80ID:7+wVhCY3
C++のテンプレートみたいなのは
set<char>みたいに型にフィットしたコンテナを用意するのに気持ち良いけど
Javaやっててジェネリクス必要になるから欲しいって人はその設計が間違ってる
そうは思わんかお前ら
0282デフォルトの名無しさん2016/12/30(金) 14:46:08.73ID:Sfay42t+
うっざJavaスレでやれ
0283デフォルトの名無しさん2016/12/30(金) 15:46:41.55ID:7Zd5OH2Q
>>273
エアプがなんだかわからんが、手で解けるからやらすんであって、
最初からMaxima使ったら検算できねえじゃん。
書きやすいなんて理由でパフォーマンス落とす意味がわからん、と>>249で言ってんのに。
情報系の学部生みたいな事言われても苦笑いしか出ない。
0284デフォルトの名無しさん2016/12/30(金) 15:48:07.60ID:7Zd5OH2Q
なんでも積むのが最新型な点を通り越しただけっしょ。
0285デフォルトの名無しさん2016/12/30(金) 16:01:58.78ID:n0+bjvYh
パフォーマンス落とすって…
批判するなら批判する所だけでもちゃんと理解しとこうね。
0286デフォルトの名無しさん2016/12/30(金) 16:46:36.97ID:hOz+Sgq9
>>285
指摘は事実を以て、ね。
0287デフォルトの名無しさん2016/12/30(金) 19:26:31.24ID:RKFPkfCK
>>259は余裕で手で解けるけどな。線分クラスを始点s方向vで構成されるものとして一つ目の線分をs1,v1二つ目をs2,v2とし、S=s2-s1,V={{-v2y, v2x},{-v1y,v1x}}として、答えはV.dot(S)/det(V)。
このくらいスパって書けばいいのに、検算出来ないとかパフォーマンス落とすとかうだうだ言い訳してカッコ悪いやつだ
0288デフォルトの名無しさん2016/12/30(金) 19:28:49.78ID:RKFPkfCK
おっと求められた答えそのままではなかった
0289デフォルトの名無しさん2016/12/30(金) 21:12:04.72ID:0uD1Maua
書きやすいなんて理由でC言語以上の高級言語使ってるバカはおらんよね?
アセンブリでオーバーヘッドゼロで書くのが真のプログラマー
メモリ管理もできないバカは紙とパイナッポーペンからやり直せ笑
0290デフォルトの名無しさん2016/12/30(金) 21:24:32.93ID:vRTC1WE2
30年位時代を間違えてますよおじいちゃん
0291デフォルトの名無しさん2016/12/30(金) 21:55:04.63ID:VqDrYuY4
>>287
線分が不明確。
ユークリッド幾何に限られる。
だから情報系の奴って馬鹿だって言われるんだよ。
0292デフォルトの名無しさん2016/12/30(金) 21:56:11.76ID:VqDrYuY4
>>289
ネタで言ってるんだろうけど割と合ってるんじゃない?
機械語が予測できる形で落ちない言語はゴミ。
0293デフォルトの名無しさん2016/12/30(金) 22:09:12.67ID:RKFPkfCK
>>291
本気でそれが問題だと思ってるの?
ちなみに俺は化学だ。勝手に決めつけんな
0294デフォルトの名無しさん2016/12/30(金) 22:18:57.48ID:VqDrYuY4
>>293
そう言われて反応する時点で同じ穴の狢。
って言われんようにやれよ。
2通り以上に解釈される化学式の表記法とかゴミだなって思うだろ。
0295デフォルトの名無しさん2016/12/30(金) 22:22:05.89ID:VqDrYuY4
書き方の工夫で、一つに絞られる、と言う事をするよりも、
示性式と構造式書いたほうが余程的確。
0296デフォルトの名無しさん2016/12/30(金) 22:50:00.86ID:RKFPkfCK
情報系と思ってもらえたようで至極光栄
で、本気でそれが問題だと思ってるの?理解できてないだけだよね。理解できてるなら>>287の数値は何を表す値を導出してるか書いてね
もしくはこの話飽きて来たからClojureの話しようぜ
0297デフォルトの名無しさん2016/12/30(金) 22:55:30.78ID:ToL6TU3u
Swiftやってんだけど、おまえらの中じゃもう古そうだな
0298デフォルトの名無しさん2016/12/30(金) 22:57:34.88ID:RKFPkfCK
古くはないんだけど、なんか手を出す気もしないなあ
0299デフォルトの名無しさん2016/12/30(金) 23:02:05.67ID:ToL6TU3u
そもそもプログラミング素人でさ、なんかアプリ作りたいと思ったからswift選んだんだけど、間違い?
ほかにやったほうがいいことあるなら教えてください
0300デフォルトの名無しさん2016/12/30(金) 23:03:36.76ID:RKFPkfCK
Objectice-Cやってた頃はMacアプリ作りたかったのにiOSの本ばかりで手を焼いた記憶があるけど、Swiftはどうなんだろう?
0301デフォルトの名無しさん2016/12/31(土) 01:03:03.34ID:0acoUq44
>>296
そりゃ、交点ではなく交点を通る線出してんじゃねえの?
ってか、

Clojureはあんまりこう惹かれなさ過ぎてわからんな。
0302デフォルトの名無しさん2016/12/31(土) 01:39:29.82ID:kSL6UTz/
>>301
残念ながら違う。

ClojureはLispの中ではなんか関数名が綺麗な感じで好きなんだよ。
基本的にクラスは使わずに組み込みのList,Vector,Mapを使うとか、変数は全部イミュータブルとか、一風変わってるけど慣れるとこっちの方が書きやすくて好きなんよ
まあHaskellとかと比べると汚いけど、いろんな環境で使えるし、replも使いやすくてちゃちゃっと使えるのがgood
0303デフォルトの名無しさん2016/12/31(土) 08:15:21.14ID:5P7T9Bui
このスレの謎のScala押しなんなの?
あんなの関数型触ってなかった人が持て囃してるだけでしょ?
真面目に書くとPerl並に汚いコードになるのに
0304デフォルトの名無しさん2016/12/31(土) 08:28:01.13ID:qTR6JDNw
>>303
OOP+関数型
JVM

最強やん
0305デフォルトの名無しさん2016/12/31(土) 08:34:05.20ID:pegMHpax
F#が流行らなかったんだから
そんなのが武器になるとは思えないけど
0306デフォルトの名無しさん2016/12/31(土) 08:41:27.20ID:qTR6JDNw
JVMの部分に対するツッコミか?
ドトネ自体が流行ってねーだろ、まずよ
0307デフォルトの名無しさん2016/12/31(土) 09:09:42.34ID:pegMHpax
そうじゃない
CSharperがOOP+関数型のF#へ移行しなかったんだから
Javaerも移行しないだろうってこと
0308デフォルトの名無しさん2016/12/31(土) 09:54:57.32ID:qTR6JDNw
なるほど
Javaerも大概レガシーうんこまみれだからな
でもJava8にラムダやStream入ったし、少しは連中考え直すんじゃないか?
C#はそもそもF#に乗り換えなくて十分なほど便利に見える
(C#はよくしらんが)
0309デフォルトの名無しさん2016/12/31(土) 11:02:24.70ID:0acoUq44
>>302
そうなのか、変に煽ってはいかんな。

最初の一歩が辛いけど発想が気持ち良いと言えば俺はErlangが良いと思うな。
実用性もあるし。
0310デフォルトの名無しさん2016/12/31(土) 11:11:50.12ID:Mr9jnWHp
やはりオーバーロードはあったほうが便利だな
0311デフォルトの名無しさん2016/12/31(土) 11:48:39.35ID:0acoUq44
オーバーロードについては言い方変えよう。
軽率に使うやつは馬鹿としておく。
0312デフォルトの名無しさん2016/12/31(土) 19:47:18.58ID:5P7T9Bui
アドホック多層は散らばると面倒だよな
最初からジェネリックに書けばいいだけ
0313デフォルトの名無しさん2016/12/31(土) 20:37:47.46ID:CS9EEzAV
次世代を制するのはGo
次点でこのままスクリプト言語が他に出ないならばElixer
これに気付いていないやつは情弱だからもっと情報を積極的に
吸収したほうがいい。
0314デフォルトの名無しさん2016/12/31(土) 22:21:32.08ID:7tMjSoOS
Goは次世代というか現実的な選択肢の一つという感じ
0315デフォルトの名無しさん2016/12/31(土) 23:09:38.24ID:Mr9jnWHp
次世代はrust
0316デフォルトの名無しさん2017/01/01(日) 00:21:12.92ID:uk+ZZWDP
あのGoogleが超最近に出した言語なのに現状これだけ盛り下がってるGoこれから流行っていくってありえるか?
0317デフォルトの名無しさん2017/01/01(日) 00:29:30.23ID:y/0zTBoG
>>304
なんでも詰め込めばいいとかバカなんじゃないの。
0318デフォルトの名無しさん2017/01/01(日) 00:51:32.52ID:VtFWW7J2
>>304
最低やん
OOP部分捨てろ
0319デフォルトの名無しさん2017/01/01(日) 01:23:10.78ID:ltF9gKFQ
参照透過でなきゃ関数型とは認めんよ。
実際のコードは殆ど手続き型で書く癖に
イメージ戦略で「関数型」を名乗る偽物の多い事多い事。
0320デフォルトの名無しさん2017/01/01(日) 01:30:27.07ID:0J24YwIc
>>318
ほんとこれ
0321デフォルトの名無しさん2017/01/01(日) 01:58:04.14ID:uk+ZZWDP
言語なんて手段でしかないんだから
突然優越感たっぷりにオレオレ関数型定義を宣言されても困る
0322デフォルトの名無しさん2017/01/01(日) 02:57:38.67ID:acF61tOZ
>>316
下がってるか…?
結構Go製のもの増えてきたけどな。
0323デフォルトの名無しさん2017/01/01(日) 11:47:46.26ID:wqx7ZaQB
>>313
Erlangなら判るがElixirは糞だろ
0324デフォルトの名無しさん2017/01/01(日) 12:44:16.18ID:fRaQvE2f
GoとScalaって今から勉強するならどっちがいいの?
0325デフォルトの名無しさん2017/01/01(日) 13:16:06.95ID:0J24YwIc
scalaとかゴミなのて
0326デフォルトの名無しさん2017/01/01(日) 13:36:53.96ID:b8ZAKc8l
>>320
OOPで挫折したのか?
0327デフォルトの名無しさん2017/01/01(日) 13:40:12.31ID:rXsHTVhD
Scala最強伝説を祈願してあけましておめでとうございます。
0328デフォルトの名無しさん2017/01/01(日) 13:42:37.35ID:Qg1j0Wmf
ScalaよりClojureの未来が明けますようお願いいたします
0329デフォルトの名無しさん2017/01/01(日) 13:55:18.09ID:NDuNncrW
あけましておめでとうございます。今年こそjvm言語が絶滅しますように…
0330デフォルトの名無しさん2017/01/01(日) 17:24:23.36ID:SJYwRSMl
未熟な新言語ならば今後の今は使いづらくても今後の改良に
期待して学びたいと思う。
一方、JVMやマイクロソフトみたいに腐敗したシステムは
いくら既存の資産との互換性があったとしても新しいものを
学ぼうという気が起きない。
古いシステム廃止に伴い新システム移行を強制してくるなら
じゃあこれを機に別の環境に乗り換えますんでって気分になる。
0331デフォルトの名無しさん2017/01/01(日) 17:49:31.12ID:QliWG2cV
MSは最近頑張ってるイメージ
0332名無し集中2017/01/01(日) 18:01:48.24ID:jy2g6db8
>>330
C#もだめ?作者の人すきなんだが
0333デフォルトの名無しさん2017/01/01(日) 18:14:39.44ID:SJYwRSMl
わざわざC#と書かずにマイクロソフトと書いたんだよ。
C#は嫌いじゃない。
0334デフォルトの名無しさん2017/01/01(日) 21:06:03.64ID:rXsHTVhD
でもちょまどさんを前にしたらモジモジして「C#いいですよね」とか言う気なんでしょう?
キモオタきも
0335デフォルトの名無しさん2017/01/01(日) 21:12:15.02ID:9MvoRZrQ
ちょっ()まどさんのおかげでペチパーも許せるようになった
0336デフォルトの名無しさん2017/01/01(日) 21:31:45.89ID:rXsHTVhD
それはありえない
ペチパーだけは老若男女一族郎党皆殺しの上晒し首にして当然
0337デフォルトの名無しさん2017/01/01(日) 22:15:55.23ID:uk+ZZWDP
F#も良いよ
0338デフォルトの名無しさん2017/01/01(日) 23:36:31.27ID:y/0zTBoG
>古いシステム廃止に伴い新システム移行を強制してくるなら
>じゃあこれを機に別の環境に乗り換えますんでって気分になる。
こういう発想がカス言語機能追加の原動力になってんだろうな。
0339デフォルトの名無しさん2017/01/02(月) 04:03:16.31ID:gdAYBpSh
>>338
バージョンアップで互換性なくす言語は馬鹿
0340デフォルトの名無しさん2017/01/02(月) 04:11:10.89ID:pb7rNf+H
>>326
頭悪そう
0341デフォルトの名無しさん2017/01/02(月) 10:14:22.78ID:9iyonvDZ
もうこれ以上糞言語増やさなくていいよ
十分便利な言語が出揃ったってみんな言ってるだろ
0342デフォルトの名無しさん2017/01/02(月) 12:19:20.43ID:5B8cWWn7
>>341
CやCobolが出たときも当時の人達みんな同じこと思ってそう
0343デフォルトの名無しさん2017/01/02(月) 12:31:09.88ID:GdcUHK9D
そうでもない
0344デフォルトの名無しさん2017/01/02(月) 12:51:44.30ID:D033LP4m
技術のキャッチアップができなくなったなら、エンジニアとしてはもう寿命
その後はIT土方かマネジメントで生きるしかない
0345デフォルトの名無しさん2017/01/02(月) 13:04:50.20ID:EcE1aP5C
swift最強
0346デフォルトの名無しさん2017/01/02(月) 18:25:12.48ID:1m/cK6rN
>>342
Cの頃はもっとユーザー、言語設計者、言語実装者の距離が近かった。
今は遠い。それがクソ言語が作られる大きな理由になってる。
0347デフォルトの名無しさん2017/01/02(月) 19:13:01.90ID:hRjlMCft
Haskellなら近いよ!
0348デフォルトの名無しさん2017/01/02(月) 19:23:51.11ID:XmNT/ume
特定のIDEとか環境ありきが前提となっている言語は一度氏んだ方が
いい。
0349デフォルトの名無しさん2017/01/02(月) 22:41:29.99ID:9iyonvDZ
IDEも使えない糞雑魚ナメクジ
intellijに見捨てられた糞言語信者は死んで、どうぞ
0350デフォルトの名無しさん2017/01/02(月) 22:52:40.90ID:OVlW98VI
>>348
うむ。goなら大体揃うし、作ったあともワンファイル
0351デフォルトの名無しさん2017/01/03(火) 00:23:18.89ID:qOafqQyJ
Haskellってオワコンなのかな?
主な用途が自身のコンパイラを書くことのまま進展がないけど。
0352デフォルトの名無しさん2017/01/03(火) 00:32:50.68ID:8fB2VnKn
開発環境整えるだけで尋常じゃない苦労するはめになったり特定のOSだと動かないなんてことになるよりは
IDEさえ落とせばすぐ環境整う言語のが遥かにマシじゃね?
0353デフォルトの名無しさん2017/01/03(火) 00:37:30.08ID:sAzrCak7
>>351
もちょと言語コア以外のエコシステムのほうにも助力をまわしてほいところ。
素性はいいんのであとは使える周辺とスタータードキュメント整理られれば
0354デフォルトの名無しさん2017/01/03(火) 18:13:38.86ID:YaTOHTL4
パッケージ管理が cabal から stack になってまともになったと聞くがどうなんだろう。
0355デフォルトの名無しさん2017/01/03(火) 19:25:56.97ID:jYOP1H4c
>>352
IDEが無ければ何もできないホモには言われたくないですね...
言語への依存性から抜け出せなくなってしまう
IDEのボタンクリックしたとき自動発行されるコマンドとか
コンソール叩いて問題解決する方法覚えないから
0356デフォルトの名無しさん2017/01/03(火) 19:43:55.85ID:AiznZoHE
だからなによ
0357デフォルトの名無しさん2017/01/03(火) 19:45:10.33ID:ZcRDiYy/
IDEではなくエディタとコマンドを使えば成長できる
誰もが通り、数年後に間違いを自覚する道
0358デフォルトの名無しさん2017/01/03(火) 20:26:30.11ID:qVjCXJPU
Goの実行速度が速いですっていうのは
OCamlが速いって言ってるのと同じことだよね?

Dやrustの足元にも及ばん
0359デフォルトの名無しさん2017/01/03(火) 21:12:09.97ID:Uq62B4BS
エディタとコマンド使えば成長できるけど、補完は欲しい
Vimもemacsも補完とかのプラグインをちゃんとするのは面倒
0360デフォルトの名無しさん2017/01/03(火) 21:18:07.41ID:qVjCXJPU
IDEのない言語はコーディングにも悪影響が出てるという。
タイプするの面倒くさいから標準ライブラリの関数名が略字で意味わからんかったりするらしい。
IDEが無いとファイル増えると面倒だから1ファイルにいくつもクラスを定義して保守性が下がったり。
プロジェクトみたいなのも作るの面倒だからって
動的ライブラリや静的ライブラリを作成せずに毎回全部フルビルドするとか。
0361デフォルトの名無しさん2017/01/03(火) 22:03:37.86ID:Uq62B4BS
標準ライブラリの関数長いのは可読性も低いと思うけどな
0362デフォルトの名無しさん2017/01/03(火) 22:58:15.02ID:ZeRcLg0V
>>360
>IDEのない言語は

今時のエディタ使ってないの?
大抵の言語用の支援機能有るけど。
0363デフォルトの名無しさん2017/01/04(水) 01:11:27.78ID:S4XLibkf
すいませんcoconutユーザーなんです……
0364デフォルトの名無しさん2017/01/04(水) 01:50:54.55ID:MZRDhGwM
DataGridViewCellToolTipTextNeededEventArgs e とか凄いよねw
DataGridView.Cell.ToolTipText.EventArgs.Needed こうならんかね
DataGridView.Cell.ToolTip.EventArgs.Needed できればこう
0365デフォルトの名無しさん2017/01/04(水) 02:06:37.88ID:+9xRXlmE
Scalaが没落してRustが急上昇してるけと何があった!!?
http://i.imgur.com/ujNoggx.jpg
0366デフォルトの名無しさん2017/01/04(水) 02:20:49.49ID:cHwoKYKd
pythonは次世代言語のくくりに入るという認識でおけ?
0367デフォルトの名無しさん2017/01/04(水) 03:24:57.77ID:sO2gccKh
>>365
Rustは半年位前にFirefoxの新しいブラウザエンジンに使うとかで
記事とか結構出たからトレンドが上昇したんだろ

>>366
pythonは現役世代
0368デフォルトの名無しさん2017/01/04(水) 09:31:28.55ID:oS0JsegY
遊びで勉強するならRust のが面白そうってのはある。
0369デフォルトの名無しさん2017/01/04(水) 09:45:56.11ID:KKg6qYkQ
C言語的な文法だから、その派生のC++やJavaやJSの流れを汲む奴らが調べてそう
関数型とオブジェクト指向のハイブリットだし、そいつらの中でも同じ趣向のScala勢に受けたのか
0370デフォルトの名無しさん2017/01/04(水) 10:04:55.29ID:KKh75lzL
まだ正月なのに今日から社畜奴wwwwwwwwwwwwww
0371デフォルトの名無しさん2017/01/04(水) 10:07:07.37ID:KKh75lzL
>>365
HaskelはScalaのおかげで下駄はいてるだけ
ルーストとかいう言語はMozilaのステマ
0372デフォルトの名無しさん2017/01/04(水) 15:59:34.67ID:AIzwqNfs
ルーストって読む人初めて見たw
0373デフォルトの名無しさん2017/01/04(水) 19:29:31.66ID:xL7XSQ6Y
ScalaアンチはRustについてはどう思ってるの?
関数型なんでもいいからやりてえけどどれがいいか迷ってんだよ
速く結論出せよ。
0374デフォルトの名無しさん2017/01/04(水) 20:21:26.05ID:R3mMJ28k
全然用途が違うわ
0375デフォルトの名無しさん2017/01/04(水) 20:54:09.10ID:jwIM7MLJ
Go言語がダメな理由
(Why Go Is Not Good (2014-07-18)by Will Yager)
ttp://postd.cc/why-go-is-not-good/
> Goは何も新しいことをしない。
> Goは全てにおいてうまく設計されているとは言えない。
> Goは他のプログラミング言語から退化したものである。
0376デフォルトの名無しさん2017/01/04(水) 21:46:39.87ID:u2CyXKSE
>>371
意味不明
0377デフォルトの名無しさん2017/01/04(水) 21:55:31.77ID:xL7XSQ6Y
>>375
>イメージキャラのデザイン
0378デフォルトの名無しさん2017/01/04(水) 22:21:37.36ID:+0Y5k0lr
       , - ―‐ - 、
      /         \
     /    ∧ ∧  ,   ヽ
    ./  l\:/- ∨ -∨、! , ',
   / ハ.|/          ∨|,、ヘ
  |ヽ' ヽ     ●  ●    ノ! l
. 〈「!ヽハ._    __    _.lノ |
  く´ \.)    ヽ. ノ   (.ノ  ̄ さあ寄っといで 才能のカケラもない
   \ `'ー-、 ___,_ - '´         カスどもが Go 叩きを始めるよ
      ` - 、 ||V V|| \
        | ||   || l\ ヽ
0379デフォルトの名無しさん2017/01/04(水) 22:30:18.96ID:R3mMJ28k
googleはハッタリばっかだからな
0380デフォルトの名無しさん2017/01/04(水) 22:48:17.88ID:6ooS73gi
google社内ではPythonが使われているらしけど
Pythonってそんなに良い言語なの?
0381デフォルトの名無しさん2017/01/04(水) 23:08:10.23ID:u2CyXKSE
>>380
MITで使われてるってだけじゃない?
機械学習とかは結局Mathematicaだし
速いの欲しかったらFortranだし

ところでFortranとヨード卵って語感が似てるよね
0382デフォルトの名無しさん2017/01/04(水) 23:08:31.74ID:J+uePkPh
pythonは良い言語であることは真実だが
googleが使ってるから良いという訳ではない
0383デフォルトの名無しさん2017/01/04(水) 23:18:52.16ID:wbEXeosH
昔の行番号BASICみたいなポジションでしょ、Pythonは
0384デフォルトの名無しさん2017/01/05(木) 01:35:15.02ID:yCqown6i
Goって、
新しい事を放棄して、
複雑に考えるのをやめて単純愚直に設計して、
さらに引き算を繰り返した結果残った、
ホントに馬鹿には使えない言語になっただけのような。

馬鹿でもオートマ車ならどれでも「アクセル踏む」って抽象操作でそれなりに動かせるからな。
だから使えてる気になるけど、でもその機能は必須だと信じて疑わない。

マニュアル車乗れてチェンソー始動できるから、舶用エンジンをエアスタータで始動できる、要はクラッチきって何らかの方法でクランクシャフト回せば良いだけじゃん。方法は各々考えろよw
みたいな話を、そんな方法があると信じない人が居るようなもんなんだろう。
0385デフォルトの名無しさん2017/01/05(木) 03:23:55.68ID:QhGjq51m
Goの冗長さを上手く表現した良いレスだと思った(小並感)
0386デフォルトの名無しさん2017/01/05(木) 03:24:17.84ID:RTsEBP8Y
日本語でおk
0387デフォルトの名無しさん2017/01/05(木) 03:25:25.26ID:RTsEBP8Y
>>385
wwww
0388デフォルトの名無しさん2017/01/05(木) 06:16:57.27ID:42rV0dht
3行で
0389デフォルトの名無しさん2017/01/05(木) 07:32:18.35ID:AnMF2hlN
むしろマニュアル車にあるようなクラッチは残して、
自動運転機能みたいなものを削ったのが go
馬鹿が間違った使い方して事故が多かったから外しましたみたいな。
0390デフォルトの名無しさん2017/01/05(木) 08:40:03.55ID:BBOrCYHK
>>385
冗長だけど、一番動いたものの効率が良くて、かつ一番言うこと聞く言語だと思うよ。

>>389
そうそう。成り立つために必要な道具は揃ってる。
危なそうなものは、危ないと書かないと書けないようになってるしな。
ナタで刺し身は誰だって作りたくあるまい。
0391デフォルトの名無しさん2017/01/05(木) 08:43:16.83ID:hcwYrMOW
Google Open Source Blog: Grumpy: Go running Python!
https://opensource.googleblog.com/2017/01/grumpy-go-running-python.html
0392デフォルトの名無しさん2017/01/05(木) 08:54:52.91ID:rS/TqFdr
Goはgc持ってる言語の嫌いなところもそのまま受け継いでるのがなぁ
俺はRustのアプローチのほうが好き
0393デフォルトの名無しさん2017/01/05(木) 14:06:16.31ID:+tgtyLjf
GoMi
0394デフォルトの名無しさん2017/01/06(金) 01:42:01.86ID:JzQSK9Gh
>>391
これpython2系かよ
0395デフォルトの名無しさん2017/01/08(日) 01:27:02.78ID:YWYSDpb5
Goは関数型じゃないからなぁ
ScaraもJava臭がするし
やっぱ学ぶならRustかな
0396デフォルトの名無しさん2017/01/08(日) 23:21:07.52ID:zNv0/ewK
勉強するならHaskell
実用ならF#
0397デフォルトの名無しさん2017/01/09(月) 00:18:26.59ID:Dm7q6S9e
勉強するならScala
実用ならScala

やSN1
0398デフォルトの名無しさん2017/01/09(月) 18:04:58.00ID:zt+XskRh
Fregeはいいぞ
0399デフォルトの名無しさん2017/01/09(月) 18:31:23.77ID:Dm7q6S9e
そんなハスケルパクの無名言語いらんわ禿
0400デフォルトの名無しさん2017/01/09(月) 20:28:50.84ID:zt+XskRh
>>399
パクリじゃなくてJVM実装が目的だぞ
Fregeはいいぞ
0401デフォルトの名無しさん2017/01/09(月) 21:00:11.79ID:9ACblGiY
うるせー禿!
0402デフォルトの名無しさん2017/01/09(月) 21:45:30.60ID:YAuw1D1o
人は他人を罵倒するとき、自分がもっとも気にしていることを題材にする傾向があるらしい
0403デフォルトの名無しさん2017/01/09(月) 22:08:04.91ID:4xLqZyPu
Haskell、今はスノッブな人たちが他人と区別するためのファッションに使ってる側面があるけど、
今後、義務教育でプログラムを学んだ層が働く頃には、考え方は常識になるんだろうな。
0404デフォルトの名無しさん2017/01/09(月) 23:43:18.79ID:JTQclrck
考え方だけだな。
遅延評価はたぶん流行らん。
さんざんデバッグしずらいことが言われまくってる。
0405デフォルトの名無しさん2017/01/09(月) 23:44:01.52ID:9ACblGiY
せやな
0406デフォルトの名無しさん2017/01/10(火) 09:24:07.72ID:pkH5q+Un
Go and Dogma https://research.swtch.com/dogma

Remember that none of the decisions in Go are infallible; they’re
just our best attempts at the time we made them, not wisdom received
on stone tablets. If someone asks why Go does X instead of Y, please
try to present the engineering reasons fairly, including for Y, and
avoid argument solely by appeal to authority. It’s too easy to fall
into the “well that’s just not how it’s done here” trap.
0407デフォルトの名無しさん2017/01/10(火) 23:02:05.76ID:v/OI4yM1
>>401
プログラマの偉人はだいたい禿げてる
禿げてないのはヘジたんぐらいのもん
ヘジたんもやばそうだけど
0408デフォルトの名無しさん2017/01/10(火) 23:36:03.65ID:PjuH0Yrh
ジョン・マッカーシーはフサフサだった
0409デフォルトの名無しさん2017/01/11(水) 11:11:08.07ID:wls9g7W6
ストールマンもハゲじゃなかったな
0410デフォルトの名無しさん2017/01/11(水) 17:06:43.26ID:O2me4zYJ
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512


zcx65czx4
0411デフォルトの名無しさん2017/01/11(水) 17:21:23.56ID:wls9g7W6
2ちゃんって川上さんと喧嘩したんだっけ
live.
nicovideo.
jp/
watch/
lv286846512
0412デフォルトの名無しさん2017/01/12(木) 21:25:14.59ID:l7q6mhnn
このスレ的にSwiftってどうなの?
なんか独自色強すぎて近づきづらいんだけど。
あと意識高い人達がやたら騒いでる印象。
0413デフォルトの名無しさん2017/01/12(木) 21:50:25.37ID:eHeLEFbF
swiftは現世代だろうが
0414デフォルトの名無しさん2017/01/12(木) 22:24:12.58ID:D/kCxt4Z
IOSのためにしょうがなく使うやつやろ
0415デフォルトの名無しさん2017/01/13(金) 01:16:04.00ID:nRnNKqfV
macOSやiOSのアプリ作る上では実質一択だから議論するまでもないよな
それ以外で使うことなんて殆ど無いし
0416デフォルトの名無しさん2017/01/13(金) 09:36:11.23ID:89YmVUl6
Swift3はええ言語やがな
林檎独占はもったいない
0417デフォルトの名無しさん2017/01/13(金) 22:03:58.24ID:uRaSOz6f
開発者がテスラモーターズに引き抜かれて大混乱してるね、Swift
0418デフォルトの名無しさん2017/01/13(金) 22:57:52.88ID:u2Ry7481
「未来とは、今とは違う時間――より良き世界を指す言葉ではなかったか?
そこに、ジオン・ダイクンが夢見た人の進化と調和は無い。
ジオンの名を受け継ぐ者として、一年戦争の惨禍を引き起こした者として、
私たちには責任があるのです! 現実を現実と受け容れるだけでは――」
go は間違ってないけどフルフロンタルぽいんだよ。
0419デフォルトの名無しさん2017/01/14(土) 02:16:40.03ID:SauIKXvW
Scalaはユニコーン
ScalazはNT-D
0420デフォルトの名無しさん2017/01/14(土) 08:06:28.69ID:w5rWI0QQ
ユニコーンではなくオワコーンの間違いでは?
0421デフォルトの名無しさん2017/01/14(土) 08:54:34.36ID:Ar++pxuH
だれうま
0422デフォルトの名無しさん2017/01/14(土) 11:02:38.34ID:SauIKXvW
始まってるプログラミングコンテンツは南南や?
0423デフォルトの名無しさん2017/01/14(土) 14:28:39.82ID:BE8dMuIV
>>422
最近はじまったばかりのEta lang
0424デフォルトの名無しさん2017/01/14(土) 15:04:33.35ID:SauIKXvW
>>423
演算子はSi No Ko Syoか?
0425デフォルトの名無しさん2017/01/14(土) 17:35:29.36ID:zqw+i5es
否認
0426デフォルトの名無しさん2017/01/15(日) 10:04:02.63ID:S6PWqiSK
rustをrust-lang.org/book読みながら触り始めてみたけど確かにめっちゃ安全って感じがする
0427デフォルトの名無しさん2017/01/15(日) 10:23:09.09ID:IlUPDinI
バックがモジラとか始まる前から負けてる感
0428デフォルトの名無しさん2017/01/15(日) 10:33:13.26ID:bhs1F35V
こういうのに投資する日本の大手企業が皆無
IT関連に近い企業でも…
経営センスがなさ過ぎる
ドワンゴが最強囲碁AI開発宣言したら
直後にalpha GOが出るとか
お笑いのレベル

日本は終わっとるね
0429デフォルトの名無しさん2017/01/15(日) 10:36:42.12ID:e6h5RF1E
アメリカ以外の国は?
0430デフォルトの名無しさん2017/01/15(日) 10:42:34.69ID:bhs1F35V
欧州は金は出せなくてもlinuxのlinus君とか
人材が出せる。
が日本はそっちもお寒い限り。
0431デフォルトの名無しさん2017/01/15(日) 11:06:24.97ID:e6h5RF1E
欧州???国って言ってんだけど????
100歩譲って認めてやるがそれ以外は????
世界の中で日本が特別に劣ってる証拠あるの???
やっぱパヨクの卑日ポルノか????
0432デフォルトの名無しさん2017/01/15(日) 11:07:16.61ID:e6h5RF1E
自分が雑魚でゴミなのを企業や国のせいにしてるだけか。
0433デフォルトの名無しさん2017/01/15(日) 11:23:39.35ID:JVFXGhWK
googleの創業者のなかに日本人が居ないこと自体既にマズイ。
創業はロシア、アメリカ(母ユダヤ系)の2人か。

アメリカかIT産業の創業者は海外の移民が多いと言うが
庶民にも聞こえるような大手企業の創業者に日系のプレイヤーが居ないのは残念。
禿電?
あれは日本に寄生した北朝鮮系だな。
0434デフォルトの名無しさん2017/01/15(日) 11:48:46.47ID:ezeuue3x
日本は全体主義で相互監視が酷い。毛色の違う異物への攻撃性が異常に高い
集団から逸脱して、新しいものを作ったり、新しいことを始めるのには根本的に向いてない

諦めて何か他の得意なことを強みにしたほうが良い
ITの分野で日本人が強く出れる部分はどこだろう?
0435デフォルトの名無しさん2017/01/15(日) 12:48:51.29ID:nEHh2xZn
次世代言語の議論をしろ��
0436デフォルトの名無しさん2017/01/15(日) 13:37:17.55ID:bMxmBfkn
もう少し流行って、かつ、
armが一級になって、staticなバイナリが正しく作成されるようになれば使うんだけど。
0437デフォルトの名無しさん2017/01/15(日) 22:46:08.78ID:o+7bTZNn
これから10年間超高給とれる言語という意味の次世代言語なら、アセンブラとCOBOLで確定。
メンテナンスできる人材が定年で消えたから、引っ張りだこです。
0438デフォルトの名無しさん2017/01/16(月) 00:13:25.16ID:WtkYzKjH
>>437
君10年前も同じ事言ってたよね
0439デフォルトの名無しさん2017/01/16(月) 00:25:00.39ID:gqa5wV4S
>>437
COBOLは金融系だから高給かもしれんが、アセンブラって高給もらえる?
0440デフォルトの名無しさん2017/01/16(月) 11:28:50.29ID:ByzsO0Om
こんなレガシー言語リプレースされるだけやん
0441デフォルトの名無しさん2017/01/16(月) 11:39:43.83ID:1jE1rrTm
アセンブリ言語の仕事は
有るか聞くような程度のやつに回る仕事ではない
0442デフォルトの名無しさん2017/01/16(月) 21:27:23.95ID:PFk6C6RG
10年、20年前も同じようなこと言ってたわけで。
0443デフォルトの名無しさん2017/01/17(火) 01:10:20.90ID:MyNqNbNL
プログラマー失格なんだろうが名前がかっこわるい言語や処理系は使う気がおきない・・・
GoとかGoとかGoとか
0444デフォルトの名無しさん2017/01/17(火) 01:43:54.38ID:SfC1RQBu
その点ElixirとPhoenixは厨二心くすぐる良いネーミング
0445デフォルトの名無しさん2017/01/17(火) 06:57:19.29ID:F7nL193/
実用性はないだろうけどhaskell面白い
0446デフォルトの名無しさん2017/01/17(火) 07:25:18.30ID:mlYpDpZm
>>443
ググルのくせにググラビティの低い単語使うなって感じだわな
それとも間違えて検索したやつも釣る作戦なのか?
0447デフォルトの名無しさん2017/01/17(火) 07:28:23.67ID:o6RPtWbY
その点ではHoogleがあるHaskellは使いやすい
0448デフォルトの名無しさん2017/01/17(火) 17:19:23.23ID:1PLMnPDO
>>443
PHPとかVBもかなり恥ずかしい
0449デフォルトの名無しさん2017/01/17(火) 23:38:44.00ID:mlYpDpZm
>>448
名前だけじゃなくて中身もゴミだからセーフ
0450デフォルトの名無しさん2017/01/17(火) 23:38:54.26ID:tEbt44iK
Haskellはうんこ
基礎部分に遅延評価なんて必要なかったのに、これ入れたせいでまともにデバッグもできない
でも好き
0451デフォルトの名無しさん2017/01/18(水) 00:27:03.29ID:8wN4arsI
>>450
ツンデレめw
0452デフォルトの名無しさん2017/01/18(水) 01:22:48.98ID:89m8Rmgi
ここまで、Elmの話題が皆無…
0453デフォルトの名無しさん2017/01/18(水) 01:23:42.53ID:mjM2FghJ
>>450
きしょ
0454デフォルトの名無しさん2017/01/18(水) 09:02:36.47ID:lnNGIUHh
>>452
なぜかHaskell使いに仲間意識持たれて初心者が勝手に遠ざかっていくElmくんかわいそう
0455デフォルトの名無しさん2017/01/18(水) 20:16:05.51ID:mPXW+ZQ1
趣味ですらアセンブラが活躍する場所がなくなってきたな
昔はちょっとしたパズル感覚で遊んでたのに、今は開発環境見つけるだけで一苦労
手軽にアセンブラしようと思ったら組み込みになってしまう
0456デフォルトの名無しさん2017/01/18(水) 20:50:56.98ID:gekV74Sk
JITが大流行りという印象だが
0457デフォルトの名無しさん2017/01/18(水) 22:47:06.89ID:47oqHyXA
Erlang読みにくいって思ってたけど、ちょっと触ってみよかな
0458デフォルトの名無しさん2017/01/19(木) 00:11:30.37ID:CpaC5IR5
やっぱScalaよりKotlinだよね
0459デフォルトの名無しさん2017/01/19(木) 01:42:08.57ID:zHR4QFYC
ちょっと待って.このスレ, Rust に対して「関数型」って位置づけで理解してるの!?!?!?
確かに Haskell あたりから良い言語機能パクってるし,そう見えても仕方ない部分はあるかもだけど,
Rust はどこからどう見ても現在の C++ の位置(システムプログラミング)を置き換える大本命でしょ.
自分の周りを見てみる限り,トップレベルで C++ を理解して使っている人ほど
Rust に惹きつけられてるって印象なんだけれど…….
0460デフォルトの名無しさん2017/01/19(木) 02:50:28.41ID:RXOn32X2
>>459
言語のパラダイムとその目的は直交する概念でしょう
システムプログラミングを目的とする言語は常にC++的パラダイム、
まあこれもなんのことか分からんが、
でなければいけないというのはおかしい
むしろ違うからこそ置き換えが生じるなんてこともあるだろ
0461デフォルトの名無しさん2017/01/19(木) 06:24:55.96ID:/jbUfW0M
>>459
言語機能にHaskell云々とかが謎
一意型はCleanとかだし、traitとかもないよ
メモリ管理的にも基本は紛うことなくC++で間違いない
むしろなんでそう思ったの?
0462デフォルトの名無しさん2017/01/19(木) 07:41:32.90ID:CpaC5IR5
モジラだから始まる前から負けてる
0463デフォルトの名無しさん2017/01/19(木) 07:43:34.72ID:RXOn32X2
はい、Goの方が好きです
0464デフォルトの名無しさん2017/01/19(木) 10:52:15.29ID:WfPlwH7z
>>459
お前はいきなり何言ってるの?
誰が「関数型だ!」なんて言ってる?
関数型の特徴 *も* あるってだけだろ?
04654592017/01/19(木) 12:25:38.64ID:zHR4QFYC
すいません.スレに Rust に対して関数型だという認識でいるっぽい
レスが散見されたので脊髄反射で意味不明なこと書いてしまいました.
無視してください.お騒がせしました.
0466デフォルトの名無しさん2017/01/19(木) 12:36:13.78ID:3cGCPrfQ
459の人気に嫉妬 (C++屋)
0467デフォルトの名無しさん2017/01/19(木) 17:34:52.40ID:/jbUfW0M
>>465
言い訳も意味不明すぎる…
人のせいかよ
0468デフォルトの名無しさん2017/01/19(木) 23:15:35.47ID:ywtfLg9V
>>438 >>442
うちの会社は去年、定年でアセンブラ職人が文字通り職場から消えた
もう仕事請け負えなくなった
0469デフォルトの名無しさん2017/01/20(金) 23:05:58.25ID:nqPs9mCA
WikipediaのGoの記事でパラダイムの欄にコンパイラ言語って書いてあるんだけど
あれどういう意味?
0470デフォルトの名無しさん2017/01/22(日) 00:24:26.64ID:JSjE+wfT
実装が主にコンパイラであるとか、その程度じゃないの
0471デフォルトの名無しさん2017/01/22(日) 01:03:58.55ID:34mb+epJ
”コンパイラ”という言葉の使い方間違えてない???
0472デフォルトの名無しさん2017/01/22(日) 01:36:33.15ID:EXKusZK8
Cが歪んだ欠陥の多い英語なら、RustはエスペラントでGoは土方の符丁。
それが次世代かと問われればまぁ悩むが、少なくともエスペラントよりは既に役に立ってる。
0473デフォルトの名無しさん2017/01/22(日) 12:47:11.76ID:gR66eMPN
こういうRust触ったこともないのに語るやつ多すぎ
仕様変遷しまくってる事すら知らんのだろうけど
0474デフォルトの名無しさん2017/01/22(日) 15:18:10.45ID:5oGRvfyZ
じゃあLispはラテン語かね?
0475デフォルトの名無しさん2017/01/22(日) 16:00:53.39ID:Y6eD6Fzb
そもそもお前らほんとにスレで上がってるような新興言語実際に使ってるんか?
0476デフォルトの名無しさん2017/01/22(日) 16:48:44.65ID:LnKWEMsE
  __    .,-、
  │゙}    | .|    ,「゙'',!     ,,.,,
 .│.| lニ二" 二,,コ  | .l      l、.゙l、
  | .|    | |    | .|      l、.゙l
  | .|  __} .|     l ゙l ,r、   . l .゙l   .,i-''''二二゙''、
  | .| ./┌‐i、 ,"ヽ,、  l ヽl  i     l-┘   ゙'''"    | !
  ゙l,,〕 ヾ‐''_,/`゙'-"   ヽ  ,/          ,i--‐'゙,/
        ̄        ゙''''"            `'''^´
0477デフォルトの名無しさん2017/01/22(日) 16:53:40.51ID:x/I4pfhT
この記号の羅列何?
0478デフォルトの名無しさん2017/01/22(日) 21:14:13.78ID:oEaDlbYA
>>473
触ってるよ。エスペラントよりもっとひどくなってるな。
変遷しまくる程度にしか煮詰まってないか、必要でない機能がまだまだあるんだろ。
しょーじき、賢いプリプロセッサ程度じゃん。今の状態。

>>475
GoとErlang使ってるよ。あとHaxeと。
0479デフォルトの名無しさん2017/01/22(日) 23:47:16.62ID:34mb+epJ
>>478
すげー変態的
趣味だろ?業務じゃありえんやろ?
0480デフォルトの名無しさん2017/01/22(日) 23:57:03.89ID:oEaDlbYA
>>479
Goはふつーに実務で使ってる。
ErlangはCouchDB周りで触らざるを得ないときには少し読むけど、それ以外は趣味。
Haxeは完全に趣味。
0481デフォルトの名無しさん2017/01/23(月) 02:21:05.80ID:2bmTlfe7
>>478
明らかに触ってない人間の解説乙
どこがプリプロセッサやねんw
0482デフォルトの名無しさん2017/01/23(月) 08:52:10.29ID:+G4albEd
たぶんプリプロセッサがわかってないんだと思う
0483デフォルトの名無しさん2017/01/23(月) 10:43:46.85ID:+k8JNm+i
>>481
好きな人にはそうとしか見えないんだろうね。蓼食う虫も好き好きだし。
他の言語で十分なんとでもなる事をキツめのlintとマクロ展開でごまかしてるだけにしか見えん。
よくできたCじゃん。
0484デフォルトの名無しさん2017/01/23(月) 14:12:35.24ID:uB7NxMna
>>1
一番進み過ぎた言語 Prolog こそ次世代言語の本命でしょう。
0485デフォルトの名無しさん2017/01/23(月) 17:18:39.16ID:uf3hmdYR
今まで「u'日本語'」じゃないと文字化けしていたのが
Python 3.6で試したら「'日本語'」でも文字化けしなくなった。
いつのバージョンからuなしでも文字化けしないようになりました?

import win32com.client
shell = win32com.client.Dispatch('WScript.Shell')
shell.Popup('日本語')
0486デフォルトの名無しさん2017/01/23(月) 18:41:30.80ID:2bmTlfe7
>>483
最近のlintは型推論まであるのか、そりゃすごいな
ところで素朴な疑問なんだけど、プログラミング一切できない人が、なんでプログラム板の次世代言語のスレで議論できると思ったの?
0487デフォルトの名無しさん2017/01/23(月) 18:47:35.91ID:+k8JNm+i
>>486
うーん、出来るけどね。
Roslynなんかはコンパイルとしての動きとは別にちゃんと解釈して、インテリセンス出したりしよるけど。
文字列としてではなく、ASTとして解釈するたぐいのlinterならちゃんとやりよるよ。gometalintとか。
見聞狭いね。議論出来るの?
0488デフォルトの名無しさん2017/01/23(月) 18:57:29.08ID:+k8JNm+i
こういう煽りとか受けると、Rust使いの人って、Ruby使いそっくりだな、って思うわ。
自分が使ってるものが一番であるべきで、別の解はありえないと思ってるとか、
その中のいびつな部分や、別に言語が担保するべきでない部分まで肯定する所とか。
あのマクロ定義、間抜けすぎるだろ。
0489デフォルトの名無しさん2017/01/23(月) 20:08:59.71ID:2bmTlfe7
>>487
RoslynにLint関係ねえじゃんw
しかもastと型推論は別なのに、それすらわからんとか
最初に叩いて煽ったのもそっち
知識アピールはいいけど、墓穴掘りすぎだぞニワカ
0490デフォルトの名無しさん2017/01/23(月) 20:14:39.55ID:2bmTlfe7
>>488
お前が大した知識ないのはバレバレ
しかもどんどん自分の意見の適用範囲広げてるけど、
その突っ込んでる内容、あらゆる高級言語に当てはまる詭弁ばかり
最初から煽る目的で議論する気ないくせに良く言えるな
0491デフォルトの名無しさん2017/01/23(月) 20:32:56.32ID:a4+az9Fs
そんなことよりClojureの話しようぜ
0492デフォルトの名無しさん2017/01/23(月) 22:52:08.68ID:+k8JNm+i
>>489
お前はちょっとずれてる。
他の高級言語で出来るなら他の高級言語使えば良いんだよ、と言ってんの。
歪にでも機能盛るのなんか簡単なんだから。
Cのプリプロセッサの闇マクロとレベルが変わらん。
と言うか、ごく最近のCならその辺割と無理矢理でも対応してる。autoとか。
叩いて煽ったって言ってるが、被害妄想も甚だしいだろ。
ただの相応の評価だよ。
ErlangやらGoみたく、抽象化に成功してる訳でなく、ただの意識高い言語でしかない。エスペラントそのもの。

別なのに、って言うが型推論するためには、何が必要か考えれば、自明でしょ。
余程、知識が無いのが悔しいんだなあとしか言えんな。
0493デフォルトの名無しさん2017/01/24(火) 01:43:26.86ID:AL5KdU5e
めちゃくちゃな位置に読点打つのやめてくれ
0494デフォルトの名無しさん2017/01/24(火) 02:59:17.73ID:nvNd8iP1
どうでもいいけど最近(というほど最近でもないけど)autoが変わったのはC++な
0495デフォルトの名無しさん2017/01/24(火) 09:41:48.45ID:X6a8J5Il
こういうやつがRustに来ないようでなにより
0496デフォルトの名無しさん2017/01/24(火) 10:10:39.11ID:9yrS8iWN
numpyみたいな配列演算が出来て、高速なバイナリを吐ける数少ない言語、Fortean
0497デフォルトの名無しさん2017/01/24(火) 10:35:47.27ID:tjYeiy24
中二病御用達
0498デフォルトの名無しさん2017/01/24(火) 12:35:58.80ID:ZplzBBh2
やはり、日本ではRubyがこれからの主流になっていく。
Rubyは、わかりやすくて、とても便利な言語になっていくよ。
0499デフォルトの名無しさん2017/01/24(火) 12:41:09.69ID:v4PNRBuu
https://youtu.be/quIHgwuF6r4
0500デフォルトの名無しさん2017/01/24(火) 12:45:34.16ID:1jD/G+od
>>498
無理だよw
Haskellが有るから
0501デフォルトの名無しさん2017/01/24(火) 13:06:07.13ID:ZplzBBh2
Haskellってどんな言語?
0502デフォルトの名無しさん2017/01/24(火) 13:41:46.26ID:8DG1wjio
個人的な印象だけど、自己満足のオナニーコードゴルフをするための言語?
0503デフォルトの名無しさん2017/01/24(火) 13:44:01.82ID:qWEELi6g
ゲイが好んで使う言語教えて
0504デフォルトの名無しさん2017/01/24(火) 14:19:38.30ID:wfxe1Gqr
>>496
Julia
python
0505デフォルトの名無しさん2017/01/24(火) 15:39:09.84ID:pLdiQDlt
>>504
Juliaはバイナリ吐けないだろ!
0506デフォルトの名無しさん2017/01/24(火) 15:45:45.60ID:PRTM8AJA
>>505
馬鹿はだまってろ
0507デフォルトの名無しさん2017/01/24(火) 16:25:37.57ID:pLdiQDlt
>>506
どう馬鹿なのか説明しろ
0508デフォルトの名無しさん2017/01/24(火) 17:54:48.16ID:vEK0QlhR
>>498
世界で一番醜い言語引き合いに出して面白い?
0509デフォルトの名無しさん2017/01/24(火) 21:22:20.55ID:GIi5sfFU
これからはVHDLだよ。
0510デフォルトの名無しさん2017/01/25(水) 00:03:19.00ID:lIO6GAcv
プリティで
プロプロ
ふたりは
プリプロセッサ
0511デフォルトの名無しさん2017/01/25(水) 06:03:53.20ID:X1/NSe9Y
>>492
Cのautoは今でもANSIのままだろw
これでCすら触ったことないのがバレたとw
この調子じゃCやRustやRubyどころか、GoとErlangも触ってないなw

で理解できない素人が背伸びすると、
平気で「賢いCプリプロセッサ」とか異次元方向の妄想した上に、
理解できない言い訳に、使ってる奴は意識高い系だからとか言っちゃうw

プログラマならRustの種々の型機能やメモリ機能を軽く紹介読むか、触ればCとは別種とすぐわかる

つかGoやErlangみたいのは、経緯も機能も抽象化じゃなく、どちらもよく考えられた特化だよ
どちらも苦手なものは冗長になり、抽象でもなんでもない
抽象化してるのは記述側であって、それこそast変換やマクロの担当領域
で、なぜか流れでお前の言う意味の抽象化に優れるRubyを貶しとるのも、また墓穴だなw

そもそもジェネリックプログラミングもさせてくれない物を抽象化とか、
さらにRustの文脈でGoと明らかに対照的なErlangと比べてる時点で、なーんもわかっとらん
触ってもないのにErlangやGo出さないでくれな?
0512デフォルトの名無しさん2017/01/25(水) 08:45:34.77ID:JgDNrEDV
必死だな。
0513デフォルトの名無しさん2017/01/25(水) 11:11:42.72ID:rV9IVXhE
なんでRustがあんな褒め称えられてるのかわからん。
書きたいことも書けないコンセプト段階からの欠陥言語。そのうえ全く言語仕様が安定してないくせにバージョン1を名乗っていやがる。

なにより開発元があの悪名高いモジカス。
使ってるやつの名簿を詐欺師に売ったら儲かるだろうなとしか思えん。
0514デフォルトの名無しさん2017/01/25(水) 12:30:09.23ID:a41bI17H
LLVMのフロントになっててemscriptenでwasmに持ってけるのってどれ?
C/C++, OCaml, Rustは出来る(安定とはいっていない)っぽいんだけど
0515デフォルトの名無しさん2017/01/25(水) 13:37:52.95ID:jalhm0fE
書きたい事が書けないって普段良くない設計でばかり書いてるんじゃないかなぁという印象
0516デフォルトの名無しさん2017/01/25(水) 14:58:30.01ID:qs8Et3LQ
>>515
Rustが受け入れない設計は悪い設計とか信者はお務め御苦労様ですとしか言えんわ。

ポインタ引き回してアロケーションの回数抑えるみたいな当たり前の設計も良くない設計か?
0517デフォルトの名無しさん2017/01/25(水) 16:10:34.78ID:oqpNR6jO
アロケーションの使い回しってCとかForthくらいでしかやらんと思うんだが、そんな良い設計かね?リスクに見合うほどのリターンが得られるのか疑問
スレタイにある次世代言語の中でアロケーション使い回しが一応可能なのはRustだけなのにRust叩きに使うのもおかしい

あと、1.0より前の仕様変更とそれ以降の仕様追加を一緒にしちゃいけないよ。1.0で動くコードは1.14でも動く
nightly使ってて仕様変更が激しいと文句言ってるなんて流石に無いと思うが
0518デフォルトの名無しさん2017/01/25(水) 17:13:18.29ID:qs8Et3LQ
>>517
スレタイ言語の中で「システムプログラミング言語」と自称してるのはRustだけのはず

システムプログラミング用途というからにはメモリ領域を人の手で管理することができないといけないのに、
メモリ領域の操作に異常に制限がかかっていて単純なポインタ引き回しすらコンパイラを通してくれないのは
コンセプトの時点で矛盾していて使えたもんじゃない欠陥言語といえる。
プログラム全体をunsafeで囲わないと何もできやしない。

スレタイの他の言語は別にシステムプログラミング言語とは自称してないからこの点についてはどうでもいい。

あと「言語仕様が安定してない」は自分の日本語が悪かった。
正しく言うと「言語仕様が完成していないのにバージョン1を名乗っている」だ。
stableでは全く機能が足りないからと、事実上nightlyがスタンダード化してる状況が言語として最悪だということがいいたかった。
バージョン1.0から今までで後方互換性が崩れたことがないのはその通りで、そういう意味では安定しているのは間違いない。
0519デフォルトの名無しさん2017/01/25(水) 21:34:41.13ID:Lq+TsBQo
まあ、Rustがメインになることなんて無いんだからどうでもいい話だわ

そんな事よりもっと前向きな話しようぜ
0520デフォルトの名無しさん2017/01/26(木) 00:24:16.43ID:gI5T8RS3
そもそもGoよりマシって話はあってもRustを褒め称えるレスなんて無くね
0521デフォルトの名無しさん2017/01/26(木) 01:22:41.08ID:U+wIxi6K
Rustは存在が破綻してるから言語の選択肢に入ってること自体が異常だから。
次世代言語と称してMalbolgeがリストに入ってたらちょっと待てってなるだろ?
0522デフォルトの名無しさん2017/01/26(木) 01:35:23.63ID:ReQNma6u
Rustは確かにC++的な意味で糞だけど
仕様すら読めない半可通が叩ける言語でもないがな
0523デフォルトの名無しさん2017/01/26(木) 02:15:11.80ID:HYQr5vgB
ものすごい抽象的だけど、
コードをきれいに書く力って、後天的に身に付けられるものかな?

職場のオッサンが、マジでゴミみたいなコード書いてて
しかもそいつが年功序列でレビュワーやっててすごい迷惑

Effective Javaもリーダブルコードも何も勉強してないような、
3年目の俺から見ても汚物にしか見えないコード書いてるんだ

俺もサボってたら将来あんな薄汚いオッサンになるかと思うと恐怖でしかない
でもサボるサボらずに関わらず、コード力が先天的な頭のよさで決まるのだとしたら・・・・
0524デフォルトの名無しさん2017/01/26(木) 02:17:15.59ID:HYQr5vgB
付け加えて、言語で糞コードをなくせるか?
についても気になっている

少なくとも、PHPが糞コードを幇助する糞言語なのは
身をもって知っている
0525デフォルトの名無しさん2017/01/26(木) 09:22:54.52ID:a0I3whVq
JS、PHPは糞しか生まれない
0526デフォルトの名無しさん2017/01/26(木) 10:09:18.60ID:DaX/1RQ+
クソしか生まない言語はあれど、
クソを生まない言語はないと思われる。

あと無能な老人が害悪なのは今の日本の象徴だから割とどうしようもない。
0527デフォルトの名無しさん2017/01/26(木) 10:14:14.69ID:RJ0Hpx43
コーダーは糞袋
0528デフォルトの名無しさん2017/01/26(木) 12:39:33.06ID:bsKQCPlQ
swiftは同じ処理を書くと同じコードになるって聞いたんだが
0529デフォルトの名無しさん2017/01/26(木) 12:43:36.92ID:7kwoEq8b
スポーツと並べるとわかりやすいんじゃない?
正しく練習しなきゃ上手くならない。道具がクソだと下手になる。
0530デフォルトの名無しさん2017/01/26(木) 17:57:09.84ID:g5wYhpw2
そのうちIntelliSenseみたいなのがめちゃくちゃ高性能になって糞コードも勝手に直してくれるようになるでしょ
0531デフォルトの名無しさん2017/01/26(木) 20:58:32.08ID:gWo2TLzQ
>>523
どんな感じなのがくそだったん?
自分はプログラムを生業にはしてないから、
差し支えなければプロの視点を教えてほしい。
0532デフォルトの名無しさん2017/01/26(木) 22:22:51.25ID:KFyW57Yg
結局は都合の悪いことに対して
自分で改善しようとするか無視するか、人のせいにするかってことだな。
はっきりいって技術のあるなしでも言語の良しあしでもない。
0533デフォルトの名無しさん2017/01/26(木) 23:47:59.96ID:RxLp9HsT
死んでいく老人の話じゃなくて次世代言語の話しろよ
0534デフォルトの名無しさん2017/01/27(金) 00:04:55.72ID:Qhk5mtQo
Fortranの未来について語ろう
0535デフォルトの名無しさん2017/01/27(金) 01:24:47.99ID:NQntvNS5
>>523
> ものすごい抽象的だけど、
> コードをきれいに書く力って、後天的に身に付けられるものかな?

もちろん。
ただそのためには自分でコード書いて他人のコードや良き本も読んで、とそれなりに努力をしないといけない。
音楽家しかり小説家しかり。
彼ら彼女らはいつも凄い作品を書いてきたわけじゃない。
凄い作品の後ろにはたくさんの没作品があったことだろう。
ただ、ま、世の中にはその範疇から外れた天才もいるだろうけどね。

で、そのおっさんはそういう努力をしないで歳だけ重ねてしまったんだろうなぁ。
年功序列という制度の悪いところでもあるよなぁ。
0536デフォルトの名無しさん2017/01/27(金) 01:35:56.30ID:62FFmlgo
なんかきもい
0537デフォルトの名無しさん2017/01/27(金) 01:40:40.83ID:x0qfwiEe
┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ヽ,.-、, '  ________  さ い た ま 銘 菓    .┃
┃‐(.゚∀゚)‐<風が語り掛けます   _|_  ┬─ ┬─      .┃
┃ , '`,、',、  二二二二二二二二   .|  .ノフ  ノ口      ┃
┃∩( ゚∀゚),<うまい、うますぎる     食曼  豆頁      ┃
┃ Y  イ   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄      (株)十万石ふくさや┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛
0538デフォルトの名無しさん2017/01/27(金) 02:47:21.08ID:lXZFJWwl
Android上で動かない言語って
次世代のカテゴリに含めても良いのだろうか・・・?
0539デフォルトの名無しさん2017/01/27(金) 06:05:42.92ID:jLKypH4t
>>533
過去のものの悪習を次世代言語はどう防止するのかを議論するのも大事では?
見やすいコードならPython、モナドで文脈を明示、意識させるHaskellとか。

>>523が具体的事例を挙げれば議論のきっかけになるのではないかと。
0540デフォルトの名無しさん2017/01/27(金) 06:31:30.91ID:gELNspyu
こんなこと言ったらお終いな気はするけど、日本じゃJavaとC#じゃね?
未来と言うより将来も安泰そうなの。
結局サポートする企業がどこまでライブラリやプラットホームカバーするのよ?ってのが日本じゃ強いよね。
自分で好きな言語のプラットホーム拡張保守やってる所ってあるけ?
って、ソニーはC#でやってたか。
0541デフォルトの名無しさん2017/01/27(金) 06:43:37.24ID:rENqMvh4
JavaはOracleが持ってる時点でもう
0542デフォルトの名無しさん2017/01/27(金) 06:53:23.29ID:gELNspyu
>>523
Haskellは副作用有無(入出力)の分割が徹底してるし、パターンマッチで特殊な引数の場合の返り値も徹底されるから保守性や使い回しはやり易い。
(例えばテキストに行番号入れるコード書いた後、さらに単語ごとに別の加工したい際、行番号入れるコードがそのまま流用出来る場合が多い。手続き型言語だと、関数(メソッド)内に出力処理を書いて再利用出来ないことが多い)

コンパイラ言語なのにLLとどっこいどっこいの速度だったり、ライブラリがまだまだ揃ってないのもあるから実用かは微妙だけど、勉強する価値はある。
(LLのライブラリがCで書かれてることが多く、ライブラリ多用するとHaskellと速度差がほぼ無いし、LLはライブラリ多用するのが普通)
0543デフォルトの名無しさん2017/01/27(金) 08:44:31.79ID:0sZ+vQY8
>>540
C#、こないだ触ることになったんだけど、相当賢くなってるしね。
F#もあるし、悪いものでは無くなってきてる。
0544デフォルトの名無しさん2017/01/27(金) 09:54:43.96ID:7atcBh1Q
>>540
なんだかんだphp使ってるとこ多くない?
javaの案件は面白くない案件が多そう。scalaはまだ良さそうだけど。
0545デフォルトの名無しさん2017/01/27(金) 10:19:03.13ID:wVPMaiNQ
>>542
食えない言語勉強する暇があるブルジョア自慢乙
0546デフォルトの名無しさん2017/01/27(金) 11:04:09.93ID:0qUJ+35F
F#言語としては好きなんだけどイマイチ使いどころがないんだよな
C#の代わりに使おうとすると何するにもひと工夫必要でじゃあC#使うわってなっちゃう
0547デフォルトの名無しさん2017/01/27(金) 11:53:10.18ID:tJxB3IWG
>>545
Haskellを次世代言語の位置づけにするのはおかしいが、可能性を
秘めているのはこの言語しかないのではないか。
C#は次世代の資格はあるが、もうほとんど死んでいる。
0548デフォルトの名無しさん2017/01/27(金) 11:53:34.08ID:0sZ+vQY8
>>546
うん、まぁRustと他の言語の組み合わせ程度にめんどくさいと思う。
他の言語に無い概念持ってる言語はその中で閉じといてもらうのが一番良い。いろんな意味で。
0549デフォルトの名無しさん2017/01/27(金) 11:54:46.95ID:0sZ+vQY8
>>547
今一所懸命に壊死したところ切り離してるよw
15年の負の遺産は相当。
0550デフォルトの名無しさん2017/01/27(金) 12:15:02.65ID:62FFmlgo
すべてF#でやれれば最高なのにって思う
F#覚えたらC#書く気にならない
0551デフォルトの名無しさん2017/01/27(金) 12:26:40.08ID:xRTGaRf/
ゲーマー的にはC#はもう次世代じゃなくて現世代だな
次世代はRustっぽい
0552デフォルトの名無しさん2017/01/27(金) 13:20:37.43ID:QnhFowJV
>>551
Rustは次世代どころか死産だろ。
MSのTypeScriptとGoogleのGoとAppleのSwiftくらいじゃねーの生きてる次世代候補。

やっぱり資本金の差だわな。
0553デフォルトの名無しさん2017/01/27(金) 19:55:10.59ID:oQLdhHNU
>>547
死んでいるとは?
0554デフォルトの名無しさん2017/01/28(土) 00:46:14.24ID:W3Ygu+TX
>>552
どれもショボいな
GroovyやRubyのパクリばっかり
0555デフォルトの名無しさん2017/01/28(土) 01:06:52.81ID:+VKCGfwL
c++もgccがc++17をサポートしだしたようだしまだまだいくよー、ってかんじだな。
0556デフォルトの名無しさん2017/01/28(土) 01:09:22.32ID:+VKCGfwL
rustはその書きづらさとかが何かadaを彷彿とさせる。
どっちもろくに触ってないからまゆつばですが。
0557デフォルトの名無しさん2017/01/28(土) 01:09:58.84ID:7QikrX9R
C++ はEigenが仕様についてこれなくなり始めていることを除けば良い方向に進んでいるな
0558デフォルトの名無しさん2017/01/28(土) 01:17:58.53ID:VI/ruDwL
Prologが再評価される日は来るのだろうか
0559デフォルトの名無しさん2017/01/28(土) 02:12:03.27ID:XFq0DIM0
ねぇよ
関数プログラミング言語の一族の産まれた時点で終了
エピローグでも書いてろだな
0560デフォルトの名無しさん2017/01/28(土) 02:36:54.12ID:W3Ygu+TX
>>556
前はC++代替えとしてかなり期待してたけど
なんかもうC++でいいかなって…
0561デフォルトの名無しさん2017/01/28(土) 04:03:27.60ID:RjLDEMKU
もう全部Pythonでいいよ
0562デフォルトの名無しさん2017/01/28(土) 07:52:24.48ID:5vZUVW53
>>558
最後に生き残るのは、PrologとHaskellだけだと思います。
0563デフォルトの名無しさん2017/01/28(土) 08:23:29.25ID:qS20CWWP
>>562
最後は単純なものに収束するのだろうから、Prologは有力だな。
この両方の時代は来るのだろうけれど、さらに20年以上先ではないか。
0564デフォルトの名無しさん2017/01/28(土) 08:36:19.21ID:t4EEW1nJ
無いわ。
出てから何十年たってると思ってんだ。
そんな時代がくるならとっくに来てる
0565デフォルトの名無しさん2017/01/28(土) 10:03:41.39ID:O6PqKCVh
結局C言語に戻っちゃうんだよな。
そしてC++でいいやってなる。

C++ってある意味次世代言語だと思うんだけど。
こんだけ進化しまくってる言語他にない。
0566デフォルトの名無しさん2017/01/28(土) 10:22:49.12ID:e7B3+uux
ガラパゴス化
0567デフォルトの名無しさん2017/01/28(土) 10:24:52.55ID:e7B3+uux
生き残るのはDSLだよ
COBOLとか終わる終わると言われ続けてるけど案外長い気がしてきた
0568デフォルトの名無しさん2017/01/28(土) 10:31:55.15ID:W3Ygu+TX
>>567
別にCOBOLはDSLじゃないんですけど!
DSLっぽい扱いなだけなんですけど!
0569デフォルトの名無しさん2017/01/28(土) 13:33:57.48ID:sj27+yiD
>>554
言語としてショボいかどうかと息してるかどうかは別問題だからな。仕方ない。
0570デフォルトの名無しさん2017/01/28(土) 14:37:25.75ID:uVQI7C3W
>>567
> 生き残るのはDSLだよ

DSLというよりも応用分野を確保し独占状態にしてしまった言語が生き残る
その言語を死滅させるには、その応用分野そのものが消滅するか、その応用分野の全てのコードを別の言語でリライトしなければならないから
(後者はリライトのコスト以上に、リライト後のコードの信頼性をリライト前の旧言語のコード並みに向上させるのに要するコストが莫大で現実的に不可能)

> COBOLとか終わる終わると言われ続けてるけど案外長い気がしてきた

COBOLは正にその実例
FORTRANも科学技術計算を握ってるから強い(Cなどに多少は置き換えられたりしてるが、スパコン向けの本当に大きく重要な有償パッケージは
FORTRANのままがほとんど、何しろ誰も全面的にリライトなんてバグ=計算値の間違いの発生が怖くてできない)

「古くから使い続けられている言語ほど今後も永く生き延びると期待して良い」というのがプログラミング言語の余命に関する確実性の高い法則
これは裏を返すと、

     新しい言語ほど早く死滅してしまうと期待できる

となる

だから新しい言語が定着する可能性は現実には一つだけだ(但し、これは新言語が定着するための必要条件であって十分条件ではない)
今まで存在してなかった(少なくとも極く一部の専門家や好き者以外の人間にとっては)全く新しい応用分野と共にその分野用の言語として登場することだ
その具体例としては、例えば以下の2つ

Cが生き残ってて容易に死滅しそうにない理由はそれまでCPU毎にバラバラだった機械語(アセンブリ言語)で書くのが当たり前だった
システム記述用として登場したから

Javaが生き残ってるのは、ネットワークを超えて実行するプログラムという応用と共に登場したから
0571デフォルトの名無しさん2017/01/28(土) 16:36:11.52ID:XSc31UhP
でも僕COBOLもFORTRANも書きたくないです
0572デフォルトの名無しさん2017/01/28(土) 17:11:37.48ID:Y6DJH7el
書きたくないやつは仕事を失う
耐えられた者こそが適正のある者
0573デフォルトの名無しさん2017/01/28(土) 17:15:36.29ID:0tDA2X/+
ナンキン
0574デフォルトの名無しさん2017/01/28(土) 19:21:08.55ID:5vZUVW53
>>563
5年くらいすると現在のOR的なAIが見切られて、いよいよ本命の
論理を軸とした知識プログラミングの時代が来るけれど、Prologは遅いから、
専用プロセッサが出てくるまでは本格化しない。やっぱり15年後かな。
0575デフォルトの名無しさん2017/01/28(土) 19:34:55.34ID:YCGMA1K1
>>574
15年なんてあっという間だよ
0576デフォルトの名無しさん2017/01/28(土) 20:56:30.54ID:t4EEW1nJ
プログラミング言語専用プロセッサとか古い夢見すぎ。今までいくつの専用プロセッサが作られては捨てられてきたと思ってんだ
0577デフォルトの名無しさん2017/01/28(土) 21:31:46.52ID:aj1kIEcQ
Lispマシン……
0578デフォルトの名無しさん2017/01/28(土) 21:39:50.81ID:qZyyQJ1b
富士通のLisp専用のメインフレームとかあったよなあ
0579デフォルトの名無しさん2017/01/28(土) 21:51:03.67ID:JU7OuWYC
シンボリックス…
0580デフォルトの名無しさん2017/01/28(土) 21:51:56.18ID:VuG25nQb
結局メモリ読み込んで演算してメモリに書き込むわけだから
cに戻ってくるわけだよ。
0581デフォルトの名無しさん2017/01/28(土) 21:54:11.85ID:5vZUVW53
>>576
15年後には深層学習の延長で、大学生でもインテルやAMDクラスの設計が
できるようになる。そういうメーカーは注文に応じて焼くだけ。
0582デフォルトの名無しさん2017/01/28(土) 21:56:11.24ID:aj1kIEcQ
>>581
深層学習でCPU作るってどういうことだってばよ……
0583デフォルトの名無しさん2017/01/28(土) 22:11:03.00ID:5eYhXXZd
15年後には Central Processing Unit なんてなくなってるんじゃないか
0584デフォルトの名無しさん2017/01/28(土) 23:05:42.85ID:XSc31UhP
>>581
ワイのおちんちんもCPUにされそうです・・・
0585デフォルトの名無しさん2017/01/29(日) 00:19:47.69ID:cip5qUAM
IoT(Internet of Tinkos)時代の幕開けか・・・
0586デフォルトの名無しさん2017/01/29(日) 07:39:32.16ID:m5jrqXSZ
Prologって言語は速度が超遅いから今はマイナーだが
速くできれば、すぐにメジャーに復帰にするよ。15年どころか3年後には。
0587デフォルトの名無しさん2017/01/29(日) 08:09:46.11ID:rcxLcsaw
カットオペレーターが鬼門
0588デフォルトの名無しさん2017/01/29(日) 08:36:49.81ID:uQxwW8BY
そんなに良いものならとっくに誰かが高速化に取り組んでるよね
0589デフォルトの名無しさん2017/01/29(日) 09:45:13.15ID:9yjQUvuF
どう書けるかも大事だが、何ができるかが重要だろ
そのプロロロとかいうゴミは、いったい何ができるんだ?
ハロワして終わりのPHP以下のゴミだろ?
0590デフォルトの名無しさん2017/01/29(日) 11:23:49.24ID:OetkT2qe
>>589
GeneXus Watson Pepper
0591デフォルトの名無しさん2017/01/29(日) 12:14:43.50ID:mgBdW0hY
DOMとJSONとJavaScriptの構文木のシステムをメガバンクみたいに統合できたらいいなあ
0592デフォルトの名無しさん2017/01/29(日) 12:23:55.05ID:e27+9zV2
clojureにはcore.logicってのがあってな
0593デフォルトの名無しさん2017/01/29(日) 13:46:52.90ID:mgBdW0hY
括弧を省略できない言語は終わったんだ
Haskellで省略された括弧を全部書いてみろ
0594デフォルトの名無しさん2017/01/29(日) 14:42:14.41ID:9yjQUvuF
なお省略しすぎて読めなくなるもよう
0595デフォルトの名無しさん2017/01/29(日) 16:05:45.85ID:l64DxDCa
>>589
アセンブラでできること以上のことはどんな言語でも実行不可能。
0596デフォルトの名無しさん2017/01/29(日) 16:39:24.28ID:SZxfjGEN
F#はバージョンが5つぐらい進んだC#と思っていい
0597デフォルトの名無しさん2017/01/29(日) 16:42:43.91ID:SZxfjGEN
>>307
F#使ってるやつはF#は C# を全てうわまってるって言い切ってるんだけどな
事実はそうじゃないってことかね
0598デフォルトの名無しさん2017/01/29(日) 16:58:32.59ID:FGqv7Eoq
LISP Prolog Haskell この三言語だけが生き残る。
0599デフォルトの名無しさん2017/01/29(日) 18:44:33.64ID:9yjQUvuF
>>595
ではそのプロロロ(笑)でWebアプリを作ってみて下さい
0600デフォルトの名無しさん2017/01/29(日) 21:08:23.34ID:ZEtActeB
>>597
上回ってはないだろ。
0601デフォルトの名無しさん2017/01/29(日) 22:50:18.99ID:Ocx7v7z5
PrologはCのインターフェイスから呼び出して領域特化の仕事するための言語で、製品内での位置はどっちかというとLuaに近い。
それ単体でどうこうやる言語じゃないだろ。次世代言語どころかそれ単体で議論する価値がない。
0602デフォルトの名無しさん2017/01/29(日) 23:05:57.31ID:Aj7K1/f5
そんな解釈初めて聞いたわ
0603デフォルトの名無しさん2017/01/30(月) 00:46:30.51ID:HnMNGh+y
Prologを妄想で語ってるやつ多すぎて笑た
ただのDB性能依存なだけのパターンマッチ言語だから
実際さわってみ
時代遅れすぎて使えたもんじゃないから
0604デフォルトの名無しさん2017/01/30(月) 02:32:32.81ID:HbOHAf+Z
動的言語でよくあるハッシュテーブルとクロージャがPrologにはない
それは古いからではなくパターンマッチできなくなるから
0605デフォルトの名無しさん2017/01/30(月) 03:49:25.09ID:XMGcU10o
いつまで次世代言語を語るスレで化石の話をしてるんだよ
0606デフォルトの名無しさん2017/01/30(月) 04:54:24.86ID:W8ulMPLc
パターンマッチングといえばEgisonはどうなん?
0607デフォルトの名無しさん2017/01/30(月) 06:17:33.02ID:iaipgYYu
>>603
「時代」は型推論かいw
0608デフォルトの名無しさん2017/01/30(月) 09:18:10.87ID:djGawl3P
F#って次世代ちゃうの
0609デフォルトの名無しさん2017/01/30(月) 10:14:55.40ID:iaipgYYu
次世代言語という意味ではなく今後使われるであろう言語という意味だが、
Python Prolog Haskell Scratch だろう。それぞれ
多層学習 意思決定/論理 数学/型推論/遅延評価 初等教育(プログラミング)
に使われる。
0610デフォルトの名無しさん2017/01/30(月) 10:52:36.65ID:HnMNGh+y
謎のProlog押し
0611デフォルトの名無しさん2017/01/30(月) 12:15:07.23ID:HbOHAf+Z
過去の流行が再現するループ
謎ではないがループを許したら旧世代と次世代の上下関係は壊れる
0612デフォルトの名無しさん2017/01/30(月) 12:32:28.19ID:yNK3VZ2J
Prologは言わずもがなだけどEgisonも人工知能の実現を視野には入れているみたい

個人的にはHaskellで人工知能ができて主要言語に仲間入りしたら嬉しい
0613デフォルトの名無しさん2017/01/30(月) 17:09:24.55ID:fyhe5MSA
>>603
確かPrologは実用面ではUNIXでのmakeを高度化したようなアプリのインストーラの内部で様々な条件に対応したインストールを行うための
スクリプト記述用としては現在でも使われているはず

まあ普通のプログラムをあれで書く気はしないね、性能的にも処理の考えやすさでも
logicとして考えやすいのは方向性のない(あるいは双方向と言い換えても良いかも知れない)関係のレベルであって
実際の処理プログラムで必要とされる入力から出力という一方向の流れはlogicとは縁も所縁もない概念で、
だからそういう方向性のある処理をPrologで書くとなると、カットを多用せねばならなくなってlogicとしての理解容易性が急激に失われる
0614デフォルトの名無しさん2017/01/31(火) 03:09:27.57ID:tYaUr3EC
>>613
どこから突っ込めばいいのか
まず君が言ってるのは方向じゃなくて順次処理だろ
そして順次処理と論理は別に背反しない

Prologが論理的とでも言いたげだけども、ただ網羅性あるから使われてるだけで
その実単なるオーバーロードの塊でしかなく、しかもそれを書くのは人間
実際の記述は論理どころか冗長性だらけ

しかも性能も高くない
ただのレガシーだよ
0615デフォルトの名無しさん2017/01/31(火) 09:10:49.94ID:qlhVwcaG
化石の話はやめてください!
0616デフォルトの名無しさん2017/01/31(火) 09:22:33.04ID:lkTuVnqH
そうだよ。早く永遠の次世代言語Haskellさんの話に戻ろうぜ
0617デフォルトの名無しさん2017/01/31(火) 12:34:36.20ID:JS6r4WTp
>>614
Prolog自体が論理式なのだから仕方がない。
網羅性とかオーバーロードとか曖昧な表現を使わないこと。
0618デフォルトの名無しさん2017/01/31(火) 12:41:14.64ID:yyJuX8zg
>>616
どこの17歳さんかと
2004年にghcのソース読みながら書いたHaskellのコードが
2014年に手も加えずに動作したときには感動した
0619デフォルトの名無しさん2017/01/31(火) 13:15:48.55ID:vxyHL6QY
Haskellを勉強してると、Prologでよくね?って思うこと多い
0620デフォルトの名無しさん2017/01/31(火) 14:56:50.62ID:tYaUr3EC
>>617
曖昧じゃないのに曖昧と詭弁を言わないこと
0621デフォルトの名無しさん2017/01/31(火) 15:59:57.16ID:1O9cc50/
Prologなんてマトモな入門書、教科書が無いじゃん
0622デフォルトの名無しさん2017/01/31(火) 16:10:38.41ID:14v4i2eO
>>619
どの辺り?
0623デフォルトの名無しさん2017/01/31(火) 16:44:27.23ID:sDgEqzOm
>>621
The Art of Prolog
https://mitpress.mit.edu/books/art-prolog
0624デフォルトの名無しさん2017/01/31(火) 17:02:45.56ID:JS6r4WTp
>>621
Prolog Programming for Artificial Intelligence (4th Edition)
http://amazon.co.jp/dp/0321417461/
0625デフォルトの名無しさん2017/01/31(火) 18:46:27.00ID:JS6r4WTp
>>621
邦訳は 2th Edition のものだが、二分冊で出版されている。
「Prologへの入門」 http://amazon.co.jp/dp/476490165X/
「AIプログラミング」 http://amazon.co.jp/dp/4764902540/
入門書としてもこの二冊の本が一番評価されている。
0626デフォルトの名無しさん2017/01/31(火) 20:27:29.03ID:nadqMqy3
>>619
でもPrologにはカットがあるしモナドがないから
Haskellの遅延評価はPrologのカットと同じ役割を持つ
0627デフォルトの名無しさん2017/01/31(火) 22:52:22.12ID:KtQaXPs7
Haskell Erlang なんて作られてから三十数年経ってる言語を次世代なんて。
LISP Prolog みたいなかってはメジャーだった言語を次世代言語候補扱いしたら
怒られるよ。
このスレおかしくないか。
0628デフォルトの名無しさん2017/01/31(火) 23:02:13.55ID:rB3HMGuL
>>627
正論禁止
0629デフォルトの名無しさん2017/01/31(火) 23:19:45.21ID:nadqMqy3
確かに怒られる側よりも怒る側の方が正論っぽい
だからいつもみんな怒ってるんだな
0630デフォルトの名無しさん2017/01/31(火) 23:30:54.27ID:sDgEqzOm
既存言語に怒ってるエネルギーを次世代の新言語を創る作業に投入すればよいのに
0631デフォルトの名無しさん2017/02/01(水) 00:49:18.38ID:Hn+PaGAx
もうこれ以上言語いらねえだろ
アホか
0632デフォルトの名無しさん2017/02/01(水) 03:08:47.89ID:AFQEQKMv
これが右上がりの言語を次世代と定義しようぜ
http://i.imgur.com/ujNoggx.jpg
Scalaは残念ながら次世代言語から陥落したようだ。
0633デフォルトの名無しさん2017/02/01(水) 07:46:04.46ID:Hn+PaGAx
>>632
あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリフ
0634デフォルトの名無しさん2017/02/01(水) 07:54:12.66ID:6MDtUtj9
>>632
この統計正しいの?
Scalaが人気すぎる気がするんだけど。イタリアでの人気が不自然に高いようだし
0635デフォルトの名無しさん2017/02/01(水) 08:06:48.64ID:aIK12EZW
検索で他のが落ちたのは、他のはみんな大体習得したんでしょ
0636デフォルトの名無しさん2017/02/01(水) 08:46:14.40ID:JzrfAYDc
>>632
カテゴリでプログラミングを指定するのどうやるの?
0637デフォルトの名無しさん2017/02/01(水) 10:21:36.50ID:sUfhjsu+
https://www.youtube.com/watch?v=quIHgwuF6r4&;sns=em
0638デフォルトの名無しさん2017/02/01(水) 21:40:31.66ID:90VT0b4D
Elixirは流行らないと思う
erlangってそんな悪い言語じゃないでしょ
JavaやJavascriptはクソだからaltがはやるわけで、ベース設計がしっかりしている言語のaltは流行らない
0639デフォルトの名無しさん2017/02/01(水) 21:44:24.53ID:90VT0b4D
というかaltJSという考え方はない

性能が向上しないのに静的型付けをいくらしたところでシンタックスが冗長になることによるタイプエラー、実効エラーが増えるだけ

そもそも型を間違えるような奴は馬鹿なんだよ、さらにもっとも重要なnullpoは型チェックじゃ捕まらん
性能目的以外で型を宣言する必要はない、これは動的をすこしでもかじってればわかること
0640デフォルトの名無しさん2017/02/01(水) 21:52:51.62ID:RPQD9uLI
Erlangがなくならない以上、elixirの実行環境はなくならない
elixirは流行る必要はない
課題提出の集計をパイプみたいにポイントフリーで整理するスクリプトを作れた時点で彼の役目は終わった
0641デフォルトの名無しさん2017/02/01(水) 22:13:40.70ID:90VT0b4D
俺はclojure使いだけど、ロマンを感じるのは兄弟言語のracket
laat of usでもスクリプトとして使われたらしいね
ノーティドッグ信者なので、ゲームアーキテクチャという本も持ってるがやっぱりc++は必須だとも書いている

個人的にはメイン言語clojure
(ただしディープにやるならJavaに向き合う必要あり)
継続的研究対象lisp,haskell,racket
パフォーマンスクリティカルなプログラム c,cpp
かつて使っていた言語c#
公用語 javascript

Javascript自体が動的な以上altJSを使う意味がない、functionをfnとか書けたらいいなってぐらいで、それだけのために言語としてラッパー噛ましますかって話
Alt Cが欲しいが、rustはパッと見た感じではC#とかわんなくね?
構文をScalaのような簡潔性を持たせただけ
C#がダメなのは、
クラスネームが無駄に長いことが推奨されていること
.netライブラリに付き合わされること
てかオブジェクト思考のライブラリは基本的にドキュメントが貧弱過ぎるのでつかわなくなっちゃった
でも結局rustは改良したといってもそれのサブクラスでしかないと思う、よって流行らない、それならDのほうがよほど可能性あるわ

次世代の言語、それはD
0642デフォルトの名無しさん2017/02/01(水) 22:21:34.40ID:ciQGnh7G
言語とそれ以外がごちゃまぜになってるぞ。
たとえば現状、altJSがJavascriptに翻訳されるからといって、
そのままスクリプトとして動作する環境やコンパイラが出てきたら新言語と認めるという立場だろ?
C++を昔はCへ変換されてたし、C/C++はいまでもアセンブラへ翻訳するだろ。
0643デフォルトの名無しさん2017/02/01(水) 22:30:30.50ID:o164RxC2
Haskell嫌いなやつって数学嫌いなんだと思う
0644デフォルトの名無しさん2017/02/01(水) 23:07:25.28ID:/u9dasnn
>>641
RacketとDが好きとは気が合うな
0645デフォルトの名無しさん2017/02/01(水) 23:30:09.01ID:Hn+PaGAx
>>641
マニアックすぎる
0646デフォルトの名無しさん2017/02/01(水) 23:35:08.50ID:I4hYXvB3
Racketなんて言語、B級グルメ好きの俺ですらはじめて聞いたわ。
0647デフォルトの名無しさん2017/02/01(水) 23:51:06.89ID:/u9dasnn
Racketは"Lisp gui"で検索かけるとすぐに当たるからLispにアンテナ張ってるなら知ってもおかしくない言語
逆にLispに一切興味がないなら出会う機会は無い
0648デフォルトの名無しさん2017/02/02(木) 00:19:57.04ID:ni6gL+6B
Racketは言語使用、ライブラリ、ドキュメント全て半端なく充実しているのに知名度だけが致命的に足りない謎
0649デフォルトの名無しさん2017/02/02(木) 07:10:10.84ID:O2Px6xPF
>>641
ネイティブコードは型ない、お前の感覚は未熟
あとC++やってないやつがD出すとかわけわからん
0650デフォルトの名無しさん2017/02/02(木) 10:52:40.39ID:XYLSZm2r
>>648
互換性じゃないかな
古いLispを捨てろ新しいLispを覚えろって言われたら
古い方の知名度は順調に下がるんだけど新しい方の知名度は上がらない
0651デフォルトの名無しさん2017/02/02(木) 12:49:26.74ID:997LLvzK
>>650
Racketはschemeへの後方互換あるでしょ
さらに言うとalgol60も使えるんじゃなかったか
0652デフォルトの名無しさん2017/02/02(木) 13:04:32.19ID:Y5kXFMjA
>>634 >>632
パイの大きさは変わってないんだな
だから変なグラフになる
0653デフォルトの名無しさん2017/02/02(木) 18:32:48.21ID:xBx+Q4xD
>>643
俺だわ…
数学もHaskellもただただ面倒くさい
0654デフォルトの名無しさん2017/02/02(木) 18:36:57.76ID:XYLSZm2r
>>651
scheme自体に互換性のないバージョンが何個かある
そのうちの一個と互換性を持つか、全くの無関係を装うか
どっちにしても詰んでるだろ
0655デフォルトの名無しさん2017/02/03(金) 01:19:44.40ID:B2TgZG7L
>>651
Racketはschemeと決別して独自の道を歩むと決めたから、今はまだよくてもそれに頼るのはちょっとな
0656デフォルトの名無しさん2017/02/03(金) 01:35:48.05ID:gTPj6g+n
ここまで、Coqの話題なし
0657デフォルトの名無しさん2017/02/03(金) 01:55:31.97ID:8CU6Wj2k
Cock-sucking
0658デフォルトの名無しさん2017/02/03(金) 05:28:31.24ID:9JF21fic
確かに、証明支援系のネタがないね。
ラムダキューブとの対応を考えると、

Lisp : untyped
Haskell : typed (λ2, λω)
Coq Agda : typed(λ2, λω, λΠ)

てな感じで順当に進化してるように見えた。
この先には何があるんかな?
0659デフォルトの名無しさん2017/02/04(土) 15:46:03.29ID:OEWGq6Bc
データもないのに推論だけで証明ができるというネタは現時点では異端
証明といえば多数決のように統計データで証明するものだ
0660デフォルトの名無しさん2017/02/04(土) 16:03:34.70ID:yGLia+BU
データならあるよ。公理や推論規則というデータが
0661デフォルトの名無しさん2017/02/04(土) 16:44:43.91ID:M9nvjW5A
統計で証明って初めて聞いたわ。
あおる訳じゃないが、そういう使い方する分野があるのか?
0662デフォルトの名無しさん2017/02/04(土) 16:46:42.42ID:e9aNESBj
リーマン予想も統計的には正しいらしい
0663デフォルトの名無しさん2017/02/04(土) 16:48:59.12ID:jFsHbXy/
ツッコミ待ち?
0664デフォルトの名無しさん2017/02/04(土) 20:02:18.74ID:OEWGq6Bc
逆に、初めて聞いた日本語が見つかったら炎上する分野があることの方が問題なのでは
0665デフォルトの名無しさん2017/02/05(日) 00:35:13.86ID:EaWYUXzz
>データもないのに推論だけで証明ができるというネタは現時点では異端
数学者がお前んとこに釘バット持って走っていったぞ。

確かに物理分野とかだと理論に沿った物理現象を観測(統計データで見ることも含む)することで証明完了とするけど、
それと数学の「証明」は別モノで、いくらデータを数え上げても無意味だ。

んで型推論とかCoqの定理系はこの「数学の証明」に相当するもんだ。
0666デフォルトの名無しさん2017/02/05(日) 06:26:09.68ID:dAPLgvDP
>>558
PrologもHaskellも速度的なもので外されちゃうのよね。
コンピュータアーキテクチャと切り離されてるが故に。
そこが書きやすさの根源なんだが。

MSなりAppleなりが公用言語に指定した言語が勝ちって面は否めない。
Web系はともかく、何らかのOS上で動く言語は。
0667デフォルトの名無しさん2017/02/05(日) 06:45:50.36ID:lVtt30wn
コンパイル、バイナリ化できれば言語と速度は関係ない。
処理系の最適化しだい。
0668デフォルトの名無しさん2017/02/05(日) 07:25:52.43ID:dAPLgvDP
>>653
Haskellは再帰で関数書くところから始めれば良い。
それがHow(どういう手順)では無く、What(どういう性質か)を書いてると気付くと一気にハマる。
リスト内包表記とsumでlength書くのも違和感なくなる。
(最近のHaskellは普通の再帰もループにするのでメモリの心配不要)

length [] = 0 --空リストになったら0を足して終了A
length (_:xs) = 1 + length xs -- 先頭から1を足して行って@

length xs = sum [1 | _ <- xs] -- 文字と同じ数の1を用意して、足し合わせる。

文字と同じ数だけ1を用意する処理を関数に括り出せば

ones xs = [1 | _ <- xs]

length = sum.ones

カリー化の勉強にもなる。

どういう性質かで書くようになると、Haskell通してソートの動きなど、アルゴリズムの動きの理解が進む。
(どういう理屈で高速化してるか)

そうしてから、手続き型でどうすれば配列で実現出来る?と考える感じで実用言語へ得た知識を持ち帰るのに良い。
(Haskellの中では速いけど、他の言語のが大抵速い)

触って損はない。
0669デフォルトの名無しさん2017/02/05(日) 07:30:56.66ID:ur3RCCjc
Haskell、速いんじゃないの?
HaskellBeats C�Using Generalized�Stream Fusion
て論文があるが、どうなんだろう。
読んだ人いる?
0670デフォルトの名無しさん2017/02/05(日) 07:42:36.70ID:dAPLgvDP
>>667
いいや。
関係ある。
細かく指示しないといけないという事は、最適化する単位が小さい。最適化しやすい。
PrologやHaskellは柔軟性があり過ぎて最適化し難い。
それはC++のSTLに似てる。
100倍コードが短くなるけど、遅くなる。

そもそも論理型も関数型もメモリ大食いな宿命を背負ってるので、メモリ速度が遅い今のアーキテクチャに合わない。
0671デフォルトの名無しさん2017/02/05(日) 07:52:56.70ID:dAPLgvDP
>>669
C始め、手続き型は普通に書いても速いけど、Haskellは普通に書くと遅い。
手続き型っぽくユーザーの方で書きかた変えて、リストもbyteStringなどの速い構造を使う。
だったら、最初から手続き型で書けば良いやんってなる。
Haskellは、普通の書き方と最適化する書き方で落差がありすぎる。

普通の書き方のコードの高速化が望まれる。
0672デフォルトの名無しさん2017/02/05(日) 08:38:34.50ID:WR2Bdndi
>>671
じゃあその論文に書いてあるのは、手続き的なコードということか。あとで詳しく読んでみる。
0673デフォルトの名無しさん2017/02/05(日) 11:21:24.55ID:cMmfZpdA
>>668
Haskellってやっぱ基本的にギュッって省略されてる感じで、返って分かりづらい、Rubyと同じ臭いがする
これなら、OCaml・F#の方が、記述は長ったらしいが逆に分かりやすいと感じた
0674デフォルトの名無しさん2017/02/05(日) 13:09:18.75ID:39kPthL5
HaskellとかRustとかScalaとかそういう目新しいだけで何もできない言語をドヤ顔で使うのはただドヤ顔したいだけの無能な。
本当にできるプログラマはJavaとかC++とかPHPとかの「物が作れる」言語をひたすら極める。
お前らも遊んでないで勉強しろよ。
0675デフォルトの名無しさん2017/02/05(日) 15:06:44.63ID:eh0DAHa0
本当にできる奴はFortranを極める
0676デフォルトの名無しさん2017/02/05(日) 15:08:48.15ID:5fSxdbmG
いやForthだろ
0677デフォルトの名無しさん2017/02/05(日) 15:40:10.05ID:ca5We8fF
Factorのまともなチュートリアルを教えろ��
0678デフォルトの名無しさん2017/02/05(日) 15:50:42.78ID:uN/SMrch
>>675-676
Julia
0679デフォルトの名無しさん2017/02/05(日) 16:25:03.68ID:eIQFXmLo
手続き型で書けば速くて関数型で書くと遅いってのは全く的外れ
トレードオフを理解した上で状況にあった言語を選べばいい
http://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html
0680デフォルトの名無しさん2017/02/05(日) 16:27:05.14ID:eIQFXmLo
>>674
Scalaを目新しい言語に入れるな
そしてC++とJava/PHPを一緒にするな
0681デフォルトの名無しさん2017/02/05(日) 16:34:26.09ID:Ijtu7jlP
>>674
Haskellが目新しいのですか。
大学ではずーーと昔から、Haskellの話題だらけですが。
0682デフォルトの名無しさん2017/02/05(日) 17:04:47.17ID:eIQFXmLo
Haskellは実際のアプリケーションに使われる事例が増えてきたのは最近だから
そういう意味では目新しい言語と言ってもいいと俺は思うけど
RubyはJavaより古い言語だけどRails以降に認知されるようになったのと似たようなもん
0683デフォルトの名無しさん2017/02/05(日) 17:48:20.62ID:mKg8Z6Nb
>>674
だいたい同意かな。
ただ新しい言語が何に気を付けてるのかを見るのは意味がある。
Rust がオブジェクトの寿命を気にしてたり、alias を嫌って = のデフォルト動作が move になってたり
ってのは今使ってる言語でも意識はできるし。
0684デフォルトの名無しさん2017/02/05(日) 17:58:10.61ID:6tQdqPMe
十人一束の安いプログラマ
0685デフォルトの名無しさん2017/02/06(月) 00:05:14.66ID:w4PqxpOt
>>674
PHPでできあがるのは糞の山だぞ
標準関数も文法も挙動も
何もかもが糞
C++やJavaと、PHPなんぞを一緒に語るな痴れ者
0686デフォルトの名無しさん2017/02/06(月) 00:09:58.93ID:5DOCNE2E
>>685
多分 >>674 の言う物が作れる言語って、金が稼げる言語の間違いなんじゃね?
ドヤ顔したつもりで自分が1行いくらで稼ぐ系の安プログラマなのバラしてかわいそ。
0687デフォルトの名無しさん2017/02/06(月) 00:28:57.43ID:MWJx5Fr9
>>670
コンパイラの自動最適化だ。
おなじ動作をするプログラムなら、
言語によらず最適化ののちにほぼ同速度になるはずだ。
アルゴリズム自体がおなじになるとして。
メモリ食い過ぎとかも最適化が足りてないだけだろ。
かなりいいコンパイラならC/C++やアセンブラなみになるはず。
0688デフォルトの名無しさん2017/02/06(月) 00:41:36.15ID:SAGpF4BT
>>687
はずはず言うのはいいから実際の処理系の名前をあげてくれよん
0689デフォルトの名無しさん2017/02/06(月) 00:42:49.71ID:PxvqegTw
.
.
.

>悪質パクツイ垢(自称ハッカー)のコピーライティング特定されててワロた

@copy__writing の中の人は東京都三鷹市の莉里子

https://twitter.com/copy__writing
http://i.imgur.com/LyXsDj9.png
http://i.imgur.com/nqT3xBN.png
http://i.imgur.com/2FlhfLE.jpg
https://www.mercari.com/jp/u/446591929/
0690デフォルトの名無しさん2017/02/06(月) 00:53:20.06ID:c0IrdF62
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

    ─┼-        /   |   ‐┼-   |     ー|―
    ─┼─ |   \ レ  /   ̄Tー  /      ノ -─
   (二フヽ  \/    _ノ   (二フ\  ヽ_ノ   / 、__

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (十万石)     \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c
0691デフォルトの名無しさん2017/02/06(月) 02:22:27.01ID:MWJx5Fr9
>>688
有力HaskellコンパイラはGHCひとつくらいしかない気がするから
いいコンパイラの比較対象がない。
0692デフォルトの名無しさん2017/02/06(月) 04:01:30.95ID:zsAHJXs9
>>691
GHCが公開されたのが、1998年でしたか。型推論とか言われだしたのは、
当然コンパイラ以後ですから、そういう意味では20年も経過していない。
次世代言語の候補になっても、不自然ではないかもしれない。
0693デフォルトの名無しさん2017/02/06(月) 05:07:32.67ID:zFZDUWfA
>>679
うん。
速度より保守性重視なら関数型も選べば良いのよ。
現役プログラマの先輩の言では、まず一つの言語極めて、プログラミング出来るようになったら言語を選んじゃダメだって。
その点でおいらは落ちこぼれ。
だからHaskellまで抽象化されないとクイックソートが何してるか分からなかったおいらが居る。

普通の言語で理解出来ないなら、プログラマになるべきじゃ無い。
0694デフォルトの名無しさん2017/02/06(月) 05:12:14.70ID:zFZDUWfA
>>687
ええと。
最適化するコンパイラ書くのもまた、プログラマなんだ。
Itaniumと言うIntelがx86互換性切り捨てたCPUがあって、コンパイラが優秀なら、すごく並列化出来る命令を切り出せたアーキテクチャ。
でも、コンパイラがそこまで並列化出来る命令を切り出せなくてポシャった。

いくらポテンシャルがあっても、複雑すぎるとコンパイラ書くプログラマがそもそも実装出来ない。
0695デフォルトの名無しさん2017/02/06(月) 05:27:55.17ID:zFZDUWfA
>>673
元が数学寄りだから短いけど、別に命名規則で長くしても良い。
実際使う関数さえ機能が分かりやすければ良い。
Hoogleで既存関数も何やってるか調べられる。
ruby,pythonだと手続き型なのでファイルはどんなに短く書いてもOpen、Close処理は書くけど、Haskellは書かない。
LL並みの短さでコンパイラ言語だが、今のところLLが(Cで書かれた)ライブラリ多用すると負ける。

だから、勉強だけして実用言語に持ち帰れと言ってる。
0696デフォルトの名無しさん2017/02/06(月) 06:31:27.33ID:zsAHJXs9
>>692
Prologは四十年くらい、仕様がまったく変化していないけれど、
Haskellは大きく変わっている。変わっている方が次世代という感じはするね。
06976922017/02/06(月) 06:34:03.23ID:zsAHJXs9
GHC以外にHaskellコンパイラ開発しようという動きはあるのだろうか。
0698デフォルトの名無しさん2017/02/06(月) 10:09:40.36ID:3ccyGMWG
>>692
Proloの言語仕様は変化していないが、作法は以前とは全然違う。
仕様を句構造に解析しておいて、そのまま述語として定義してしまう。
そういう方向。他のプログラム言語とは全然違う領域に踏み込んでいて、
相当に次世代。
0699デフォルトの名無しさん2017/02/06(月) 12:33:27.82ID:5rINm98G
move A to B.
のCOBOLの世界に近いのかな。
0700デフォルトの名無しさん2017/02/06(月) 17:49:07.32ID:E9sN5WJf
最適化してネイティブコンパイルすれば同等の性能になるなんて
だれがほざいてんだ?
CPUキャッシュのヒット率が全然違うだろ
CPU内で完結してメモリをめったに読まないのが優秀な言語だ
0701デフォルトの名無しさん2017/02/06(月) 20:36:16.98ID:w4PqxpOt
よくわからんのだが
実用性と数学性を極めしScalaが次世代最強言語ってことでFA?
0702デフォルトの名無しさん2017/02/06(月) 20:48:05.79ID:mzYzOccO
Scalaはバージョン上がる度にぶっ壊れるジョーク言語だろ。
0703デフォルトの名無しさん2017/02/06(月) 21:03:12.77ID:keJvbtX0
最強言語とか厨なこと言ってんなという普通の突込みがない。
0704デフォルトの名無しさん2017/02/06(月) 21:29:01.36ID:CnQFCCTc
Scalaの構文は吐き気がする
あれは人間が読むものではない
0705デフォルトの名無しさん2017/02/06(月) 21:36:55.27ID:JXLDZe92
>>704
REPL入力とソースファイルからの読み込みで受理する構文が異なるという、圧倒的欠点には吹いた
0706デフォルトの名無しさん2017/02/06(月) 22:18:58.67ID:MWJx5Fr9
最適化だが。
いまやC++もC#もプレイステーションもGPUドライバもDirectXもLLVM中間言語を使ってるぞ。
JavaやもとのC#も別の中間言語をつかうが
これをLLVMに置き換えてLLVMコンパイラの十分よければ、
Java/LLVMもC#/LLVMもC++/LLVMと遜色ない速度になるはずだ。


LLVM Clang、PlayStation 4用コードを統合開始 | マイナビニュース
http://news.mynavi.jp/news/2015/01/29/018/


Microsoft、LLVMベースの.NET/CoreCLRコンパイラLLILCを発表
https://www.infoq.com/jp/news/2015/05/microsoft-llilc-llvm-compiler

Microsoft、LLVM/ClangベースのDirectXシェーダーコンパイラをオープンソースに2017年1月26日
https://mag.osdn.jp/17/01/26/160000


AMDがドライバを含めたGPUソフトウェアをオープンソース化 - PC Watch
CLANGフロントエンド/LLVMバックエンドのインフラを利用
AMDのオープンソースコンパイラスタックは、CLANG/LLVMのオープンソースコンパイラインフラストラクチャの上に乗っている。
C++の単一ソースコードから、Heterogeneous Compute Compiler (HCC) C/C++コンパイラフロントエンドが中間コードに落とし込む。
LLVMバックエンドで、中間表現からGPUネイティブに最適化コンパイルする。
AMDは、KMDもオープンソース化して行くとしている。言い換えれば、GPUを丸裸にすることになる。
http://pc.watch.impress.co.jp/docs/column/kaigai/736647.html
0707デフォルトの名無しさん2017/02/06(月) 22:43:21.44ID:ZuA1TwNS
で、Haskell/LLVMも同じくらい速いのかっていう。

じゃ無ければ、関数型は今のコンピュータアーキテクチャに合わないから、手続き型より早く出来ないと言う私の持論は覆せない。
0708デフォルトの名無しさん2017/02/07(火) 02:01:47.12ID:WpBgUwwL
何を持って関数型と呼んでいるかはしらないが手続き型がはやいのは確かだ

関数型の多くは不変的データ構造を前提としていて、できる限りデータコピーを避けるようにはなっているが、データコピーは発生するのでポインタ使ってメモリいじったほうがそりゃはやい

問題はそれで劇的に遅くなるのかという話と遅くなることを許せるかという話

関数型ユーザーは概ねそのコストを支払ってもよいとかんがえているし、払えないなら抜本的な改革を検討する
例えばGPUを操作する、メッセージキューによる並行化

リアルタイムシステムにおいては許容されるレイテンシやスループットを下回るとシステムとして使い物にならない

だが良く考えてみたまえ、金融システムというのはそうしたものの最たるものなわけだ
というか極端なこといえばメッセージキューがうまくまわるなら言語なんてなんでもいいわけですよ
でもってメッセージキューを楽に構築するにはデータが簡単にconstructできるほうがいい

メモリを操作するということは、データをコンストラクトして不要なデータをGCに投げ捨てる、の対極をいってるわけだ
0709デフォルトの名無しさん2017/02/07(火) 02:16:47.09ID:WpBgUwwL
つまり要求されるシステム特性によるとしか言いようがない

いわゆるRESTをベースにプログラムを組めるなら、disruptorに代表されるメッセージキューを使うのが最速であるが、3Dゲームみたいな、UIスレッドに負荷が集中するような、副作用の大きいシステムを作成するときには、並行処理なんて無意味だということ

OSが統括するUIスレッドやグラフィックボードが並列処理に対応してれば話は別だが、だからこそ3DレンダリングはCとCppの聖域なわけだ

要はmapしてreduceする処理に還元することが現代のアルゴリズムなわけだ
そうできないなら、シングルスレッドでガリガリやるしかない
そしてシングルスレッドができる処理の限界は、クロックとCPIで決まると、クロックは量子力学的な制約がかかっている以上、もはやCPUを叩いてどうにかする時代は13年前くらいに終わってるはずなんだけど
0710デフォルトの名無しさん2017/02/07(火) 07:01:25.51ID:hM98Yx7Z
>>708
何言ってんのかよくわからんなあ…

君が手続き型のが良いと言ってる内容は、さして苦労せずに関数型言語で実装できる
つまり、どちらも扱える関数型から見れば利点になってない

本来の意味で比較するなら、手続き型の制約は、その順序性を必ず担保する必要があるので、簡約も最適化もできない

つまり一般に関数型のが開発効率がいい
0711デフォルトの名無しさん2017/02/07(火) 07:34:07.38ID:hM98Yx7Z
>>707
例えばGHCだとしても、コア言語使えば速度も稼げるし、CよりLispのが速いなんてのもよくある話

結局その言語の実行環境と (低級な意味での) 実装するアルゴリズムの問題だと思うね

代表例としてCやFortranばかり出すから、手続き型が速いと感じるだけ
特にLLVMについては、手続き云々より静的型付けによる最適化のがよほど貢献してる
0712デフォルトの名無しさん2017/02/07(火) 07:57:32.25ID:21ebZDJJ
そこだよ。
何だよコア言語って。
CはCで速いのにHaskellはコア言語じゃ無いと速く無いのかよって話。
Cは入門書そのまま打ち込めば十分コンパイラが最適化するけど、Haskellはそうじゃ無い。
0713デフォルトの名無しさん2017/02/07(火) 08:05:45.72ID:jqoHFXiR
お前アセンブリ言語さんの前でも同じこと言えんの?
0714デフォルトの名無しさん2017/02/07(火) 08:12:21.57ID:ZZufsVw2
ゲームプログラミング界の巨人、Tim Sweeneyが「未来のゲーム開発テクノロジー」を語る
超並列処理、次世代のゲームグラフィックスはソフトウェアレンダリングに回帰する

次世代を見据える上では、メニーコアのプロセッサを充分に活用できる大量のスレッドに分割されたゲームエンジンを作らなければならない。
しかし、現状でさえマルチスレッドプログラミングは開発の困難さが指摘されている分野である。
しかも、それを効率的にデバッグすることは非常に難しく、開発規模の拡大や期間の長大化を招いているのだ。

Sweeney氏は、これは現在主流の開発言語であるC++の手続き型言語としての特性に由来すると指摘する。
Sweeney氏に言わせるとそれは「シングルスレッドのプログラムをアセンブラで書くようなもの」であり、生産性が悪いのである。

Sweeney氏は、この問題を解決するためには、ゲーム開発言語として純粋関数型の言語が必要になるだろうと言う。
この種の処理系では、C++のような共有メモリのアクセスや、I/O操作は基本的に行なえない。
その引き替えとして、各関数のアトミック性が構造的に保証されており、安全に並列実行できるのだ。
しかも、コンパイラが対応さえすれば、関数を自動的に多数のコアに分散処理させることができるというスケーラブルな実行バイナリを作り出せる。

Sweeney氏は純粋関数型言語のもつ並列処理安全性に着目しており、将来的にゲームプログラミングはそういった処理系に移行していくべきだとした。
ゲーム開発のメインストリームたり得る言語はまだ登場しておらず、将来に期待しているという。

それにプラスして、Sweeney氏は現在のゲームプラットフォームハードウェアが複雑すぎることも指摘した。
もし、Sweeney氏のいう純粋関数型言語によるゲーム開発が実現したとして、それを基準とするならば、C++によるプログラム開発コストは
マルチスレッド版で2倍、プレイステーション 3版において5倍、シェーダー言語で記述するGPGPU版において10倍かそれ以上にもなるという。

従って、メニーコア世代のプラットフォームに備えて、ゲーム会社は開発基盤を備える必要がある。
次世代のエンジンを開発するには5年くらいはかかるでしょう。だから、今はじめるべきなのです。
ttp://game.watch.impress.co.jp/docs/20080911/epic.htm
0715デフォルトの名無しさん2017/02/07(火) 08:21:27.55ID:oyZmvWF9
結局いつの時代も性能と保守性のトレードオフを考えろって話だろ。
0716デフォルトの名無しさん2017/02/07(火) 08:21:57.26ID:Z8WP6lJH
俺もそう思ってた、GPUに掛けちゃえばそれ以外の部分が遅くてもあまり関係ないからな。
0717デフォルトの名無しさん2017/02/07(火) 08:27:26.29ID:21ebZDJJ
アセンブリ言語は機械語と一対一だろ。
何言ってんの。

高級言語は一対一じゃないから最適化の話が出るんじゃ無いのか?
本当なら、Haskellだって参照透明性活かせば、コード上で計算結果出せるものはD言語みたいにコンパイル時に全部値に置き換えられるはずだが(Cも一部は最適化で値を直接埋め込むが副作用の為に単純なものしか置き換えられない)、そんなHaskellコンパイラは無い。

実装が難し過ぎて、そういう最適化が出来ないなら、机上の空論よりも実際に最適化できる言語が選ばれる。

Cだって、最初は最適化不十分で、アセンブリ吐いて最適化したり、キャッシュに収まるように書いたりという時代があった。

何だかんだで最適化技術の歴史の重みに勝てない。
0718デフォルトの名無しさん2017/02/07(火) 08:41:12.90ID:hM98Yx7Z
>>717
いやTemplateHaskellあるから
OCamlも同じく
0719デフォルトの名無しさん2017/02/07(火) 08:50:01.92ID:hM98Yx7Z
あー簡約やインライン化の話か
コンパイル時もされるぞ
0720デフォルトの名無しさん2017/02/07(火) 08:51:42.62ID:9tYUAY6s
石器時代の環境でプログラミングを楽しみたい
ブートローダは丸暗記して起動する度に
スナップスイッチで打ち込むとか
0721デフォルトの名無しさん2017/02/07(火) 09:00:39.46ID:hM98Yx7Z
>>717
あと揚げ足かも知れないけど、ニモニックとマシン語は1対1とも限らない
マクロアセンブラなどに限らず、勝手に変えたり最適化するのもあるから
0722デフォルトの名無しさん2017/02/07(火) 09:15:27.43ID:Z8WP6lJH
最適化の重要性はコアを2倍に増やしてスケールできれば
処理速度も2倍だから昔みたいに意味ないんだよね。
0723デフォルトの名無しさん2017/02/07(火) 09:16:28.11ID:lG1uUc9b
はいぃ?
0724デフォルトの名無しさん2017/02/07(火) 09:34:09.57ID:vgi/AyaJ
>>714
goかElixirでできないのかな?
0725デフォルトの名無しさん2017/02/07(火) 09:55:15.02ID:eLJEaWcO
2008年の記事かよ...
カビくせえな
0726デフォルトの名無しさん2017/02/07(火) 10:08:27.72ID:WNm+xswo
2008年はまだコア数これからどんどん増えるはずだって時代だったからな。
それに彼は昔、当時としては凄く優秀なソフトウェアレンダラー書いた人だから。
結果は2012年に発表された最新のUnreal Engine4はC++で書かれたとさ。
0727デフォルトの名無しさん2017/02/07(火) 10:08:59.30ID:5WCc2ykt
結局問題は今早いかどうかだよ。
Haskellは今、この瞬間にCより速いのか?

そうでないならHaskellを使う理由はどこにもない。どこにもだ。
0728デフォルトの名無しさん2017/02/07(火) 10:09:56.06ID:WNm+xswo
>>727
次世代言語を語る部屋なんだから今の話だけしても仕方ないだろ
0729デフォルトの名無しさん2017/02/07(火) 10:22:45.70ID:5WCc2ykt
>>728
使う理由はないってだけで、オモチャとして暇潰しに遊ぶことを否定してはいないんだがな。
領域によってはCに替わるとか寝言言ってることに対するツッコミしてるだけ。
0730デフォルトの名無しさん2017/02/07(火) 10:26:24.27ID:pO8TZj/r
>>729
(次世代言語スレで)いづれ次世代Cに代わるかもしれないかもしれない
という意見に、結局問題は今速いかどうかってヤバすぎん?
0731デフォルトの名無しさん2017/02/07(火) 10:48:41.86ID:5WCc2ykt
>>730
今LL言語レベルの速さのものが将来的に速くなってCにとって替わる目をどれだけ信じられるかって話な。
いずれ高速化するからって希望的観測を自分は信じてない。できるならとっくに高速化してる。

Haskellが次世代言語として実用化するならそれはCとは別領域の話になるんじゃねーの?
以前Haskellでハードウェア記述の話は聞いたことあって、ぶっちゃけそっちの方がNext Cより目あると思う。
実用化いつになるか知らんが。
0732デフォルトの名無しさん2017/02/07(火) 10:48:42.62ID:Z8WP6lJH
いまはCPUは複雑な分岐を担当してGPUが単純な計算をするから
あまり速さは関係ないんだよね。
0733デフォルトの名無しさん2017/02/07(火) 10:53:19.52ID:Z8WP6lJH
ハスケルは複雑すぎて駄目だなC++と同じくらい複雑すぎて誰も流行らない。
関数型ならLISPがCのようにわかりやすくて良い。
CとLISPを組み合わせて使うのが良いと思うよ。
0734デフォルトの名無しさん2017/02/07(火) 11:33:01.31ID:zhY1djzZ
Cと組み合わせる構造は誰でもやってる
ただし見えないように箱の中に隠されている

関数型という名称も箱の名前でしかない
中身を教えないための箱
0735デフォルトの名無しさん2017/02/07(火) 12:34:44.05ID:1OWKqI+v
>>731
>できるならとっくに高速化してる。
200人にひとりしか使えないプログラム言語のために、インテルや
AMDが何兆円も掛けて、最適な石を作ろうとするものだろうか。
0736デフォルトの名無しさん2017/02/07(火) 12:47:39.04ID:WNm+xswo
汎用プロセッサ沢山積んで並列性高めようとしたlarrabeeポシャったじゃん。
上のTimの関数型言語に言及した記事もlarrabeeの発表あって、それの期待が高まってる時の記事やぞ。
0737デフォルトの名無しさん2017/02/07(火) 12:58:52.16ID:5WCc2ykt
>>735
つまり今後も劇的な高速化は見込めないってことだな。
07387352017/02/07(火) 13:09:28.22ID:s4l5/kyE
>>737
何年先は知らないけれど速さというような単純なターゲットの問題は、
高水準の大学生なら多層学習で誰でも最適回路設計くらいできるような
時代が来る。
0739デフォルトの名無しさん2017/02/07(火) 13:32:13.80ID:F4bjZe40
>>738
たまに2chでそれいってる奴いるけどソースあんの?
0740デフォルトの名無しさん2017/02/07(火) 13:55:47.59ID:5WCc2ykt
>>739
自分の見識が狭いだけだとは思いたいが、
ディープラーニングでハードウェア設計の論文は確かに見たことないな。
0741デフォルトの名無しさん2017/02/07(火) 14:07:01.83ID:42CRzycu
cppは結局、1core1PCのスタンドアローンのための言語でしかない
メニーコア時代のゲームのグラフィックは、GPUの成長のおかげ

結局何が並列化できて何が並列化できないかわからない奴の最速理論は無意味なんだよ

そんなに最速目指したいなら、intelのfortranコンパイラ買えばいい、自動で並列化してくれるらしいから
0742デフォルトの名無しさん2017/02/07(火) 14:08:56.67ID:42CRzycu
最速目指すならアーキテクチャベンダが作ってるコンパイラ使って当たり前なんだよなあ
0743デフォルトの名無しさん2017/02/07(火) 14:17:38.53ID:5WCc2ykt
おうnVidiaがnvhc作ったら考えてやるよ。
0744デフォルトの名無しさん2017/02/07(火) 14:58:00.38ID:21ebZDJJ
結局そこだし、時代はIoTでさらに貧弱なCPUが活躍する時代。
ITと相性の良いポストCとも言える言語が求められる。
0745デフォルトの名無しさん2017/02/07(火) 19:50:20.98ID:rnaKi3ZD
c++20とかの話しもいいの?
0746デフォルトの名無しさん2017/02/07(火) 20:24:44.45ID:oyZmvWF9
まあ確かにそこまで速くしたいソースが手元にあんのかっていうと
特になかったりはする。
てか本当に速くしたいならレイヤー低くしてでもそれなりのことはやるわな。
0747デフォルトの名無しさん2017/02/07(火) 22:34:02.71ID:hM98Yx7Z
>>733
C++舐め過ぎか、またはHaskellを勘違いしすぎ

>>736
ポシャってるどころか今売れまくっとるだろ
0748デフォルトの名無しさん2017/02/07(火) 23:59:20.16ID:mio539hi
手続き型が高速なのは、ノイマン型コンピュータを前提としているから。
0749デフォルトの名無しさん2017/02/08(水) 00:14:23.00ID:Ie+DQPxz
奴隷を並べての一斉計算でシステムを作るなら。
速い言語は変わるだろうな。
0750デフォルトの名無しさん2017/02/08(水) 03:00:32.21ID:r3HFKoMF
>>714は2008年だが。
純粋関数型で順序、手続きがないことは、
同一ソースのままコンパイラの側の対応で
シングルもマルチコアに対応できるというのは理屈として正しいし
それ以外に有望な方法はないんじゃないか。
シングルもマルチもソースコードがまったく同一でいいという条件で。
0751デフォルトの名無しさん2017/02/08(水) 03:27:00.81ID:Nu2wobKL
実際にはそうなってないのが理想と現実なのよね。。。
0752デフォルトの名無しさん2017/02/08(水) 05:18:59.05ID:/S15sASy
>>658から>>659までの空白時間と今の勢いにワロた。
速度はどうでもいいので、Coq、Agdaの先で表現力豊かな言語とかあるん?
どうせやるなら最新のものに触れておきたい。
0753デフォルトの名無しさん2017/02/08(水) 06:33:51.04ID:TX+A2Z+7
>>751
なってるだろ
制約は強いがC++でさえある
0754デフォルトの名無しさん2017/02/08(水) 08:30:59.39ID:uiFBRwjo
ディープラーニングとかデータマイニングとか言ってるが、SPSSの中の人すら、セミナーで
「予測は予測、推定は推定」「当てずっぽうから『それなりのレンジ』へのチェンジ」「過去の真は現在の真とは限らない」「KKD(勘と経験と度胸)のパラメータ振り」
と正直な事言ってた。
定理証明系の言語は石の開発には確かに役に立つと思うけど、
それ以上は不要だと思うよ。
0755デフォルトの名無しさん2017/02/08(水) 10:14:09.19ID:uXviz4nm
書きやすいとかメンテしやすいとかの完全に作り手側の都合で、
速さを犠牲にして使い手側に不都合を押し付けるエンジニアの風上にもおけないようなクズばっかなのかこのスレ。

作り手の都合を使い手にしわ寄せさせるクズはエンジニアを名乗るな。
0756デフォルトの名無しさん2017/02/08(水) 10:23:05.69ID:3ajnzt+4
書きやすさ、メンテしやすさは普通にソフトウェア自体の品質に直結するから、その批判は的外れな感じがするね。
0757デフォルトの名無しさん2017/02/08(水) 10:36:33.53ID:cVkmV9gd
コストを無視するエンジニアはエンジニア失格だろ
0758デフォルトの名無しさん2017/02/08(水) 10:45:10.66ID:/S15sASy
エンジニアという単語やC言語などを自身を同一視するのを止めて、
もっと肩の力を抜いて、新しい可能性を楽しめばいいのに。
0759デフォルトの名無しさん2017/02/08(水) 11:02:18.55ID:6U9fBvBV
>>755
書きやすさとかメンテしやすさはコストに直結する。
速さより、コスト重視の使い手の方が圧倒的に多いが。
0760デフォルトの名無しさん2017/02/08(水) 11:08:51.59ID:uXviz4nm
そうか。エンジニアって職業そのものが変化してんだな
今のエンジニアは自分の仕事を楽にしたいから製品の品質を下げますとか平気で言うんだな。

俺の知ってるエンジニアは、製品の品質には妥協せず、それで増えるメンテ工数もパシッと実力でねじ伏せたもんだが。

これも時代か。
0761デフォルトの名無しさん2017/02/08(水) 11:24:16.20ID:0pdT/sv9
エンジニアーは本物のプログラマーじゃないからな。
0762デフォルトの名無しさん2017/02/08(水) 11:27:06.85ID:3ajnzt+4
そうですね。そんなエンジニアばかりであれば一つのCPU命令すら妥協せずフルアセンブラで書かれたソフトウェアがその他の言語で書かれたソフトウェアを実力でねじ伏せてる世界があったんでしょうね。
0763デフォルトの名無しさん2017/02/08(水) 11:29:32.03ID:6U9fBvBV
いつから、プログラマを名乗らないエンジニアなんて種族がでてきたんだ。
0764デフォルトの名無しさん2017/02/08(水) 11:30:51.08ID:/S15sASy
>>754
周りが不要と思っているものに投資しとくのはビッグチャンスかと。
普通の奴らの上を行け、だっけ?
0765デフォルトの名無しさん2017/02/08(水) 11:32:18.41ID:k7ksM0Re
>>764
じゃあやれば(笑)
0766デフォルトの名無しさん2017/02/08(水) 11:43:45.36ID:/S15sASy
>>765
もうやってるよ。で、上の質問なわけだ。
CoqよりAgdaの方がシンプルなのでそちらを進めてるのだけど、
その先が既にあったらイヤだなと思った。
0767デフォルトの名無しさん2017/02/08(水) 12:03:20.46ID:MFe8SiQW
次世代言語候補がCoqとAgdaというなら納得ではあるが。
1990年代の"Z"を思い出すなぁ。集合論なんて何のと考えていたの
だけれど、さっぱり頭に入らなかった。
0768デフォルトの名無しさん2017/02/08(水) 12:09:46.75ID:k7ksM0Re
>>766
大変失礼した
0769デフォルトの名無しさん2017/02/08(水) 12:51:48.92ID:XyA6SYml
>>755
書きにくい保守しにくいレベルのものでビジネスに直結するような代物作るなよ
たいていそういうのは書き手自体が無能で、工期不足でUIUXが犠牲にされるんだよ、ポトペタくん

設計センスがないから、アーキテクチャの都合でUI決めるわけだ
わかりやすい例はexcelフォームだよ
0770デフォルトの名無しさん2017/02/08(水) 12:54:17.69ID:XyA6SYml
はっきりいうがわかりやすいドキュメントをかけない奴はビジネス適性も設計センスもない
0771デフォルトの名無しさん2017/02/08(水) 13:21:32.03ID:0pdT/sv9
本物のプログラマは仕様書を書かない
0772デフォルトの名無しさん2017/02/08(水) 13:25:46.66ID:LV5N7Ks6
ats2 は ml と rust と agda を足して 2 で割ったような理解不能言語
0773デフォルトの名無しさん2017/02/08(水) 13:33:37.39ID:ZP7mUzC3
そもそもエンジニアなんて別にそんな誇り高い呼び名じゃないし
なんで選ばれしプログラマーみたいな定義になってんの
0774デフォルトの名無しさん2017/02/08(水) 16:19:25.95ID:fGXhImwi
チェンジニア
0775デフォルトの名無しさん2017/02/08(水) 17:46:03.28ID:/S15sASy
>>767
やはり、有力候補といった感じですかね。
2013年のそっち系の数学の教科書を見るとCoqとAgdaが言及されているので、
現状の最先端と見ていますが、どうかなと。
0776デフォルトの名無しさん2017/02/08(水) 18:24:02.08ID:uiFBRwjo
>>764
データマイニングに投資する、と決めること自体が、勘か経験か度胸とも。
Prologで良いじゃん、と言う話やらRで良いじゃん、と言う話をはねのけてコストかける意志的な話。
0777デフォルトの名無しさん2017/02/08(水) 19:58:21.05ID:/S15sASy
>>776
これで飯食ってるわけではないので、そこまで必死ではない。
哲学的な何かやりがい感じられて、やってて楽しいのが重要。
旧体制の巨人言語に最先端の尖った言語で挑戦してるっていう設定も厨やハッカーっぽくていいじゃん。
次世代言語スレなのだから皆こういう意識と思ってたが違うのかな?
0778デフォルトの名無しさん2017/02/08(水) 20:49:13.83ID:0pdT/sv9
Coqは依存型を超えた高階型が使えてHaskellの100倍凄いよな。
遅延評価もするかしないかも選べるし最強の関数型言語と言っても過言ではない。
0779デフォルトの名無しさん2017/02/08(水) 20:56:20.62ID:+f0LmjaI
swift入れてくれよ
goってなんか危ないバイナリ混じってんでしょ
それ聞いてやる気が起きない
0780デフォルトの名無しさん2017/02/08(水) 21:07:31.81ID:k3GtP4PI
Haskellでも依存型が使えるようになるらしいよ
2018、2019年辺りから
0781デフォルトの名無しさん2017/02/08(水) 21:10:38.79ID:TX+A2Z+7
>>760
昔からそうだが
金も出ないのに要件以上の事をやるのは、単なる馬鹿
0782デフォルトの名無しさん2017/02/08(水) 21:30:52.04ID:0MDQAzJA
goはGoogleが全部支配してる言語ってだけで良識ある人は全力で避ける
0783デフォルトの名無しさん2017/02/08(水) 21:32:31.61ID:m2cf+jJp
F#ってどう思いますか?
0784デフォルトの名無しさん2017/02/08(水) 21:53:11.81ID:saIve44q
google先生は飽きるとバッサリ切り捨てるからねえ
0785デフォルトの名無しさん2017/02/08(水) 21:59:43.88ID:pR9qFxBQ
誰が使ってんの状態のDartですらまだほそぼそとメンテされてるんだぞ!
0786デフォルトの名無しさん2017/02/08(水) 22:01:53.39ID:pR9qFxBQ
と、気になってgithub見に行ったら2ラストコミット2時間前だった。思ったよりかなり活発なのね。
0787デフォルトの名無しさん2017/02/08(水) 22:04:16.61ID:gd77Yna+
F#すこ
0788デフォルトの名無しさん2017/02/08(水) 22:35:09.63ID:ZP7mUzC3
Dartは普通のaltJSとしてむしろGoより人気あるイメージあった
対抗馬TypeScriptくらいだし
0789デフォルトの名無しさん2017/02/08(水) 22:37:11.52ID:0MDQAzJA
F#はMSに首輪つけられてる身分からすれば良い言語なんじゃね?
0790デフォルトの名無しさん2017/02/08(水) 23:21:58.93ID:b6dR+iVQ
まあ go くらいのシンプルな言語なら google が手引いてもメンテくらいできるだろ。
0791デフォルトの名無しさん2017/02/08(水) 23:49:14.35ID:r3HFKoMF
関数型の実装は難しくない。関数型は簡単な言語ともいえる。



言語はどこまで小さくなれるか - (unlambda|iota|jot) のすすめ
「言語設計者たちが考えること」の言語設計者たちが考えた、複雑で豊穣な言語に日々触れていると、ときおりその逆も考えずにはいられません。
言語は、どこまで簡潔になりうるのか、と。
小さな言語の代表としては、Brainf.ckがあげられます。
最もタメになる「初心者用言語」は Brainf*ck!といわしめるほどのものであり、
実際言語処理系の演習などではこれはネタではなくベタと言っても過言ではないのですが、命令8つとはいかんせん多すぎます。
実際これを減らすというのもまた esoteric linguists の愉しみの一つで、元祖BFほど美しく見えないのは、「命令を無理してまとめている」ところにありそうです。
それでは。他に手だてはないのでしょうか?
希望の光は、命令型ではなく関数型の方からさしているように見えます。たとえば、SKI combinator calculus。
これを使うと、ラムダ計算を、S, K, I という三つの関数に集約することが出来ます。
これに関数の適用を加えた4つのシンボルがあれば、チューリング完全な言語を実装するのに充分ということになります。
これを実現したのがUnlambdaですが、余計な関数も数多く入っています。
そこから不要なものを取り除き、純粋化したのがLazy Kです。
コンパクトなのは仕様だけではなく実装もそうで、JavaScriptであれば以下で全てです。
S = function(x){return function(y){return function(z){return x(z)(y(z))}}};
K = function(x){return function(y){return x}};
I = function(x){return x};
unlambda = function(str){
return (function(a){
if (!a.length) throw 'syntax error';
return { s:S, k:K, i:I }[a.shift()]
|| arguments.callee(a)(arguments.callee(a))
})(str.replace(/[^`ski]/g, '').split(''));
};
http://blog.livedoor.jp/dankogai/archives/51524324.html
0792デフォルトの名無しさん2017/02/09(木) 00:10:31.53ID:lnTHGhne
>>788
そうなのか。Goの方がおれの観測範囲では見る方だし、Dockerとかにも使われてるしメジャーかと思ってたわ。

ちなみにGithubのスター数
Dart SDK 979
coffeescript 13693
TypeScript 18833

typescriptの対抗馬coffeescriptじゃね?エディタ的にも。
0793デフォルトの名無しさん2017/02/09(木) 00:12:34.54ID:eJKwaunX
バカな私に関数型は無理な気がする
0794デフォルトの名無しさん2017/02/09(木) 00:13:24.51ID:lnTHGhne
おまけ、
GoのGithubでのスター数 24498
0795デフォルトの名無しさん2017/02/09(木) 01:15:02.70ID:/fB7Lbok
>>789
Monoあかんか……
0796デフォルトの名無しさん2017/02/09(木) 01:50:19.00ID:bk38Uo9V
Goで作られたのは出来のいいやつが多い印象

clojurescriptも入れてくれ 6762
0797デフォルトの名無しさん2017/02/09(木) 04:13:32.99ID:SonJzAjc
>>793
どこがそう思った?
むしろ下手なLLよりも覚える事少ないと思うが。
学習するだけなら、ほぼ算数/数学と同じ。

代入とかオブジェクト作ってnewとか、コンピュータ都合の概念は無いと言うか、型ぐらいなもの。

用語にビビってるなら、怖がる事ない。
0798デフォルトの名無しさん2017/02/09(木) 07:06:30.83ID:f+azW8iy
型だって、どちらが先か分からんが型理論という形で論理学や数学に合流しているよ。
オブジェクトうんぬんは知らない。
もしかして圏論のオブジェクトと関連するんかね?そうは見えないが。
0799デフォルトの名無しさん2017/02/09(木) 07:17:40.39ID:gkU41vRr
>>798
C++/Java系のはSimulaが語源
最初から複雑な仕組みだったし、全然関係ないぞ
というか、あのクラスや継承の仕組みのどこで圏論と思ったんだ
0800デフォルトの名無しさん2017/02/09(木) 07:30:29.58ID:ZDdUJ5Qr
数学との関係は
型=プログラムの仕様書=定理で、値=プログラム=証明
という関係だよな
定理を証明した瞬間プログラムが完成している凄い関係なんだよね。
0801デフォルトの名無しさん2017/02/09(木) 07:58:57.08ID:f+azW8iy
>>799
皮肉で書いたんだが。
既にある全然関係ない用語をよく使うなぁと。
0802デフォルトの名無しさん2017/02/09(木) 08:05:13.55ID:7uQf4n0A
関数型信者ってなんでこんな押し付けがましいん?
0803デフォルトの名無しさん2017/02/09(木) 08:59:47.75ID:ZDdUJ5Qr
オブジェクトは昔から普通の英語の言葉だろ。
0804デフォルトの名無しさん2017/02/09(木) 10:12:27.85ID:X3gAJ9Ta
関数型言語とか言ってるやつは某毛の壁と同水準の頭脳の持ち主だから触らないのが一番いい
0805デフォルトの名無しさん2017/02/09(木) 10:43:40.77ID:qVFFfrqq
何を押し付けるかにもよるな
関数型じゃなくて静的型を押し付けると支持率が下がらない
0806デフォルトの名無しさん2017/02/09(木) 11:41:13.14ID:X3gAJ9Ta
強い静的型付けをいかにも関数型の恩恵みたいに言うやつに、
Javaですら型推論がないだけで普通に強い静的型付けだって言うと決まって顔ひきつらせるの笑える
0807デフォルトの名無しさん2017/02/09(木) 12:33:05.97ID:qVFFfrqq
恩を感じたら負け、顔がひきつったら負け、笑われたら負け
でも、型推論がないだけなら負けじゃない
一体何の勝負をしているんだ
0808デフォルトの名無しさん2017/02/09(木) 12:53:34.71ID:aq6OLK4H
関数型で強い静的かたづけがどうこう言ってる奴は型システムと関数型が直交している概念だと理解していない
型システムはむしろオブジェクト指向のほうがややこしい

いわゆるきょうへん性はんぺん性の話はオブジェクト指向でも出てくるだろうしな
0809デフォルトの名無しさん2017/02/09(木) 12:55:49.56ID:aq6OLK4H
関数型を叩くときに決まってけのかべを持ち出す奴は気持ち悪いデザパタを何個か知ってるだけでプログラムをかけないし、デザパタの適用範囲も理解できていないだろうね
Cすら通っていない気がする
0810デフォルトの名無しさん2017/02/09(木) 13:24:20.98ID:/miB3JEc
おまえら煽りあってばっかりやなw
0811デフォルトの名無しさん2017/02/09(木) 13:40:38.39ID:dzc+/x52
関数型なんて簡単やん関数作ればええだけやし
モナドとか圏論とか数学じみたクッソ煩雑な概念必須なのHaskellくらいでしょ
0812デフォルトの名無しさん2017/02/09(木) 14:08:16.34ID:xprSmyqC
再帰処理が苦手な人は多いからな
0813デフォルトの名無しさん2017/02/09(木) 14:29:45.94ID:X3gAJ9Ta
>>811
Scalaも必要になってるんだよなこれが。
0814デフォルトの名無しさん2017/02/09(木) 15:03:52.72ID:rFsWpsiI
>>811
必須じゃないよ。
分からんでも使えるけど、分からないからモヤモヤするから勝手に挫折するだけ。
すごいH本で大分モヤモヤする人少なくなった。
0815デフォルトの名無しさん2017/02/09(木) 18:47:14.33ID:gV98R3Qz
>>801
> 皮肉で書いたんだが。
> 既にある全然関係ない用語をよく使うなぁと。

横レスだが、オブジェクト指向の源流はSimulaだがSimulaでは確かobjectという言葉は使用していなかったはず(classとinstanceは使ってる)
objectという用語を使いだしたのはAlan KayらによるSmalltalkの初期バージョンあたり(-72ぐらいかな)だろうが
彼らが"object"という言葉を使った時には数学の圏論なんて全く視界にはなかっただろうね
単にコンピュータの中で仮想的な世界を直感的な形で容易に操作できるように(つまり小学生でも習得できるように)作り、
その仮想的な世界での操作対象を「対象」つまり"object"と呼んだだけだ、だって一般用語の意味での「対象」"object"をコンピュータの内部に作り
それらを画面上にマルチウィンドウなどのマニュアルを熟読しなくても直感的に習得可能な形で提示し操作するのを目指したのだから

そもそもオブジェクト指向が誕生した時代には、ほとんどのソフトウェア屋は数学なんて興味はなかった
数学の圏論なんてので基礎づけがどうしたこうしたなんてのはずっと後の話だよ
数理論理学者が新たな論文を書くネタとして型理論を橋頭保にして大量に計算機科学に参入した1980年代後半以降からだが
categoryやらfunctorやらという言葉を(理論方面の研究者でなく)一般のソフトウェア屋の少なからずが口にするようになったのは
ここ10年ぐらいじゃないの? 少なくとも世紀が変わってからだ

というわけで「既にある全然関係ない用語をよく使う」というのが"Object-oriented"界隈での"object"の使用(「既にある」は圏論での使用)を
指しているのならば、その批判は全くの的外れです

OOの連中は"object"という用語を日常用語としての意味で使ったのであって連中には数学など眼中になかった
(そもそも圏論なんてのも90年代以降になるまでは理論計算機科学者ですら関心を持っていたのはかなり少数だったし
数学でも代数幾何とか代数位相幾何とか一般代数(universal algebra)など、かなり限られた分野の研究者以外は
abstract nonsenseとして敬遠あるいは軽蔑されていたのだから)
0816デフォルトの名無しさん2017/02/09(木) 18:49:00.45ID:gV98R3Qz
>>815の補足

失礼、紛らわしいので以下のように言葉を補い訂正しておく

誤> OOの連中は"object"という用語を日常用語としての意味で使ったのであって連中には数学など眼中になかった
正> OOを創始した連中は"object"という用語を日常用語としての意味で使ったのであって連中には数学など眼中になかった
0817デフォルトの名無しさん2017/02/09(木) 19:18:51.18ID:f+azW8iy
>>816
勉強になった。
ガキの頃に見た岩波の数学辞典がガチガチの圏論ベースで書かれていたから、
理論科学系の人間には常識だったと思ってたが違うのだね。
0818デフォルトの名無しさん2017/02/09(木) 20:44:11.62ID:mW4P8Un/
>>815
OO の "object" って何だ?って所のモヤモヤ感がすっきりした。アリガd
0819デフォルトの名無しさん2017/02/09(木) 21:14:53.16ID:f+azW8iy
>>816
今、辞典を見返してみたが、そうでもなかった。
第二版第一刷が1968年で載ってるなってくらい。
紛らわせてすまない。
0820デフォルトの名無しさん2017/02/09(木) 21:28:36.71ID:Q39QXQMs
object指向なんじゃなくて、subject思考なんだよ
俺が言ってることがわかる奴は、object指向も関数型もわかっている
0821デフォルトの名無しさん2017/02/09(木) 21:30:06.23ID:Q39QXQMs
object指向主義者は、subject抜きで、形式言語は成立しないとかんがえているだけなんだよ
0822デフォルトの名無しさん2017/02/09(木) 21:37:16.22ID:UTxumv29
またくだらんテクニカルターム論になってるな。
0823デフォルトの名無しさん2017/02/09(木) 22:03:59.55ID:f+azW8iy
>>820
objectといった時点で主語はあくまで操作者で、むしろobject=データに働きかける関数型のイメージであり、
いわゆるobject自身がsubjectで何かするというのがobject指向ということでおけ?
0824デフォルトの名無しさん2017/02/09(木) 22:53:39.96ID:gkU41vRr
すごくざっくり言えば
ステートフルがオブジェクト指向
ステートレスが関数型

データを数人で囲んでリンチし続けるのがオブジェクト指向
データを大勢で大玉送りしてネチネチいじめていくのが関数型
0825デフォルトの名無しさん2017/02/09(木) 23:12:14.47ID:+psfLY/9
関数型って流行るの?
オブジェクト思考からパラダイムシフトするの?
勉強する価値あるの?
0826デフォルトの名無しさん2017/02/09(木) 23:18:52.57ID:gkU41vRr
>>815
いんや、Simulaはコンセプトからして思いっきりオブジェクト指向だし
オブジェクトって単語もクラスなどの説明に多用してるよ

Smalltalkもオブジェクトという概念の再解釈ってだけで、源流はSimulaと言っていいでしょ
0827デフォルトの名無しさん2017/02/09(木) 23:27:43.80ID:gkU41vRr
>>825
人数や流行りが重要ならC、Java、JavaScriptあたり極めとけば?
どれも馬鹿にするやつ多いが、奥は深い
中途半端にかいつまむのが一番いけないよ
0828デフォルトの名無しさん2017/02/09(木) 23:30:29.54ID:f+azW8iy
>>825
まずは触ってみると良いかと。全然違う感覚で楽しいよ。
プログラミングHaskell(Graham Hutton)が薄くて、
しかし基本は押さえてていい気が。
hugsではなくghcが主流なので注意。
0829デフォルトの名無しさん2017/02/09(木) 23:36:42.34ID:gkU41vRr
ぶっちゃけ、今からHaskellはオススメしない
stack不安定だし、まともに使えないパッケージ多すぎる
0830デフォルトの名無しさん2017/02/09(木) 23:41:42.73ID:jcuzgsFP
>>825
Javaもラムダ式取り入れたし多少はね
0831デフォルトの名無しさん2017/02/09(木) 23:51:18.99ID:f+azW8iy
確かにstack不安定ですね。
でも雰囲気をつかむのなら、やはりHaskellが良いのではないかと。
別にHaskell続けなくても考え方を持ち帰るのはいい経験になるのでは?
他人の意見に惑わされず、まず自分で触るのが大事かと。
0832デフォルトの名無しさん2017/02/09(木) 23:55:08.80ID:Jh/6F1Jd
>>829
Stack不安定は同意だけど、何がおすすめなの?
0833デフォルトの名無しさん2017/02/10(金) 00:01:40.00ID:5MVdS2z+
>>832
Scala最強電鉄
0834デフォルトの名無しさん2017/02/10(金) 00:17:36.10ID:2oDNuzZU
関数型の言語じゃなくても最近の一般的言語で
こういう書き方してるやついたらそりゃないっしょって思う

var arr = [["x",1],["y",2],["z",3]]
var result = {}
for(i=0;i<arr.length;i++){
result[arr[i][0]] = arr[i][1]
}
//-> result: { x: 1, y: 2, z: 3 }
0835デフォルトの名無しさん2017/02/10(金) 00:24:28.11ID:fUC4e4v0
LINQもある種、関数型への歩み寄りだよな
0836デフォルトの名無しさん2017/02/10(金) 00:45:51.11ID:sIFP3alf
>>834
別にそりゃ無いよとは思わないが…
回すとmapは遅いもの
もし元データ表現を言ってるなら、制約で冗長に書く事はサーバーサイドjsだと結構あるよ
0837デフォルトの名無しさん2017/02/10(金) 00:51:09.50ID:Nrgs4Acd
>>834
Rubyの場合:

[手続き型プログラミング・スタイル]
 arr = [[:x, 1], [;y, 2], [:z, 3]]
 result = {}
 arr.each do |(key, val)|
   result[key] = val
 end
 # result --> {:x => 1, :y => 2, :z => 3}

[関数型プログラミング・スタイル]
 arr = [[:x, 1], [:y, 2], [:z, 3]]
 result = arr.inject({}) { |hash, (key, val)| hash.merge(key => val) }
 # result --> {:x => 1, :y => 2, :z => 3}

参考:
 Rubyによる関数型プログラミング
 http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html
  この文書にある「列挙オブジェクトからハッシュを生成する方法」を参照
0838デフォルトの名無しさん2017/02/10(金) 01:06:01.01ID:2oDNuzZU
>>836
最適化が必要なケースだとか性能超重視のシステムでコーディング規約でしばってるようなケースは別よ
一応確かめてみたけどFirefoxだとmapのほうが若干速い
Chromeだとmapが異常に遅い
https://jsperf.com/native-map-versus-array-looping
0839デフォルトの名無しさん2017/02/10(金) 01:15:08.04ID:6n4BenjP
そういうの見ると無駄にわかりづらくしてるだけだな関数型って思ってしまう
0840デフォルトの名無しさん2017/02/10(金) 01:16:56.57ID:2oDNuzZU
>>837
arr = [[:x, 1], [:y, 2], [:z, 3]]
arr.to_h
=> {:x=>1, :y=>2, :z=>3}

Ruby好きだわ
0841デフォルトの名無しさん2017/02/10(金) 01:17:00.79ID:sIFP3alf
>>838
これ逆じゃない?
Firefoxだけmapが異様に速い
pushにからくりがありそう
0842デフォルトの名無しさん2017/02/10(金) 01:18:40.24ID:8nnnziXA
>>837
Rubyみたいな欠陥言語は出してくんなよ。
列挙子は割と遅いし、空配列とマージって発想はキチガイ沙汰。それが当たり前だと思ってるならもはやキチガイそのもの。
回す前に長さわかってんだから、その長さの配列くらいつくれるだろ。

なんとか型スタイルの問題ではなく、カーゴカルトそのもの。なんとか型を真似してみました、こんなコードだよね、みたいな無様な事はホントやめて。
議論の邪魔。
0843デフォルトの名無しさん2017/02/10(金) 01:19:48.77ID:Nrgs4Acd
>>840
おぉぉ、いつの間にやらメソッド Hash#to_h が追加されていたんですね
情報thanks!
0844デフォルトの名無しさん2017/02/10(金) 01:21:22.89ID:8nnnziXA
>>840
頭おかしいわ
0845デフォルトの名無しさん2017/02/10(金) 01:22:09.65ID:Nrgs4Acd
>>843を訂正
X:メソッド Hash#to_h
O:メソッド Array#to_h
0846デフォルトの名無しさん2017/02/10(金) 01:27:06.72ID:sIFP3alf
>>838
どうやらFirefoxはmapで、事前に領域を予約してるみたい
なので、pushがボトルネックで遅いだけ
下の例の通り、ちゃんとnew Arrayしてforで回すとmapより速くなる
https://jsperf.com/map-vs-native-for-loop/7
0847デフォルトの名無しさん2017/02/10(金) 01:31:56.38ID:sIFP3alf
>>838
あとちょっと誤解があるようだけど、
データ表現云々というのは、サーバーサイドJavaScriptだと、
引っ張ってくる元データの制約で、冗長な抽出コードは書く事がよくあるって意味だよ
コーディングルールとかじゃなくて
0848デフォルトの名無しさん2017/02/10(金) 01:42:45.21ID:2oDNuzZU
>>843
古いバージョンならHash[arr]でいけるよ
0849デフォルトの名無しさん2017/02/10(金) 01:49:13.94ID:2oDNuzZU
>>846
その例で見ても俺の環境だとChromeのmapはfor-loopより95%以上遅くて
jQueryよりも遅いくらいだしなんか問題があるんじゃないかな
Firefoxのmap/for-loopの差(俺環で8%)のほうが普通だと思う
0850デフォルトの名無しさん2017/02/10(金) 05:21:19.45ID:x+RHeUvW
>>825
流行らない。
でも、遅延評価のHaskellは良い経験になる。

例えば

[[1,2,3],[4,5,6],[7,8,9]]

ってデータ作るのに、

手続き型だと二重ループと代入使う。

Haskellだと

[1,2,3]:[1+3,2+3,3+3]:[1+3+3,2+3+3,3+3+3] = [[1,2,3],[4,5,6],[7,8,9]]

って性質使ってtake,iterete,map使って書いたり、多分他にも書き方ある。
iterateみたいな無限関数使う経験は貴重。

iterate f x = x:iterate f (f x)

って一行だけの停止しない関数。標準で使えるが、自作も出来る。takeとかが無いと停止しない関数とか面白い。
二重ループ処理も関数としてバラして再利用出来るのかと感心したし、逆に二重ループも代入も使えないから頭使った。
でも、プログラマとして大事な何かを得た気もする。
(気がしただけかもしれないが)

take 3 $ iterate $ map (+3) [1,2,3]
0851デフォルトの名無しさん2017/02/10(金) 05:27:53.31ID:x+RHeUvW


take 3 $ itetate (map (+3)) [1,2,3]

だったorz
0852デフォルトの名無しさん2017/02/10(金) 07:11:07.98ID:DVfbLU0l
細かいけど、cons使うなら右端はリストのリストかな。
0853デフォルトの名無しさん2017/02/10(金) 09:14:27.82ID:iFUFe9wv
>>850
勉強したって流行らなければ時間の無駄じゃないの
プログラムなんてお金になってなんぼでしょう
0854デフォルトの名無しさん2017/02/10(金) 09:55:14.86ID:OEqNc6jK
じゃあ、マイクロソフトが作ってるC#とかF#いう言語が一番金になるからそれ使え。
0855デフォルトの名無しさん2017/02/10(金) 10:27:26.49ID:WtkyQY/r
>>826
Simula 67 は「オブジェクト」と「クラス」という言語機能を提供した初めての言語ではあるけど、
Simula 67 がオブジェクト指向というのは後付け。

特に「クラス」に着目し、これを抽象データ型(簡単にはユーザー定義型)に応用したのがストラウストラップの C++ で
特に「オブジェクト」に着目し、これをメッセージの受け手として用いたのがケイの Smalltalk-72 。

のちに後者の Smalltalk も Simula 67 スタイルのクラス(具体的には継承機構)を Smalltalk-76 から採用するに至り、
両者とも「(継承付)クラス」と「オブジェクト」を有し、理解が足りないと静的か動的かくらいの差しかわからなくなってしまったため、
出自も目的も異なる二人の“OOP”の解釈がが混同され混乱が生じた。
0856デフォルトの名無しさん2017/02/10(金) 10:34:42.65ID:VL68/4tY
関数型でコード短く分かりやすくなるとかほざいてるアホは、それでCやJavaと同じ性能出してくれ。
0857デフォルトの名無しさん2017/02/10(金) 10:37:15.55ID:VL68/4tY
訂正
C、百歩譲って少なくともJavaとおなじ性能。
0858デフォルトの名無しさん2017/02/10(金) 10:46:38.55ID:8U0cA5Uo
その辺は言語やコンパイラの完成具合による
昔はJavaだってCと比べればミジンコみたいなものだった
理論的にはScalaはJavaと同じ性能
RustはC++と同じ性能を出せる
0859デフォルトの名無しさん2017/02/10(金) 10:50:26.26ID:Wf2kRBSt
性能って何を指してるのかわからんが
速度のことならpython全否定かよ
0860デフォルトの名無しさん2017/02/10(金) 11:01:44.89ID:VL68/4tY
>>858
HaskellやOCamlがC++と同じ性能出るって話はとんと聞かんがな。出て数年の言語って訳でもなかろう。
Scalaは言語自体が破綻してるから知らん。

>>859
LL言語とコンパイル言語いっしょくたにする論点反らし乙
0861デフォルトの名無しさん2017/02/10(金) 11:05:06.32ID:gInMRNOI
パフォーマンスクリティカルな部分は、関数内部では参照透過性を破棄して外部からは参照透過に見えるように設計すりゃいいじゃんって思うけどダメなん
0862デフォルトの名無しさん2017/02/10(金) 11:12:58.55ID:VL68/4tY
>>861
それでC++並の速度出るならこんなにdisってないんだよな。

HaskellのSTモナドに芸術感じたのは否定しないが芸術の域を出ないしな。
0863デフォルトの名無しさん2017/02/10(金) 11:14:34.97ID:FJ3G7akv
関数型言語は巷のIT土方には使いこなせんからw
0864デフォルトの名無しさん2017/02/10(金) 11:17:35.65ID:Wf2kRBSt
>>860
いや関数型=コンパイル言語じゃないし…
LL、関数型、コンパイル言語はそれぞれ別の性質の話だしどれが対義語ってものでもないから全然噛み合ってないぞ
0865デフォルトの名無しさん2017/02/10(金) 11:29:24.62ID:OEqNc6jK
そんなに速度重視したいなら手動でHaskellのコードをCにトランスレートすればいいはなしだろ
0866デフォルトの名無しさん2017/02/10(金) 11:32:09.86ID:E8u1TJrq
オールアセンブラ書けば爆速
0867デフォルトの名無しさん2017/02/10(金) 11:33:57.62ID:VL68/4tY
>>864
んじゃ訂正というか具体例にする。
HaskellやOCamlをもてはやしてる奴は、Cほどとは言わんまでもC++、さらに譲ってもJavaくらいの速度出してくれ。
コンパイル言語なんだからハードルはこの辺だろう。

でなきゃこれらの言語は実用に耐えない玩具ということを否定できないぞ。

F#はC#並の性能出るらしいが上限が.net依存だから比較できん。
0868デフォルトの名無しさん2017/02/10(金) 11:38:51.16ID:VL68/4tY
毎度「そんなに速度が欲しけりゃアセンブリ書いてろ」っていう奴いるけど、
最近のCは人間がアセンブリ書くより速いし、関数型言語が遅い弁解にはなってないよね?
0869デフォルトの名無しさん2017/02/10(金) 11:42:02.18ID:4wNIZ7mB
>>583
言語は流行らないが、機能は流行る。
先取りして概念や使い所に慣れておけ。
0870デフォルトの名無しさん2017/02/10(金) 11:47:45.91ID:4wNIZ7mB
>>856
短いのと速いのは関係無いよね?
Haskellは遅いとも。

だから、関数型は勉強はしておいて、仕事は手続き型が良い。
関数型の機能を取り入れて行ってるから尚の事。
0871デフォルトの名無しさん2017/02/10(金) 11:55:51.72ID:vz9eAXX1
なんでコンパイル言語なら速くないといけないの?
Haskellが遅いのはリスト使ってるからだし、Cだってリスト使ったら遅い
それでもHaskellがリスト使うのはその方がイミュータブルなプログラムが速くなるからだ
まさかイミュータビリティは不要なんて言い出すわけ?
それともイミュータブルでもミュータブルな操作並みに速くないと許せないの?
0872デフォルトの名無しさん2017/02/10(金) 11:56:59.97ID:vz9eAXX1
あとHaskellは基本BigIntなのもあったな
0873デフォルトの名無しさん2017/02/10(金) 12:19:32.33ID:4wNIZ7mB
>>852
itetateは関数と値を受け取って、リストを返す関数なので、値がリストなら、リストのリストが返ってくるので、これで間違って無いですよ。
0874デフォルトの名無しさん2017/02/10(金) 12:36:54.80ID:DVfbLU0l
>>873
そこじゃなくて、真ん中の[1,2,3]あたりね。
0875デフォルトの名無しさん2017/02/10(金) 13:37:29.21ID:B/694aWe
ああ、確かに。
Consである必要なかったですね。
0876デフォルトの名無しさん2017/02/10(金) 13:39:49.21ID:Yjlp1QL8
>>792
coffescriptはオワコンじゃなかったっけ?
0877デフォルトの名無しさん2017/02/10(金) 14:11:40.80ID:r29H8jjf
>>855
Smalltalk信者?
Simulaはsmalltalk初出以前の言語標準にobjectがコンセプトと明記してるよ
そのレスの内容思いっ切り間違ってる
0878デフォルトの名無しさん2017/02/10(金) 14:13:29.40ID:l8wsYG39
そもそもHaskell自体を実務に使うつもりで勉強する奴なんか殆ど居ないだろう。
だけど考え方は応用が利くので皆やるわけで...
0879デフォルトの名無しさん2017/02/10(金) 14:15:21.10ID:sIFP3alf
>>867
なんか勘違いしとるなコイツ
OCamlは普通に速いぞ
0880デフォルトの名無しさん2017/02/10(金) 14:18:11.46ID:sIFP3alf
>>849
jQueryの方は見てなかった
Chromeのmapが遅いのも確かのようだね
0881デフォルトの名無しさん2017/02/10(金) 14:36:09.82ID:NRmEQgqe
>>879
整数がライブラリ噛まさないとビット数足りなくて、そのライブラリが遅くて使い物にならんかったんだがな。

それとも今はまともに速度出てくれるんかね?
0882デフォルトの名無しさん2017/02/10(金) 15:22:35.86ID:jEE+Gxi+
なんかオブジェクト指向についていけなかったコボラーみたいに見える
関数型の考え方は手続き型にも役立ってるけどな
0883デフォルトの名無しさん2017/02/10(金) 16:34:47.43ID:sIFP3alf
>>881
具体的にどれ?
Javaと比べて遅いってんだよな?
0884デフォルトの名無しさん2017/02/10(金) 17:50:11.42ID:WtkyQY/r
>>877
> objectがコンセプトと明記してる

とまあ件の混同と混乱は、こんなふうに「(クラスや)オブジェクトを使いさえすればオブジェクト指向」と信じて疑わない
オブジェクト指向の本質を理解できないOOP難民を量産してしまった

ストラウストラップ(と同時期に似たようなアイデアを出した人たちの)“OOP”は、
クラスを使って抽象データ型を実現し、型安全なプログラミングやそのサポート
ケイの“OOP”はメッセージングをメタファーとし、動的結合を徹底させるプログラミングやそのサポート、と本質が違う
ダールらもSimulaを発表した後に前者のアイデアに気づいたが、最初から狙ってSimulaを作ったわけではない
0885デフォルトの名無しさん2017/02/10(金) 18:05:32.66ID:Yjlp1QL8
>>877
smalltalkのooとsimulaのooは概念の出自が違う
0886デフォルトの名無しさん2017/02/10(金) 18:13:39.09ID:rXluJnty
Haskellについては、鯖サイドに向いてる気がするので、Yesod本の日本語訳出せばそこそこ人気出そうだけどね。

小規模ならLLで良いけど、大規模になって来るとコンパイル終わったらほぼバグ無しってのは凄い強み。
元々、凡ミスバグも手続き型より出しにくい。
無限リストとかが、長さが分かりにくいWebデータのコードをスッキリ書けそう。
(元はParl5インタプリタを本家より早く完成させたのが注目された理由だった)

コード量と速さはLL並みなのに、頑強さと並列しやすさは全然違う。
注目集まったら、最適化の進化が早まらないだろうか。。。

アプリも昔のがっちりコード依存のGUIじゃなく、XAMLやHTML/CSSと組み合わせる形なら速度気にしないアプリなら開発効率良いんだろうなって思う。
(だからF#の地位向上には期待してる)

英語出来ないのがつくづく悔やまれるよ。
0887デフォルトの名無しさん2017/02/10(金) 18:20:55.48ID:R5OtDkdz
>>883
どれもなにも標準のInt32とInt64。
0888デフォルトの名無しさん2017/02/10(金) 18:31:24.42ID:K96nxyp6
>>884
あのねえ、狙って作ってるから、Simulaはobject中心のコンセプトと明記してるわけで
そもそも発表した後に言語標準に追記したとしても、Smalltalkより出自は早いから、間違いだよ

SmaltalkのOOの概念は知ってるし、否定しているのでもない
OOというアイデアを最初に作ったのが、アランケイかのように言ってるから、それは大間違いだぞと言ってるまでだよ
0889デフォルトの名無しさん2017/02/10(金) 18:47:41.82ID:686NvPbu
むしろこうやって2者を区別できてないと決めてかかって、仮想敵を叩き始める人間を量産したのが、Smalltalkの悪いところ
Smalltalk自体が害悪と言っていいかもな
0890デフォルトの名無しさん2017/02/10(金) 19:32:02.73ID:QwZMX6+7
で、OOが2種類ある原因はなんなのか?
静的型と動的型のせいでしょ
直交性なんてないよね
0891デフォルトの名無しさん2017/02/10(金) 20:43:29.26ID:87WOJqFm
>>890
アラン・ケイは別に静的型には反対していないよ
彼の望む遅延結合性の邪魔をしない静的型なら歓迎するはず
http://d.hatena.ne.jp/katzchang/touch/20080807/p2
0892デフォルトの名無しさん2017/02/10(金) 20:55:14.84ID:87WOJqFm
>>888
いや、だからその「オブジェクト中心」とかいうのをOOPとするのが間違っているんだってわかんないかな
アイデアが提出されたのの早い遅いではなくて、抽象データ型のOOPとメッセージングのOOPはそもそも考え方が異なる
早い遅いで言ったら、抽象データ型のOOPの方がダールやリスコフが早く気づいた分、メッセージングのOOPよりも早い

>>889
でも実際に区別できていないわけだし…
0893デフォルトの名無しさん2017/02/10(金) 21:42:59.21ID:rXluJnty
smalltalkとか懐かしいな。。。
Boolもオブジェクトだったっけ。

(1>3) then: [Workspace display: 'No! 3 is Big!!'] else: [Workspace display: 'Yes. 1 is Small.']

もう十年以上前に触ったきりだからうろ覚えだけど、こんな感じだっけ。
メソッドチェーンが文章的になるの嫌いじゃなかった。

Squeakとかだとコード上のオブジェクトだけでなく、動いてるアプリにもどんなクラスやメソッド持ってるか聞けたり、コード見たり、弄って変更したり出来てたね。
リアルタイムのOS育てゲーム。

上で騒いでるのは静的型言語でも動作中のアプリにクラスやメソッドを聞けて、コード変更と、更新したらすぐに動作に反映出来れば良いって事かな?

アサートとかでメタプログラミングも出来るようになってきたし、コンパイル速度もDelphiみたいに速いのもあるし、コンパイラ内蔵実行ファイルとかでサポート出来なくはなさそうだけど、出来ない方がコード資産守れるから会社じゃ採用されなさそう。
0894デフォルトの名無しさん2017/02/10(金) 21:48:40.84ID:1t5JET4K
関数型は確かにコードが短くなるがわかりやすくはならないだろう
短いということは、それだけ文法に暗黙の了解が多いということだ
このような代物は背後にある考え方とそれによるメリットだけ頂いて、残りは捨てるのが正解
つまりJava8が正しい
0895デフォルトの名無しさん2017/02/10(金) 21:53:27.37ID:rXluJnty
それは関数型、手続き型じゃなくて、クラスやメソッドの命名規則の問題。
0896デフォルトの名無しさん2017/02/10(金) 21:59:35.05ID:87WOJqFm
>>893
プロトタイピングでは威力を発揮するので、動作を検証できたら即座に実戦に投入できるという点に惚れ込んで
ALLSTOCKERを作っているスタートアップの人たちはSmalltalkを採用しているね
https://medium.com/@newapplesho/%E3%81%AA%E3%81%9C%E6%88%91%E3%80%85%E3%81%AFsmalltalk%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%8B-%E3%81%9D%E3%81%AE2-smalltalk%E3%81%AE%E8%89%AF%E3%81%95-7a3af3cc5823#.8tm02xv3o
0897デフォルトの名無しさん2017/02/10(金) 22:00:19.12ID:1t5JET4K
>>895
関数型の利点は短く書けることだと街宣している人間がたくさんいるじゃないか
彼らは命名規則の話なんて一切していないぞ
0898デフォルトの名無しさん2017/02/10(金) 22:13:12.95ID:sIFP3alf
>>894
短く済むってことは、良く抽象化されてるって事
つまりそれだけ生産性も高い

文法的に短い事が悪だとかいう考えは改めた方がいいんじゃないか?
ただのコードゴルフとは言ってる意味が全く違うからね
0899デフォルトの名無しさん2017/02/10(金) 22:15:03.55ID:rXluJnty
>>896
海外じゃ実戦投入してる会社があるのは当時も聞いてた。
でも多数派では無い。
それぞれ会社の価値観に違いはあっても良いが、それが多数派になるかは別問題。
0900デフォルトの名無しさん2017/02/10(金) 22:18:07.57ID:5MVdS2z+
>>876
オワコンだよ
TSでES201Xと同等の文法+αが使えるのに、
わざわざゴミ屑みたいな新しい文法覚える必要ない
0901デフォルトの名無しさん2017/02/10(金) 22:19:27.86ID:sIFP3alf
まさかコードの抽象化そのものを否定するプログラマがいるとは思わなかったな
Javaも資産使ったコードは短くなるだろ
それと一緒だよ
0902デフォルトの名無しさん2017/02/10(金) 22:19:31.11ID:5MVdS2z+
>>894
わかりやすいと思うけど
filterとかreduceとかmapとか、自前でforやif組んで書きたいか?
0903デフォルトの名無しさん2017/02/10(金) 22:30:41.26ID:87WOJqFm
>>899
おっしゃるとおり
もっとも、多数派が正義かっていうとそれも別問題だけどね
0904デフォルトの名無しさん2017/02/10(金) 22:39:50.78ID:sZ6PQDwZ
map, fold, filterなどは確かにわかりやすいけど、
再帰的定義は小一時間考えてやっと分かるときがある。
慣れなのかな。
0905デフォルトの名無しさん2017/02/10(金) 22:48:55.57ID:1t5JET4K
>>898
抽象化はやればやるほど良いってものでもない
関数型言語は総じてやりすぎでわかりづらい

>>902
そういうわかりやすいものは奪っておいて有用に使うのが良い
0906デフォルトの名無しさん2017/02/10(金) 22:53:56.20ID:5MVdS2z+
>>905
奪うってなんや
おまんは盗人か?
0907デフォルトの名無しさん2017/02/10(金) 23:02:03.46ID:rXluJnty
>>897
例えばsum関数ってあるじゃ無い?
これって手続き型ならLLでも静的型言語でも基本変わらんよね?
(最近はメソッドに関数渡せるようになってる言語増えたから特に)
んで、関数型言語だと単純なところだとループを再帰で書くから、計算中の値を蓄える変数が一個減る。
ループ命令書くのも減る。
sum [] = 0
sum (x:xs) = x + sum xs
(昔はスタック消費してたが、近年こういう単純な再帰なら、裏で末尾再帰に変形してループに変換してくれる)
次に、じゃあsumの掛け算バージョンが欲しいとする。
Haskellだとproductって関数だけど、言語によって違うのに注意。
product [] = 1
product (x:xs) = x * product xs
はい完成。なんだけど、別にこれで関数型が短いって言うわけじゃない。
sumとproductは構造が似てる。
そこで構造を関数に括り出す。
foldr f n [] = n
foldr f n (x:xs) = f x (foldr f n xs) -- 演算子は特殊な関数で、(+)みたいに書くと2引数の関数になる。
んで、この関数化した構造を再利用する。

sum xs = foldr (+) 0 xs --普通は末尾再帰の構造を関数化したfoldlを使う。
product xs = foldr (*) 1 xs

最後はsumの最後の引数と、foldrの最後の引数が同じだからカリー化で見た目の引数を省略できる。

sum = foldr (+) 0
product = foldr (*) 1

まあ、カリー化が確かに意図を読み取りにくくするかもだが、そもそもLLっぽく対話環境使って単体テストする時に型を調べれば一発で引数何個で、どんな型を求めてるのか分かるし、不満ならトップ関数の型だけ明記しても良い。
カリー化禁止にしたって良い。
ループ構造も関数化して再利用出来るのが大事。
0908デフォルトの名無しさん2017/02/10(金) 23:13:38.42ID:T/QWskV3
なるほど
さっぱりわからん
0909デフォルトの名無しさん2017/02/10(金) 23:15:34.04ID:5MVdS2z+
わからンゴ
0910デフォルトの名無しさん2017/02/10(金) 23:16:19.38ID:1t5JET4K
>>907
正直読む気も起きない
0911デフォルトの名無しさん2017/02/10(金) 23:26:19.31ID:Ks8UPeAC
この程度が分からないとか抽象化を云々する以前だろう…
0912デフォルトの名無しさん2017/02/10(金) 23:31:17.10ID:rXluJnty
悪かった。
んじゃかい摘んで。

ループとかの構造を関数化して再利用できる。
他にも色々あるけど、分かりやすいのがこれ。

LLにも似たことが言えて、こっちはジェネリクスっぽい事が、元々型がないからダックタイピングで同じ事が簡単に出来る。
(代わりに型安全性が失われてる)
0913デフォルトの名無しさん2017/02/10(金) 23:34:06.32ID:Nrgs4Acd
>>904
>再帰的定義は小一時間考えてやっと分かるときがある。

いや、再帰的定義は手続き型と関数型のどちらでも難しい

ただし関数型言語や関数型の影響を受けた言語だと、
配列/リスト/辞書/集合といったコレクションの操作は
map/filter/fold といった標準ライブラリ関数が提供されている
だからコレクション(という抽象データ型)を扱う多くの局面では、
(いちいち再帰的定義をするわけでなく、
 もちろん>>834のようにループでゴリゴリ書くわけでもなく、)
豊富なライブラリ関数を活用して簡潔なコードを表現できる
0914デフォルトの名無しさん2017/02/10(金) 23:46:05.61ID:Nrgs4Acd
>>905
>抽象化はやればやるほど良いってものでもない
>関数型言語は総じてやりすぎでわかりづらい

世の中で普及しているのは大半が手続き型言語だから、
日常的に手続き型言語で思考している人にはわかりづらいかもね
発想を手続き型脳から関数型脳へ転換するという大きな壁が立ちはだかる

例えば某純粋手続き型スクリプト言語の例:
 LLにおける関数型プログラミング
 http://echo.2ch.net/test/read.cgi/tech/1345123070/70-71
0915デフォルトの名無しさん2017/02/10(金) 23:52:38.73ID:xAAuNbhK
>>910
馬鹿かよこいつやべえな
0916デフォルトの名無しさん2017/02/10(金) 23:59:05.09ID:1t5JET4K
>>912
作る分にはなかなか良さそうだが、そのコードを半年後に見ても理解する自信はない
こんなにまで抽象度を上げなくても、少し妥協して具体的に書いておけば後で助かる
ID:rXluJntyが後者より前者のコードの方を早く理解できるのなら何も言えない

>>914
別に超える必要もない
良い所だけ取って残りを捨てるだけで済む
そのスレで言えば>>79と同意見だな
0917デフォルトの名無しさん2017/02/10(金) 23:59:56.21ID:rXluJnty
一応言っておくけど最近の手続き型でもFunc型の導入でループ構造の関数化と再利用は出来るんだよ?
ただ、演算子は関数として扱われないのでラムダ式必須だったりするだけで。

んで、関数型言語はまだまだ抽象化の機能がある。
それらがどんな形で入るのか待ちながら先取りして勉強しておくと将来有利になるし、今も関数型言語だと裏で勝手にやってる事を自分が気をつける事で実践出来るものもある。
0918デフォルトの名無しさん2017/02/11(土) 00:09:19.50ID:uRBrgRbG
>>916
えとね。
構造を関数化してるから、関数名から構造が読み解けるのよ。
耳慣れない関数名だから慣れてないだけで、慣れればむしろ読み易い。
ぶっちゃけ関数合成とか$でカッコを省略とかはメソッドチェーンと思って良い。

と言うか、忘れても他人でも理解する為のドキュメントだろ。
書かない時点でブラックかグループ開発してない。

いくら仕様をそのまま書き下せるって謳い文句の関数型や論理型でも、規模がでかくなりゃドキュメントくらい書くだろ。
0919デフォルトの名無しさん2017/02/11(土) 00:20:17.16ID:PF8ePb43
慣れれば読みやすいとかドキュメントがあれば誰でも理解できるとか言い出す人と、
YESハイブリッドNO関数な俺は永遠に平行線なのでもうやめよう
おそらく分かり合ってしまうと天変地異が起こる
0920デフォルトの名無しさん2017/02/11(土) 00:22:14.72ID:ria0yk5C
>sum [] = 0
>sum (x:xs) = x + sum xs

この手の言語見たこと無かったらこれが関数定義してるってこと自体がわからんのよ
(x:xs)でパターンマッチしてhead|tailに分割してることもわからない
そういう状態だとさっぱりわからないほうが普通だろ

まそういう人こそ関数型を学んだほうがいいと思うけど
それも扱ってるドメイン次第じゃないの
0921デフォルトの名無しさん2017/02/11(土) 00:26:19.59ID:0GjTSBdX
filter処理を
filterと書くか、tempListとforとifを書くか

map処理を
mapと書くか、tempListとforとifを書くか

半年後見て、どっちがわかりやすいかなんて
ひとめりょうねんやろ
0922デフォルトの名無しさん2017/02/11(土) 00:32:28.22ID:bFcm8Xsz
>>912
>LLにも似たことが言えて、こっちはジェネリクスっぽい事が、
>元々型がないからダックタイピングで同じ事が簡単に出来る。

LL という言葉が Python/JavaScript/Ruby といったスクリプト言語を
指しているのなら、その認識は誤っている
これらLLはどれも関数型言語の影響を受けて
(>>913でいう) map/filter/fold に相当するライブラリ関数を標準提供している
だから(その適性度に差異はあるとしても)関数型プログラミングを実践できる

またダックタイピングに関しては、LLコミュニティ全体で邪道と共通認識されている
(現在の)LLの特徴の一つは動的型付けであるけれど、データ型を無視する
ダックタイピングは嫌われている(その場限りの使い捨てプログラミングであれば許容されるが,,,)
ジェネリクスやダックタイピングといったデータ型(or 型システム)に関する概念と
手続き型/関数型という計算モデルに関する概念は直交するものであり、ごっちゃにすべきではない
0923デフォルトの名無しさん2017/02/11(土) 00:33:39.15ID:ria0yk5C
個人的に関数型の良さは
小さな関数を合成してパイプラインを作れるところだと思ってる
0924デフォルトの名無しさん2017/02/11(土) 00:45:25.28ID:z0i3VjKa
>>894
本来プログラムは短くかけるもんなんだよ

コードが長くなる理由の大半は

型推論のない静的型宣言
融通の聞かないジェネリクス
ローカル変数の定義、束縛
関数名が長い
引数が長い
ライブラリ使用時の作法、データ制約にたいする適合
ラッパークラス
汎関数使用に制約がかかっている
マクロの使用に制約がかかっている

データ型を宣言するたびに自分で使わない関数をインプルメントするということがビジネスを度外視したドカタ行為であると理解してからOOPを使おうね

次コードが遅くなる原因
0925デフォルトの名無しさん2017/02/11(土) 01:02:29.08ID:ria0yk5C
>>924
>データ型を宣言するたびに自分で使わない関数をインプルメントするということ
ん?意味が分からん
0926デフォルトの名無しさん2017/02/11(土) 01:15:27.54ID:z0i3VjKa
コードが遅くなる原因

アルゴリズムが悪い
アルゴリズムが悪いと思っているが高度なアルゴリズムを設計実装できない
ディープコピー
安全性(バウンダリー、オーバーフロー)
ガベージコレクション
メモリアロケーション
配列を使わない
(ポインタを集約しない)
二分平衡木など木構造を使いこなせない
マルチコアを活用しない
非同期処理を活用しない
IO待ちネットワーク待ち

関数型というのはコンピュータアーキテクチャを知らなくてもかけるようになっているが、何がドメインにおけるbyrefつまり変更しうる点なのか、何がbyvalつまり本質的に不変な値であるかを考えずに書くということはない
何が並行的に処理できて、何が並行処理できないかも概ね予想がつくようになっている


大量のrefオブジェクトが、相互に結び付き合って動的に変化していくようなプログラムはcでかくほうがいい

それは明らかに並行処理不可能で、ポインタによる大量のref宣言がないとガベジコレクトあるいはrefにたいする参照コストが高くつくからだ

一方でそれ以外の分野、たとえば給与計算システムを書くにあたって命令的プログラミングは保守の足かせにしかならない
なぜならば命令型になじめば、必要以上にrefオブジェクトを定義するからだ
関数適用による遅延評価よりも、ポインタ変数の書き換えのほうが、常に高速であるというのだから、仕方のないことだ
0927デフォルトの名無しさん2017/02/11(土) 02:21:40.45ID:Xp+0sQ+z
>>905
なんか駄目プログラマっぽいな
抽象化は手続き型でコードをライブラリにして使用する、というだけでも起ってる事だよ
それとも、使い方を知らないから不要とでも言うのか?
0928デフォルトの名無しさん2017/02/11(土) 02:26:38.98ID:PF8ePb43
>>927
やりすぎが良くないというだけで別に抽象化を否定していない
可読性を損なうほどの抽象化なんてドブに捨てたほうがよい
0929デフォルトの名無しさん2017/02/11(土) 02:34:57.87ID:PF8ePb43
誰もが知っているDRY原則でさえ、時としては不正解になりえる
俺と同じ意見を拾ってきた

http://postd.cc/on-dry-and-the-cost-of-wrongful-abstractions/
http://プログラマが知るべき97のこと.com/エッセイ/共有は慎重に
0930デフォルトの名無しさん2017/02/11(土) 02:57:37.46ID:Xp+0sQ+z
>>928
手続き型は冗長すぎて可読性を損なうからダメだ、と言うのと同レベル
そちらの言う関数型云々という主張はそれ以前の話だと思うが

そしてDRY原則が抽象化であるというのが解釈間違えてるよ
抽象化という作業には適切な取捨選択という意味もあるから
0931デフォルトの名無しさん2017/02/11(土) 03:06:25.79ID:Xp+0sQ+z
というかDRY原則とか久々に聞いたな
少し和んだ
0932デフォルトの名無しさん2017/02/11(土) 03:17:56.37ID:Xp+0sQ+z
>>925
ドカタ用のOOPはAdhocな実装しかできないのを言ってるんじゃないの
汎用型の操作を挿入したくても、合わせるために後から基底クラスやインターフェースぶっこむとか無茶できないしな
0933デフォルトの名無しさん2017/02/11(土) 03:20:13.58ID:uRBrgRbG
>>928
それは自分でコントロールすればいいだけで、関数型言語を否定する理由にならない。
0934デフォルトの名無しさん2017/02/11(土) 03:38:55.41ID:1GGXJcPM
>>921
それ単にライブラリ使うか自前で書くかの違いしか言ってないよね。
0935デフォルトの名無しさん2017/02/11(土) 05:08:14.46ID:R87vRIPm
>>886
perl5じゃなくてperl6な
0936デフォルトの名無しさん2017/02/11(土) 05:18:05.14ID:R87vRIPm
>>907
言語仕様で再帰はループ最適化されるようになってるの?でなけりゃちょっと、、、
0937デフォルトの名無しさん2017/02/11(土) 05:31:02.37ID:R87vRIPm
>>914
関数型がわかりずらいってことは無いと思うが、抽象化のやりすぎが害ってのは程度や周辺の環境にもよる。
実例では、昔bazzarって分散バージョン管理システムがあって当時はgit, mercurialとならんでvcs御三家だった。
UTF-8対応とかsvnからの移行のしやすさとか他より進んでたけど、過度の抽象化・内部隠蔽やりすぎて速度出ないわ複雑化したちゃったわで廃れた。後年中の人が反省してた。
速度については実装言語がpythonってこともあったけど、同じくpython使ったmercurialよりも廃れるのが早かった。
0938デフォルトの名無しさん2017/02/11(土) 07:08:44.79ID:UbYHAA6y
>>907
非常にわかりやすく説明されてますね。
(+) (*)だとまだfoldのありがたみが分からない人がいる気がするので、λ式を使う例も挙げると、
例えば数値リスト中の最大値を求めるには、
  foldl (λx ->λy-> if x < y then y else x) 0
とすればいい。

ループって、i -1の時点での結果(上のx)と、iの要素(上のy)をゴニョゴニョするパターンが多いから、
それらをfold(foldr、foldl)でまとめとこう、ということ。
上の右端の0は、i=0での初期値(最初のx)。
最初はうっ、となるかもしれないけど訓練だわね。
xがi - 1の結果、yがiと見ながらやる。
慣れるまでは全部λ式で理解した方が迷わないと思う。
0939デフォルトの名無しさん2017/02/11(土) 07:33:46.72ID:4lMkkL1V
最近プログラミングを始めた初心者なんだけども
プログラミング言語ってのは万能では無くて
それぞれ用途によって成り立ちが違うものだと理解していたんだけども違うの?

それぞれの分野でいろんな方面に(意図的に)特化された言語が出てきてて
それが次世代の言語なんだと思ってた

同じ分野の言語ならともかく
違う分野の言語同士の優劣を議論しても無意味な気がするんだけど…

的外れな事言ってたらスイマセン…
0940デフォルトの名無しさん2017/02/11(土) 08:12:27.67ID:JyXRsfxl
正論言うのは初心者だけか。
0941デフォルトの名無しさん2017/02/11(土) 08:16:38.80ID:uRBrgRbG
>>935
プログラミングから離れて久しいのでうろ覚えだったん。。。
ご指摘感謝。

>>936
5年くらい前までは再帰はスタック消費するからと入門用で、実際には末尾再帰を書いた。
当時もリストを受け取ってリストを返す関数は遅延評価のお陰?でループになってたけど。
0942デフォルトの名無しさん2017/02/11(土) 08:20:55.94ID:uRBrgRbG
>>922
関数型もLLも手続き型のコンパイラ言語より短いのと言われるので、短い理由が意図を圧縮(高い抽象化)とは違うと言うのを伝えたかった。

ご指摘の通り、関数型由来の機能が多いからだが、これはコンパイラ言語にも入ってるので、違いと言うとそれぐらいかと思って。
0943デフォルトの名無しさん2017/02/11(土) 08:30:07.41ID:uRBrgRbG
>>939
特定分野のはある意味圧勝してるのであまり話題になりませんね。
ここで議論されるのは応用範囲が広い事を前提に作られた汎用言語が多いです。

なので、生産性重視か、実行速度重視かのバランスや政治的理由(どんな企業がバックに付くか)でしばしば論争になります。

仕事に使うだけなら流行りの言語でいいですが、いち早く波に乗りたいならどんな言語か?と。

個人的には言語自体は流行らなくても、オブジェクト指向ならsmalltalk。関数型ならHaskellを学んでおくと、突き詰めた先に何が待ってるかが見えて勉強になると思ってます。
ただ、突き詰め過ぎて実践より研究向きなのであくまで勉強用です。
0944デフォルトの名無しさん2017/02/11(土) 08:48:31.39ID:4lMkkL1V
SIの営業を10年位やってまして
自分の売ってる物をちゃんと理解したくて
数年前から暇を見つけては独学で勉強してるんですが
サーバインフラ周りはひと通り理解した(つもり)ので
プログラミングを始めた感じです

ひとまず書籍が入手しやすいpythonをやってますが
同僚のSEに他にどんな言語勉強したら良いか聞いたら

「現状ならjavaやるべきだけど多分衰退するから
もっと先を見据えるなら他の言語やっとけ」

と言われまして次世代言語について調べてる次第です
いろいろあってどれが良いのかさっぱり判らんです…
0945デフォルトの名無しさん2017/02/11(土) 09:07:44.10ID:xeNWfnm4
言語なんて少ししかないんだから思いついたら全部やればいいんだよ
そうすることによって異なる言語間でで共通した部分が浮き出てきて
新しい概念何て何もないんだ、組み合わせが違うだけなんだということが
わかるんだよね。
0946デフォルトの名無しさん2017/02/11(土) 09:18:04.26ID:uRBrgRbG
>>944
SEさんはご自分の立場視点で言ってますが、営業が覚えるべきは自分の会社のサービスは何に役に立つか?どんな強みがあるか?です。
プログラミング言語ではありません。
そのサービスがどう言う仕組みで動いてるかを学ぶにしても、ネットワークの仕組みとか、そう言う概要的なもので良いはずです。
0947デフォルトの名無しさん2017/02/11(土) 09:20:33.72ID:iADUiS1q
>>945
言語なんか少ししかないとかどんな観測範囲で生きてるんだよ
0948デフォルトの名無しさん2017/02/11(土) 09:24:36.21ID:xeNWfnm4
宇宙に存在する原子の数に比べていってるんだよ。
0949デフォルトの名無しさん2017/02/11(土) 10:07:36.85ID:Xp+0sQ+z
>>939
無意味ではないよ
むしろせっかく各言語の使用者が集まってるのに、議論を放棄する方が勿体無い
例えば初心者なら、学習コストについては興味あるだろう?
虚無主義こそ無意味
0950デフォルトの名無しさん2017/02/11(土) 10:57:18.09ID:1GGXJcPM
ループに展開されることを期待して再帰書くってなんか負けてるよね。
最初からループ書けよって思っちゃう
0951デフォルトの名無しさん2017/02/11(土) 10:58:15.33ID:R87vRIPm
>>944
俺はpython好きじゃないけど、pythonの選択は良いと思う。
javaは日本の場合は、お役所案件とかクソ面白くない仕事したいとか他に選択の余地が無いからしょうがなくやる感じ。
ブロックが波カッコの方が好きなんだけどなぁ。
pythonはエコシステムがそろってきててポジティブフィードバックができてきてるからそのまま深めるといいと思うよ。
俺も主要linuxディストリブューションのデフォルトpythonが3系になったら真面目にやり直そうと思っている。
0952デフォルトの名無しさん2017/02/11(土) 11:01:59.47ID:R87vRIPm
>>950
再帰で書いた方がスッキリ書けるのもあるから、そういうのでスタック消費気にせず書けるようになると嬉しいよ。
0953デフォルトの名無しさん2017/02/11(土) 11:15:25.28ID:U4DU79V8
再帰はスタック無駄消費するしフローチャートに起こしにくいしでいいことがないので、レビューで出されたら突き返してる
末尾再帰がループに最適化されるなら初めからループで書けばいい話だしな。
0954デフォルトの名無しさん2017/02/11(土) 11:21:17.30ID:vYnF6jq+
953は高齢おっさん
0955デフォルトの名無しさん2017/02/11(土) 11:23:43.12ID:OKIE+D8i
>>944
これからの時代は知能プログラミング、知識プログラミングになっていきますから、
そういうものに向いていて、最先端のものが次世代プログラム言語です。
ところが、現在この分野で主流のPythonはMITで流行っていたから現在も
使われているだけで、特別理由があってのことではありません。
LISPやPrologも旧世代の言語で次世代というようなものではありません。
現在、その芽もないという状態だと思います。強いてあり得るとすれば、
Haskell。
0956デフォルトの名無しさん2017/02/11(土) 11:26:38.99ID:U4DU79V8
>>954
せめて内容に反論してくれ……
0957デフォルトの名無しさん2017/02/11(土) 11:29:16.75ID:fyD8uwxk
最適化してくれるんなら再帰で書くだろ、普通。
なんのための高級言語なんだよ。
0958デフォルトの名無しさん2017/02/11(土) 11:45:29.33ID:bKkZmPiT
コンパイラの挙動を意識せずにプログラミングできないものか
0959デフォルトの名無しさん2017/02/11(土) 12:04:05.35ID:U4DU79V8
>>957
書き手のミスで末尾再帰でなくなった時になにも言わずにスタック使った再帰に変わるのは危険だろ。
なら初めからループで書いた方が間違いが起こらない
0960デフォルトの名無しさん2017/02/11(土) 12:20:17.71ID:C+/v5lR8
なんでわざわざ次世代言語スレに古いおっさんが湧くんですかね……
0961デフォルトの名無しさん2017/02/11(土) 12:24:49.75ID:xeNWfnm4
古いオッサンはフローチャートが大好きだからすぐわかるな。
0962デフォルトの名無しさん2017/02/11(土) 12:28:02.82ID:Xp+0sQ+z
再帰の危険性はまあ同意するけど
フローチャートは無いわ
無いというか引くわ
0963デフォルトの名無しさん2017/02/11(土) 12:28:40.99ID:cPTgzj2b
>>953
末尾呼び出しが最適化される文脈なら、
コードとフローチャートは一対一で対応すると思うぞ

>>959
それは書き手の問題でループでもバグは生まれる
0964デフォルトの名無しさん2017/02/11(土) 12:52:34.51ID:qQmrAco8
ふ、ふ、ふ、ふろーちゃーとwww
コード書くのにふろーちゃーと作ってる化石発見wwww
0965デフォルトの名無しさん2017/02/11(土) 12:54:30.58ID:0GjTSBdX
次世代言語スレでフローチャートなんて単語がびっくらポンと飛び出るとは思わなかった
0966デフォルトの名無しさん2017/02/11(土) 13:00:04.46ID:z0i3VjKa
>>944
システムインテグレータなら業務システムうってるわけだ
しかも開発したいわけじゃなく売り物の勉強がしたいと
それならJavaでいいんじゃないの
たぶんもの自体がJavaでかかれてるだろうし、Javaは業務システムでの公用語みたいなもんだ

同僚SEが何を持って次世代としていて何故Javaを終わった言語とよんでいるかによるね

個人的にjavaがダメなところを指摘すると、OOPを強制するところだ、OOPはたいして役に立たない上無駄な構文を沢山導入する、これらはコンピュータのためのものであって、顧客や人間のために用意されたものじゃない

それでも個人的にはjavaをオススメする
あと関数型言語を少し勉強する
(haskell,ocaml,clojure,scala)
個人的には同じjava系言語のclojureかscalaをオススメする
これらの言語はJavaを簡単に呼び出せる

何故関数型を勉強すべきか
1.顧客が必要としているものを記述する上でもっとも短い表現を考えることになる、そしてそれはコンピュータで動作する
2ドメインにおいて不変なものと可変なものの見極めをするようになる、それは要件定義においても、データベース設計においても有効

pythonもスクリプトとしていい言語だからそれでもいい
ただし2.を真剣に考える助けにはならない

それを補う意味でもエリックエヴァンスのドメイン駆動設計も一読をオススメする、これは業務システム設計の本だがOOPと関数型の架け橋たりえる内容を含んでいる、ただ独特な用語が多過ぎて初学者には難しいかもしれない

個人的に関数型が好きなのは、用語の定義づけ、概念の適用範囲が割と明確だから、設計にも活用しやすいことだ、ここで学んだことをもちろんCやC++でも使えるようになる

要は人間様のために書くのかコンピュータ様のために書くのかということを分けて考えられるようになる
0967デフォルトの名無しさん2017/02/11(土) 15:16:27.69ID:2PZ2/Gs1
>>950
手続き型でも再帰の方が一般に読み易い。
だけど再帰はスタック消費するから敬遠されてた。
Haskellも最初はそうだったけど、今は違うし、関数型の再帰は上でも言ったけど、ループを関数として括り出して再利用出来るのが良いのよ。

最近のLLやC#でも同じ事出来るけど、演算子も関数ってのが効いててHaskellのが自然に書ける。
遅延評価で無限の数列や無限に繰り返す関数を扱えるのも大きい。
ファイル処理とか大活躍。

この辺はHaskellだと自然だけど、手続き型はFunc型やイテレータ、エナメレータとかって新しい機能の追加で対応してる。
関数型は数学的な関数+データ構造+副作用のある関数ってだけの知識が、手続き型だとどんどん覚えることが増える。
ハイブリッド言語になる程そうなる。
0968デフォルトの名無しさん2017/02/11(土) 17:37:28.50ID:ria0yk5C
>>944
自分でプログラミングできるようになりたいならPython続ければいいと思う
業務システムで役立つ概念とか考え方を学びたいなら>>966の進めてるDDD本を読んでScalaかF#勉強するのが現状ではオススメ
ただ営業ならプログラミングを勉強するよりコードを書かない”SE”がやってる仕事を勉強したほうが100倍役立つと思うよ
0969デフォルトの名無しさん2017/02/11(土) 17:44:38.51ID:ria0yk5C
>>939
超正論
コンテキスト次第でどの言語がいいのかは変わってくる
0970デフォルトの名無しさん2017/02/11(土) 17:56:01.24ID:2PZ2/Gs1
営業なら社長さんか、社長の考え知ってそうな上司から、どんなシステムの使い方を想定してるのか、今後どう進化させるつもりか聞いた方がいいんじゃないかな。
言語って結局アイデア実現させる道具で、より使い易いのが出たら移り行くものだし。
トップがどんなアイデア持ってるかが重要だと思うの。
(もしくはアイデア担当者)
0971デフォルトの名無しさん2017/02/11(土) 18:24:10.77ID:v4Iby9pe
フローチャートがだめな根拠が「古いから」だけでは差別だからな
数学的根拠が欲しい
そうやってフローチャート叩きを利用して関数型が勢力を拡大してる
0972デフォルトの名無しさん2017/02/11(土) 18:29:53.26ID:ria0yk5C
何のためにフローチャートを書くのか、もしくは昔は書いてたのか自問したほうがいいかも
0973デフォルトの名無しさん2017/02/11(土) 18:32:20.85ID:Dru7rPMr
関数型でもフローチャートは有効だけど
データフロープログラミングなんてその最たるものじゃね

フローチャートの逆は、GUIに代表されるイベントプログラミングでしょ

よくUMLのクラス図だしてフローチャートはオワコンだって言ってる奴がいるけど、そいつはuMLすらしらないから放置していい
0974デフォルトの名無しさん2017/02/11(土) 18:36:52.20ID:jrzBmbad
> フローチャートの逆は、GUIに代表されるイベントプログラミングでしょ

そうなんだよね、イベントループからコールバック関数に処理が移る過程を
フローチャートでどう表現すればいいのか分からなくて、独自のチャートを
追加して誤魔化したっけなぁ…
0975デフォルトの名無しさん2017/02/11(土) 19:43:22.33ID:QWfOXaMD
基本はBASICだよ
0976デフォルトの名無しさん2017/02/11(土) 20:02:46.46ID:qQmrAco8
>>971
書く時間が無駄だから!!
0977デフォルトの名無しさん2017/02/11(土) 20:07:11.81ID:4lMkkL1V
仕事から帰ってきたら物凄いレスついててびっくりです
みなさんありがとうございます

pythonをやってみての印象は「何でもできるんだなー」という感じでしょうか
ひとことで言うなら「汎用的」というのがしっくりきました
だからこそ思うのですが、こんだけ汎用的に使えるのに
何で他に多数の言語が存在するのかが不思議でならなかったです

それで他の言語はどんな感じ何だろうかと思って同僚に聞いた答えが>>944ですね

そういった経緯で色んな言語について調べてたのですが
次世代の言語はjavaやpythonといった現行の汎用的な言語に関数型言語をミックスしたものかその逆かっていう印象です

ひとことで纏めるとそんな印象なんですが、軽く仕様を見るとそれぞれ全然違うんですよね…
goやrust辺りは何となく理解できなくも無さそうなんですが
scalaで「えっ?」てなって、haskellで「???」ってなって、
erlangに至っては理解することを諦めました…
唯一理解できたのはerlangのvmに魅力を感じてelixirを作ってしまったという人の心境だけでした…

仕事で使う訳でも無いですが、pythonを書いてるのは純粋に楽しいです
将来的には起業とか考えてるので仕事で使えそうな次世代言語も勉強してみたいですが、
まだ時期尚早(私の能力的に)なんだろなと痛感してたりします

まずはpythonを自由に書けるようになってからjavaとhaskellを勉強してみようかなと思います
いろいろなアドバイスありがとうございました
0978デフォルトの名無しさん2017/02/11(土) 20:16:03.84ID:2PZ2/Gs1
Erlangはそんな難しい印象なかったが。。。
Prolog由来の大文字がウザかっただけで。

Haskellは基礎を学ぶならプログラミングHaskell。
んで、モナドとはなんぞや?を理解したいならすごいH本へ進むと良いよ。

初心者はむしろJavaとかよりHaskellのが算数・数学に近いから馴染み易い。
Javaから行ってもいいけど、Haskell覚える時はJavaは一旦忘れて、数学をプログラミングに広げたのがHaskellだと思えば良い。
(実際、紙と鉛筆があればプログラミングと動作の確認ができる)
0979デフォルトの名無しさん2017/02/11(土) 20:28:42.84ID:C+B9fCOA
フローチャートが描かれていたのは、紙に書いて専業のパンチャーに
打ってもらった時代の名残り。今はエディタを操作する速さにチャート
編集がついていけなくなった。
フローがわかりにくい部分のみをチャートに書き出すのはありだろうが
そもそもそんなコードは書くなっていう
0980デフォルトの名無しさん2017/02/11(土) 20:41:24.76ID:v4Iby9pe
>>979
その理屈だと、キーボードとコマンドの速さに、タッチパネルとGUIがついていけない
0981デフォルトの名無しさん2017/02/11(土) 20:43:04.84ID:7Nq7SR91
>>978

>初心者はむしろJavaとかよりHaskellのが算数・数学に近いから馴染み易い。

これ、自分もそう思ってて、
会社の初心者のエンジニアにこう吹き込んでプログラミングHaskell渡したら、
舐めてんのか的なリアクションだったわ。

実績ある?布教したいので、うまいやり方を教えて欲しい。
0982デフォルトの名無しさん2017/02/11(土) 20:49:32.91ID:WuFir4ww
次世代言語はいつまで経っても次世代のまま。
SwiftやKotlinの様な中庸な言語の方が余程将来性ある。
0983デフォルトの名無しさん2017/02/11(土) 20:50:51.13ID:2PZ2/Gs1
それはもう、エンジニアとして初心者でも、それなりに手続き脳に固まってるんだと思う。

手前勝手だが、パブーにHaskell入門以前ってepubの本置いてるので、使えると思ったら読ませてみて。
(パブー Haskell で検索)

あんまり純粋関数型言語ってブランドに振り回されてもいけないと思う。
0984デフォルトの名無しさん2017/02/11(土) 20:52:11.41ID:Dlx8qt0u
初心者なら環境作りも楽で強力なIDEの恩恵が受けられるF#がいいと思うなあ
もっと関数型について深くまなびたいとなったらHaskellやってみない?という流れが良いんじゃないかな
HaskellはHello,Worldまでが遠すぎるから初心者にはどうかなあ
0985デフォルトの名無しさん2017/02/11(土) 20:55:58.54ID:2PZ2/Gs1
え、JavaやPythonの環境構築と変わらんが。。。
あれ出来なかったらプログラマ以前の問題。
0986デフォルトの名無しさん2017/02/11(土) 20:56:30.71ID:Dlx8qt0u
いやプログラマじゃなくて初心者の話でしょ
0987デフォルトの名無しさん2017/02/11(土) 21:04:17.29ID:2PZ2/Gs1
>>982
Haskellは永遠の次世代言語何だろう事は承知してるが、学ぶべき言語である事に変わりはない。
0988デフォルトの名無しさん2017/02/11(土) 21:07:57.21ID:2PZ2/Gs1
>>986
全くの初心者も一応?想定してるので無問題。
あれで拒否られたら、ただの食わず嫌い。
0989デフォルトの名無しさん2017/02/11(土) 21:08:58.10ID:0eM0mGZz
Haskellは言語仕様は好きだけど、学べるまでが遠い
Stackがもっと整備されるまではコンピューター初心者に勧めるものじゃない
0990デフォルトの名無しさん2017/02/11(土) 21:11:13.26ID:Dlx8qt0u
いやまあ環境構築の部分は別にそこまでこだわらなくてもいいんだけど
要はより簡単に始められて、簡単に出力するプログラムもつくれて、間違いもIDEに指摘してもらえるってこと
HaskellはHelloWorldまでに学ぶことが多いから初心者に向くのかなあと思ってね
0991デフォルトの名無しさん2017/02/11(土) 21:15:17.00ID:2PZ2/Gs1
なぜstack。。。
そこまで応用出来んでも、十分既存の言語使うのに役立つ知識を吸収出来る。
アルゴリズムをコード丸暗記馬鹿とかに効果覿面。
(おいらの事だ)
0992デフォルトの名無しさん2017/02/11(土) 21:15:25.18ID:v4Iby9pe
初心者に静的型付けを布教するな
Java初心者にはジェネリクスを教えないし
C++初心者にはCを教える
0993デフォルトの名無しさん2017/02/11(土) 21:16:47.99ID:9jDGkB4H
エディタを、Haskell用に補完も出来る、コンパイルも出来る、バッファ内でghiが動くように持ってくだけでも一苦労だわ。
0994デフォルトの名無しさん2017/02/11(土) 21:20:21.10ID:Xp+0sQ+z
純粋関数型と言うが、よく考えたら結構ひどい宣伝だな
真面目に製品レベルで組もうとすると、traceやunsafePerformIOが増えてくし
そこまで行かずとも、IOUArrayとか使ってるだけでIOだらけになって、純粋って何だっけとか思い始める
0995デフォルトの名無しさん2017/02/11(土) 21:21:28.63ID:2PZ2/Gs1
>>990
それこそ、Haskell知ってる人(>>981)が身近に居るなら、その人に聞けば良いじゃない。
それでなくてもHoogle教えれば勝手に調べられるし。
0996デフォルトの名無しさん2017/02/11(土) 21:23:10.42ID:Xp+0sQ+z
>>993
leksahとか使ってあげてよ…
0997デフォルトの名無しさん2017/02/11(土) 21:24:23.52ID:7Nq7SR91
>>983
ありがとう、見てみるよ。
0998デフォルトの名無しさん2017/02/11(土) 21:27:00.53ID:7Nq7SR91
>>995
いや、解説するまでもなく、渡して一時間でごめんねー自分そこまで賢くないから、
ごめんねー、
と、ややおこで返却された。
0999デフォルトの名無しさん2017/02/11(土) 21:27:29.82ID:2PZ2/Gs1
>>993
待て待て、ただの学習用になぜそこまで環境整える。
普通に好きなエディタでいいよ。
何も本格的に使う訳じゃない。
良い概念覚えて知ってる言語に活かせってんだろ?
1000デフォルトの名無しさん2017/02/11(土) 21:30:05.06ID:0GjTSBdX
「フローチャートは時代遅れの厄介者」

1975年初版発行の『人月の神話』より

>1975年
>1975年
>1975年

わかるか?
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 85日 10時間 30分 56秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。