X



次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2017/06/13(火) 09:00:09.39ID:O1HnBMDk
よく話題にあがる言語
Go, Rust, Scala, Haskell, kotlin, Erlang

対象言語のどこがクソかでなく、どこが次世代かで語りましょう

🙅 Rustはコンパイルが通らないからクソ!
🙆 Goは学習コストが低い!
0003デフォルトの名無しさん
垢版 |
2017/06/13(火) 09:31:03.24ID:WHieLZYY
標準的なライブラリは言語の持つ重要な文化の一つだ
Pythonが機械学習で天下を取った理由にはNumpyが大きく寄与している
データ構造としてNumpyを使えば他の大抵のライブラリと連携を取れる。例えば、TheanoやChainerで機械学習して、結果をそのままNumpyで加工してmatplotlibで出力できる。
だからPythonは機械学習分野で流行した。この裏にはNumpyのもつ大きな文化が存在する
言語の持つ文化と流行には密接な関係があるだろう
0005デフォルトの名無しさん
垢版 |
2017/06/13(火) 09:45:32.13ID:kbGi5rrA
F#くん言語仕様は悪くないけど使い所がわからん
0007
垢版 |
2017/06/13(火) 10:29:07.84ID:MZxut8VL
おお、お疲れ様。
そこまでアンチってわけでも無いがな。
手当り次第中途半端に取り込んだc#がそこそこ実用言語になってんのに、何やってんのあいつらって感じだけど。
どーせ入ったし、逆に最近のHaskellの良さをもっと教えて欲しい。
0008デフォルトの名無しさん
垢版 |
2017/06/13(火) 10:36:45.13ID:o0nyK+Xq
Pythonの標準的文化って
JavaとC#とaltjsとスマホを完璧に無視したからできたんだよな
0009デフォルトの名無しさん
垢版 |
2017/06/13(火) 10:49:04.84ID:WpoKav5t
>>7
型の強力さと遅延評価のクソさを身をもって示したリファレンスって点は評価ポイントだと思う
あとは実用にはならんかったがdarcsというVCSを世に放ったこと
0012デフォルトの名無しさん
垢版 |
2017/06/13(火) 11:34:29.62ID:KA4hHDRK
>>10
OS標準の開発言語はOSと文化を共有しているからな
マルチプラットフォームを視野に入れないなら最良の言語だと思うわ
0013デフォルトの名無しさん
垢版 |
2017/06/13(火) 11:41:51.61ID:r6njVaEB
OS標準てLinux=C, Windows=C++/C#, Mac/iOS=ObjC/Swift, Android=Java/Kotlin・・・こんな感じ?
0014デフォルトの名無しさん
垢版 |
2017/06/13(火) 11:49:00.99ID:+kV5cJp9
Cは基本的にいい言語だけどラムダとクロージャがない所だけはどうにもならん。でもそれ以外は本当にいい言語だと思う
0015デフォルトの名無しさん
垢版 |
2017/06/13(火) 12:13:37.35ID:WpoKav5t
サードライブラリ管理が野良orOSのパッケージ管理依存の二択なとこも駄目というかここが致命的では
0017デフォルトの名無しさん
垢版 |
2017/06/13(火) 13:00:17.07ID:WpoKav5t
Rustはトレイト境界の特殊化に束理論適用できるようになったら次世代っぽくなるか?
今はただの気難しい言語って感じで次世代感が薄い
0019デフォルトの名無しさん
垢版 |
2017/06/13(火) 17:58:36.02ID:/dWEWAyw
Goはいらん
ScalaとKotlinはどっちかだけでいいけどKotlinが後発だからKotlinでいい希ガス
TypeScriptは実用的だけど次世代化と言われると微妙
Rustは他の言語にない機能多いから次世代
0020デフォルトの名無しさん
垢版 |
2017/06/13(火) 18:04:11.72ID:+kV5cJp9
>>15
それってCのこと? Cは一切隠蔽しない文化だから、パッケージ管理ソフトとかの隠蔽してしまうものは基本的に相性悪いと思う。Cを書く者はライブラリも自分でMake installするし、インストール場所も自分で指定するから全貌の把握を邪魔するものはないって感じ。
裏を返せば全貌を把握できないと何も出来ないという事も言えるけど。
そういう文化の言語としてはCって完成度高いと思うし、現状超えるものはないと思う。まあ、Cで応用寄りのプログラム書くのは嫌なんだけどさ
0021デフォルトの名無しさん
垢版 |
2017/06/13(火) 18:22:10.72ID:1lda3qQJ
>>19
KotlinとTypeScriptにはほとんど差はないだろ
どっちもC#フォロワーだから、機能的には既に十分メジャーであるという意味ではどちらも次世代とは言えない
0022デフォルトの名無しさん
垢版 |
2017/06/13(火) 18:52:45.36ID:qZ9zsjQ6
Kotlinはあまり興味がなかった他の言語と違う何かがあるなあ、自分にとっては
0023デフォルトの名無しさん
垢版 |
2017/06/13(火) 19:06:12.09ID:huEjF5Un
俺の母ちゃんのあだ名コトリンなんだが
0024デフォルトの名無しさん
垢版 |
2017/06/13(火) 19:35:55.51ID:lP4lhg4O
>>20
何のためにdebやrpmに「foobar-dev(el)」ってパッケージがあると思ってる
言語自前のライブラリ管理システムがないからディストリビューションのパッケージ管理に乗っからないとやってけないからだろ

そういうものをCプログラミングと認めないなら好きにしろ
0025デフォルトの名無しさん
垢版 |
2017/06/13(火) 19:41:20.40ID:wCVClZJy
そういや、まともな検証プロセスの無いままライブラリが提供される
言語独自のパッケージ管理システムは、OS全体の安全性を脅かしてるってDebianの中の人が嘆いてたな
0026デフォルトの名無しさん
垢版 |
2017/06/13(火) 19:41:27.69ID:lP4lhg4O
別に全手動を否定するつもりはないが、
debやrpmが積み上げてきたものを蹴飛ばして
全手動こそがCって言われると違和感があるって話な
0028デフォルトの名無しさん
垢版 |
2017/06/13(火) 19:53:36.19ID:o0nyK+Xq
ソースコードを読む人は時間の感覚が違うだろ
インストールに1日かかっても1日損したと思ってない
自分で書くより早いから得してるし
読むだけでも1日や2日では終わらない
0029デフォルトの名無しさん
垢版 |
2017/06/13(火) 20:32:10.33ID:+kV5cJp9
>>24
「ライブラリが野良orOS配布だから良くない」という意見に「それは別に良い」って言ってるだけやん。ちょっと言葉は過ぎたかもしらんけどそんな噛み付かんといてよ
0030デフォルトの名無しさん
垢版 |
2017/06/13(火) 22:35:13.45ID:ZpGuJRaH
環境含めて考えれば
簡易な言語 + チェックツール
のが正解な気はする。
rust みたいに言語で縛るってのがそもそも間違いじゃねーの。
0031デフォルトの名無しさん
垢版 |
2017/06/13(火) 22:41:55.07ID:blSfEUfZ
>>30
より安全なC言語(チェッカーだったり、標準ライブラリの置換だったり)って今までたくさんあったけど、どれも普及しなかった
Microsoftも作ってたはず

なので、Rustは今度こそは!感がある
0033
垢版 |
2017/06/14(水) 13:01:02.27ID:0gE91xz7
>>24
何のためにって、そりゃ、ソースを検証せず、各配布元見てアーカイブのハッシュも見ず、
正しいとコミュニティが認めたものをコミュニティへの無限の信頼で横着して手に入れるためにじゃん。
現実的だけど。
>>30
チェックツールを実用レベルまで持ってくと、言語への縛りが結局キツくなるよ。
停止性問題みたいな話になってくる。
0034デフォルトの名無しさん
垢版 |
2017/06/14(水) 14:06:06.69ID:4UjMkIWv
Cの文化とPythonの文化は方向性が全然異なる
昨今の統計事情から察するに、応用を考えるにあたってはPythonの文化の方が優れているだろう
つまり、細かいことは言語作者やライブラリ作者に全部任せて、考えたいことに集中できる文化の方が発展が速い
0036デフォルトの名無しさん
垢版 |
2017/06/14(水) 14:35:24.56ID:4UjMkIWv
>>35
二択って何?このスレで二択で調べても「野良orOSのパッケージ管理」しか出ないんだけど
0038デフォルトの名無しさん
垢版 |
2017/06/14(水) 14:47:06.53ID:4UjMkIWv
よくわからんしまあいいや
Pythonの例から考えるに、少なくとも応用分野では次世代に流行る言語は強力なライブラリを簡単に導入でき、すぐに目的コードが書けてしまうと言った特性を有しているでしょう
0039デフォルトの名無しさん
垢版 |
2017/06/14(水) 14:59:43.37ID:W7dgH5v3
FORTRANの駆逐に長い時間が掛かったのはライブラリ遺産のせいだって聞いたことがある。
0040デフォルトの名無しさん
垢版 |
2017/06/14(水) 15:11:13.20ID:4UjMkIWv
その通り。Fortran77はクソだけど、新しい言語を使おうとしても移植作業も新規に書き直す作業も面倒なので、そんならいいやとFortranを使い続けてきた
そこに持ってきてpip install scipyのワンコマンドでblas lapackの多くのサブルーチンの良質なラッパーをインストールし、よくわかってない学生でもfrom scipy.linalg import eig 出来てしまうPythonは本当に偉大であった
0041デフォルトの名無しさん
垢版 |
2017/06/14(水) 20:07:23.71ID:rnctBDZd
まあ今ある blas より速いの作るなんて普通のプログラマには不可能だしな。。
0042デフォルトの名無しさん
垢版 |
2017/06/14(水) 21:17:37.82ID:i/E7QqbY
Haskell復活してるやん
0044デフォルトの名無しさん
垢版 |
2017/06/15(木) 03:30:08.09ID:TdjK6zBT
つまり実用できる状態になるとスレタイから外されるって事だよな
ここに残ってるのはいつまでも「次世代」言語
0047デフォルトの名無しさん
垢版 |
2017/06/16(金) 08:26:01.05ID:VSZ6CfqO
実用できる次世代言語はkotrin typescript だよね
実用できない次世代言語がスレタイ
0049デフォルトの名無しさん
垢版 |
2017/06/16(金) 10:10:44.42ID:sGqUlQsg
>>48
元からあいつらただのヤクザ
大義名分のメッキの裏がGoogleやAppleの経済活動で暴かれただけ
0050デフォルトの名無しさん
垢版 |
2017/06/16(金) 10:22:55.63ID:Elc9SXXc
個別スレある言語の話はそっちでヤレばいいじゃん
ここは個別スレ無いやつ専用にしろよ
0051デフォルトの名無しさん
垢版 |
2017/06/16(金) 10:54:04.49ID:is6DCp5t
パッケージ管理システムとかガベコレの一般論専用かな
一般論の個別スレないよね
0052デフォルトの名無しさん
垢版 |
2017/06/16(金) 11:04:24.01ID:yA2bsaGi
日産自動車栃木工場
塗装課、車軸課の正社員の方々の要求はコピペ継続の保守

2ちゃんねる愛用の方々にお知らせ
栃木県上三川町3-5-2
日産自動車上三川寮
管理人は合鍵を使い従業員の部屋に無断で侵入

抜き打ちで従業員の私物を全て調べるブラックの中のブラック企業。
期間工が看護師を殺害する事件もあった危険企業。
離職票を発行するのに一月以上もかかるとの情報もあり期間工の生活事情はお構い無し。

このコピペによる日産の悪事の拡散は日産正社員の断固たる要望である。これには日産と無関係の第三者が便乗している可能性が高く自分は不自然に感じている。



0647 FROM名無しさan 2017/06/01 21:21:43
いいからこんなとこで油売ってないで早く100万コピペ達成してこいよwww
ほら早よ行けやホラホラwww
返信 ID:bEv8YiM0(7/7)

↑↑このように必死で日産の悪事を拡散しろと煽っている。俺は脳無しで馬鹿なので日産正社員が日産悪事を公表するように煽ってきた理由が分からない。不本意ながらコピペを続けている。
0053デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:50:03.42ID:LYWH9ARf
個別スレない言語オンリーならRacket無双になるがよろしいか
0055こんな?
垢版 |
2017/06/19(月) 16:27:30.01ID:PFGmiz2v
今SunがJavaっての作ってるらしーぜ
どんな言語だろうな?
0056デフォルトの名無しさん
垢版 |
2017/06/24(土) 15:20:30.76ID:+EJLhPmM
Googleがヘルスバーグ(C#)級の人をスカウトしてきて
メインプロジェクトとして本気の新言語作ったとしたらどうなるか見てみたい
GoもDartも最初の言語設計がイマイチ感は否定できないんだよね
0057デフォルトの名無しさん
垢版 |
2017/06/24(土) 16:06:03.03ID:iOfeax4r
静的型と動的型のハイブリッドはTypeScriptで早くも完成させちゃったから、
次にヘルスバーグが手がけるとしたら完全な型推論ベースの静的型言語をやってほしい
0058デフォルトの名無しさん
垢版 |
2017/06/24(土) 16:23:53.98ID:pQNLYnE6
ヘルスバーグすこ
Googleの作る言語はゴミばっかや
0059デフォルトの名無しさん
垢版 |
2017/06/24(土) 16:28:25.84ID:TM1thEne
ヘルスバーグだってMSが敵わなかったからライバルから引っこ抜いたんだろ
0062デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:50:07.30ID:UHmd/ofd
Googleってゴスリンやゲイドも飼ってたことあるよな
一瞬で辞めたけど
会社の体質に問題があるんだろうね
0066デフォルトの名無しさん
垢版 |
2017/06/25(日) 10:07:31.69ID:ZFXP5+sH
Androidのアプリ作りたいのか、iOSのアプリ作りたいか
それだけの話なのに何で自分で決められないんだろ
0068デフォルトの名無しさん
垢版 |
2017/06/25(日) 10:24:20.80ID:by7iMnGq
kotlinは既にJavaをマスターしててサンプルコードの雰囲気を見ただけでなんとなく書き始められるくらいの人が使うもんだぞ
勉強するもんじゃない
0069デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:21:22.67ID:BOhr0vIe
今Haskellでよく使う処理をガンガン関数にしてライブラリ化してるけど、LLでもここまで短く書けないだろと言うか、
ここまでライブラリ化するには遅延評価じゃないとreverse使わないような処理でもメモリに溜め込むか、
遅延評価にする為にイテレータ作りまくりじゃないかと思った。

いあ、最上位の関数とかは短く書けるんだろうけど、ライブラリ内部の似たような処理を
ガンガン関数にして行くのは流石に難しいと思う。
0070デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:39:35.65ID:mZBbGFn8
>>69
つづきはブログでおやり
具にもつかない報告を読まされる身にもなってみろ
お前のレスは今後一切いらんからなこのスレには
0071デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:53:31.73ID:ETAvV0eF
linux のソース見る限りは c にまともなマクロが用意されればそれで十分。
まあまともなマクロを用意するってのは言うほど簡単じゃないだろうけど。
0072デフォルトの名無しさん
垢版 |
2017/06/25(日) 13:33:53.23ID:BOhr0vIe
>>70
じゃあLLでも何でもいいけど、手続き型言語でよく使う処理をガンガンライブラリ化してみてよ。
どっちがより汎用性と簡潔性を両立出来てるか競おうず。
0073デフォルトの名無しさん
垢版 |
2017/06/25(日) 13:58:29.36ID:by7iMnGq
Haskelは実装変更のインパクトがでかくてカプセル化的な考え方で作るには向かないんだよな
実用言語としてガチ関数型を流行らせるには厳密性を維持しつつ現実の大規模開発でのモジュール化も考慮した仕組みを作らないと
0074デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:13:01.18ID:/Sm2Vorl
>>73
Cでcatコマンド自作しようとした時、複数ファイルから一番長い一行あたりのバイト数(文字コードによって違うので文字数ではダメ)調べるコマンド作った時、
lengthはByteStringモジュールを使いたいけど、mapは標準のを使いたい(ByteStringのmapはByteString -> Char特化)って時に細かくどれは読み込んで、どれは読み込まないってしたけど、
それじゃあかんの?

モジュール読み込みの設定だけ変えれば、main以下は全く同じコードがバイト数と文字数切り替えれるけど。
0075デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:24:06.30ID:WUy1L4jW
>>74
すまん全く意味がわからない
73からいきなり抽象度が下がりすぎだろ
ハスケラならもうちょっと抽象的かつ厳密で明示的なレスを頼む
0076デフォルトの名無しさん
垢版 |
2017/06/25(日) 15:21:38.85ID:mZBbGFn8
>>72
なにが「じゃあ」なん?
脳みそ腐ってんの?
しょーもないレスでスレ汚すのやめてくれマジで
0077デフォルトの名無しさん
垢版 |
2017/06/25(日) 16:41:08.55ID:p9Z6xhSy
>>75
抽象度が高い=フワッとして概念的って思ってたんだが違うんか。。。
import書く時、この関数だけ読み込まない。
この関数だけ読み込むって指示できるから、そこだけ弄ればそこ以下のコードは書き換え無しに
文字数数えるかバイト数数えるか動作を切り替えられる。
0078デフォルトの名無しさん
垢版 |
2017/06/25(日) 16:53:53.40ID:p9Z6xhSy
>>76
うんうん。
分かるよ。
式と文が入り混じるから関数化する単位に限界あるもんね。
副作用と純粋部分の区分けが強制されないというか、遅延評価じゃないと強制されたらreverse使ってなくてもメモリに溜め込むコードになっちゃうし。
それを解消する為にイテレータ書きまくるのも面倒だもんね。
Cくらい速かったら、それを飲み込むのも我慢出来るのにね。
0079デフォルトの名無しさん
垢版 |
2017/06/25(日) 17:24:16.31ID:rLWYKb/E
この勘違いしたハスケラを黙らせるには、
ハスケラ自慢のライブラリを見せてもらって、
それより簡潔なコードを書くしかないと思う
0080デフォルトの名無しさん
垢版 |
2017/06/25(日) 17:39:45.42ID:wtr2uEYx
>>77
例えば、引数の値のみにより完全に決定される値を返す関数があったとして
ここに「ただし、前回と値が同じ場合は前回より1だけ大きい値を返す」という要件が増えたらどうする?
0081デフォルトの名無しさん
垢版 |
2017/06/25(日) 17:56:09.21ID:pYBZiqDJ
>>80
Haskellも状態扱えない訳じゃないし、大量に状態保持す代名詞のGUIプログラミングが、HTMLやXAMLで書かれるのに一定の地位を確立した今となっては、そういうDSL、又はDBに状態保持させて、Haskellは同じ値が来たら外部に+1してってお願いすれば良いと思うけどね。
0083デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:12:35.96ID:pYBZiqDJ
何言ってんのか分からんけど、Haskellでここまでよく使うパターンをライブラリ化出来るなら、もうLL要らんってなった。
速度が必要な時はCで書いて、速度求めないのはHaskellで良いや。
速度こそLLと変わらんけど、ここまで再利用し易いなら自分でよく使うパターンをライブラリにして行けば、すぐにLLより短くなる。

number.hsナンバリング
import System.Environment
import Myfunc

main = getArgs >>= mfput (fnumbering id)

revnumber.hsナンバリングと行の逆順
import System.Environment
import Myfunc

main = getArgs >>= mfput (fnumbering reverse)

mygrepn.hs検索文字列含まれる行(行番号付き)抽出。
import System.Environment
import Myfunc

main = getArgs >>= \(w:fs) ->
mfput ((replace w (redstr w)).(grep w).fnumbering id) fs

rp.hs(文字列置換)
import System.Environment
import Myfunc

main = getArgs >>= \(w:nw:fs) -> mfwrite (replace w nw) fs
0084デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:17:06.53ID:pYBZiqDJ
ライブラリ内部にも似た様なパターンを関数化して無駄に似た様な少し違うコードが少ない様にしてる。

Myfunc.hs自作ライブラリ
module Myfunc where

import Data.List
import Text.Printf

consnum::(Int,String) -> String
consnum (i,xs) = printf "%4d:%s" i xs

fline f = unlines.f.lines

fnumbering f = fline ((map consnum).(zip [1..]).f)

redstr::String -> String
redstr [] = []
redstr w = printf "\ESC[1m\ESC[31m%s\ESC[39m\ESC[0m" w

bluestr::String -> String
bluestr [] = []
bluestr w = printf "\ESC[34m%s\ESC[39m" w

grep w = fline (filter (isInfixOf w))
0085デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:17:18.21ID:pYBZiqDJ
replace _ _ [] = []
replace [] _ cs = cs
replace w nw cs | w == xs = nw ++ replace w nw ys
where
(xs,ys) = splitAt (length w) cs
replace w nw (c:cs) = c:replace w nw cs

putfc (f,c) = printf "%s\n%s" f c

writefc (f,c) = writeFile f c

mfptn fs f ofs output = mapM readFile fs >>=
return.(zip ofs).map f >>=
mapM_ output

mfput f fs = mfptn fs f (map bluestr fs) putfc

mfwrite f fs = let tfs = map (++ ".temp") fs in
mfptn fs f tfs writefc >>
mfptn tfs id fs writefc
0086デフォルトの名無しさん
垢版 |
2017/06/25(日) 19:00:45.29ID:rLWYKb/E
それライブラリ化する価値もなさそうな
汎用性の無いコードにしか見えんが、本気か...?
0087デフォルトの名無しさん
垢版 |
2017/06/25(日) 19:04:10.51ID:pYBZiqDJ
>>79
ワザとウザい役したけど、実際問題再利用のし易さと速度はある程度トレードオフな関係だと思う。
それならHaskellとCで良いんじゃないかってなった。
個々人でバランス感覚違うから、他の言語を選択するものアリだけど。
0088デフォルトの名無しさん
垢版 |
2017/06/25(日) 19:11:04.69ID:pYBZiqDJ
>>86
まだ育ててる最中だしね。
複数ファイル読み出し、複数ファイルそれぞれ出力なパターンはこれで行ける。
複数ファイルから一つの結果求めるパターンはこれから作るし、他の関数と共通パターンあったら、関数化して行く。

正気か?って言うけど、forとかメソッドチェーンな中身とか途中のメソッド入れ替えるとか、そう言うことしてる様な感じ。
こんな関数化の方法、オブジェクト指向言語では考えもしなかったぞ。
0089デフォルトの名無しさん
垢版 |
2017/06/25(日) 20:27:51.46ID:k3/0SUsA
Haskell使いのレベルの低さが知れるな
こうゆうのを繰り返すならやっぱり次はまたHaskellはずそう
0090デフォルトの名無しさん
垢版 |
2017/06/25(日) 20:33:29.70ID:h1su++jx
ていうかHaskell自体は全然次世代言語じゃないじゃん
Haskellの一部分を参考にした次世代言語はあるけど
0092デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:00:59.61ID:pYBZiqDJ
ええ。。。
最近こそラムダ式とか入ったけど、オブジェクト指向って相変わらず手続き型言語で、コンストラクタって結局構造化プログラミングで言うinit関数でしょ?みたいな感じで処理の分け方が上中下って感じなんだもん。
おまけに肝心の中身はインターフェースでそれぞれのクラスに別々に書いてねとか。
似た様なコード何度も何度も書いてるなー。。。って感じだった。
LLにしても、書き捨て毎に似た様なコード書いてるなー。。。って。

Haskellだからここまで関数化しても遅延評価でメモリを一定以上消費しないんだと思うし、mfput関数一つ書けば中身の処理を考えるのに集中出来た。
(mygrepnとか見つかった文字列を強調赤字にするオマケ付き。
rpとかコマンド名が競合するから短い名前だけど、地味にコード書き換えに活躍してる)

実際に上のコードと同じライブラリ書いてみてよ。
パターンは共通って分かってても、文が邪魔したり、メモリに溜め込む処理になるから断念する場面が出てくると思う。
0093デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:18:47.33ID:8QFIS7Xe
>>89 >>76 >>70
まともに叩くことも出来ないレベルのクソ野郎は入ってくんなよ…
お前らみたいなのがいるから、変なのが増長するんだろ
0094デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:38:11.91ID:8QFIS7Xe
>>92
結局パイプ的に繋いでく話してるだけだな
はっきり言うが、Haskellでまともなプログラム組んでIO扱う途端にその手の使い方はできなくなるよ
その言ってる方法突き詰めたとして、リアクティブプログラミング的になるが、
遅延評価が仇になってサンク作りまくる場合はあるし、遅延評価だから空間計算効率が良いなんて話にもならない
Haskell自身もメモリの効率がいいわけでもない
女アクのGHCのランタイムがまずクッソでかいし

何よりリアクティブプログラミングじゃ、現代のGUIでまともなプログラム作れない
IOなGUIツールキットをリアクティブに対応させるコード書いてる暇あったらIOで書いた方がマシだ
0095デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:42:36.54ID:8QFIS7Xe
正確にはリアクティブプログラミングじゃなくてFunctional Reactive Programingだな
リアクティブだけなら、一つのシグナルストリームでなく分散メッセージでいいし難しくはない
0096デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:00:46.32ID:pYBZiqDJ
>>94
空間計算効率が良いなんて一言も言ってないが。。。
悪魔で再利用し易さの割にってだけ。
んでもLLと同程度ならほとんどの場合で問題にならないので、このままライブラリ化進めればLLよりチマチマしたの作るのに都合が良い言語になると言うか、既になってる。

半端にLLで空間計算効率考えるよりは、普段はHaskellで富豪的だけどLLより再利用し易いコード書いて、そう言うの重要な場面ではCで書けば良いやってなった。

今時のメモリ搭載量だと小説10冊分が1ファイルに入ってても問題にならんから、実用上ほとんど問題にならん。
それが問題になる時は処理速度的にもLLでも対処出来ない。
0097デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:10:00.00ID:8QFIS7Xe
>>96
お前さっきからメモリの話ばっかりしてるじゃん…
それに再利用については、途中からIO入れたら使えないよね?
っていうツッコミに全く反論できてないし
言ってる事めちゃくちゃだぞ
0098デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:16:17.15ID:GaCuKOAB
>>97
「関数型で書いてもメモリを一定量以上使わない」を「空間計算効率が良い」と解釈するのはいくら何でも頭発達しすぎでしょ……
0099デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:20:20.12ID:8QFIS7Xe
ちなみにCで書こうがIOの問題は付随するので変わらない
そもそもパーサをTemplateHaskellとけ使って書いてるレベルならまだしも Haskellで型注釈も無しじゃコンパイル遅すぎだし、
リストを配列代わりにしたり、String使ってテキスト処理してるレベルじゃLLより遥かに動作遅いだろ
普段から使ってるとはとても思えない
0102デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:24:18.08ID:8QFIS7Xe
え、まさか本当にストリーム処理書けないとかそんな話?
いくらなんでも違うよね?
0103デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:27:27.12ID:pYBZiqDJ
>>97
途中からとはなんぞな?
CUIにしてもGUIにしても、HaskellだとIO部分と純粋部分は強制的に分けて書かざるを得ないから何を言ってるのか。。。
(mfwriteでは同名ファイルに書き込めないので一旦別名で保存して、別名で開く->元の名前で保存ってしてるけど、そう言うのはIOが途中で挟まるってのと違うのん?)

ある意味手続き型言語みたく(と言うか他の関数型もそう言う意味じゃ途中でIO挟まる?)、途中でIO挟まらないパイプみたいな処理にCUIでもGUIでも強制されるのがHaskellの一見不便で長所。
mfptnからmfputとmfwrite作ってる通り、関数に渡す出力先を差し替えるだけで良い。
0104デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:32:23.46ID:pYBZiqDJ
>>100
それはLLとは言え、手続き型言語がハードの仕組みに依存してるから、Haskellと同じ程度にライブラリ化進めると、普通に書くより遥かにメモリに負担かかるって意味。
Haskellがメモリ効率が良いって言ってるわけじゃ無い。
0105デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:33:19.85ID:8QFIS7Xe
>>103
既存の物を状態を扱うように変更するのにコスト大きい、と突っ込まれとるよね
あとGUIは純粋に分けることを強制される、なんて簡単に終わる話じゃないんだよね
新規に同規模の実装を強制されるわけで
0107デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:38:50.94ID:8QFIS7Xe
ちうか、出力先を変更する云々なんて別にHaskell関係なくないか?
どこがHaskellでしか出来ない処理と言ってるわけ?
0108デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:44:55.19ID:GaCuKOAB
ヤバい、ほんまもんや(笑)
0109デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:56:39.77ID:pYBZiqDJ
>>99
うい。
ぶっちゃけ大きめのファイルだとLLより遅いの体感出来るw
んでも実用的な時間だし、上でパイプの例えあったけど言い得て妙で、
LLでforとかeachとかでループとして処理するのもメソッドチェーンみたいにファイル名のリスト受け取って、
中身のリスト受け取って。。。ってパイプ処理して行くから、LLより考え方が流れを辿る感じでシンプルなんだよね。
速さよりも書き易さ優先。
速さ気にしてたらそもそもHaskell選んでない。
速さが我慢出来なくなったらCで書くよ。

ネットでperlで1000万行のファイルの行を逆順にしたいっての見つけて、Cで書いたんだが、3.1GBにもなるファイル読み込ませて逆順表示はCでも待ったな。。。
(一旦全部上から読んで位置情報を配列に入れて、最後に記録した位置から逆に辿る手法だったけど、メモリは4GBメモリの0.6%しか消費してなかった)

Haskellでメモリに溜め込む書き方でも10万行くらいは我慢出来るレベル。
LLならCと同じ手法でメモリに負担かからない方法で書けるだろう。
実はHaskellにもhSeek関数あるから、多分メモリに負担かからない方法で書けると思う。

でも、もうそこまで行くんならCで気持ちよく書く。
0110デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:57:17.16ID:8QFIS7Xe
やっぱり本気でパイプのようなストリーム処理がLLで書けないと思ってるのかな
今時はラムダなどのストリーム処理なんてJavaですら標準でついてるってのに

>>108
何が「ほんまもん」なんですかね
もしかしてどっちもO(1)で一緒とか言いたいの?
空間計算量って、それ自体はO-notationでの表記のことじゃないぞ?
0111デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:05:34.61ID:CvCdLd6J
「副作用で世界がどんどん変わって行くのを俺が全部コントロールして阻止しなければならない…
そうでなければこの世界はバラバラになってしまう…」

「どうしたんですか?先輩」(もぐもぐ
「おお後輩!…なんだそれ?」
「売店がパンじゃなくて弁当扱い出したんですよ
ゴミかさばるから売店とこで捨てろですって。
まぁ、どうせ僕が一括して持ってくんでしょうがw」
「後輩」
「はい?」
「カレーある?」
「たしか」
「じゃあ、それ一つ」
「はい」
0112デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:09:52.30ID:GaCuKOAB
ヤバいこいつ論点分からず突っかかってる
0113デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:11:04.64ID:pYBZiqDJ
>>107
うーん。。。出力先もだけど、差し替え易さとか、処理対象の単位を行き来し易いとか。。。かな?
ループだとファイル単位、行単位、文字単位って決まっちゃうと、中々そこから抜け出せないけど、例えば複数ファイルの行で一番長い行を調べたいとする。
(実はCで上の逆順コード書く際のバッファの大きさを決めるために書いた)

最初、トーナメント形式に各ファイルで一番長い行出させて、そこからさらに一番を決めて出力してた。
んで、途中で全ファイルの行の長さ出た時点で一位決められるじゃん。と、数値のリストのリストを平坦化して一気に一位決めた。
そう言うループじゃ無くて、悪魔でリストのリストを受け取って〜。。。って考えると簡単に行単位とかそう言う枠を超えられる。
LLでも出来るだろうけど、思いつき易い。
0114デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:12:43.68ID:pYBZiqDJ
>>110
いあ、書けるでしょうよ。
ただ柔軟性?こう、スタイルが決まっててあんま動かせない感じを受ける。
0115デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:15:11.08ID:8QFIS7Xe
>>109
言いたい事はわからんでもないけど、そんなにhaskell使いやすい?
自分もHaskellは複雑な構造の解析とか、何か本質的な部分の問題解くときにghci使う事あるけどさ、
実装はやっぱりpythonとかのが楽ってなったよ
Stackやcabalの設定編集も面倒だしコンパイル遅いし
mapM_あたり使うような物で純粋を目標にしてると、本末転倒になる事が多いし
0117デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:27:50.72ID:8QFIS7Xe
>>114
ポイントフリースタイルとの組み合わせは確かにHaskell特有だけど、
個人的には実装はIOの文脈で、パイプ演算子とパターンマッチを使える
F#やLiveScript(altJS)のような言語方が楽だと思うぞ
0118デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:45:27.87ID:pYBZiqDJ
>>115
なんつーか、さすがにGUIとかはC#使うわってなるけど、確かにコンパイル遅くて微妙に感じもしたけど、上のライブラリみたくガンガン関数化すればPythonでループのシーケンスにargv[1:]ってしてー。。。
逆順だとReversed(list(sys.argv[1:]))でー。。。とか調べないとな場面が度々ね。
んで、毎回複数ファイルから読み込まるのにforって書いて、行毎だとまたfor。。。

Haskellもライブラリ作る前は似たり寄ったりだったけど、ライブラリ書いてからはmfputにファイル名のリストと、各ファイル向け(1ファイル向け)に処理させたい関数渡すだけで大体のツール作れる。
多少パターンが特殊でもmfptnで対応出来る。
ループ的なのを関数に押し込んで、開きたいファイルと処理させたい関数だけ気にしてれば良くなった。
(逆にサポート外のパターンには無力だが。関数化は使い方も規定しちゃうから仕方ない)

Pythonだとあんまここまでライブラリ化出来る気がしない。。。
PythonやRubyの書き捨てでも楽だって思ってたけど、多分もう戻れない。
0119デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:47:28.90ID:GaCuKOAB
まずなー>>98>>100をいっちゃう時点でなー
>>96で「空間計算効率が良いなんて一言も言ってない」って明言されてるにも関わらずこんなこと言ってる時点で読解力お察しだからなー
0120デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:54:14.28ID:GaCuKOAB
相手の意図を組めないという点ではエンジニアガイジと同類っぽいなー
0121デフォルトの名無しさん
垢版 |
2017/06/26(月) 00:09:44.62ID:jZyN4LOL
そう。
空間計算効率の話自体はしてても、Haskellと同程度にライブラリ化したらLLが今までより空間計算効率が落ちる(もしくはイテレータ地獄になる)って言ってるだけで、Haskellの空間計算効率が良いなんて言ってない。
0122デフォルトの名無しさん
垢版 |
2017/06/26(月) 00:15:26.29ID:f2qWRibY
初めてKotlinで書いてみたけど意外と悪くないな
驚きが非常に少なく無理がない
C#みたいな天才肌とは違ってとにかく無難でつまらない印象だけど、
Javaからの乗り換えという意味では最適なとても筋のいい言語だと思うわ

import java.io.File

fun Sequence<String>.grep(w: String) = this.filter { w in it }
fun redstr(w: String) = "赤(${w})"
fun counsnum(i: Int, xs: String) = "%4d:%s".format(i, xs)
fun numbering(lines: Sequence<String>) = lines.mapIndexed({ i, xs -> counsnum(i + 1, xs) })

fun main(args: Array<String>) {
 val (w, fs) = args
 val lines = File(fs). bufferedReader().lineSequence()
 numbering(lines).grep(w).map({ redstr(it) }) }.forEach({ println(it) })
}
0123デフォルトの名無しさん
垢版 |
2017/06/26(月) 02:35:16.31ID:jZyN4LOL
>>122
kotlinのコードこのスレで初めて見たし、他のスレでもここまでまともなの見なかった。
thanks.
わざわざ見つかった文字列を赤文字にする所まで再現してくれるとは。。。

もうHaskellに惚れちゃってるからメインにならんだろうけど、確かに筋は良さそう。
GUIなコード書くのには良いかもしれんね。

行単位で受け取って行単位で出力する辺り、やっぱ手続き型言語と感じるけど。
だからこそ効率が良くて、そこを意識するからこそ柔軟性の限界感じる。
HaskellはStringが遅いだけで、バッファ効率自体は多分良い。
行単位とかじゃ無くて目一杯バッファに入れてると思う。
ByteString慣れないと説得力無いんだろうけど。。。
面倒いなぁ。。。
そこまでしないと勝負にならないなら、あんたの勝ちでいいよって思うもん。
手早く書けて使える速度なら充分だし。
0126デフォルトの名無しさん
垢版 |
2017/06/26(月) 07:49:16.94ID:b8W7cjsr
>>118
引数の逆順でファイル読み込んで一つのイテレータにするだけなら、pythonならこれだけじゃね?
(x for f in argv[1:][::-1] for x in open(f))
これをイテレータを処理する関数の引数に渡せば、お前のやりたい事できてるよね?
0127デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:09:40.24ID:O05czwZw
そうも書けるんだ。
でももうcatコマンドだったら

main = getArgs >>= mfput fs id

って書けば良いようにライブラリ作っちゃったし、もう良い。
mf = マルチファイル
0129デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:12:49.97ID:O05czwZw
逆順だとunlines.reverse.linesしないと改行が変になるから

main = mfput fs (unlines.reverse.lines)

unlines.f.limesパターンも良く使うから

main = mfput fs (fline reverse)

って書けるようにしたし。
0130デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:15:23.64ID:O05czwZw
あ、

main = getArgs >>= mfput fs (fline reverse)

だった。
0131デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:19:14.81ID:O05czwZw
>>128
うい、行単位でね。
Haskellは基本ファイルの中身を丸ごと文字列で受け取って、文字列で返すから、行って考えはナンバリングしたいとか、行単位で処理したいって思った時に初めてunlines.f.linesパターンで行単位に分解する。
なので出力するHaskellランタイム側にも行単位って概念が無い。
0133デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:29:22.47ID:O05czwZw
まあ、そんな事してるからHaskellは遅いんだろうなってのはある。
文字単位でバッファ目一杯入出力するけど、加工過程で分解して戻してってしてるんだし。
0134デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:30:25.78ID:O05czwZw
>>132
なるけど、見かけのコードは行単位でも、バッファリングはそれとは別に行を越えて処理すると。
これは失礼。
0135デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:37:10.13ID:O05czwZw
>>130
さらに馬鹿だ。。。
寝惚けてる。
部分適用し易いようにfsが第二引数だから

main = getArgs >>= mfput (fline reverse)

これだけで良いんだった。
0136デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:44:37.68ID:e8nxxM8b
KotlinはJava標準ライブラリに対する拡張も上手い
Javaに背を向けたScalaとは違って、Java標準ライブラリの良いところ駄目なところを深く理解して
最小限でツボを押さえた拡張を入れてる
Scalaが一瞬で要らない子になったのも納得
0137デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:51:02.56ID:O05czwZw
>>126
ついでに言えばPythonのは逆順でもメモリに溜め込まないはずで、大きなファイルだとPython使った方がいいってことになる。
でも、今時のスペックで問題になる程溜め込む場面自体が無い。
小説100冊分が1ファイルに入ってやっとちょっと気になるレベルだから。

なら、より短く書ける方がいい。
コンパイル遅いつっても書き捨てレベルなら毎度毎度定型的にPythonで書いてる時間で終わってる。

自分でライブラリ作ってからは完全にLL的な使い方はHaskellで良いやってなった。
素のままだとPythonのが良いけどね。
自分でライブラリ作るかどうかが決め手だった。
0138デフォルトの名無しさん
垢版 |
2017/06/26(月) 10:49:16.29ID:/blKTM20
複数のファイルを順番に読んでいって、特定の文字列が見つかるまで入力をそのまま出力する
文字列が見つかったら即終了

ってプログラムを、その自慢のライブラリで書いてみてよ
0140デフォルトの名無しさん
垢版 |
2017/06/26(月) 11:35:20.04ID:e8nxxM8b
行単位なのはダサいといいながら自分のライブラリはべったり行単位に依存してるのが笑いどころだな
結局行単位が便利だと思う人が多いからlineSequenceみたいなユーティリティが標準で用意されてるだけで、
やってることはunlines.f.linesと変わらんぞ
0141デフォルトの名無しさん
垢版 |
2017/06/26(月) 12:07:26.65ID:lPpre0LA
>>138
import System.Environment
import Data.List
import Myfunc

main = getArgs >>= (w:fs) ->
mfput (unlines.lines.last.(takeWhile (not.isInfixOf w)).inits) fs
0142デフォルトの名無しさん
垢版 |
2017/06/26(月) 12:56:36.59ID:+LDRBUDl
import System.Environment
import Data.List
import Myfunc

main = getArgs >>= (w:fs) ->
mfput ((++ "\n").last.(takeWhile (not.isInfixOf w)).inits) fs

unlines.lines要らんかった。

直後って書いてたから最初の検索文字列全部表示される前に終了かと思って上のコードにしたけど、最初の検索文字列表示した時点で終了なら、takeWhileをdropWhileにして、lastをheadにすれば良い。
0143デフォルトの名無しさん
垢版 |
2017/06/26(月) 14:59:05.87ID:a2h1pIHa
>>122 >>136
メインプロジェクトとしていろいろ試して選んだって感じなのね
androidの主力開発言語を急に乗り換える必要が発生したから当然だけど

(な?うざいだろ?by 某M社)
0145デフォルトの名無しさん
垢版 |
2017/06/29(木) 00:10:11.51ID:qxdPWLiZ
OCAMLを.netで記法(not構文)変えて作りましたって感じ>F#
冗長記法だとOCAML互換性高いし
0146デフォルトの名無しさん
垢版 |
2017/06/29(木) 17:11:41.82ID:wGgfLCtF
***SLAMO***

}

000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA"
001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b>
002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>>
3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}}


---

[[[C%%]]]
}

000-"5802"/"α"="0.1888412376155482"%en{
0147デフォルトの名無しさん
垢版 |
2017/06/30(金) 08:41:39.49ID:l6mEUTPw
F# は 関数型らしい抽象化機能※ を持っていないのが欠点
抽象化は .NET ( C# ) 互換の抽象クラスやインターフェースで実現することができる
でも型推論が効かなかったり null 安全でなかったりして辛い

※OCaml では構造的部分型やモジュール抽象化
Haskell では型クラスや型族のこと
0148デフォルトの名無しさん
垢版 |
2017/06/30(金) 20:40:32.58ID:2TVIteiy
型だけを見ればC#とF#は同じだろ
Haskellだって型だけを見れば他の言語で同じものは作れる
型だけを見るのが王道

逆に型を無視してHaskellにしかないものを強調するのは邪道だから
惑わされるなよ
0150デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:24:26.03ID:2TVIteiy
Haskell並ならちゃんとしてるというのは本当か?
ちゃんとしてないから「Haskell並」や「Haskellよりマシ」と言い訳するんじゃないか
0151デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:27:48.40ID:2Da2vksV
構造的部分型が「ちゃんとしてる」かは大いに疑問
あんなもんドカタITで使ったら悪夢だろ
0153デフォルトの名無しさん
垢版 |
2017/06/30(金) 22:00:33.62ID:onXQUvLg
>>150
静的型に限って言えばHaskellは上位でいいんじゃない?
強いて言うなら、TypeSynonymなクラスインスタンスぐらい言語標準で入れてほしいけど
0154デフォルトの名無しさん
垢版 |
2017/07/01(土) 09:18:35.85ID:1tCqnKMv
中途半端な奴だな
オレが一位だというならまだわかるが
Haskellが上位だという主張の何が嬉しいのか
0155デフォルトの名無しさん
垢版 |
2017/07/01(土) 10:27:16.17ID:yvgbUlYU
古い関数型言語関係の本だと、論理型言語が関数型言語の次の世代とか書いてて、まあ実際最近ワトソンやらペッパーやらAI関係で注目されてるのも論理型言語な訳で。
んじゃPrologはHaskellより使い易いんか?と勉強中。

早くもコレジャナイ感が。。。
もっと今時の論理型言語って無いんかな。
0156デフォルトの名無しさん
垢版 |
2017/07/01(土) 10:52:05.29ID:yAtrmQtL
Adaの型はどう?
0158デフォルトの名無しさん
垢版 |
2017/07/01(土) 22:05:29.59ID:wWo+lhH6
ケチつけたいだけのガガガガイジの相手すんなよな
0159デフォルトの名無しさん
垢版 |
2017/07/01(土) 22:57:47.40ID:1tCqnKMv
競争に勝つためにケチをつける自由がある
負ける自由もある
好きな方を選べ
0160デフォルトの名無しさん
垢版 |
2017/07/02(日) 00:11:43.12ID:gxDwTGkS
あ、そう言うこと言っちゃう?
おいらのライブラリ(>>84-85)の肝はmfputとmfwriteだが、結局他の言語で同じ様な関数作ってない。
当然だ。
Haskellは手続き型言語のforにあたるmap系の関数もそのまんま関数だし、Haskellだと自然に出力系は最後尾に追いやられるから関数化しやすいんだよ。

普通の言語は処理しながら出力する。
確かに効率が良い。
だが、再利用し難い。

今時のPCなら効率より再利用性のが重要だと思うんだ。
異論は認める。
0161デフォルトの名無しさん
垢版 |
2017/07/02(日) 01:00:22.98ID:C9YQ5tYh
大きなファイルを処理できないことで再利用性が大幅に低下するとは考えないのかな?
再利用の機会の多いものであれば少々手間をかけても効率を上げる価値があるケースもある
0162デフォルトの名無しさん
垢版 |
2017/07/02(日) 01:20:46.16ID:u1Wmv21R
LispとPrologの構文は汎用性があるからパーサーの再利用が重要だよ
文字列処理のような新しいパーサーを作る機能は重要じゃないよ

でも文字列の処理を書いてしまったらもう再利用を語る資格はないと思う
0163デフォルトの名無しさん
垢版 |
2017/07/02(日) 07:23:22.14ID:WUD7Q/xy
>>161
何度も書いた気はするんだが、遅延評価でメモリに溜め込んで出力してる様に見える処理も、
実際に火必要に応じて出力しながら処理してるから、.実際に溜め込んじゃうreverse使う様な処理じゃなければ大きなファイルも扱えるし、その気になればreverseな処理もCのfseek相当の関数もあるから克服出来る。
ただ、そこまで大きなファイルなら、Cで書いた方が速いの分かってるし適材適所。
0164デフォルトの名無しさん
垢版 |
2017/07/02(日) 08:20:48.27ID:uovtJU8N
>>163
それはちゃんと出力先があれば、の話なんだよな。
出力を怠るとメモリがお漏らししちゃうぞ。
0165デフォルトの名無しさん
垢版 |
2017/07/02(日) 09:08:10.92ID:hGhen2or
出力先がない状況って何ンゴ?
0168デフォルトの名無しさん
垢版 |
2017/07/02(日) 09:53:43.24ID:nuNQpba8
forに出来てgotoに出来ないことって何?
0173デフォルトの名無しさん
垢版 |
2017/07/02(日) 12:30:20.47ID:Ey9UZy2f
>>166
値を返せない。
関数合成出来ない。
0177デフォルトの名無しさん
垢版 |
2017/07/02(日) 15:37:42.58ID:Nl2/i6W2
pythonのyieldはStopIterationが気持ち悪い
ではnullを返せばいいかというとそれも気持ち悪い
値を返せない空気に逆らうのは楽じゃない
0178パシュー
垢版 |
2017/07/02(日) 16:23:07.20ID:JZu2jdmH
スレ違いであればすみません、どなたかわかる方いらっしゃればお願いします。

先日、営業電話があり、お宅のところはau光を利用してますよね?
→今まで、この手の電話で言った覚えが無い。ただ、au光は確かに利用・・・
何故、わかるのか問いただしたところ、相手からこちらの固定電話に電話するときや、
メールに送信するときの反応、時間、信号?跳ね返りの反応? でわかりますとの回答。
確かに先日、某サイトから携帯とセットでネット環境の見直しとして、
問い合わせはしましたが、果たして、相手からメールアドレスを
送信した時の反応や送信までの時間、
電話が繋がるまでの少しの時間での反応などで分かるものなのでしょうか?

ちなみに携帯の番号は教えてません。携帯であればドコモやauなどとあたりをつけることはわかるのですが…
どなたか教えて下さい!
0180デフォルトの名無しさん
垢版 |
2017/07/02(日) 18:06:59.55ID:O/UEQvVu
>>178
スレ違いどころか板違いだが、結論だけ言うとわからない
単に名簿屋から買いましたって言いづらいから、素人騙しでそう言ってるだけ
続きはヤフー知恵袋でやれ
0181デフォルトの名無しさん
垢版 |
2017/07/02(日) 21:50:57.08ID:19kDKEGS
>>174
yieldとか書く時点でダルい。
そんな速度変わらんのに、なんでそんな書かなあかんねん。
0182デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:22:57.06ID:19kDKEGS
>>176
まあ若いと言えない年になりつつあって20代の頃に比べりゃ覚えが悪くなってる自覚はある。
それでもC/C++、VB(.net含む)、Java、C#、Python、Ruby、smalltalk、Delphi含むPascal、もちHaskellは割と使えるぞ。
なんと無く分かっただけなのはLisp、Prolog、Erlang。
関数論理型言語Curryはもうチョイメジャーになったら本格的に覚えたい。

でもな。
学習と挫折繰り返した末に到達したのは覚えた言語の数じゃないって事だ。
知るべきはアルゴリズムや文法じゃ無い。(いあ、後々覚えなきゃだが)
作りたいアプリに対する周辺知識。(ファイル構造だったり、アプリにしたい事象に対する知識)
0183デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:26:25.12ID:19kDKEGS
あ、x86とARMのアセンブラもか。
0184デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:31:49.24ID:19kDKEGS
てか、Haskellのお陰でクイックソートがやマージソートがどう言う動きしてんのか理解出来たんだよ。
そう言う意味じゃCやJavaのアルゴリズム本みたいにコード示して終わりじゃ無くて、超初心者向けのどう言う動きですって動きだけ説明してる本のが有用だわ。
それ読んでコード書けない程度の抽象的な考えが出来ない(おいらみたいな)奴はプログラマの才能無い。
0185デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:03:55.72ID:Tx9mAztB
Haskellのinplace quicksortって可読性低くて冗長じゃん
Haskellerはあんなのが読みやすいの?

それとも、全く実用にならないquicksortのコードみて簡潔だと思っちゃったタイプ?
0186デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:05:35.20ID:MHKU0t6b
再帰のクイックソートは理解しやすいからな
実用性はともかく
0187デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:08:46.80ID:UYk8Gv77
>>185
うい。
TDNクイックソートで簡潔だと思ったタイプ。
遅いって分かっててもね。
動作さえ分かれば他の言語で書けるんじゃよ。
そしたら実用的になる。
LL的な使い方なら速度必要無いから、これ以上簡潔なものはない。
0188デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:37:29.08ID:wW6TPWna
C のコードより haskell のクイックソートのが理解しやすいって
本気で言ってんの?
0189デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:46:37.45ID:MHKU0t6b
妙なハードルつけてそれは本当の理解じゃないとかいうガイジ湧いてきたか?
0190デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:49:28.31ID:oRb6DKWl
Cのクイックソートも悪くないよな
たった一個の配列を部分部分で触っていくだけ
範囲きめてピボットきめて交換、の繰り返し
メモリの使用に余計なところが無いからスカっとする
0192デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:47:12.79ID:MHKU0t6b
>>191
勝手に相手の理解度決めつけるガイジはレスしないでね
0193デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:49:31.61ID:MHKU0t6b
まずこの話計算量関係ないからな
二重の意味でガイジやね
0194デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:57:49.58ID:1X06ZxCF
>>193
いやいや関係あるからw
in-placeって文字も読めないのかよ
図らずも君の低脳度もより明らかになってしまったね
0195デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:59:51.73ID:deAVzAEO
>>194
in-placeの話してるのお前だけだから
自分の話したいことと人が話してることの区別もつかないとか凄いな
0196デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:05:27.81ID:1X06ZxCF
>>195
だから低脳はアルゴリズムの話に入ってこなくて良いって
ドカタは用意された関数呼び出すだけなんだから
0197デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:07:05.32ID:1X06ZxCF
でもO(n)とO(n log n)の区別もつかない低脳が次世代言語について語ってるって面白いな
0198デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:11:01.34ID:deAVzAEO
>>196
周り見ろよ。今そんな話してるのお前だけだぞ
話に入ってきたのはお前だ
あと2回目だけど勝手に人をin-placeのクイックソート理解してない扱いするのやめてね。流石に不快だから
0199デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:31:49.69ID:1X06ZxCF
>>198
ああゴメンゴメン
>>189がin-placeを「妙なハードル」とかとんでもない事言ってるから、つい言葉がキツくなっちゃった
ハードルどころか基本中の基本だよねw
0200デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:49:48.18ID:deAVzAEO
>>199
ああそういうことね
ハードルはin-placeを指して言ったんではないんよ
ID:19kDKEGSはHaskellのコードで何をやってるか理解してから普通のクイックソート理解したみたいで、そこに>>188が来たから理解というものに妙なハードルというか拘りみたいなものを持っていると言いたかったんよ
たしかにハードルっていう表現はあんまり良くなかったな
0201デフォルトの名無しさん
垢版 |
2017/07/03(月) 10:41:46.80ID:apAa5CHd
Cが原文でHaskellが翻訳文という前提なら
誤訳のリスクがあるHaskellの方が読みやすいってことは理論上ありえないね
でも理論には前提があるから、前提をぶち壊せば理論上ありえないことが実現する
0202デフォルトの名無しさん
垢版 |
2017/07/03(月) 11:19:50.56ID:6QSWtKdI
>>188
そのクイックソートのコードは知らないから的外れになるかもしれないが
普通は、Cのコードなんて慣れている人以外には判じ物みたいで
何だってHaskellのコードの方が判りやすいだろう
0203デフォルトの名無しさん
垢版 |
2017/07/03(月) 14:43:11.96ID:X+xTdZLt
次世代言語スレで何でみんなCとHaskellの話してんねん
そのうちCOBOLとかForthの話になるのか
0205デフォルトの名無しさん
垢版 |
2017/07/03(月) 16:15:40.55ID:NT4tSDag
どんどんプッシュしたくなる次世代言語が見えなくて
現実逃避してるような気がするのは気のせい?
0206デフォルトの名無しさん
垢版 |
2017/07/03(月) 17:12:08.86ID:apAa5CHd
言語を使いこなす正攻法よりもマインドをコントロールする裏技ばかり使うクズが増えた
言語の進化は止まった
0207デフォルトの名無しさん
垢版 |
2017/07/03(月) 17:41:53.22ID:XPxmwxQZ
>>203
CはともかくHaskellは永遠の次世代言語やぞ
0210デフォルトの名無しさん
垢版 |
2017/07/03(月) 20:54:48.22ID:UwBLUxpl
>>188
本気も本気。
んで、やっとCのクイックソートの動きや無駄の無さが理解できたし、自分で(コピペじゃ無く)書けるようになった。
才能ある奴は最初から理解出来るんだろうけど、おいらはHaskell経由する事で色々理解出来たし、Haskellでなら何でも書けるぞ‼︎ってなってから、やっと文法やアルゴリズム以上に大事なのはデータ構造だと気付いた。
メジャーな画像ファイルのデータ構造書いてるサイトあったら教えてくれ。
そしたら画像変換ソフト作る。
今はテキストなら分かってるからCUIのviライクな(悪魔でライク。自分なりにもっと一貫性のある移動コマンドにする予定)テキストエディタ今度の休みから作り始める予定。
Haskell普及の宣伝の一助になれば良いな。。。
0216デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:27:19.89ID:UwBLUxpl
>>213
他に語る奴いないから語ってる。
代わりに普及に貢献してくれるんならROMっても良い。
それ位惚れてんだ。
0220デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:38:50.74ID:OUQpTrGv
>>214
エリクサーは並列処理楽そうだから興味ある。
ErlangはPrologっぽいのが馴染めなかったからね。。。
(そのPrologも、地味に論理型言語の実験場的役割してるって記事読んで、制約論理プログラミングが取り入れられてるの実感して見直したところだけど)
0221デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:40:10.37ID:OUQpTrGv
>>218
なら、代わりに普及してくれ。
不安に思ったらすぐ出てくるぞ。
0223デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:51:13.50ID:PMhP6mgs
分かってんよチクショウ。
でもな。
これ程入門者向けの言語は無いと思ってるんだ。
それこそ、小学生からプログラミングが取り入れられるなら、Haskell教えるべきだってくらいに。
構造が分かれば、手続き型言語後から覚えても役に立つ。
Haskellはプログラムの構造を明らかにする。
0225デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:08:00.17ID:deAVzAEO
Haskellの人結構いいと思うけどな
言ってることもまあまあ妥当だと思うぞ
0227デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:15:14.50ID:wybralPC
このスレだけじゃなく他もやめてくれ
ほんと迷惑以外の何者でもない
そのレベルのHaskellの布教や他言語disが死体ならブログでやってくれ
でなきゃせめて読まずに済むようにコテハン付けてくれ
0229デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:20:39.13ID:wybralPC
コイツのつまんない自己満ライブラリ連投がなきゃスレがにぎわんってなら
過疎って落ちる方がずっとマシ
0231デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:40:55.36ID:hTTgnp+k
>>224
んじゃ、課題な。
これ解決したらROMる。
>>84-85のコードで>>85だな。
mfptn,mfput,mfwriteに相当する汎用的な関数手続き型言語で書いてくれ。
Haskellより簡潔な形で。

表面的にはクロージャ渡してループの中の変数に渡せば良い。
問題は、オープンするには純粋なファイル名だが、表示する時ファイル名を青文字にしたいとかそう言うカスタマイズ可能なmfptnが書けるかだ。
書ければmfputもmfwriteもmfptn使って似た様なコード書かなくて済む様になる。

>>225
ありがとう。
これでも言語オタとして色んな言語渡り歩いて導き出した結論。
やっとプログラマのスタートラインに立てた実感からの発言。
マジレスってやつなんだ。
間違ってたら指摘も結構。
真摯に受け止める。

今はプログラミング用のコマンド作ってるのがメイン。
自分の為のツール作るのが一番モチベーション保てるね。

HaskellerならEmacsって思ってたけど、viが軽くて、実験的に書いた行を消したいだけとかに良いね。
(Emacs、編集したいだけなのに型検査だかコンパイルだかやってんじゃねーよボケ)
ただ、せっかくhjklで上下左右一文字移動なんだから、その上下段のyuioやbnm,で単語や行の移動しても良いじゃんよって思ったから作ろうと思ってる。
u/Uのアンドゥー/リドゥーは。。。CntlとAltかな。。。
0232デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:04:54.14ID:oRb6DKWl
>>231
お前の課題が解決しようがしまいがROMれ
ブログの書き方がわからんのならぐぐれ

お前の愚にもつかない自己紹介
愚にもつかないポエムはそこで存分にやれ
それはもうそこで存分にやってくれ
0233デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:08:44.96ID:hTTgnp+k
>>226
小学生に算数って実は面白いかも?って思ってもらう本(電子書籍)書いてからね。
元々書きたいとは思ってるんよ。

Haskell入門以前って電子書籍は出してる。
以前って付くの一冊しか無いから一発。

普通の再帰が末尾再帰に自動変換の下りは嘘っぱちで、スタック消費を抑えただけだったみたいなんだけど、それ以外なら関数脳作る一助になると思う。
お金あるならプログラミング in OCamlのが関数脳作るのに良いと思うけど。
(これの著者がHaskell本書いてくれれば最高なのに)
0234デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:11:09.43ID:hTTgnp+k
>>232
あえて嫌われ役やってんのに、課題解かずにROMれとかおいらの思う壺。
やはりHaskellはLLよりも再利用性が高い。
0236デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:16:55.17ID:apAa5CHd
ジョブズのように美しいデザインに異常にこだわるタイプが
もし表現の自由や基本的人権を美しくないと判断したら何が起きるか
既に何か起きてるか
0237デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:30:27.58ID:hTTgnp+k
>>235
多分尼とパブーの2冊。
内容同じ。
パブーは無料。
尼は無料に出来なくて仕方なく100円。。。
0239デフォルトの名無しさん
垢版 |
2017/07/04(火) 00:47:05.17ID:huKUW2nT
nlなんて書いた覚えないが。。。
tacやgrepと言うコマンド名を知らなかった頃に書いたのを、リネームしただけだからね。
そう言う機能がないか調べるより書いちゃえって主義。
おいらの場合、そうでも無いとプログラミング力が付かない。
0240デフォルトの名無しさん
垢版 |
2017/07/04(火) 04:24:48.11ID:LX4AtBOp
>>231
スレチだけどVimのyuioを潰すのは許せん
それはマジで許せん
0242デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:23:37.78ID:FYa81knm
Linux始めたばかりで探すより書いたほうが早かったから。
どっちが早いかの問題。
0243デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:25:05.34ID:FYa81knm
>>240
自分用だから。。。
公開するとしても選ぶ自由はユーザーにある。
0245デフォルトの名無しさん
垢版 |
2017/07/04(火) 14:09:58.01ID:pyKR417/
よく見たらinsertモードと改行insertも潰れるのかwww
もうそれvimでもなんでもねーやん
0246デフォルトの名無しさん
垢版 |
2017/07/04(火) 14:15:22.45ID:vfHvNnoh
勉強せずに自分で作るとか言ってるとヤンクアンドゥインサート改行インサート潰すガイジに成り下がるのか
やっぱり慣例の勉強って大切だわ
0247デフォルトの名無しさん
垢版 |
2017/07/04(火) 18:25:49.77ID:ZOpHOB0v
再利用性大事とか言いつつオレオレ仕様で車輪の再発明しちゃうアホンダラなんだなぁHaskellerって

机の上のお勉強はできるのかもわからんが、ギークとしてのセンスが皆無なんだな
0248デフォルトの名無しさん
垢版 |
2017/07/04(火) 18:30:51.12ID:ZOpHOB0v
探す手間より書いた方が早いとか言うやつは、自分の書いたもの見せびらかしたいだけ

お勉強はできるからそこそこのものを作れるんだろうが
既存の枯れたものの仕様ガン無視で作るせいで結局作ったお前さんしか再利用できないオナニーの産物
0249デフォルトの名無しさん
垢版 |
2017/07/04(火) 18:35:07.55ID:ZOpHOB0v
別に言語の再利用性は机の上でのお勉強の得意なお前さんの言う通り
Haskellの方が高いんじゃねえの?しらんけど

でもお前さんがオレオレで作ったものの再利用性は低いよなあってお話
なんせ既にあるものガン無視でオレオレ仕様の再発明しかしてねえんだから
0250デフォルトの名無しさん
垢版 |
2017/07/04(火) 19:11:10.26ID:pyKR417/
>>239
いくらなんでもgrepも知らないって調べるより書いちゃえも何も、
単純にエンジニア、ライブラリアンとしてものを知らなすぎだろ

ls, find, cat, grep, sed, awk, xargsくらいは、知ってないとわけわからんよ
プログラミング力どうこう以前の問題

Haskellプログラマが全員こんなに馬鹿だと思われるのはすごく悲しい
0253 ◆QZaw55cn4c
垢版 |
2017/07/04(火) 20:15:18.37ID:wi75CMMG
>>184
Haskell のクイックソートやマージソートは本質を失っている,重要なのはインプレイス性だが haskell にそれは望めない
0254デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:35:49.53ID:KFTmH+Xw
>>244-246
そうか、ヤンクも潰しちゃうねぇ。。。
あれか。
Ctrl+hjklとかAlt+hjklに移動は集約しちゃうか。
コーディングしたくて気が早って"("押したら移動しちゃうとかが不便で、そう言うの起きにくい仕様にしたいだけなのよね。

オレオレのオナニーで結構だとは思うんだけど、不便にしたいわけじゃない。
少なくともおいらにとっては便利じゃないと。

>>247
ずっとWinだったんでcdとcatとlsはとりあえず分かったけど、awkとsedは聞いた事あるだけで、どんな機能か未だ分からず。
時間見て調べる予定。
grep,findはそう言う機能はあるだろうなとは思ったけどfindは望む機能じゃなかった。
grepは鯖入門書読むまで知らなかった。

元々そう言う不便な環境に身を置けば欲しい機能は自分で書くしかなくなるから、プログラミング能力伸びるだろってのが目的なんで、ある意味目論見通り。
0255デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:37:38.04ID:KFTmH+Xw
>>253
インプレイス性と言うのは何でせう?
それが分からんと反論も同意も何も出来ない。
0257デフォルトの名無しさん
垢版 |
2017/07/04(火) 23:18:10.83ID:KFTmH+Xw
ああ、省メモリってことね。
そりゃそうだ。
おいらだって手続き型言語で書けばなるべく書き換えで済まそうとする。
手軽さ優先か性能優先かだよ。
でも、性能優先のコードしか提示されなかった頃はどう言う動きか読み取れなかった。
その時点でプログラマの才能無いんだろうけど。
Haskellのコード見て、手続き型言語で書くには?ってなったら自然と配列書き換えられるんだから、書き換えた方がメモリ少なくて済む(&配列追加の手間が無い)ってなる。

言語によって面倒くささが違うんよね。
例えば総当たりソートとクイックソートは手続き型言語じゃ難易度に大差あるけど、関数型言語は大差無かったり。

LLでも大差無いけど、おいらのmfptn関数みたいなのがLLって感じで、難しい言語でよく使うパターンを文法やライブラリにしましたってだけで、そこから外れると普通の手続き型言語。
0258 ◆QZaw55cn4c
垢版 |
2017/07/05(水) 03:30:13.16ID:CpudxOdu
>>256
データのコピーを極力少なくしてその場でソート
0259デフォルトの名無しさん
垢版 |
2017/07/05(水) 06:47:52.98ID:x40Yunw0
>>250
そこから漫画みたいなインフレが起きて「perlくらい知ってないと」ってなるのが
linuxの醍醐味
0260デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:01:16.37ID:SG/9DEZV
>>257
お前Haskellで書きにくいコードから逃げて、
書けるとこだけ書いてHaskell書きやすいって言ってるだけじゃねーか
お前はそのクソコードで満足なのかもしれんが、それを押し付けてくんな

違うっていうならin-placeのソート書いてから能書き垂れろ
0261デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:27:05.94ID:+U8R7kGU
それの何がいけないんだろうか。。。
速度欲しい時だけCで書けば良いってのはまさにそれだが。
Haskellでも書けないことはないんだろうけど、楽するための言語なんだから、そんな事するならCで書くよ。
おいらにとってはLL的な用途にはLLよりHaskellのが楽だった。
それだけの事。
0263デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:38:51.44ID:bh56GpK2
Haskellの再利用性に関する重大な課題は>>80-81で既に示されてるね
mfput君の意見がまだみたいだけど見解は?
0264デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:51:17.76ID:0jzZYcN5
>>142も結局mfputしか再利用出来てないし
mfput君は今のところ肝心の再利用性の高さについてはほとんど立証できていないように見える
Haskell云々というより本人の設計センスの問題な気もするが
0265デフォルトの名無しさん
垢版 |
2017/07/05(水) 08:10:24.97ID:SG/9DEZV
お前の意見なんて「自分のような初心者にとってはHaskellは分かりやすかった、以上」だけで十分なんだよ
お前のクソ初心者臭いコードやポエムを読まされて
他者が得るものがあるとでも?
0266デフォルトの名無しさん
垢版 |
2017/07/05(水) 08:28:35.89ID:+4iFZrIp
2chのレスに得るもの求めるとかガイジかよ………
Stack overflow 池
0268デフォルトの名無しさん
垢版 |
2017/07/05(水) 10:00:37.58ID:tWLafY8Y
このスレでガイジガイジ連呼してるやつマジ病気かよ
どんだけリアルで悲惨な人生だったらこうなるんだ
0270デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:26:16.42ID:+4iFZrIp
Haskellの言ってることは一応一貫してる
そこに突っ込んでる人は一貫してる部分を読めていないとしか思えないツッコミばっかり
そんな的を外したらツッコミに逐一返信してるんだから永久に終わるわけがない
0271デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:32:33.78ID:GeoIRJSP
>>263
>>81がまさにおいらの回答だが。。。

mfputはLLより短く書けないもんかと考えた時、あらゆるものが関数何だから関数化出来るじゃんって思い付いた。
0272デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:38:33.21ID:GeoIRJSP
>>265
あはは。
その通りだよ。
LLより初心者に優しいってのがまず一つ。
LLに限らないけど、定型文になってる部分もパターン化して関数にし易い(LLでも出来るだろうがスマートじゃない)
0274デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:53:14.41ID:PFivIsqu
>>271
81が回答とかさすがにガチハスケラにぶん殴られるぞ
ハスケラはこういう突っ込みには
「呼び出し側も含めて設計を見直せ。状態を持たせるというのは本質的に重大な変更であるから影響が大きいのは当然である。」と答えるのがテンプレだ
覚えておけば役に立つよ
0275デフォルトの名無しさん
垢版 |
2017/07/05(水) 13:23:50.44ID:x40Yunw0
Javaでもうっかりstatic変数を使うと設計を見直させられるパターンだろ
thisとかselfとかいう引数を追加するのが定石
これはHaskellでも簡単にできる
0276デフォルトの名無しさん
垢版 |
2017/07/05(水) 13:59:00.37ID:PFivIsqu
Javaの場合はインスタンスフィールドでいいだろ
Haskellだと直前の値を保持しているところまで遡って全部修正かな
0277デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:01:53.58ID:z3CI8qH6
>>274
STモナドとかで実現は出来るんだけどさ。
GUIならGUI、DBならDBに状態保持を任せちゃった方がスマートだとは思わないかい?
テンプレじゃ無く、あんたのハートに聞いてる。

ああそうそう、実はgrepは検索文字列が見つかった前後20文字表示にするか行表示にするか迷って、行表示の方が簡単だからたまたまgrepと同じ機能になっただけで、前後20文字の場合は別にファイルの内容丸ごと記憶しておく変数を引き回しても良かった。
どうせ遅延評価で必要になるまで読み込まれないから2ファイル同時でもたかが知れてるしね。
丸ごと記憶する方法も、見つかったら29文字以前をGCしやすいようにするのと1から検索させるのとあるけど、小説10-20冊を1ファイルに収めても問題無いんだから気にする事もない。
0278デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:03:02.86ID:z3CI8qH6
x29
o20
0279デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:21:41.45ID:HfOW3or9
いかにHaskellキチがお勉強できて正しいこと言ってようと
こいつがgrepを始めとしたツールを知らない無知で
オレオレ仕様で再発明してドヤ顔してるトンチキなのには変わりないんだよな
0280デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:23:14.50ID:HfOW3or9
Haskellが使える言語かどうかは知らんけどHaskellerがオタンコナスなことはまた一つ実例が出てきてしまった以上の情報はないね
0281デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:27:53.06ID:vgwSeoh2
このHaskellerってファイル読み込んで同じファイルに上書きするの出来ないとか言ってたはずだけど、
それでどうやってテキストエディタ作るんだろう?
まさか全部DBにデータ入れるのか?
テキストエディタのインストールの前にDBのインストールが必要ってことか?
0283デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:46:58.82ID:z3CI8qH6
>>279-280
おいらがトンチキ呼ばわりはいいんだよ。
あれ、Haskell使えるんか?使ってみようかなって人が増えれば。
んで、そんな無知で馬鹿な奴でも書けるアピールな。
0284デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:50:19.56ID:z3CI8qH6
>>281
それはwriteFile関数の仕様。
readFaile幾つ読み込んでもいいし、下位の関数探ってれば複数ファイル書き込めるのもあるだろう。
安全の為の仕様だし、安全じゃないのを許容するのがあるはず。
最悪、Cで書いてFFIでHaskellから呼べば良い。
0285デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:04:05.82ID:fqeoBJ4G
>>277
全く思わないな
なんで勝手にGUIやDBを前提にしてるんだ?
これまで状態を持たなかった関数を前後の値を考慮するように変更したいというのは
君の大好きな「LL的なタスク」であってもそれほど珍しい状況ではないように思うぞ?
0286デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:42:05.37ID:+4iFZrIp
>>281
よく知らんけどleksahって言うHaskell製IDEが実在しているのでこのHaskellの人が言ってることが間違ってるのは間違いない
0288デフォルトの名無しさん
垢版 |
2017/07/05(水) 23:03:23.20ID:bh56GpK2
だいたいDBやGUIに持たせるといってもどこからそのコンテキストを持ってくるんだ?
結局呼び出し階層を遡って大修正だろう
暗黙的に環境の状態にアクセスするような関数があればいいとか思ってるなら、冗談抜きで怖いハスケラに夜道で襲われるレベルの邪悪な思想だぞそれ
0289デフォルトの名無しさん
垢版 |
2017/07/06(木) 00:04:57.61ID:CrSqEEHs
大きすぎて修正できないならさっさと諦めて逃げれば邪悪にはならないが
逃げるくらいなら邪悪な方がマシだと思うから邪悪になる
0290デフォルトの名無しさん
垢版 |
2017/07/06(木) 01:50:43.47ID:9Gxa3EmF
>>283
まーHaskell自体は決して使えん言語ではないのは知ってる

書くもんが大型化してくるとデフォ遅延評価のせいで副作用周りのデバッグが発狂難易度になるとか
ちょっと気を抜くと遅延サンクが膨れ上がって死ぬとか
色々あるからあんまりモノリシックにでかいものを複数人で書くのには向いてない言語だとも思うがね

そういう意味でHaskellはハードウェア記述言語に向いてると思うんだが、まだこれといったやつが出てきてないんだよな
0291デフォルトの名無しさん
垢版 |
2017/07/06(木) 02:15:34.43ID:pIo4ewrq
そもそも関数型が解決しようとした問題は、副作用の連鎖による想定外のトラブルだろ
大規模な構造をどう記述するかということであって、もうそれはOOPが解決してしまった
0292デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:32:49.91ID:KLsItAo2
つまり純粋関数型は使えないと?
0293デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:51:12.34ID:EB5tIDF+
その純粋ってのを保証してるのはコンパイル時の型チェックだな
それがなければ使える
0295デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:24:44.24ID:4UTaW8nX
オブジェクト指向プログラムで副作用は解決してないだろ。どうみても。
0296デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:46:24.49ID:EB5tIDF+
288の言う「呼び出し階層を遡って大修正」は
副作用有り・無しのチェックだけじゃない
ヌルを許容する・しないのチェックで破綻するケースもある
0297デフォルトの名無しさん
垢版 |
2017/07/06(木) 10:02:36.10ID:tNWdrmh7
>>296
あるある
汎用性を考え出すとモナドとMaybeにまみれて何のための静的関数型かよく分からなくなってくるんだよな
0298デフォルトの名無しさん
垢版 |
2017/07/06(木) 17:43:28.35ID:FO8iZdOb
>>290
うちのプロジェクトは遅延評価禁止ね全部先行評価で書け
oO(ソースが全然Haskellに見えないw)
0299デフォルトの名無しさん
垢版 |
2017/07/06(木) 19:15:58.18ID:NwSzXY2t
プログラムが現実と関係を持ちつつ社会の中で動いている以上副作用を無くすことはできない。
全体を停めることができず、部分単位でアップデートを繰り返すならなおさら。
そう言った意味で『関数型言語』は結局いつまでも実現することのない賽の河原の石積み。
0300デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:11:21.34ID:lW8KZ3Ns
まあ言語の機能によって副作用のないコードエリアを明示するってアイディアは
良いと思うんだけどね。
haskell は変な極論を推し進めてどうしようもなくなってるという印象が強い。
0301デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:13:21.99ID:dOY2yuiz
>>297
>>299
副作用が多くてMaybeモナドだらけになるって設計が悪いだけじゃない?
それって普通のプログラミング言語で書いても副作用だらけのプログラム書くってことでしょ?
どんなプログラミング言語でも副作用はなるべく少ない箇所に押し込むでしょ
0302デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:29:36.80ID:XEsudacO
Haskellは副作用禁止の言語だと思ってる奴多いんか?
副作用と純粋関数に分けて書くってだけだぞ
0303デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:35:22.98ID:td/2KdW6
>>301
Haskellは極論バカだから特にそこが問題になるんでしょ
オブジェクト指向では少々副作用があろうが汚かろうがクラスに閉じ込めて外からは「問題にならない」ようにすることができる
mfput(笑)みたいな小さな問題と違って、現実世界の問題を相手にすると常に最初から完璧な設計をするなんて不可能だしね
0304デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:39:55.53ID:td/2KdW6
>>302
そんな勘違いをしてる奴は誰もいないと思うぞ
副作用の混入に対してセンシティブすぎるという話
0306デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:11:16.25ID:4UTaW8nX
Javascriptのこのクイックソートは副作用なし


// QuickSort
QS=X=>X.length<=1?X:[
...QS(X.filter((x,i)=>i>0&&x<X[0])),X[0],
...QS(X.filter((x,i)=>i>0&&x>=X[0]))];

//main
var x=1, X=[...Array(20)].map(()=>x=(7+37*x)%100);
console.log("in: "+X + "\nout: "+QS(X));

http://ideone.com/wnQXXE
0307デフォルトの名無しさん
垢版 |
2017/07/07(金) 06:18:59.39ID:1OiH67XQ
>>290
ハードウェア記述言語向きってのは使った事ないけど、分かる気がする。

おいらもHaskellでGUIから何から書き下すのは出来なくはないけどそれOOPで良いよねって思ってて、
でもある意味CUIよりGUIの方がメッセージやイベントに答えるコード書けば良いだけなんだから、
むしろGUIをHTMLやXAMLで記述するようになった今だからこそHaskellは環境さえ整えばGUIも向いてると思うんだよね。
その環境が絶望的に揃ってないだけで。

なんつーかな。
あんたと思ってんのは基本同じだな。
全部Haskellで書こうとするから無理が出る。
上手に副作用部分を外部ツールなり、他の言語に任せて連携させればこれ程シンプルかつ堅牢に作れる言語もなかろうって思う。
0308デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:21:04.24ID:Od+E3Jwj
つまりhaskellではなくOOPと関数とマルチパラダイムが答えということか
あ、Scalaやね
0309デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:44:10.95ID:SZnapx63
今だとGoogleのお墨付きを貰ったKotlinだろう
mfput君のレベルだと全く不足ないことは上で実証済みだし
0311デフォルトの名無しさん
垢版 |
2017/07/07(金) 10:37:23.83ID:NO/da/cw
>>308
HTMLやXAMLでGUI部分書くようになった今、OOPの役割は終わったのに醜く延命してるって話。
でもコード資産があるから、ベストじゃ無いって分かっててもそうなるんだろうな。
0312デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:01:01.33ID:GpMOtbcc
>>311
GUIの中で副作用のないところをhtmlに切り出せたなら
あとは副作用をどう上手く書くかだろ?
だったらHaskellみたいな純粋関数型は益々いらんって事にならんか?
0313デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:31:39.94ID:qM4KnfoJ
GUIで書きたいのはただの副作用ではなく非同期な副作用
非同期とXMLを流行らせたJSの手柄をOOPの手柄にするのはアクロバティック過ぎる
0314デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:34:56.69ID:xvg52mfm
え、逆だろ?
HTMLやXAMLは副作用の排出口。
だからそれらに書き込むような表層部分に副作用部分を集める。

むしろ今だからこそHaskellがGUIで活きる可能性が出て来た。
例えばエディタ作るとして、CUIだと文字入力監視用のループがある。
GUIだと文字入力されたってイベントに対応すれば良いから、HaskellだとGUIのがエディタ書きやすいと予想してる。
んで、そっからは文字列処理得意なHaskellの独壇場。
普通のアプリなら文字列処理をロジックと読み替えて良い。

まあ実はHaskellだけでGUI書いてもJavaやC#みたいにIDEが整備されてる言語には劣るけど、整備されてない言語とならどっこいどっこいで、特にGUI苦手ってわけでも無いんだけども。
Haskellっぽくなくていやんな見た目なだけで。
0316デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:14:54.40ID:SZnapx63
>>314
そこまで構想(妄想?)ができたならもうそろそろいいだろ
続きはgithubで語れ
mfput(笑)みたいなサンプルじゃなく、ちゃんと実用性のあるGUI&DBアプリを作ってくれよ
期待してるぞ
0317デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:39:25.73ID:kkdCXGBc
>>314
GUIアプリを画面を入力すると画面を出力するプロセスの集合体と見做すのはCOBOL時代には主流だった発想だよ(今でもWebには色濃く残っている)
自分でやってみりゃわかるけど、確かにスケールはさせやすいんだがくだらん単純作業とコピペを延々繰り返すような開発になるし
大きな手戻りが生じるともう悲惨
0318デフォルトの名無しさん
垢版 |
2017/07/07(金) 14:05:26.16ID:C9MPrnMO
うい。
作れたら出してみる。
0320
垢版 |
2017/07/07(金) 22:07:41.70ID:TSmGX11I
ダム端の画面エンジン面倒見たことあるわ。

文字入力監視のループと、GUIのイベントのdispatchループがどう違うかわからんな。
WinMainとGetMessageとか、XlibのXNextEventからGUIアプリ作ったこと無くて知らないだけじゃねえの?

副作用の出口ではないような。
WM_PAINTの処理中に描画以外やるべきで無いのと同じように、画面周りは出力に徹しないと話がまとまらん。

入力の処理なんか、フォーカス持ってるやつにメッセージ投げるだけだろ。
0321デフォルトの名無しさん
垢版 |
2017/07/09(日) 05:20:26.84ID:iVqKXTPM
昨今の話題にのせられてKotlinの入門編読んでみたけど、なんかイマイチだった・・・
関数の引数は型推論してくれんの?カリー化して部分適用とか力ずくでやらんといかんの?パイプライン演算子は・・・
今のところ不安しか感じてない、次世代言語の劣化版でバカチョン言語ってのがKotlinの実像かな?
0322デフォルトの名無しさん
垢版 |
2017/07/09(日) 07:39:05.73ID:nT4jFya6
>>321
関数引数の型推論もカリー化もパイプライン演算子も
全部持ってるHaskellがゴミクソだったから、
それらは言語の生産性にとって特に重要じゃないって事だよ
0323デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:40:04.24ID:15PsL+fn
括弧を省略しないカリー化はゴミクソだし
中置演算子を使わないのと括弧を省略しないのはLispとJavaの伝統じゃないか
0324デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:45:29.15ID:zwxu6ZoN
なんだかんだカリー化は微妙だと思うなあ
部分適用の文法はClojureとかMathematicaがいい感じ
パイプライン演算子はLL的に使うときは便利やね
0325デフォルトの名無しさん
垢版 |
2017/07/10(月) 01:34:13.11ID:VQ9sifwz
>>322
HaskellがクソなのはDynamicBindingが言語的に駄目扱いされてる点だぞ
あとstatic初期化にunsafePerformIOが必要な点もクソ
デフォルトで静的型なカリー化とかあったほうが明らかに使いやすいだろ知ったか野郎
0328デフォルトの名無しさん
垢版 |
2017/07/10(月) 17:50:59.58ID:LYSrTSKk
Rustが実用言語になったぞ
DockerをオラクルがRustで実装した
0330デフォルトの名無しさん
垢版 |
2017/07/10(月) 20:04:51.52ID:LYSrTSKk
実用言語になったらもう次世代言語じゃないからこのスレとはお別れだな
じゃあな
0332デフォルトの名無しさん
垢版 |
2017/07/10(月) 21:59:47.07ID:2kp3NGJ8
建物は完成した時点から崩壊が始まるのでわざと未完成の部分を残しておくとかいう話を思い出した。
0333デフォルトの名無しさん
垢版 |
2017/07/11(火) 11:36:48.66ID:5tKo2E+W
そもそもオラクルって時点でお察しだが、
業界ゴロのモジカスとOSSゴロのオラクルは相性が良かったんだろうな
0334デフォルトの名無しさん
垢版 |
2017/07/11(火) 15:49:53.62ID:Fwj1YTm5
>>332
誰がどう見ても未完成なら意見が対立しないからね
完成したら、一部の(自称)察しのいい奴が、まだ完成してないと主張し対立が始まる
0336デフォルトの名無しさん
垢版 |
2017/07/11(火) 18:53:45.21ID:dSS1j36W
[][Tebla][]

}

000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS

001-GYORLith"0\R"/"ESUBA"%$%

HADO-"EM","L","O","NU"###END
0339デフォルトの名無しさん
垢版 |
2017/07/13(木) 00:48:32.99ID:ZEMYQbKR
一生実用言語にならないような言語は次世代とは呼ばねえだろ池沼かガイジ豆腐で撲殺するぞ
0341デフォルトの名無しさん
垢版 |
2017/07/13(木) 01:37:14.59ID:GmrDZ9ks
オブジェクト指向というだけで最低限の実用性はあるから純粋な世界に引きこもる
関数型は引きこもるとやばいから外に出る
0343デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:22:43.74ID:ZgBNlC8f
Smalltalkの引きこもり方は物理的っていうかなんというか
imageの世界に引きこもってるせいで外の世界で新しいツールとか流行ってても使えないし
0344デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:29:54.34ID:uexVWLm1
>>340
20世紀生まれとかバカにしてるけどな
Traitsなんて言語機能は10年とちょっと前
21世紀になってからSmalltalkで考案されたのを
新しい言語がこぞってありがたがって使ってんだぞ

Scalaに至ってはただのMixinをかっこいいからってTraitって名前つけちゃったくらいなんだぞ
0345デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:40:18.24ID:m3hQX1bI
>>343
いつの時代のSmalltalkの知識で止まっているんだよ
Pharo作ってる and/or 使っている人たちの話でも聞いて錆び付いたイメージをアップデートしてみたら?
0346デフォルトの名無しさん
垢版 |
2017/07/13(木) 11:47:59.75ID:LjH88DBT
intはオブジェクトにしない方がいい
他にもプロセスidとかファイルディスクリプタとかURI
オブジェクトの本体ではないものが必要
副作用が必要なのと同じ
0347デフォルトの名無しさん
垢版 |
2017/07/13(木) 13:19:58.91ID:equsxY/V
>>344
バカにしてないけど、次世代言語スレとしては21世紀生まれの子たちに絞ってええやろ
起源がなんであれそれを子どもたちが引き継いでるわけなんやし
0351デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:05:49.91ID:0lD2vgRh
haskellというゴミが消えてくれるならなんでもいい
0352デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:14:48.65ID:/C8bZ6+r
そういえばOcamlになったのって案外新しく(1996)てびっくりした
もちろんCamlさらにMLからの流れだけど
0353デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:08:43.36ID:1nRnB/qa
昔2chのこの手のスレで、Smalltalkerがgitについて全くトンチンカンなコメントを連発してたので
Smalltalkは錆びついてなくてもSmalltalkerは錆びついてると思う
0355デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:53:58.91ID:0/kHeJlt
それ文脈ぜんぜん違う話だしねつ造やめれっていうか錆び付いているのはアンチの脳ミソと記憶力
百歩譲ってそういう話だったとしても最近出没してる「おいら」がHaskellの典型的ユーザーちゃうのと同レベルの話だがや
0356デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:21:10.35ID:LjH88DBT
オブジェクトっぽくないものの語尾にerをつけて無理やりオブジェクトにする現象
0357デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:57:33.19ID:10yx+996
>>354
なんかsmalltalkにある独自vcsもどきがsvn程度の機能しかないのか知らんが
発想が完全にsvnだったよな
0358デフォルトの名無しさん
垢版 |
2017/07/13(木) 21:26:25.99ID:uexVWLm1
>>357
そのvcsもどきっていうのは80年代から組み込みの古典的ChaneSetのことか?
Gitと同時期に開発されたMonticelloがsvn程度ってことはさすがにないと思うんだが
0361デフォルトの名無しさん
垢版 |
2017/07/14(金) 01:48:02.98ID:07oaelZE
>>344
有り難がるどころか、まともにtraitsなんて採用してるのphpとperlくらいだぞ
smalltalkerだけが凄いと思ってるどうでも良い機能だぞ
0362デフォルトの名無しさん
垢版 |
2017/07/14(金) 05:30:08.87ID:vxW3z/6K
>>360
へー、すごいねー。
普通の言語では、その言語で作ったアプリケーションの実行中にgitの複数のレポジトリから自己更新してきたり、実行時に構成を動的に変更したりが、とっくの昔からフツーにできているんだー?
さすが普通の言語ってすごいね。そこにシビレルね。
0363デフォルトの名無しさん
垢版 |
2017/07/14(金) 06:42:12.81ID:4JOJgkL6
そういうことをやりたいならJavaScriptに乗っかるのが普通だ
SmalltalkやJVMは普通になれなかった
0365デフォルトの名無しさん
垢版 |
2017/07/14(金) 07:44:52.22ID:Rnz3lE+5
>>361
perlのtraitはtraitじゃない
roleがそうだけど中途半端
実質phpだけじゃねーの?
rubyもmixとして実装試みたけど致命的欠陥があって諦めたし
0367デフォルトの名無しさん
垢版 |
2017/07/14(金) 08:27:52.66ID:Wh3H5+5v
Traitsを名乗るかどうかは別として
継承によらない(つまりフラット化による)合成が可能で
実装も持てるインターフェース様エンティティは
次世代以前に現世代の言語には欠かせないよね
0368デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:03:14.28ID:HDhZQX71
実装を持った複数のインターフェースが衝突したら
(可能なら静的に)検知してエラーになるのが良い
だからフラット化も正直どうでも良いんだよね
0369デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:30:19.13ID:Wh3H5+5v
継承パスなんかを持ち込んだ日にゃメソッド毎のオーバーライドの管理が面倒だろ?
それゆえにTraitsはフラット化がミソなわけよ
つーかフラット化どーでもいいとか言ってる前世代脳はミックスインで十分なんだからこっちくんな
未来永劫リニア化で疲弊してろ
0370デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:41:35.70ID:16rSDABT
>>369
衝突したらエラーって言ってるのが読めないのかね文盲は
ユニークなんだからフラットだろーがリニアだろーが関係ないのが理解できない?
0371デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:54:31.91ID:Wh3H5+5v
衝突→エラーは当たり前だボケ
その後の対処の話してんのわかんない前世代脳はあっちいってろよ
0373デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:19:56.39ID:Rnz3lE+5
そういうトンチンカンな攻撃しないようにアンチもちゃんと学ぶべきと思うが
そもそもアンチはSmalltalkの閉じた世界の利便性なんてクソの役にも立たんと決めつけているから
永久に話が噛み合うことはなさそうだな
0374デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:33:01.95ID:yYuDtDCJ
世の中の0.001%でしか使われてないマイナー言語側が外を学ぶべきなのは自明だと思うが
ていうか、学ばないから永遠にマイナー言語なんだよ
0375デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:46:19.81ID:P4+8bNWB
前このスレにSmalltalk のコード書き散らしてた奴いたけどあのコード汚かったなあ
Smalltalk が汚いのかあのSmalltalkerが汚かったのか知らんけど
0376デフォルトの名無しさん
垢版 |
2017/07/14(金) 11:04:48.92ID:Rnz3lE+5
世の中の0.001%でしか使われてないって情報自体が不勉強なアンチ発の情報なんで定かでないんだけど
少なくとも本人はそういう認識でいる言語に丁寧にアンチ対応するのはつくづくヒマな御仁だなとは思う
0377デフォルトの名無しさん
垢版 |
2017/07/14(金) 11:19:42.57ID:Rnz3lE+5
いずれにしてもtraitはともかくsmalltalkの話はどうでもいいよ
アンチ情報が古くて役に立たないししつこくてウザイだけだよ
0382デフォルトの名無しさん
垢版 |
2017/07/14(金) 14:20:15.48ID:ZjhjVc89
実行時にクラス定義の式に到達したときにエラーが出るのを「静的に検査してる」というのは頭悪過ぎない?
0388デフォルトの名無しさん
垢版 |
2017/07/14(金) 19:21:36.90ID:hAbkWWq2
え?
Smalltalkって動的にクラスを定義できない言語なの?
遅延結合の観点から言って出来損ないなんだね
0390デフォルトの名無しさん
垢版 |
2017/07/14(金) 22:36:05.81ID:4JOJgkL6
承認欲求だか何だか知らないが
文章を正確に書きたいという欲求とは違うんだろ
むしろ書くことに興味ないから代わりに全部書いてくれる良き理解者が必要になる
0393デフォルトの名無しさん
垢版 |
2017/07/15(土) 07:15:30.91ID:VZfdwjhs
根拠を書かずに勝利宣言か
いつもなら邪魔なくらいコード出してくるのにね
0394デフォルトの名無しさん
垢版 |
2017/07/15(土) 08:01:11.45ID:3lr1Ki6I
gitのときみたいに、深く突っ込まれるとボロが出るからSmalltalkerさんも速く話を畳みたいんだろ
もう逃げ出してんだから追い詰めんな
0395デフォルトの名無しさん
垢版 |
2017/07/15(土) 08:15:16.38ID:Ln37sbKY
根拠?>>383が解れば説明するまでもない話だよ
あと遅延結合が徹底されてて勘違いされがちなんで念のため言っとくと
Smalltalkは例えばJavaとかと同じ程度にはコンパイラ言語だよ
0397デフォルトの名無しさん
垢版 |
2017/07/15(土) 10:18:51.32ID:UJtjfBLC
PHPのtraitsは実行時検査しか出来ないんだから383は説明になってないわな
ていうか頑なに言葉を濁すのはなぜ?
0399デフォルトの名無しさん
垢版 |
2017/07/15(土) 10:59:23.57ID:Ura0OIUP
SmalltalkのTraitが実行前に衝突検知できるかどうかの議論で、PHPじゃできないじゃないかー!と駄々をこねるバカ(>>397)発見w
0400デフォルトの名無しさん
垢版 |
2017/07/15(土) 11:11:31.57ID:Xb/NLsOQ
>>383が解ってる人には>>382のどこがトンチンカンだか説明は不要だろってだけの話
「わかりません」って言ってくれればちゃんと説明するよ
0401デフォルトの名無しさん
垢版 |
2017/07/15(土) 11:27:36.40ID:qBi8wD3D
昔からWYSIWYGとかいう
ModelとViewの見分けがつかない謎のシステムがある
静的と動的の見分けがつかないシステムもそれに似ている
0404デフォルトの名無しさん
垢版 |
2017/07/15(土) 11:53:30.82ID:Xb/NLsOQ
>>403
ノーティファイアを見て明らかなように件の実行時エラーはself traitConflictが出している
じゃあこのスタブは誰が設置したか考えれば自ずとコンパイル時に既に衝突は検知できていることがわかるだろう?
0406デフォルトの名無しさん
垢版 |
2017/07/15(土) 13:27:15.35ID:Xb/NLsOQ
>>405
件のモック定義のタイミングにフックすれば出せるようにできるけどウザイだけだよ?(Pharo6で確認)

effectiveMethod
   "Return the effective compiled method of this method description."
   | method |
   method := self providedMethod.
   method isNil ifFalse: [^ method].
   method := self conflictMethod.
   method isNil ifFalse: [self error: 'Methods confliction: ', method selector. ^ method].
   ^ self requiredMethod.
0410デフォルトの名無しさん
垢版 |
2017/07/15(土) 16:53:57.90ID:Xb/NLsOQ
>>401
WYSIWYGがどうなのかは知らんけど
ViewとControllerの境界が不確かとかならともかくModelとViewの見分けが付かないのはもはやいろんな意味でMVCではないよ

Smalltalkにはランタイムしかないと考える人には今回の「コンパイル時に」を「静的に」と表現することには抵抗があるかもね
0411デフォルトの名無しさん
垢版 |
2017/07/15(土) 22:01:58.64ID:rZ7c1Y9a
MVCは死産だった
今ナウいカレントトレンドな最先端の設計は、クリーンアーキテクチャ
0415デフォルトの名無しさん
垢版 |
2017/07/15(土) 23:04:27.06ID:IM8lgtvN
PHPなのかー 精神分裂病の症状特有の「俺言葉」すぎてなんなのかわからんかったわ
0417デフォルトの名無しさん
垢版 |
2017/07/16(日) 11:06:27.56ID:nvinih80
>>414
たしか、ただでさえ汚いPerlに
大量の新仕様・新機能が追加されたんだろ

昔ならどうだったか知らんが
「この言語でしかできない」なんてことが少なくなった今、
わざわざPerl選ぶ奴はキチガイとしか思えん

PHPはCMSに強いから、まだわからんでもないところはある
ゴミ屑みたいな言語だから個人的には全く触りたくないが
0418デフォルトの名無しさん
垢版 |
2017/07/16(日) 11:58:27.53ID:kBPig9GC
回転寿司で隣の知らんおっさんが唐突に
「俺はイカが嫌いだ」って話しかけてきたような困惑
0419デフォルトの名無しさん
垢版 |
2017/07/16(日) 13:03:56.78ID:nvinih80
このネタどうなんすかねえ
と聞かれたから
昔はよかったけど腐りかけですよ
たまに当たりはあるけどいつも腐ってますよ
と言っただけなのだが
0420デフォルトの名無しさん
垢版 |
2017/07/16(日) 14:00:50.61ID:nsbHwSbS
ペェ〜ルとか言ってる人に聞いたのに、別っぽい変な人から返事が返って来て俺困惑
0421デフォルトの名無しさん
垢版 |
2017/07/16(日) 14:43:25.82ID:pSlhsdXG
python2と3でもこれだけ長引いたとこ見ると
(なんとか3にまとまりそうだけど)
これからPerl6が流行するとは思えない
0423デフォルトの名無しさん
垢版 |
2017/07/16(日) 19:00:43.00ID:TI5o59vg
perl6 って何のメリットもないよね。
0426デフォルトの名無しさん
垢版 |
2017/07/16(日) 21:05:09.00ID:TI5o59vg
何でわざわざ雑談場所を移す必要があるのか…
PV稼ぎも大変だなあ…
0430デフォルトの名無しさん
垢版 |
2017/07/16(日) 22:09:41.66ID:n2aqivct
Scalaさんはあくまで実験言語だと作者がずっと言ってるのに
勝手に祭り上げられて勝手に負けたことにされた不憫な言語
0431デフォルトの名無しさん
垢版 |
2017/07/16(日) 23:08:48.14ID:PjhGsme1
コミュ障ファンがマサカリ投げまくって
怖いコミュニティだとすっかり評価を落とした
0436デフォルトの名無しさん
垢版 |
2017/07/17(月) 07:18:06.21ID:aQ+HcXyV
Scalaは_が糞すぎる
有名な言語であそこまで一貫性のない場当たり的な仕様は稀なレベル
0437デフォルトの名無しさん
垢版 |
2017/07/17(月) 08:28:56.48ID:1AopeENj
初学者からすると
暗黙のパラメータを何の説明もなく型クラスだと言い切って混乱させたり
両者がイコールではないと疑問を呈すると攻撃してくるとか
すごく怖い人が牛耳ってるイメージ
0438デフォルトの名無しさん
垢版 |
2017/07/17(月) 09:13:20.32ID:O1Bxse4b
だがコミュ力を重視するのは的外れだ
コミュ障でも嘘をつかないやつは怖くないから
嘘つき大会で優勝しそうなやつの方が怖い
0442デフォルトの名無しさん
垢版 |
2017/07/17(月) 12:59:41.12ID:3rVoB3WX
rubyは静的言語だったら使ってた
0447デフォルトの名無しさん
垢版 |
2017/07/17(月) 15:01:17.40ID:zWvYcWKi
それはそれで「Goはシンプルなのがよかったのにもう魅力がない」とか言い出す人が出て来そう
0448デフォルトの名無しさん
垢版 |
2017/07/17(月) 15:05:47.41ID:93gFCitm
Goはシンプルすぎてお話にならない
そんなにシンプルなのがいいならBrainfuckでも使ってろ
0450デフォルトの名無しさん
垢版 |
2017/07/17(月) 15:41:47.25ID:CuRtYSJT
いいかげん言語毎にパッケージマネージャやビルドツール作るのやめてほしい
Makefileをもうちょっと書きやすくしてGitに対応させれば済む話なのにいつまで同じものを猿のように再発明し続けるのか
0451デフォルトの名無しさん
垢版 |
2017/07/17(月) 16:25:32.71ID:CTXJl5P0
さすがにMakefileをC/C++以外で使わされるのは勘弁して
Gitはその通りだと思うけど
0453デフォルトの名無しさん
垢版 |
2017/07/17(月) 19:59:44.28ID:Ez9tK1Zp
上手いこと抽象化できれば基礎ツール+プラグインでいけそう
Haskellerって抽象化得意だろ?何か作ってくれよ
0454デフォルトの名無しさん
垢版 |
2017/07/17(月) 22:06:17.52ID:Fkkap2CA
一周回って、ビルドツールなしの人力ビルド・ライブラリ管理のJavaプロジェクト知ってるわ
0455デフォルトの名無しさん
垢版 |
2017/07/17(月) 22:12:00.96ID:Uk+UjtGm
次世代Makefile!おもしろいね。
git対応は具体的にどんな機能があれば良いのかな。
依存の見方は、例えば空行入れただけみたいなプログラムの意味を変えない変更では無駄だからリビルドしないでほしいとか?
「もうちょっと書きやすく」って?
0456デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:03:29.82ID:ThA9UD7O
・依存先の指定としてGitのリモートリポジトリの特定コミットの特定ファイルを指定できる
・ビルド済みのリソースが信頼できるリポジトリに既にあれば透過的にそれを利用する
Git連携はこんなとこじゃね
パッケージ化の単位とか考えるべきことは多いけど、うまいこと設計すれば綺麗に作れそうな気がする
ハスケラくんの出番だな
0457デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:25:38.52ID:Ne9t2Rx8
>>450
Makefileを手書きしやすくする意味がわからない
手書きでできる規模ならただのシェルスクリプトでいいと思う
0458デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:39:10.02ID:ThA9UD7O
>>457
だから開発規模が容易にスケールできるように改良すればいいということでしょ
依存関係を自動的に発見するプラガブルな仕組みとかね
0459デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:58:04.28ID:Ne9t2Rx8
スケールって大規模に使う仕組みを小規模にも強制するんだろ
例えばmain関数だけでいい場合でも絶対class作る言語
0460デフォルトの名無しさん
垢版 |
2017/07/18(火) 02:22:19.92ID:qdjxHBs9
tupというものがあるよ。作者はtupとgit submoduleを駆使して自作のLinuxディストリビューションを簡単にビルドできるところまでやってる
ninjaと違ってワイルドカードを使えるのに速い
0462デフォルトの名無しさん
垢版 |
2017/07/18(火) 19:19:47.83ID:Ni5Fs6Uh
>>450
Windowsとかツールが標準でない環境もあるからだろ
せめてaptみたいな依存関係書いとけば環境整えてくれるパッケージマネージャがOS標準であればな
mavenは割といいと思うが人気ないのかな
やはり手軽にスクリプトを書けるのがいいのか
0464デフォルトの名無しさん
垢版 |
2017/07/19(水) 00:04:39.12ID:9uIEKdpP
pom地獄 ((((;゚Д゚))))ガクガクブルブル
0468デフォルトの名無しさん
垢版 |
2017/07/19(水) 17:38:31.62ID:0YqXH007
型情報と機械語のせいでファイルとコマンドが異常に多くなるという問題は一つ
答えはいっぱいある
0471デフォルトの名無しさん
垢版 |
2017/07/19(水) 23:45:07.13ID:747RlNYZ
JavaScriptはTypeScriptを標準化しろ
PHP Perl Rubyは役目を終えたから、今すぐ廃止しろ
使ってる奴ら・会社・サービスは、全て糞言語幇助の罪で死刑
よいな
0475デフォルトの名無しさん
垢版 |
2017/07/20(木) 17:15:19.69ID:VOKR1Uy4
>>474
nim とかいかが?
0476デフォルトの名無しさん
垢版 |
2017/07/20(木) 17:38:00.25ID:VRNHiKio
Perl6なー、せめてPerl5からの緩やかな移行をさせてくれれば採用してもいいんだけどなー
ちょっとモチベーションに欠ける
0477デフォルトの名無しさん
垢版 |
2017/07/20(木) 22:22:12.00ID:0b9xdtC8
>>474
python3の型ヒントはけっこう使えると思うがな。
パッケージのサポートがまだまだなのが残念だが。
0479デフォルトの名無しさん
垢版 |
2017/07/20(木) 22:27:02.38ID:mEIqzc+z
perl使う理由って何かある?

小さいWebアプリならPHP, Rubyで十分
中規模以上ならJVM系
機械学習ならPythonワン択
デスクトップアプリならElectron, C#, Java

Perlってマジで何のために必要なん?
ガイジ?
0480デフォルトの名無しさん
垢版 |
2017/07/20(木) 22:45:38.08ID:Of2zeoLq
>>479
better shellscript
だいたいどのUNIXサーバーにも入ってて、bashなんかに比べたら普通のプログラミング言語っぽくてわかりやすい
AIXなんかにも入ってたりするから、慣れない環境を触ることになって途方に暮れてるときにPerlが入ってると
言葉の通じない異国で旧友に出会ったような気持ちになる
入ってる力が全て
0481デフォルトの名無しさん
垢版 |
2017/07/20(木) 22:47:47.78ID:a17NgPNI
これまでLinuxサーバー見て来てPython2が入ってなかったことはないなあ
逆にPython入ってないってどんなのがあるのか気になる
0482デフォルトの名無しさん
垢版 |
2017/07/20(木) 22:58:24.48ID:e5pRUkIa
perlは作者のコミュ力がすごすぎた
設計の能力じゃなくて変な設計を人に説明できる能力が異常
0483デフォルトの名無しさん
垢版 |
2017/07/20(木) 23:02:50.14ID:0b9xdtC8
今でこそPyPIやnpmなど当たり前になってしまったが、昔はCPANがあるperlが何をするにも便利だった。
0486デフォルトの名無しさん
垢版 |
2017/07/20(木) 23:13:27.39ID:7e4zgXSV
>>481
さっさとpython3標準にしてくれよ
0488デフォルトの名無しさん
垢版 |
2017/07/20(木) 23:20:53.29ID:a17NgPNI
いやーgrep awk sedは今でも便利よ
やっぱりコマンドライン直打ちで効果を発揮するのは大きい
0489デフォルトの名無しさん
垢版 |
2017/07/20(木) 23:23:30.28ID:mEIqzc+z
頭がパーのパーカスパールお爺さん

俺が引導渡してやるから、俺の前に並べや!
0490デフォルトの名無しさん
垢版 |
2017/07/20(木) 23:25:18.58ID:a17NgPNI
>>486
これはわかる
でも贅沢言うと、Python2じゃないと動かないライブラリもあるからPythonコマンドに両搭載して欲しいわ
0494デフォルトの名無しさん
垢版 |
2017/07/23(日) 14:19:04.92ID:jZILUwsZ
2017年、人気のプログラミング言語トップはPython。C、Javaが続く。
検索、Google Trends、Twitter、GitHub、Stack Overflowなどの人気を総合
2017年7月23日

2017年現在、もっとも人気のあるプログラミング言語は「Python」。2位は「C」、3位は「Java」だと、電気通信分野の標準化団体であるIEEE(アイトリプルイー)が発行するオンラインマガジン「IEEE Spectrum」が、記事「The 2017 Top Programming Languages」で発表しました。

1位となったPythonは昨年3位だったのが2つランクをあげて1位に飛び込みました。

ただし、2位のCとの差は0.3ポイント、3位のJavaとの差も0.5ポイントと、1位、2位、3位の差はほんのわずかなものでした。
ちなみに4位のC++は約3ポイント離れた97.1ポイント、5位のC#は10ポイント以上離れた87.7ポイントですので、いかに上位3位の人気が堅いものかが分ります。

http://www.publickey1.jp/blog/17/2017pythoncjavagoogle_trendstwittergithubstackoverflow.html

http://www.publickey1.jp/2017/ieeesp01.gif
0495デフォルトの名無しさん
垢版 |
2017/07/23(日) 15:30:28.83ID:MmRfy8oq
ランキング圏外のsmalltalkはどんだけゴミなんだ
prologすら入ってるというのに
0496デフォルトの名無しさん
垢版 |
2017/07/23(日) 17:24:27.75ID:YFCxcaSM
ガイジ低脳エスアイアイのお猿さん言語PHPがランクインしてる時点で
大したランキングじゃないよ
0497デフォルトの名無しさん
垢版 |
2017/07/23(日) 18:07:27.23ID:cW8Cn5ON
うわー荒らしの妄言のせいでちょっとSmalltlkに期待してしまった可哀想な子かま一人
0499デフォルトの名無しさん
垢版 |
2017/07/23(日) 21:16:08.30ID:4pTb5xvQ
「原始的なメモリ管理機能しか備えておらず、それが脆弱性や不具合を生む(中略)
Rust言語を勧めており、特にパーサーや入力ハンドラなどの部分から、徐々に
CのコードをRustに入れ替えていくべきであると主張」

C言語は滅びるべきか | スラド デベロッパー
https://developers.srad.jp/story/17/07/19/0754205/
2017年07月20日 7時00分
0500デフォルトの名無しさん
垢版 |
2017/07/23(日) 21:40:30.93ID:qzsJDNze
2位3位がCとJavaって時点で言語の先進性がランキングに影響してるわけでも無いしね。
(多少は影響するにしても)

あくまで実用言語の世界。
0501デフォルトの名無しさん
垢版 |
2017/07/23(日) 22:47:29.42ID:qzsJDNze
>>499
今アセンブラと言うか、その延長で機械語のどのビットがアセンブラのどの命令によって変化するみたいなの読んだんだが、思ったより機械語理解出来そう。
素直に書いた方がアセンブラだと短いけど、機械語だと長くなるとか、CPUの特性に合わせるにはアセンブラの字面だけ理解してもダメなんだな。

その過程でどうもCはわりと素直にアセンブラにし易い構文だったみたいね。
そう言えばCのコードからアセンブラコード想像し易いけど、C++や他の言語じゃ想像出来ないとか話も聞く。

んでここからが本題なんだが、機械語かアセンブラの構文に意味や所用バイト数、所用クロック数の情報付加したリストから効率良い機械語の組合せ見つけて吐き出すってのはどの言語でも不可能じゃ無い気がしてる。
ただそれには相当深い知識が必要ってだけで。
基本は機械語になる様なバイト列をファイルに書き込めば良いんだから、機械語とプログラムとして動作させるファイルフォーマット形式覚えて、その通りにバイナリファイル書き出せば良い。
0502デフォルトの名無しさん
垢版 |
2017/07/24(月) 00:43:35.12ID:/k6j1DH/
高級言語ってのはもともとFORTRAN教えてたダートマスの研究者が
初心者が必ず引っかかる「型」の概念をできるだけ無くそうとして作った
BASICのように"ビット的なことは知らなくていい"流れが一つあって
Cはそれとは別にむしろ"ビット操作ができる高級言語をくれ"というニーズで
作られてシステム寄りで普及した言語だから
「Cに替わる〜」もなんも、その界隈ではハードに密着した書き方が求められてて
そこへ遠い上の方から「ハード密着してると危ない!」とか言われても
なんだその「消防士は危ないから遠隔ロボットに置き換えるべき!」的な夢想論は?という感じでですね…
0504デフォルトの名無しさん
垢版 |
2017/07/24(月) 05:05:21.76ID:T9l43aKR
>>495
「すら」とは何だ
0506デフォルトの名無しさん
垢版 |
2017/07/24(月) 17:51:02.45ID:Q2tRT20x
>>502
だから「C?あんなのは高級アセンブラだ!」となる
大部分の人がC/C++初心者のころつまずいたはずの
「ポインタわけわかんねー」ってのは仕様w
ところでC++というのは何のことでしたっけ?ww
0508デフォルトの名無しさん
垢版 |
2017/07/24(月) 22:01:44.72ID:mIkz9O7d
型を理解できない底辺ジャップランド土方どもは
屁臭いペチプァ〜でウンコードモリモリ大将軍してればいいよ
0510デフォルトの名無しさん
垢版 |
2017/07/24(月) 22:19:50.90ID:AAnKdxV0
Objective-Cとかクラス取り回しランタイムのオーバーヘッドで嫌われたのは
わからんでもないけれど、あれそれこそクラスがLAN上の別のマシンで動いてるぐらいの
分散処理を志向してるから、もっと思想が見直されてもいいような気がするが
なぜか、ネット時代になってもディスクリートなプログラムを一つのマシンで動かすぜ!用が
いつまでも手を替え品を替えというのは、教授これはいったい?

C++じゃなくてObjective-Cが流行ればいまのオブジェクト指向絡みの勘違いは
8割方解消されていたろうになぁ
0511デフォルトの名無しさん
垢版 |
2017/07/24(月) 22:25:12.16ID:Q2tRT20x
優秀な米留学組は型推論使ってできるだけ隠蔽して
生産性・保守(人材確保)性あげることを考えるはずだけど

一方2chでだべるだけのもいるよねw
0514デフォルトの名無しさん
垢版 |
2017/07/24(月) 23:19:09.18ID:mIkz9O7d
必要なモノまで隠蔽した結果メクラガイジになったペチプァ〜〜〜〜さん達の悪口はやめたまえ
0515デフォルトの名無しさん
垢版 |
2017/07/24(月) 23:22:26.66ID:rj0vQMEu
>>510
分散オブジェクト指向はJavaも.NETもWindows(COM)もとっくに通った道だろ
デプロイの単位とモジュールの単位とが一致しない技術を人間はうまく扱えないんだよ
0516デフォルトの名無しさん
垢版 |
2017/07/25(火) 00:06:02.77ID:Wg5FapHh
ネットに送信するメッセージは文字列と決まっている
だがOOPは抽象的過ぎたのでメッセージとは何かを決めることができなかった
0518
垢版 |
2017/07/25(火) 01:55:35.53ID:lgBfQhyF
php書くとき、型は気にするのでは?
eqeqeq使えないじゃん
0519デフォルトの名無しさん
垢版 |
2017/07/25(火) 06:59:52.83ID:6voESBgd
>>518
静型言語よりもっと型気にせにゃいかんのに
チーム開発で使うと、知らない初心者、気にしないバカ、ケアレスミスが組み合わさって
ほぼ確実にモンスターと化す
0520
垢版 |
2017/07/25(火) 08:31:31.28ID:Yx6+jkpX
>>519
あー、その地雷は理解できるわ。
型がないからうんぬんペチプァーと言ってるようなやつは前者の2つどっちかって印象。

あの道具に徹する姿勢好きなんだけどね。
気をつけて使うとそこそこまともだし。
敢えてfalsyなものを扱う勇気も要るけど。
気をつけたくないやつには向いてない言語。

言語仕様が破綻してるってのもまぁ、php3の時点であれだったのに、その後また使える文字減ったし、諦めるしかない。
0522
垢版 |
2017/07/25(火) 10:08:41.40ID:Yx6+jkpX
>>521
評価した結果falseとみなされる値。
0523デフォルトの名無しさん
垢版 |
2017/07/27(木) 00:19:42.46ID:2FlrvgGr
使い捨てのモックとしてならまだしも
そこそこの規模の開発で使って苦しんでる連中は
ただのバカとしか思えんわ
0524
垢版 |
2017/07/27(木) 11:12:41.51ID:A4iX0nN0
>>523
既存コード捨てられない病の人居るからねぇ。
あとはフレームワークしか使えない病の人とか。
0526デフォルトの名無しさん
垢版 |
2017/07/27(木) 15:33:01.66ID:dBtvUIpG
forthは?
0529デフォルトの名無しさん
垢版 |
2017/07/27(木) 19:42:40.59ID:rQ7K04i3
mlが黄泉から還って左目を洗ったときにsmlが産まれ、右目を洗ったときにOCamlが産まれ、
鼻を洗ったときに産まれたのがF#であるらしい
0530デフォルトの名無しさん
垢版 |
2017/07/30(日) 23:52:50.44ID:W7NHR4pI
elmの話題が無いみたいだけど触ってる人いないの?
elmの影響を受けたというreduxをtyprscriptから使ってるけど、
reducerを書くのにimmutable.jsを導入してみたらtypescriptと相性があまり良くなくて悲しい。

どうせならelm触ったほうが幸せになれんのかしら。
0531デフォルトの名無しさん
垢版 |
2017/07/31(月) 02:15:29.10ID:iyeoTq8u
低レベル記述は出来なくてもいいから、短く書けて速いバイナリを吐く言語ってなんだろ?
0533デフォルトの名無しさん
垢版 |
2017/07/31(月) 09:34:17.04ID:rPsLgQ6H
あまりにもマイナーな言語だと誰も行列計算を実装してくれてなくて面倒臭い
0538デフォルトの名無しさん
垢版 |
2017/07/31(月) 15:12:57.67ID:wxFD97LM
本当内包表記もmapもないのは謎だわ
おまけに三項演算子もif式もmatch文もないし
うんこ
0539デフォルトの名無しさん
垢版 |
2017/07/31(月) 15:13:14.76ID:wxFD97LM
match文じゃないmatch式
0541デフォルトの名無しさん
垢版 |
2017/07/31(月) 15:45:00.94ID:u2+qVqAB
オブジェクト指向言語で作るときよくOMT(オブジェクトモデリングテクニックとかなんとか)をよく使って設計してたんだけど、
関数型言語で作るときは何使えばいいの?
0542デフォルトの名無しさん
垢版 |
2017/07/31(月) 16:27:21.72ID:uq0CdBZz
今思いついたんだが
数学は公理を使えばいいというより、公理以外の何も使わない方がいいな
特に言語に依存するテクニックを使ってはいけない
言語を変えた途端に使えなくなるので
0543デフォルトの名無しさん
垢版 |
2017/07/31(月) 16:28:38.94ID:A1TauzTI
三項演算子は構文がまるで違うからね
式中にもif書けるようにするからそれ使えの方向
(逆にif廃止全部三項演算子使えな言語があったらおもしろいけどw)
0544デフォルトの名無しさん
垢版 |
2017/07/31(月) 19:35:10.71ID:xqAPypbO
>>541
関数型の重要な設計指針として、トップダウンで考えるというのがある
1. 問題全体の結果を求める関数のスタブを作る
2. スタブを一つ選ぶ
3. 2で選んだ関数を実装するために必要なものを考え、それぞれを求める関数のスタブを作る
4. 2へ戻る
これを、すべての関数が十分(容易に実装できるレベル)に細分化されるまで繰り返す
こうやっていくと非常に明快で平易なコードになる
逆に入力から出力を導くという考え方で作ろうとすると、俺スゲェに陥って意味不明なコードになりやすい
0546デフォルトの名無しさん
垢版 |
2017/07/31(月) 20:05:13.60ID:ZV6hqn66
「おまえはこういうコマンドを与えるとこれをやるクラス」って
トップダウンで構造決めてくオブジェクト指向の基本手法の
単語入れ替えたコピペかと思ったw
そしてそれならコマンドに対するふるまい変えられるオブジェクト指向の方がいいや
0547デフォルトの名無しさん
垢版 |
2017/07/31(月) 20:42:45.33ID:uq0CdBZz
トップダウンの細分化をどこで止めるかを考えないと意味がない
CPUの種類までトップが決めるのか?
CPUを変えたり仮想関数のふるまいを変えたいならトップダウンを止める必要がある
0548デフォルトの名無しさん
垢版 |
2017/07/31(月) 21:03:46.00ID:iyeoTq8u
>>537
この需要ならrustがベストかいなー
何をするにも面倒な言語というイメージがあって避けて来たけどやってみるか
ありがと
0549デフォルトの名無しさん
垢版 |
2017/07/31(月) 21:35:05.34ID:VY/jm5nF
もし関数型で大規模な業務アプリを作るなら、大まかなところは伝統的なIPOベースのDFDで描いて
各プロセスを>>544のようなスタイルで実装していくことになるんじゃないかな
データ指向の設計ってCOBOL時代に既に完成してて、あとは莫大なコピペコードの問題を関数型の高度な宣言的記述によって回避できるなら
設計手法としてはわざわざ意識高そうな複雑な手法を持ち出すまでもなく十分に完成と言えると思う
0553デフォルトの名無しさん
垢版 |
2017/08/01(火) 12:52:24.85ID:PIQ133u2
関数型が注目されてるのってマルチコア時代の並列処理を効率良く動かすための
手法として注目されてるわけで
更に次の世代というと、量子コンピュータってことになるけど
今の実用化している量子コンピュータは機械学習に最適化されてるんで
つまり機械学習専用言語ってことになるのかな
0555デフォルトの名無しさん
垢版 |
2017/08/01(火) 15:56:17.80ID:HS7kzK9m
機械学習のハードが実現してなくても、ソフトで実現すれば数世代先取りできるだろ
現にソフトで機械学習やってるし
ソフトでやるのに飽きた頃にハードが出てくる
0561デフォルトの名無しさん
垢版 |
2017/08/03(木) 19:54:19.27ID:eWbe8h/f
>>559
Googleは君の興味関心を学習して君の見たい世界を見せているということを念頭に置いておいたほうがいいよ
0562デフォルトの名無しさん
垢版 |
2017/08/03(木) 20:14:27.98ID:JgW7vvvx
>>560
東大辺りの奴らで、機械学習をわざわざOCamlで書いてる輩が増えているらしい 。ライブラリも整備されてきたってよ
>>561
知ってる。ちなみにOCamlの情報はGoogleじゃなくてリアルの交友経由の情報
0564デフォルトの名無しさん
垢版 |
2017/08/03(木) 21:24:53.35ID:JgW7vvvx
まああくまで微妙にアツイだからな
ScalaとかHaskellもあったかな?
他はもうC++FortranPythonMatlabMathematicaしか知らんなあ
ケムインフォマティックスなんかはHaskell Scalaはやってる人いるけど Ocamlは聞かないし、やっぱりHaskell Scalaのが上かな?
0565デフォルトの名無しさん
垢版 |
2017/08/03(木) 21:35:28.91ID:VGeKeN5L
haskell とか scala とかってもはや学習した時間を無駄だと思いたくない人たちが
無理やり盛り上げてるようにしか思えないんだが。
0566デフォルトの名無しさん
垢版 |
2017/08/03(木) 21:36:52.08ID:8l5FpDvx
OCamlはマルチコア対応になったらまた始めたい
Jocamlとか折角面白いのにシングルコアなんで魅力半減
0568デフォルトの名無しさん
垢版 |
2017/08/03(木) 22:18:12.98ID:nBK54dRQ
HaskellもScalaも関数型言語の考え方だけ学んだら用済みで、
取り入れるだけ取り入れたJava8や、Kotlinが正義
このスレでは叩かれたが、今となっては俺の言った通りになったじゃないか
0569デフォルトの名無しさん
垢版 |
2017/08/03(木) 22:21:48.14ID:WxFDmNeE
正直kotlinが優勢だよね。感覚的には
golangは早めに安定したから今はやってるけど、
また状況は変わりそう。
rustはメモリオーナーシップモデルをswiftにパクられたらいらない子になりそう。
0570デフォルトの名無しさん
垢版 |
2017/08/03(木) 22:25:27.52ID:N0DDjuI1
>>565
たし蟹
Scalaはそこそこ良い言語だったけど
尖りすぎてKotlinにあっさり置いて枯れてしまった
0571デフォルトの名無しさん
垢版 |
2017/08/03(木) 22:39:07.10ID:563u4f2I
kotlinはscalaの知識使えるし別に
webならplayあるscalaの方が有利だし使い分けじゃね
0572デフォルトの名無しさん
垢版 |
2017/08/03(木) 23:08:37.77ID:nBK54dRQ
>>571
Playは絶賛失速中だろう
コミュニティは機能してないし勉強会もイベントもなく、QiitaやTwitterにももう何もない
Scalaで使ってた人はRailsやDjangoを使い始め、Javaやってる人はSpringに戻っていった
0575デフォルトの名無しさん
垢版 |
2017/08/04(金) 00:11:57.82ID:O3MamTZa
>>572
今さらRailsとかどんだけセンスないのおまえ(暗黒藁半紙)

型無し能無しセンスなしの糞ゴミ言語は全員死ね
マツボックリだかなんだか知らんヒゲ爺は
さっさとこのゴミ言語を潰せボケ
0580560
垢版 |
2017/08/04(金) 14:49:35.41ID:eMF9uhYU
>>562
レスと御教示ありがとう
機械学習のコードをOCamlでですか
0581デフォルトの名無しさん
垢版 |
2017/08/04(金) 23:25:50.79ID:vuZIQLpQ
むやみやたらと大量のソースコードを量産して、ディスクの肥やしにする最近の風潮になじめない。

元凶はJavaあたりか。

価値のあるコードってのは、定義が難しそうだけど、

たとえば実行可能コードとそのソースコードのボリューム比較を考えてみると、
ソースが理不尽にふくらんでいる気がする。

hello,worldに数十行ってのは本末転倒。

なんでもかんでもオブジェクト指向しなくても、昔も別に困ったわけじゃないんだから、OOが必然ではないはず。

どんどん全体を見渡せる、いわゆる、神の目を持つものが少なくなっている。

まあ、仕事を増やすって意味で業界に貢献してるんだろうけど、ばかばかしいほどにまで非効率になっている
気がするね。
0583デフォルトの名無しさん
垢版 |
2017/08/05(土) 00:35:23.13ID:yfDugfcM
どこの世界の話だ
ここ最近の風潮では、短いコードが正義だと関数型を採用しひたすら抽象化に邁進する流れじゃないのか
0585デフォルトの名無しさん
垢版 |
2017/08/05(土) 02:27:20.31ID:r+UIi6ic
少なくとも日本ではなさそうだな

ジャップランド土人は屁臭いペチプゥで
型無し能無しセンス無しの糞コードウンコモリモリ大将軍してる
基地害低脳ゴミカスしかおらんからな
0587デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:37:44.56ID:ioSmFHmD
Ceylon は消えるだろうな。キラーアプリが出てくれば別だけど。
(Ruby がRailsで一発当てたみたいに、すごいソフトが出てくればの話だけど)
0588デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:38:46.91ID:ioSmFHmD
最近のKotolin 推しって何なの?
一時期Scala を押していた人たちがKotolin に移っているのかな?
0589デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:56:21.44ID:r+UIi6ic
Androidもしらないサーバーサイドお爺ちゃん
組み込み曾お爺ちゃんの後を継ぐのは君だ
0590デフォルトの名無しさん
垢版 |
2017/08/05(土) 13:04:32.77ID:wQFjSmwa
きっかけはAndroidの件だけど、Kotlinを話題にしてるのはサーバーサイドの連中が中心だろう
Android開発なんて金にならない三流分野で、プログラミングのメインストリームを変えるような影響力なんて無いよ
0591デフォルトの名無しさん
垢版 |
2017/08/05(土) 13:16:01.72ID:POjfJmBG
今はなんとなくSwiftやTypeScriptのような言語が流行っている雰囲気があるから。
Java/Android界隈の人も var 変数 : 型 って書きたいんだろう。
0592デフォルトの名無しさん
垢版 |
2017/08/05(土) 15:02:06.08ID:j/cNGuAY
>>590
プログラミングのメインストリーム変えるような連中は、Android開発だろうとサーバサイドだろうとなんでもできるフルスタックが多いんじゃない?
0593デフォルトの名無しさん
垢版 |
2017/08/05(土) 15:05:18.69ID:RDrQu3eT
var 変数 で型推論してくれるのが前提の書き方のはずで
関数型言語だと「型注釈は(コンパイラが失敗するまで)書くな」だけど
: 型 つけないとコンパイラに怒られまくるなら最初から書いとくのも仕方ないね
0594デフォルトの名無しさん
垢版 |
2017/08/05(土) 15:37:15.82ID:wQFjSmwa
>>592
フルスタックな人ならクライアントに置くコードは最小限にするはずだから、
Androidアプリを何で書くかなんて深く議論するに値しない些細な問題だよ
0595デフォルトの名無しさん
垢版 |
2017/08/05(土) 15:51:07.66ID:5/nXCXeI
>>593
>関数型言語だと「型注釈は(コンパイラが失敗するまで)書くな」だけど
誰がそんなデマを言いふらしてるんだ?
0599デフォルトの名無しさん
垢版 |
2017/08/05(土) 19:21:58.27ID:j/cNGuAY
まぁ書かないのが良いとはされてるが、プロダクションコードはコード規約とかで、全てに型注釈入れろとしてるとこが多いね
0606デフォルトの名無しさん
垢版 |
2017/08/06(日) 03:34:23.31ID:0wpHTVIH
OCamlとか死んだ老害言語の話はしてないから
耄碌お爺ちゃんはあっち行ってて
0609デフォルトの名無しさん
垢版 |
2017/08/06(日) 04:54:54.04ID:X6yw5Nga
もしかして式一つずつに型注釈入れるとでも思ってるのかね
そんなのJavaですらやらんよ?

HaskellやScalaは少なくとも各モジュールのトップレベルの関数には型注釈つけるし、つけないと効率悪くなる
コンパイル遅くなりやすいし、推論に頼りすぎるとエラー時に問題箇所が曖昧になるから
0610デフォルトの名無しさん
垢版 |
2017/08/06(日) 07:49:45.80ID:K4D4wFtM
書いても書かなくてもよいというのが客観的事実だから
理系なら話はそれで終わり
それ以上踏み込むのは文系の仕事
0614デフォルトの名無しさん
垢版 |
2017/08/06(日) 11:40:40.31ID:+mclrVGG
>>613
よく知らないけど金融で使ってる人がいるらしいのと、最近機械学習で使ってる輩がいるらしい
0618デフォルトの名無しさん
垢版 |
2017/08/06(日) 14:51:53.14ID:9I48IW8u
ocaml, haskell の比較

ttp://d.hatena.ne.jp/camlspotter/20101212/1292165692

まあ極論抜きにして普通に考えればこういうことだろうなという印象。
0619デフォルトの名無しさん
垢版 |
2017/08/06(日) 15:00:38.52ID:X6yw5Nga
>>618
この人は良く分かってるなあ
純粋言いながらunsafePerformIO使うって件はまさにその通り
結局このIO書くときの面倒さがあるから、ScalaやOCamlのが使いやすい印象になってしまう
0620デフォルトの名無しさん
垢版 |
2017/08/06(日) 16:21:58.97ID:HqZ4NE4V
割り切れば楽なのにと思ったりもするw

純粋とは副作用有りと無しを分けて書くことで
try-catchで正常処理とエラー処理を分けて書くようなものだ
0621デフォルトの名無しさん
垢版 |
2017/08/07(月) 11:39:10.26ID:tDzZ+7xU
>>620
ちょっと脇道にそれるけど
try-catchって言うほど正常処理とエラー処理をきれいに分けられる?
goのようにその構文を捨ててる言語があるとこも考えると
いうほど価値あるのかなって思う。

あと関数型だとEither型とかもあるよね。
0622デフォルトの名無しさん
垢版 |
2017/08/07(月) 12:10:20.41ID:r7C/NYo5
>>621
返り値が一つしかない言語では有能機能だった。多値返却が当たり前になりつつある今はもう……
0623デフォルトの名無しさん
垢版 |
2017/08/07(月) 12:28:03.34ID:tDzZ+7xU
>>622
まぁ。それでもリストなりタプルで返せば一緒だけどね。
前の会社の上司がphpの関数の返却値を必ず配列で返してたの思い出した。
言語としての基本方針がそうなっているかどうかだよなー。
結局誰かがそういう実装にしてもメンテする過程で混在しちゃったら地獄と化す
0624デフォルトの名無しさん
垢版 |
2017/08/07(月) 12:37:33.59ID:tDzZ+7xU
elixirの言語仕様の中に、結構何これかっこいいって仕様がたくさんあった気がする。

例えばパイプ演算子とか、
バイト配列に対するパターンマッチとか。
0625デフォルトの名無しさん
垢版 |
2017/08/07(月) 14:18:21.77ID:JP8gCgB5
OCamlでは常備薬だったよ>パイプ演算子
haskellの$や.より読みやすくて好きなんだけど、関数型も取り入れててオブジェクト指向もサポートしている言語だと、
メソッドチェーンでええやん勢がいるのが難点
自由度はパイプの方が高い気がするんだがな
0629デフォルトの名無しさん
垢版 |
2017/08/07(月) 20:45:36.62ID:n9zFQLuH
>>628
すべての言語はすべからくパクりパクられの関係であるといえる。
一番言語を上手く作れている会社だと思うけど >MS
と言うか開発環境セットでいい感じ。
vscodeの完成度は高い。TypeScript大好き。
ただTypeScriptはあくまでESの型拡張に限定してるからES側に機能追加がないと
言語として成長できないという問題はある。

ドッチかというとFacebookが言語開発イマイチ感
Hackとかflowとか
0630デフォルトの名無しさん
垢版 |
2017/08/07(月) 20:52:47.52ID:E9IdpB60
>>629
BASICっぽくないのにVisualBASICとか名前をパクってるってこと
他の言語は移行者を配慮してだが、MSは騙す努力ばかりに見える
開発環境とセットというのがまたダメだ
プログラマによる変革が生まれにくい
単なる作業者ならいいが
0631デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:02:50.52ID:n9zFQLuH
>>630
俺もちょい前まではMS気に食わなかったし
vscodeが最初登場したときは、なにこれatomパクって車輪の再発明?
みたいな感じだったが使ってみてハマった。
別に開発環境で囲い込もうってわけでもないと思う。

一緒にlangage server protoolというのも定義して公開した。
IDEと言語サーバ間のプロトコルを共通化し対応するEditorならなんでも使えるようにする。

gccがサポートしてるってニュース見たよこないだ。
ということで最近のMSはオープンソースとの関係がよい。気がする。
0632デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:36:59.12ID:NP3377Zu
>>629
FBだけじゃなくてGoogleもイマイチ
DartやGo
0635デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:03:25.57ID:JP8gCgB5
Electronベースのエディタとしては後発なのに他を追い抜いたのが凄いわ>vscode
vscodeはatomやbracketと同じElectronベースなのにどうしてあんなに軽いのかね
0636デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:19:19.22ID:NP3377Zu
>>635
MSは長い間VS作ってるしエディタとかIDEのノウハウが凄いのでは
0637デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:34:23.14ID:60+6AuiC
構造化BASICの正統進化なんだけど
ついでに8bit機にのってたようなのは当時既にストリートBASICって言われてた
(漏れもwikipediaで知ったんだけどさw)
0640デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:56:31.90ID:BjLAzK5L
一歩の作者が悪いんや…
すべからく…べし、の形すら守ってないと俺はそれ以降の文章はスキップする
読む価値がない
0644デフォルトの名無しさん
垢版 |
2017/08/08(火) 01:43:32.85ID:lBJjevEI
vscode はむしろマイクロソフト内の若手が爺どもにぶちぎれて
まったく別路線のものをつくったという印象
0645
垢版 |
2017/08/08(火) 08:04:36.27ID:y4ztJzgK
>>630
いわゆるMS BASICからQUICKBASIC→Visual Basic→VB.netと辿っていけばわかるけど、普通にMicrosoft系のBASICだと思うけど。
どの辺がBASICっぽくない?
0646デフォルトの名無しさん
垢版 |
2017/08/08(火) 11:58:13.44ID:1MHxdJ+Z
>>643
typescriptもjsに変換されるから無関係
V8エンジンが速いという条件ならatomも同じだぢ
0647デフォルトの名無しさん
垢版 |
2017/08/08(火) 11:58:30.92ID:1MHxdJ+Z
x だぢ
o だし
0648デフォルトの名無しさん
垢版 |
2017/08/08(火) 14:24:25.13ID:Apkyawzp
>>646
それは言われなくても分かる。
素のES2015よりメンテナンス性や安定性が向上しないかな。
例えばnull安全なコードがかけるからnilチェック漏れとかを潰せるし。
プラグインもtypescriptでかくから少しましになる?
0649デフォルトの名無しさん
垢版 |
2017/08/08(火) 16:22:17.89ID:1MHxdJ+Z
>>648
それはそうだけど、>>635から始まったvscodeのパフォーマンスの話してるからtypescriptであるかは関係ない
0653デフォルトの名無しさん
垢版 |
2017/08/09(水) 08:59:18.22ID:FPEvL6ue
簡単そうに見えても結局それぞれの場所でオブジェクト開放を
うまくやらなきゃならんことを考えれば大して楽になるわけでもない。
0654デフォルトの名無しさん
垢版 |
2017/08/09(水) 12:40:14.22ID:aEwDYdDe
VSCodeでインテリセンス技術をオープンソースにしたのは地味に画期的なことだと思う
IDE分野でのMSの強さを支えるコア技術だよね
0655デフォルトの名無しさん
垢版 |
2017/08/09(水) 13:12:03.09ID:ZSp2lruc
Goはパターンマッチないのに例外を戻り値で返すからあんな面倒な事になってるんだろ
0656デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:01:09.05ID:FPEvL6ue
その言い方だと例外投げられればいいのかパターンマッチが導入すればいいのか
わからんが。
どっちかもしくは両方あれば楽になったとでも?

プログラム書く上でまったく本質的な制約だと思わんな。
0658デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:25:58.05ID:ZSp2lruc
>>656
どちらか欲しい
両方ないのはキツイ
0659デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:26:26.92ID:ZSp2lruc
あと複数の戻り値じゃなくてタプル+単一戻り値の方が扱いやすい
0662デフォルトの名無しさん
垢版 |
2017/08/09(水) 20:19:16.67ID:jK6ObLbS
+演算子をorの意味で使ってるのか?
それだとタプルを返した時は単一ということになるか
単一の意味も違うのかもしれない
0663デフォルトの名無しさん
垢版 |
2017/08/09(水) 20:44:15.24ID:h3UNfnj7
形式的にだけど、返り値はタプル一つになっていて、それを分配束縛してることになってなかったっけ?
違ったかも
0665デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:22:14.98ID:SHgM+TeI
タプルとEitherはC言語のstructとunionに戻るようなものだからな
次世代の面子が潰れる
0666デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:38:43.55ID:cB8pPRbn
goの戻り値がタプルのほうが嬉しいという気持ちはわかる。
自作の型に自由にメソッド生やせるのに、メソッドチェーンしようとした場合に、多値を返されると無理。
0667デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:04:04.13ID:ZSp2lruc
>>666
golangは本当メソッドチェーンが出来ないよな
0668デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:51:13.67ID:cB8pPRbn
まぁそういう弱点ありつつもgoは嫌いじゃないんだけどね。
エコシステムの部分とか。

import文にgithubのurl?を書けたり。

標準ライブラリのコードが自然に見にいけるから書いている最中も勉強になるし、標準ライブラリが教科書的な役割をはたしてくれたり。

コードフォーマットが標準装備で言語仕様的に制約が強いから構文規約は一つしかないところとか。

と言いつつも他の言語を見て羨ましくもあり。もっと関数型チックになってほしいけど無理かな。
0669デフォルトの名無しさん
垢版 |
2017/08/09(水) 23:57:18.80ID:ECmmt/Ev
メソッドチェーンが遺物だと気づけw
Goは意図的にメソッドチェーン出来ないようにしてるんだ
0670デフォルトの名無しさん
垢版 |
2017/08/10(木) 00:20:35.92ID:eLvHxdUn
パイプライン演算子の便利さを考えるとメソッドチェーンもそこまで悪くない気もするが、使い方次第かねえ
0672デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:40:12.18ID:+tFBM5sG
パイプラインの方が柔軟性高くていいよね
do_something foo |> lambda x => x + other_fun bar |> ...
みたいな前の戻り値のメソッドに限定しない書き方ができる

これをもっと楽にするような記法、例えばパイプラインの式中のアンダースコアは前の値とする、みたいなのがあると嬉しい
上のやつと等価だったらdo_something foo |> _ + other_fun bar |> ... みたいな
0673デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:51:16.15ID:eLvHxdUn
Juliaでそのアンダースコア議論されてて、結局実装されなかったんだよなたしか
0675デフォルトの名無しさん
垢版 |
2017/08/10(木) 01:55:26.39ID:eLvHxdUn
2番目の引数を先に埋めてアンダースコアは一番目にしたいパターンがあるので、どちらかと言うとカリー化は好きじゃないなあ。設計が悪いと言われたらそれまでだけど

Juliaの場合は多重ディスパッチを採用している関係でカリー化は諦めたっていうのもあったな
0676デフォルトの名無しさん
垢版 |
2017/08/10(木) 03:00:14.84ID:J41+5nHx
>>665
いやだからEitherモナドはMaybeみたいに正常系だけ書いていけるし単値だしで全然違うって
なんで皆使ったことも無いのにそんな事言うの…
0677デフォルトの名無しさん
垢版 |
2017/08/10(木) 07:31:11.02ID:EsQl4Iyt
単純にノイズが増えるだろう
現実にはほとんどの関数がエラーを返す可能性を持ってるんだから、言語に織り込んでデフォルトを Error | Result とするのは悪いアイデアではない
0679デフォルトの名無しさん
垢版 |
2017/08/10(木) 23:01:38.31ID:g9gtECZC
(Elixirは?動的型付け言語に人権はありますか)
0680デフォルトの名無しさん
垢版 |
2017/08/11(金) 07:15:28.72ID:VinUUXdS
ほとんどの動的型言語ってそれが動的型であるメリットは特に無くて
単なる処理系実装者の怠慢でしかない
動的型言語を推すならまずはそれが動的型でなければならない理由を示すこと
0681デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:32:31.97ID:wS48fUKa
lisp とか仕様をシンプルにできることかな。
あほみたいに仕様が膨らんで意味の分からんキャストをがばがばおこなわなきゃならん
みたいな不自然なことで生じるバグは減る。
0682デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:51:11.85ID:Pc9UeBFi
>>680
怠慢に寛容になると嘘をつく人間が減るから
自分はなにもしないくせに他人の嘘をデバッグするのだけはうまい奴がいる
そういう奴がいても許されるから嘘が減る

怠慢を許さない環境では忙しくて嘘を見抜く暇もないから嘘が蔓延する
0683デフォルトの名無しさん
垢版 |
2017/08/11(金) 08:56:57.66ID:wWK8j68x
そもそも型が必要な理由が分からん。
数学なら「整数型のxが・・・」なんて言わないしな。
「ここでxは整数とする」はあるけど、条件に過ぎないし。
リストやタプルも分ける必要ある?
0684デフォルトの名無しさん
垢版 |
2017/08/11(金) 10:46:48.12ID:4bbWTV9L
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているサイトだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子が求人をだしてる。名刺も渡せる。ユー子に名刺を渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト
0685デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:00:48.00ID:HT0ZPb79
>>683
型はその条件をいろいろ細かく定義したものだろ。
値域や定義域だって型。
0686デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:17:57.35ID:Dik+7mIk
動的型の問題って関数のインターフェースがガバガバなところでしょ?
elixirはパターンマッチで結構制約できるから動的だからって卑下する必要ないのよ
0688デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:59:08.49ID:wWK8j68x
>>685
少なくともunsigned は要らなくない?
1bit ケチれるだけだし。
中途半端な単精度浮動小数点とかも。
0690デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:03:12.85ID:Pc9UeBFi
>>686
まだコードを書いてないのに問題でしょとか言われても
言う時期が早すぎるし言う内容に具体性がないよ
まるで数学も英語もまだ知らない小学生にプログラミングを教えているようだ
0691デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:39:55.52ID:Dik+7mIk
TypeScript触ってるとjsに型がある方が幸せだってわかる。
jsonにスキーマ設定無しで
reduxでstate管理するのとか絶望する。
あと、学習面でも明らかに型があったほうが幸せ。書いてる端から指摘してくれるからすごく幸せ。
TypeScriptはvscodeとセットで幸せー
0692デフォルトの名無しさん
垢版 |
2017/08/11(金) 15:58:37.67ID:uuzmQ1J4
>>688
今言ってる片野必要性は容量のためじゃないだろ
全ての引数をテストするとすると1bit減ることでテストの数が半数になる実装もその1bitに対して考える必要がなくなる
例えばルートを計算する関数を実装するのに引数が正の整数と限定されてれば簡単だが、負だったり小数した場合は複雑になる。文字列や画像だった場合は例外が発生したりアボートしたり誤作動するかも知れない。
型はビジネスロジックに集中するためのルール、制約だ
静的は言語レベルで強制、チェックしてて、動的ではユーザ、実行時に任せてる
0693デフォルトの名無しさん
垢版 |
2017/08/11(金) 18:06:45.60ID:wS48fUKa
関数の引数なんかはやっぱ型があった方が読みやすいなと思う。
でも内部のテンポラリ変数なんかは別にいらんかもね。
というかテンポラリ変数の型情報がないと読めないようなコードは
そもそもコードが長すぎるとか、他の根本的な部分に問題がある気がする。
0694デフォルトの名無しさん
垢版 |
2017/08/11(金) 19:32:48.58ID:L+PB1ux2
>>682
>>690
内容がフワフワしてて何言ってるのか理解できない
もっと具体的かつ簡潔に言え
Twitterによくいるプログラミングできないのにプログラム語ってるクソ野郎みたいだぞ
0695デフォルトの名無しさん
垢版 |
2017/08/11(金) 19:36:48.30ID:L+PB1ux2
>>688
unsignedはオーバーフローしても下から戻るから楽
つか実装型まで否定するって、じゃあ任意精度にしろってか?
計算量制御できなくなるぞ?
0697デフォルトの名無しさん
垢版 |
2017/08/11(金) 22:53:04.88ID:HT0ZPb79
西京漬けいいよね
0699デフォルトの名無しさん
垢版 |
2017/08/12(土) 08:33:13.28ID:Uq7dQQ/j
>>694
プログラミングできるできないではなくタイミングの問題
目の前のことを言えば具体的かつ簡潔になる
遠い将来のことを語るとフワフワする
0700デフォルトの名無しさん
垢版 |
2017/08/12(土) 09:39:33.11ID:DS1jvWO1
次世代言語を語りたければ、今流行ってる言語の分析をしないと
Java、C#、C/C++が人気だけど
0702デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:28:39.85ID:lZqlh0rm
Java系は一貫した技術の枠内で一通り完結するのがメリット
アプリケーションロジックの開発に集中できる
0705デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:15:33.93ID:bnRf3zzW
>>700
Java…型推論ない、論外
C/C++…メモリ安全じゃないので面倒
C#…まあ使える。ただT aだったりT b()だったりで書き方がちょっと古い
0706デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:17:29.71ID:bnRf3zzW
C#は良い言語だと思うよ
パターンマッチが追加されたりifが式になったりで便利になってきてるし
0711デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:31:48.99ID:Z/LzjBMS
.net coreはまだプロダクションで使うのは怖いだろ
仮にそこ乗り越えたとしても、C#だと結局開発はVS最強なんだから窓開発になる
0712デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:32:59.46ID:bnRf3zzW
.NET CoreだけじゃなくてMonoもあるぞ
0713デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:38:41.45ID:ahseiZ+6
>>711
もう1年以上経つし、そろそろ.NET Standard2.0も出るこの時期に何言ってんだか
素直に知りませんでしたでいいよ
0715デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:46:02.46ID:bnRf3zzW
.NET Standardってなんや
0716デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:47:02.12ID:zLZ79VVH
見事にオープンソースとクラウドの時代を代表するリーダーの一人として転身を果たしたMS
存在感を失い続けるIBMとオラクル
そう考えるとJavaは疫病神なのではないか
0719デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:54:08.03ID:ahseiZ+6
>>716
こないだのPaketの件といい、.NET CoreからFullの.NET Frameworkの一方的な切り捨てと言い、コミュニティをないがしろにしてちょいちょい炎上してるけどな
0722デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:00:15.90ID:2/FX67Cg
.NETはまだまだ環境の問題もあるからともかく、
MSだからという理由でMSのプロダクトが開発者に嫌われることは少なくなったね
マカーがMS製のエディタでMS製の言語でプログラミングしてそれをMSのクラウドプラットフォーム上でホストされてるLinuxへデプロイするとか 一昔前ならあり得ない未来だった
0723デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:03:25.03ID:DE4QKP9/
Monoで動いているものは結構色々あるはず
例えば3DGameEngineのUnityはC#で開発できるけど裏でMonoが動いてる
マルチプラットフォームな開発環境であるXamarinもMonoを使ってる。
知らないうちに.Netは大半のプラットフォームで動くように。
0725デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:19:13.69ID:953va2dM
.NETはLLVMつかってネイティブ化する計画なかったのか
0726デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:24:30.75ID:DE4QKP9/
実際のところ.Netを選ぶメリットって何かあるのかな?
マルチプラットフォームならtypescriptとelectron、もしくはreact nativeで良い気がするけど。
0727デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:25:59.19ID:953va2dM
現行、LLVMの使用はLinux、Macのみらしいが原理としてLLVMが動くすべてのOSでネイティブコンパイルできるのでは?
実際動かしてないし間違えてるかも。


性能を強化した「.NET Core 1.1」が公開 2016年11月21日
米Microsoftは11月16日、「.NET Core 1.1」を公開した。性能が強化されたほか、対応するLinuxディストリビューションも拡大した。
最新版では対応するディストリビューションを拡大し、Linux Mint 18、OpenSUSE 42.1、macOS 10.12、Windows Server 2016で利用できるようになった。
macOS 10.12とWindows Server 2016については、.NET Core 1.0も利用できる。
Linux向け、Mac向けでは、CoreCLRをClang/LLVMでコンパイルするため、次のリリースでClang版のPGOをサポートする予定としている。
https://mag.osdn.jp/16/11/21/154500
0728デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:33:46.06ID:D9kn9WR2
まあ実際使ってみると右往左往することになるわけだが。
「互換性」あるってセールストークに馬鹿みたいに引っかかりすぎなんだよ。
0730デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:42:05.60ID:953va2dM
こういう流れらしい。


.NET Coreとは? 2017年6月6日

.NET Coreがリリースされて約1年経ち、ようやくビルドツールも正式版としてリリースされるに至った。
本連載記事では、「Linuxを中心にクロスプラットフォームで開発できる.NET Core」という視点で、開発の方法を説明していきたい。

.NET Coreの歴史
Windows上でのみ動作する.NET Frameworkは、2002年に最初に登場して以来、バージョンアップを重ねてきた。
それに対し、Windows・Linux・macOSで動作するクロスプラットフォームな.NET Coreが発表されたのが、2014年11月12日のことである。
このとき、今までWindowsのみをサポート対象としてきた.NETが、LinuxやmacOSもサポート対象としたことに加えて、最初からGitHubでオープンソースとして公開されたことにも驚きがあった。

クロスプラットフォームを動作環境とすることに関しては、Monoプロジェクトという先人がいた。
Monoプロジェクトは.NET Frameworkの互換環境をLinuxやmacOSを含めたスマートフォンOSにすることを目標としており、その中にはGUIフレームワークも含まれている。
Monoプロジェクトは現在、Xamarin社が開発・サポートをしており、スマートフォン向けのクロスプラットフォーム開発環境であるXamarinブランドの製品を提供している。
そのXamarin社が、2016年にMicrosoft社に買収されて今に至っている。

Monoが.NET Frameworkそのものと互換性のある環境を目指していることに対し、.NET Coreは.NET Frameworkのサブセットとなる機能をクロスプラットフォームで提供することを目標としたわけである。
そして、.NET Coreの発表から約1年後の2015年11月5日にRed Hat社がMicrosoft社と協力し、Red Hat Enterprise Linux上での.NETのサポートを発表した。

.NET Coreの特徴はいくつか挙げられるが、ここでは特に「クロスプラットフォーム」「オープンソース」「軽量」「フレキシブル」の4点について強調したい。
http://www.buildinsider.net/language/dotnetcore/01
0733デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:09:25.46ID:5ZVaRTG/
>>728
Javaも同じだけどね。
お陰で一度書けばどこでも動くって宣伝文句も、一度書けばどこでもテストが必要って揶揄されて久しい。
HTMLも然り。
実はHTML5+JavaScriptのが動的言語な分タチが悪いっていう。


>>726
TypeScriptもMS製ですよ。
VS Code出したし、.net Standerd出たしってなると、VC#のマルチプラットフォーム化が始まりそうな予感はするが。
(MonoでC#のマルチプラットフォーム化はしてるけど、C#の良さはやはりIDEであるVSあってこそ)
0735デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:21:36.37ID:LJmg41iW
typescriptがMs製なのは知ってるよ。
そして素晴らしいのはtsserverを同梱してること。
言語自体にリファクタリングや定義箇所への参照機能等ideに必要な機能を同梱させたんだよね。

この仕様をlanguage server protocolとして標準化しようとしてるのも素晴しい。
ide側で言語仕様を把握する必要がなくなり、上記のプロトコルを解釈する機構を用意しておけばいい。
0736デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:25:12.33ID:LJmg41iW
ぜひともlanguage server protocolを言語側で用意するのを必須にしてほしい。
新興言語ほど補完機能が弱いことが多いから。goの補完が効くようになったのもここ二年くらいからだったし。
0737デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:28:03.98ID:5ZVaRTG/
マルチプラットフォームの夢も分かるけど、現実的じゃないんだよね。。。
一個のOSでさえバージョン違いで互換性崩れるのに、それを複数とか。
現実的にはテストの都合でプラットフォームもバージョンもグッと絞らないと死ねる。
0738デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:53:43.57ID:47VquCRx
MSはLinuxの技術者が食いついてきたらLinuxがクソになってきたので独自拡張LinuxまたはWindowsのみのサポートにしますって言って利益をあげるんだろ
知ってるんだから
0739デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:57:05.96ID:PA7iDDOj
>>730
これアレじゃね?
競合しそうな会社を買って手中におさめて
コントロールするか飼い殺しにするかっていう
いつものMSじゃね?
少なくとも
>Monoプロジェクトは.NET Frameworkの互換環境をLinuxやmacOSを含めたスマートフォンOSにすることを目標としており、
>その中にはGUIフレームワークも含まれている。
の部分はもはや怪しいというか
.NET Coreで行きたいんでしょ?MSは
0742デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:22:18.67ID:GoIJeqVQ
次世代言語ってなんなんだ?

Cの次世代言語がC++だと言われれば納得できる
c++の次世代言語がjavaだと言われればちょっと首を傾げながら納得する

javaやc#などの次世代言語が Go Rust Scala Haskellだと言われたら
全く納得できない
0743デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:49:44.40ID:PA7iDDOj
そりゃそうだ
次世代というなら、シェアをひっくり返すかトントンぐらいまで行かないと
次世代とは言えない
というか、そういう状況にならないと
業界が何となく全体的に次世代に移った、とは言えない
なら次世代とは何なんだ、「世代」とは何なんだ
来もしないであろう架空の未来のことを
「次世代」と言っても仕方がないではないか
C++の次世代という触れ込みだったD言語は言語仕様的にはそうかもしれないが
全然普及しなかったからC++の次世代だ!っつってもふ〜んって感じだし
そんな「世代」は来なかった、って感じ
0744デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:52:23.84ID:PA7iDDOj
結局はJava、C#、C++などの現世代の王道言語が順当にバージョンアップして
移行が行われたら、その地点が「次世代」って事になる
0745デフォルトの名無しさん
垢版 |
2017/08/13(日) 03:22:34.66ID:xz6n1XH5
互換性のためだけのレガシー構文が積み重なるわ不自然な拡張方法になるわ
で最終的にperl5みたいな「これでなければなんでもいい」になるんですね?
0746デフォルトの名無しさん
垢版 |
2017/08/13(日) 06:40:32.63ID:LJmg41iW
構造化プログラミング -> オブジェクト指向 って進化は基本的に
制約をきつくしていく傾向だよね
だから次世代はもっときつくなる。

多分参照型の消滅が次世代の考え方になるのかなと思う。
次世代っていうか関数型の話だけど。
参照型って結局ポインタ型つまり機械語にかなりよった概念だと思う。
これのせいで値の比較とかが難しくなる
インスタンスの内容が同じなのに == で評価したら不一致。みたいな。

参照型って結局メモリ節約のシンプルな解決方法にすぎない。
Immutable.jsとかみてると内部構造をメモリ節約できる仕組みにして隠蔽するとこで表向きは値型にしてる。こういうことができるんだから全部値型で構わない。
0747デフォルトの名無しさん
垢版 |
2017/08/13(日) 10:11:59.72ID:Zj27tgiX
>>745
perlは役に立つぞ
役に立つという条件さえクリアすればなんでもいいという単純な時代もあったんだろう

今は役に立つだけでは不自然と判明したから更に複雑な条件が追加されていくだろう
0750デフォルトの名無しさん
垢版 |
2017/08/13(日) 11:50:48.27ID:Zj27tgiX
シェルスクリプト系はカーネルにフリーライドしているくせに
そのことを全く気に病む様子がない

Java系は自己完結とかOSを作りたいとか自分自身をコンパイルしたいとか煩悩が多い
0752デフォルトの名無しさん
垢版 |
2017/08/13(日) 22:30:38.39ID:ZLPpL5wN
>>750
いろんなものに手を広げずにシンプルな仕様だけを用意していた方が
結局互換性が高いってことだね。
0754デフォルトの名無しさん
垢版 |
2017/08/14(月) 05:55:23.82ID:92xt4hcL
Mono(.NET)と、.NET Coreの用途の違いは、すでに100%.NET環境が移植できていれば.NET Coreの出番はないはずだが。
そうではない環境では、その環境を構築なしに移植できるってことか。
C#のコードをLLVMのアセンブラに翻訳したらあとは既存LLVMに丸投げできるから、移植コストは低く共通化できる。
0755デフォルトの名無しさん
垢版 |
2017/08/14(月) 08:53:13.99ID:+p07mcQa
\______  _______________________/
           ○
           O  モワモワ
          o
        ∧_∧! ハッ!   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ___(  ゜∀゜)_    < という夢を見たんだ
    |  〃( つ  つ  |     \________
    |\ ⌒⌒⌒⌒⌒⌒\
    |  \^ ⌒   ⌒  \
    \  |⌒⌒⌒⌒⌒⌒|
      \ |.________|
0756デフォルトの名無しさん
垢版 |
2017/08/14(月) 09:01:00.79ID:l9TYt/P3
>>754
.NET CoreはCLR自体をアプリに同梱するように作られていて、AOTコンパイルではない
LLVM対応もJITをLLVMで実装しようというものに過ぎず、あくまでコンパイルはJIT
Coreは基本的にWebサーバー用だから少々起動に時間がかかろうが全く問題にならない
0757デフォルトの名無しさん
垢版 |
2017/08/14(月) 09:32:55.89ID:92xt4hcL
こんなのでてきた


Microsoft、C++技術で.NET Core 2の高速化実現 [2017/07/22]
Microsoftは7月20日(米国時間)、.NET Core 2.0で採用されている高速化技術「PGO (Profile-Guided Optimization )」について伝えた。
この技術はC++コンパイラでより最適化されたコードを生成するために使われているネイティブコンパイラ技術。
.NET Core 2.0にも同様の技術が適用されており、すべてのユーザは特定の処理をすることなくこの高速化技術の恩恵を受けていると説明している。
http://n.mynv.jp/news/2017/07/22/096/images/001l.jpg
http://n.mynv.jp/news/2017/07/22/096/images/002l.jpg
http://news.mynavi.jp/news/2017/07/22/096/



Microsoft、LLVMベースの.NET/CoreCLRコンパイラLLILCを発表
2015年5月6日
.NET FoundationがLLILCという新しいプロジェクトのリリースを発表した。
このプロジェクトはもともとMicrosoftによるもので、.NET Coreのための新しいLLVMベースのネイティブコードコンパイラを提供することを目的としている。
これによって「CoreCLRが移植されていてLLVMがターゲットとしているプラットフォーム上で」.NETプログラムを動かせるようになる。
LLILCのロードマップによると、Install-Time JITコンパイラが次のターゲットだ。「これは生成されたコードを、
1つのアプリケーションの複数の呼び出しの間で、または1つのアセンブリセットを共有する複数のプロセスの間で共有できるようにする」。LLILCプロジェクトでは、Ahead-Of-Timeコンパイラの実装も検討している。
https://www.infoq.com/jp/news/2015/05/microsoft-llilc-llvm-compiler
0758デフォルトの名無しさん
垢版 |
2017/08/14(月) 13:38:56.86ID:kXWZXT9S
>>742
世間で言われてる分類で言えば全部第3世代言語だからな
他でドヤ顔で言ったら恥ずかしいぞ
0759デフォルトの名無しさん
垢版 |
2017/08/14(月) 13:42:18.27ID:kXWZXT9S
>>742
世間で言われてる分類で言えば全部第3世代言語だからな
他でドヤ顔で言ったら恥ずかしいぞ
第4世代はユーザが使う言語

JavaはC++--って言われるくらいで先進性よりも普及を重視してたんだろ
今はもう滅茶苦茶だが
でC++++でC#と
0760デフォルトの名無しさん
垢版 |
2017/08/14(月) 14:14:03.57ID:C7avT2pN
次世代はサービスインテグレーションのための超高レベル言語だろうな
ドメインスペシャリストと開発者の間の垣根を無くすことと、強力なサービス連携がポイントだと思う
0763デフォルトの名無しさん
垢版 |
2017/08/14(月) 17:28:12.75ID:wnsRSkHP
でもまぁ方向性としてはありかと。
結局プログラミング言語ってツールなわけだから
何かに特化したほうが仕事はやりやすくなる。
DB設計したらwebAPIの定義と処理が自動実装されるようなDSLとか欲しい。

golangのgoaとかAPI設計からGoのコードを自動設定するから近いっちゃ近いけど
DB周りとの連携はまだイマイチかなと。
0765デフォルトの名無しさん
垢版 |
2017/08/14(月) 19:20:45.04ID:Ib/9zFrg
自動でコード出力する系は嫌い
改造するの面倒だし
マクロみたいなのが好き
0768デフォルトの名無しさん
垢版 |
2017/08/14(月) 22:37:21.06ID:wnsRSkHP
でもgoaは割ときれいなコード書いてくれるから、結構勉強になるし、生成ファイルとは別ファイルにして動作をカスタマイズする前提だから、
マクロとそんなに変わらないと思う。
マクロよりマジック感が減るから処理を追いやすいし
0769デフォルトの名無しさん
垢版 |
2017/08/14(月) 22:47:09.43ID:kXWZXT9S
コード出力ってそのあと追記とかするの?
戻れなくないか

いっそバイナリ吐いてくれた方がよくないか
0770デフォルトの名無しさん
垢版 |
2017/08/14(月) 22:55:39.38ID:O7NIduQl
糞バカペチプァにそんな知能あるわけないだろ
やつら、次に食べる飯と寝ることくらいしか頭に入らない小頭症のガイジだからね
0772デフォルトの名無しさん
垢版 |
2017/08/15(火) 00:47:06.80ID:Iy2AbH2m
>>769
それじゃ混ぜて最適化できないし
APIの公開非公開の制御もできないじゃん
そらGPLとか仕事じゃないなら関係ないかもしれないけどさあ
0773デフォルトの名無しさん
垢版 |
2017/08/15(火) 00:48:49.86ID:Iy2AbH2m
>>771
いや流石にソースか出力どっちかはバージョン管理に入れるだろ
CIしてたらコンパイル通らなくなる
0774デフォルトの名無しさん
垢版 |
2017/08/15(火) 02:11:40.42ID:ucbHC/q/
まあいろいろな環境でも動かしたいとかいう理由で出力したソースを
コミットすることもあるけど、あんまりいいことないよ。。おすすめしない。
0775デフォルトの名無しさん
垢版 |
2017/08/15(火) 05:31:41.09ID:tN8D0FqC
>>769
もちろん生成コードとは別ファイルにカスタマイズコードを書くよ。
だからgitの管理対象外にするのが普通。
ただ、俺はあえて管理対象にしてるけどね。設計変更したときに自動生成コードがどんな変更をしたかわかりやすい。

マクロ系だとこういう部分が隠蔽されてると考えることができる。
デコレータとかもそうだよね。

goはジェネリクスとかマクロがない代わりにコード生成を推奨してる言語と言えるね。

最初は後退した言語だと思ったけど
コード生成と衝突しない書き方ができるから、マクロとかで裏でどういうコードが生成されているかを把握できる言語と考えれば悪くないなと感じてる。
0776
垢版 |
2017/08/15(火) 10:52:42.87ID:acuW3DAP
phpバカにしまくる奴が疑問。
言語としてはまあボロボロだけどnginxとphp-fpmより安定したサーバ書けるの?って聞くと黙ったり、
過去、ひどいコード書いたとか、ひどいコードの保守したとしか考えられん。
0777デフォルトの名無しさん
垢版 |
2017/08/15(火) 11:04:03.16ID:WUz8q6HI
nginxとphp-fpmより安定したサーバ書けるの?という質問が意味不明で黙るしかないよw
0781
垢版 |
2017/08/15(火) 12:46:45.72ID:acuW3DAP
実用に耐えてないじゃん?みたいな話。
Goのサーバも見たことあるし、ErlangもElixirもあるけど、ずーっと誰かが推してるウェブベースのアプリって見たことねえなあ、ってのが
>>770を見て>>776を書いた所以。
脈絡ないのは認める。すまん。
0783
垢版 |
2017/08/15(火) 13:02:18.16ID:acuW3DAP
>>782
そうでもないよ。普通にいわゆるSSIみたいな形で動的なコンテンツ差し込むサーバも見たことあるし、
逆にPHPでも1ファイル1機能のAPIサーバと静的htmlの組み合わせも見たことある。

後者とは競合すると思うんだが。
0786デフォルトの名無しさん
垢版 |
2017/08/15(火) 13:46:49.20ID:HWb5gMTo
このクソコテガイジだからな
0787デフォルトの名無しさん
垢版 |
2017/08/15(火) 13:48:14.36ID:HWb5gMTo
前スレ

918 :あ :2017/05/31(水) 11:10:55.99 ID:dc+IbjjD
>>916
子供作るときに一通りそういう気質があるか調べてもらったが、幸いながらアスペではなかったぞ。
残念ながら多動はあった。
0788
垢版 |
2017/08/15(火) 13:58:19.02ID:acuW3DAP
>>784
逆。nginxやphp-fpmは信用に足りるが、
個別にウェブサーバ立てるような言語は結局nginxやらtraefikやらのバックエンドに立てんじゃん?みたいな話。

>>786
だから何なんだ…(笑)
それをもってしてもちゃんと働いとるぞ。役職付きで。
0789デフォルトの名無しさん
垢版 |
2017/08/15(火) 14:00:11.08ID:HWb5gMTo
あガイのガイ
0791
垢版 |
2017/08/15(火) 14:34:08.47ID:acuW3DAP
>>790
リバースプロキシは要るだろうが、その裏に立てるのもphp-fpmなりなんなりの、それなりに枯れたもので、スクラッチせんで良いでしょ。
0792
垢版 |
2017/08/15(火) 14:35:20.41ID:acuW3DAP
他の言語が優れてるのも認めるし、phpがポンコツなのも認めるが、
それ以上に自分で書いたサーバはあてにならん。
0793デフォルトの名無しさん
垢版 |
2017/08/15(火) 14:49:11.64ID:IlJmfBT9
そりゃ君がPHPなんか使ってるからだろう
スクラッチといったって既存のライブラリを使うわけだし、
そのライブラリがnginxに比べて枯れてないことが大きな問題になるほどHTTPサーバーなんて高度なもんじゃないぞ?
0794デフォルトの名無しさん
垢版 |
2017/08/15(火) 15:24:31.13ID:IlJmfBT9
あと、今時は静的コンテンツの配信やパスベースのルーティング、SSLなど
Webサーバーの多くの機能をクラウドプラットフォームに任せてしまうから、アプリから独立したWebサーバーの必要性は低下している
もちろんガイジの主張においてnginxがクラウドプラットフォームに置き換わっただけであることは認めるけどね
0795デフォルトの名無しさん
垢版 |
2017/08/15(火) 16:53:16.30ID:Iy2AbH2m
まあPHPを安易にバカにする奴はエアプログラマだとは思うわ
使われてるだけあって書いてくれって言われることあるし、
書いてみりゃわかるが小規模なら生産性高いからな実際
Wordpressカスタムで済ませられる案件も多いし
0796
垢版 |
2017/08/15(火) 17:00:35.19ID:acuW3DAP
>>793
俺自身はphpを使うことがある、くらいよ。

既存のライブラリなんて余計に使えないだろ。いろんな意味で。

>>794
それはわかる。GAE/goをタダで使ってる身としては効率的だし、インフラのコストや安定性は桁違い。
0798デフォルトの名無しさん
垢版 |
2017/08/15(火) 17:39:47.47ID:LOEABJJK
phpは人口が多くて趣味やデザイナから来た奴が多いのかレベルが低い
他の言語知らないって奴もよくいる
なのでphpの仕事はあまりしたくない
0799デフォルトの名無しさん
垢版 |
2017/08/15(火) 18:10:02.06ID:tN8D0FqC
>>798
なるほど。そういう考えもあるのか。
Goだったら少なくともプログラマーになりたい人が使ってる感じかな。
0801
垢版 |
2017/08/15(火) 18:18:04.71ID:acuW3DAP
>>797
めっちゃ安い。めっちゃ早い。
永続化考えたら少しめんどくさいから、リクエストに対して即結果が出せるようなものを数珠つなぎにして出せるようなものにしてるよ。
>>798
それはよくあるな。
あと、外注が海外に投げるとホントにひどいのが出てきたりする。
0802デフォルトの名無しさん
垢版 |
2017/08/15(火) 18:20:14.17ID:IlJmfBT9
>>798の文脈でいうならGoの仕事は悪くないと思うけどな
少なくとも秀丸で書いてFFFTPでデプロイするような奴はその職場にはいないだろう
0804デフォルトの名無しさん
垢版 |
2017/08/15(火) 20:12:50.74ID:tN8D0FqC
typescriptをメインに据えてる会社とかないかな。
正直typescriptであればサーバサイドjsもありな気がする。
0805デフォルトの名無しさん
垢版 |
2017/08/15(火) 20:16:13.66ID:tN8D0FqC
>>801
> 永続化考えたら少しめんどくさいから、
> リクエストに対して即結果が出せるようなものを数珠つなぎにして出せるようなものにしてるよ。
もう少し具体的に話せない?。web+dbみたいな用途では使ってないってこと?
0806デフォルトの名無しさん
垢版 |
2017/08/15(火) 20:20:01.11ID:ucbHC/q/
まあ go は書いててつまらんからって理由で却下されたことがある職場の話は
聞いたことあるな。
面白くても糞品質だったら無意味だとは思うがな。
0808デフォルトの名無しさん
垢版 |
2017/08/15(火) 20:35:24.55ID:tN8D0FqC
>>806
goってつまんないかな。
俺は最初にハマったときはシンプルな構文に抑えようという心意気に感動したけどな。
例えばclassとstruct。コレってどっちかでいいよなってずっと思ってて
goはstructに絞ってくれて、コレだっ!って思った。
後構文規約問題とか。コレって最新の言語rustとかswiftとか全然気にしてないけど
goはちゃんと解決してるんだよなぁ。
あとgoroutineとか。スレッドモデルの操作ってPHPでやろうとすると凄くめんどくさくて最初にgoに触ったきっかけになった
0810
垢版 |
2017/08/15(火) 21:11:54.94ID:acuW3DAP
>>805
ウェブアプリとしてはあんまり使ってない。DBは必要があれば基本的には外のAPIとかDB呼んでるけど。couchか、とある階層型DBが多い。
それより、もうちょい単機能で、メモ化で済む様な処理で、さらにスケールする必要があるものが多いよ。
jsonに署名して返すとか、緯度経度から国判断して返すとか、バッチ処理でreduceの部分を一万件ずつくらい請けて結果を別のエンドポイントに投げるとか、json渡すとhtml帰ってくるとか、ほんとバックエンド。

DBのデータのマスタや、テンプレートみたいな類も、毎回要るものはそもそもソースに文字列として埋めて、DB使わんでも良いようにしてる。
0811
垢版 |
2017/08/15(火) 21:17:02.53ID:acuW3DAP
Goは、あのシンプルな言語仕様だからそもそもが泥臭いけど、何かから書き出してもそれほど無茶なソースにはならないしな。

>>809
なるほど。
0812デフォルトの名無しさん
垢版 |
2017/08/15(火) 21:41:25.44ID:4yQu0hbw
Goってマルチスレッド書ける?
0813デフォルトの名無しさん
垢版 |
2017/08/15(火) 21:43:52.13ID:tN8D0FqC
>>810
ほーん。いわゆるマイクロフレームワークとして使ってるってことなんね。
中小でしか働いたことがない人間には無縁臭がするなぁ

やはりgoでDB操作は避けるよね、、、。

イマイチgoでRDBMS使い勝手が良くない、、
GormっていうORMが結局いいのかなって思ったけどパラメータがinterface{}型(いわゆるany型、何でもあり型)ばかりで、これ静的型だよね?ってなるし。
RDMS操作の決定版がいまいちgoにはないよね。

>>809
goは好きだけど不満もあるのは分かる。特にジェネリクスがないから
関数パラメータにinterface{}型ばかりになると萎えてくる。
でも片っ端から言語仕様追加してダサい言語になってほしくもない。
難しいね。
0814デフォルトの名無しさん
垢版 |
2017/08/15(火) 22:25:15.02ID:EUsgsL74
>>798
言語仕様が糞なのに加えて、
そういう連中が積み上げてきた過去の遺産があるからね
大手のPHPプロジェクトの悲惨さはもう筆舌に尽くしがたいよ

ああいうの見るとね、冗談でもPHPは便利とか言えなくなるよw
0815デフォルトの名無しさん
垢版 |
2017/08/15(火) 22:29:52.97ID:wXZu/4Fl
若輩俺氏、PHPを触ったことがない
PHPの仕事ってそんなにあるもんか?全く観測できん
0816デフォルトの名無しさん
垢版 |
2017/08/15(火) 22:33:23.96ID:EUsgsL74
いわゆるWeb系でそう思うんなら、あんちゃんが割とええとこにいるからやな
中小奴隷売買でPHP保守のスパイラルに迷い込んだら
ほんとキャリア詰むで
0819デフォルトの名無しさん
垢版 |
2017/08/15(火) 22:49:36.97ID:ucbHC/q/
UIべったりな糞カスコードを保守してくれる奴隷を探してるんだろうね。。
直してくれる人をありがたく扱ってくれるならいいんだがそういうところって
本当に人間をごみカス扱いしてくるからな。
0820デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:06:08.95ID:EUsgsL74
直してくれる人がありがたいだって?
余計なことして壊れたらどうするんだ?誰がテストするんだ?

大人しく今のコードを最小限のコピペで直してくれる人を求めてるんだよ、ああいうのは
0821デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:08:55.10ID:LOEABJJK
新しいサービス思いついた
自分で作れないから人を雇おう
ぺーはーぴーって開発者が工数単価安いみたいだぞ
ねえ君、ホントは自分で作りたいんだけど忙しいから依頼するよ

新しいサービス思いついた
安いホスティングサービス借りよう
PHPが使えるらしいから本買って来て作ろう
真っ白い画面しか出ない
ねえ君、ホントは自分で作りたいんだけど忙しいから依頼するよ

新しいサービス思いついた
ワイWordPressマスター
PHPでプラグインが作れるらしい
ねえ君、ホントは自分で作りたいんだけど忙しいから依頼するよ
0822デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:25:03.76ID:ucbHC/q/
>>820
その最小限がもうどうにもならんくらいになってるからみんな困ってんでしょうが。
てかそういう場所でまともなテストが行われてることなんてまずないけどな。
逆にテストがまともならそんな状況にはならんよ。
0823
垢版 |
2017/08/15(火) 23:59:10.86ID:acuW3DAP
>>812
グリーンスレッドならスレッドって何だったっけって思うくらい簡単に書ける。

>>813
マイクロフレームワークだね。
意外に、静的なファイルを撒くのにも便利だったりするけど、何より「全部入り」作ると面倒くささが勝ってくる部分がある。
gorm辛いよ。それなら、boltかleveldbにgobで突っ込んだ方が気楽。boltは書き込み遅いけど。
0824デフォルトの名無しさん
垢版 |
2017/08/16(水) 01:07:27.27ID:DsnJQVtM
>>822
ペチプァのテストとは
自動テストのことではなく
Excel項目書の丸付けと
ExcelエビデンスYYMMDD.zipのことですよ
0826
垢版 |
2017/08/16(水) 13:36:14.43ID:d4ksVO/Z
>>824
でかい所になるとそれを要求する奴が居るしね。
ただ俺も自動テストのテストは要求するし、
テスト用のクライアント一式(物理〜イントラ接続インフラ一式セットアップ〜デバッグビルド一式が配信される環境含め)を用意してくれと言われたら用意するけど、
ネゴなしにそれ以外のテスト環境でエビデンス取っても不適合でサクッと返すからなんとも言えん。
俺自身コード書いても社内では第三者に同じ事されるし割と平等かと。

これは請ける側のパワー次第だと思うよ。
1次請けが面倒くさがる会社の2次請けさんの嘆きは話は聞く事あるけど、それで1次請けに俺が何か言うと割と問題になるしな。
できることと言えば話のわかる1次の奴と2次の奴を飲みに誘う位しかできん。
0827デフォルトの名無しさん
垢版 |
2017/08/16(水) 13:51:45.97ID:3p707Jkt
>>826
テスト環境用意してくれるんだ。良い会社じゃん。
そっちのほうがいいね。エクセルでエビデンスとかしんどすぎるし
役に立つのそれって感じだし
0828
垢版 |
2017/08/16(水) 15:26:31.90ID:DRyABrqx
>>827
用意するし、ヤバイから台数増やして!ってあとから言われたら、貸出機出払ってても、少なくともうち来たらテストできるようにゲストカード用意するよ。

エクセルというか文書ファイルは必要悪と言うか、製造業は「いざとなったら手でできる」にこだわる側面もあるから、チェックシートで欲しいってのもある。
その辺汲んで、自動テストのテスト仕様と、自動テストで行うテストと結果を出してくれたら無理矢理でも俺通してきた。

東日本の震災でも、九州の震災とか豪雨でも、非常事態対応しながら開発したり、そもそも対応での不整合影響範囲推定とかせなならんかったし、あれは要る。
0832デフォルトの名無しさん
垢版 |
2017/08/17(木) 00:19:10.91ID:RP+KduLB
Winston なんかあったのかよ
俺はGadfly使ってたけど特に理由はないなあ
Pyplotも悪くはないけどなんとなく使ってなかった
0833デフォルトの名無しさん
垢版 |
2017/08/17(木) 00:42:21.76ID:x9wW63w8
テストとか仮想環境でしかしてないわ
本番も仮想環境ばかりだけど
モノにもよるか
0836
垢版 |
2017/08/17(木) 09:00:54.38ID:FZ3wXczz
>>834
すでにディーゼル発電機回ってるような状況で、本番機の分しか電源取れないような時に、テスト環境まで起こしてられん。

>>835
切り分け得意だよ。あとバグ出し。
むしろ多動だからなのでは?
0837デフォルトの名無しさん
垢版 |
2017/08/17(木) 09:08:56.76ID:I4N//eQS
>>830
どう見ても汎用言語じゃないんだが。。。
RとかMathematicaの分野の次世代言われてもな。。。
0838デフォルトの名無しさん
垢版 |
2017/08/17(木) 09:10:01.18ID:EtIXwQlG
今fortranで量子化学のプログラムのボトルネック部分書いたんだけど、バグ取りしんどいわあ。
Juliaで書けって話だけど、Juliaコードは他言語からの呼び出し微妙なんだよな
0839デフォルトの名無しさん
垢版 |
2017/08/17(木) 12:29:44.17ID:BOGxSFah
>>838
そういう用途ならFFIじゃなくてファイルだけ連携する伝統的なバッチでいいだろ
その方がリトライや並列化も簡単だし
0840デフォルトの名無しさん
垢版 |
2017/08/17(木) 13:35:40.38ID:EtIXwQlG
>>839
渡さないといけない波動関数情報が4GBとかになってディスク書き込みにえらい時間がかかるので、ハードディスク書き込みは最低限にしたいんだけど、なんか良い方法あるもんですか?
0842
垢版 |
2017/08/17(木) 15:51:15.31ID:Clfoc/NQ
>>840
tee的なコマンド作るといいんでないの?
0845デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:00:31.37ID:+7kF3zDD
Cは呼びやすいっちゃ呼びやすいんだが
関数のプロトタイプもろもろがヘッダファイルで定義してあるから
ヘッダファイルの移植が面倒だなぁ
何かライブラリのインターフェースに関して
統一的なフォーマットが欲しいと思わなくもないけど
どっちにしたって関数の呼び出しに必要な構造体とかも
ヘッダファイルで定義してあるし、どうにもならないんだろうな
標準入出力でやりとりするのもタルいし
WindowsならCOMとかあるけど・・・
0847
垢版 |
2017/08/18(金) 01:19:03.96ID:WQb8VpS1
>>844
中間ファイル作りながら、次工程進めれば良いのでは?って。
HDDに書き込むのはその端末自身である必要も無いだろうし、別の端末にやらせても良いかと。

teeコマンドは、標準入力からの入力を、ファイルなりなんなりと標準出力に出すコマンド
0848デフォルトの名無しさん
垢版 |
2017/08/18(金) 07:08:42.68ID:YaXOGzzP
シミュレーションなら入力の内容は全部まとめて読むだろうからパイプを使うのはあまりメリット無いでしょ
デッドロックの原因になるから作法的にも好ましくない
単純にファイル名を起動引数で渡した方がいい
0849デフォルトの名無しさん
垢版 |
2017/08/18(金) 09:59:20.00ID:64r0PFl5
>>841が非常に適切なアドバイスをくれたから、俺の書き込みでも割と通じてるんだと思ったけど、
>>844>>847には通じてなさそうな気がする
>>848には通じてる
0850
垢版 |
2017/08/18(金) 13:16:32.57ID:WQb8VpS1
>>849
通じてるよ。ただファイルで渡しても良いけど、出来上がった暁には全部流したいだろうなと思ったんだが。
0852デフォルトの名無しさん
垢版 |
2017/08/18(金) 15:56:35.28ID:64r0PFl5
>>850
流す?よく分からんけど、FFIの代わりの話ししてるのになんで標準出力にもHDDにも出すことになってるんだ??????

>>851
double precisionで構成される配列を圧縮……
0855
垢版 |
2017/08/18(金) 21:59:17.07ID:WQb8VpS1
>>852
標準出力とは限らんよ。
だからtee「的」と言ってるんだが。
0856デフォルトの名無しさん
垢版 |
2017/08/18(金) 22:15:46.41ID:64r0PFl5
何この人。結局何を伝えようとしてくれてるのか全く分からなくて怖いんだけど
0857デフォルトの名無しさん
垢版 |
2017/08/18(金) 23:31:23.26ID:j6mLrsKq
自分の頭が混乱してるのを
2chに書き込むことで整理しようとしているだけの人だからね
0858デフォルトの名無しさん
垢版 |
2017/08/19(土) 00:57:54.03ID:bV1JViRB
つか素直にメモリ詰むかSSD買ってこいよ
それも駄目ならinplaceな方法にでも書き換えるしかない
0860デフォルトの名無しさん
垢版 |
2017/08/19(土) 01:14:45.90ID:nPJhR8kx
>>858
いや普通にFFI使うわ。なんかFFI微妙そうに言われたからFFIよりいい方法があるか聞いてただけだし。
>>841の後も長々やっちゃって申し訳ない
0861デフォルトの名無しさん
垢版 |
2017/08/19(土) 01:41:53.01ID:bV1JViRB
そんなにFFIが面倒ならmmapとexecとか、端的なやりようあるよ
つか俺もストリーム処理にでもした方がいいんじゃねえかと思うが
0862デフォルトの名無しさん
垢版 |
2017/08/19(土) 02:04:33.04ID:GJ9v1oeu
FFIは不安定になったりビルドが面倒になったりデバッグも開発も面倒だったりで極力やりたくないわ
ファイルやパイプはもちろん、RPCやMQを使う手もある
0863デフォルトの名無しさん
垢版 |
2017/08/19(土) 11:08:22.66ID:SFm+w/sk
設定より規約ってのを実践すればFFIも面倒ではないだろう
パイプには型がないから型を宣言する設定ファイルもない
0864デフォルトの名無しさん
垢版 |
2017/08/19(土) 13:43:40.11ID:y3ZCFtJS
ファイルベースだと分散処理とかクソ簡単
俺も学生時代シミュレーションやってたけどMakefileのjオプションで並列化してる人もいた
0866デフォルトの名無しさん
垢版 |
2017/08/19(土) 14:01:57.56ID:E6tSyHuQ
ストリーム処理にできるかどうかって何やろうとしてるかによるでしょ
長大テキスト処理的なものかどうかはわからないのにパイプやストリームがいいって言っても意味なくない?
質問がどういうデータをどう処理するってのを専門外の人に書いてないのも返答が発散する原因の一つではあると思うけど
0868デフォルトの名無しさん
垢版 |
2017/08/19(土) 14:14:41.27ID:GJ9v1oeu
>>866
シミュレーションで波動関数情報渡すって言ってるから、
普通に考えてストリーミング処理できるようなデータではなく全部一括して扱うもんだろう
複数件のジョブをまとめてバッチとして渡してるとかなら分ける余地はあるかもしれないけど
0869デフォルトの名無しさん
垢版 |
2017/08/19(土) 14:18:44.31ID:VwTbQ4le
波動関数情報4GBをアップロードして、必要な分だけシーケンシャルかランダム・アクセスしたらいい
0870
垢版 |
2017/08/19(土) 16:00:48.68ID:b1lc6Upk
規格化されとるならtとx1でアクセスできる方が便利では?
確率密度で欲しいならちとめんどいが。
全然ジョブ別けれると思う。
0872
垢版 |
2017/08/19(土) 16:13:24.70ID:b1lc6Upk
>>871
発電機回すのは俺のやる事じゃないよ。
主任技術者がやる事。
0873デフォルトの名無しさん
垢版 |
2017/08/19(土) 16:20:38.90ID:y3ZCFtJS
この人がまともに働けるってすごいことだと思う
周りの人が理解してサポートしてくれている恵まれた環境なんだろうな
0874デフォルトの名無しさん
垢版 |
2017/08/19(土) 16:52:15.03ID:SFm+w/sk
コミュ力と文章力はほとんど関係ない気がするので文章だけ見てもよくわからないな
0875
垢版 |
2017/08/19(土) 17:57:32.52ID:b1lc6Upk
>>873
周り良い人だよ。俺含め変なやつ自体が多いけど。
人間、三十人ぐらい集まれば最終的に良い部分同士でキレイにまとまる。

>>874
文書として書くならちゃんと書くぞ。
0876デフォルトの名無しさん
垢版 |
2017/08/19(土) 21:26:38.70ID:E6tSyHuQ
>>868
趣味で超適当な流体シミュレーションぐらいしか作ったことないけど全部一括して扱うもんだろうという推測には同意する

たとえば画像処理でSIFTとかの特徴点抽出アルゴリズムを使いたい場合に、ストリーミングで実装することに可能性やメリットはあるのかなぁ。

なんでもかんでもストリーミングで実装して効率良くなるなら極端な話スパコンなんて要らないじゃんってことになると思うんだけど
0877デフォルトの名無しさん
垢版 |
2017/08/19(土) 23:57:56.57ID:3LWi1RRc
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は70万払ってる) 客:短期延長していい?
5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
0878デフォルトの名無しさん
垢版 |
2017/08/20(日) 01:15:26.57ID:r7P84g+k
>>876
そら富豪プログラミングが一番いいわ
ただリソース削ろうなんて貧乏性な考えしてるんだから他に方法ねえだろ
0879デフォルトの名無しさん
垢版 |
2017/08/20(日) 01:31:48.22ID:PUhzCj71
>>878
そういう問題じゃない
ランダムアクセスされるデータをどうやってストリーミング処理するのか
0880デフォルトの名無しさん
垢版 |
2017/08/20(日) 01:39:16.53ID:PUhzCj71
あと、>>876が言ってるスパコン云々は
データをストリーミング処理できるということはすなわちデータ件数に対して線形時間で処理できるということを意味する
全ての問題がそうだったら世の中に重い処理なんか存在しないからスパコンなんか要らないよね?ということだと思う
0881デフォルトの名無しさん
垢版 |
2017/08/20(日) 01:46:50.23ID:r7P84g+k
>>879
意味不明
メモリ転送だけが問題なら転送だけストリームすりゃいい
もとの文脈無視してただ叩きたいってだけか?
0884デフォルトの名無しさん
垢版 |
2017/08/20(日) 04:44:52.46ID:HvheRl8w
>>876だけど元の質問してる人とは別人だよ。
ストリーミング処理って普通は大きなデータをストリームで流して一部だけ処理していくことで大きなデータを全部オンメモリにしなくても処理できるから嬉しいよねっていうことで
ストリームに対して処理する実装のことを指すと思うんだけど。

元々の話はFortranはデバッグがきついからJuliaで書きたいけどデータの受け渡しイマイチだし他にいい方法あるか?って話だと思うのでリソースを削ろうって話ではないと思う
ただ、データが4GBとデカいんでmemcpyとかディスク書き込みとかは明らかなメリットがなければしたくないっていうだけの話で

そもそもメモリ転送だけストリームっていうのは、ストリーム処理と言えるのかな?そして、本来はメモリ転送も無い方がいいに決まってるので。

スパコンの例はまさに>>880の言ってるとおり。物理現象の時間発展をシミュレーションすることが目的のプログラミングなんかは瞬間瞬間のデータ全部が相互に影響を与えあっているような
モデルを用いて実装されるだろうから、全部がオンメモリでランダムアクセス可能でなきゃそもそも実現が難しいと思うのよ。今見える範囲だけ処理するというストリーミングのやり方では原則的にはうまくいかないと思う。
0885デフォルトの名無しさん
垢版 |
2017/08/20(日) 05:41:57.25ID:r7P84g+k
文脈が違うから違う結論になっただけと言ってるのに、なぜくどくど説明したがるのか…

まず最初から素直にtmpfsでも高速なSSDでも使えばすぐ済む話
まさかそれすら最初から思いつかないってことはないだろう

でもグダグダ言ってるんだから、代わりにメモリや高速ストレージに金やリソース割くのが無理って事だろ
なら共有メモリにでもするか、処理単位を分けストリーム処理でもしろって話
で、ほしい処理主体がストリームじゃなかろうが割当は細く切り出しながら渡す必要あるから、どう言い繕ったってストリーム化だよ
いちいち言葉尻につっかかるあたりマウントしたいだけだろうが
0886デフォルトの名無しさん
垢版 |
2017/08/20(日) 06:26:59.79ID:Adwommj8
>>838>>860じゃないかな
「FFIを使う」「FFIよりいい方法があるか聞いてみただけ」ということで話は終わっているような
0888デフォルトの名無しさん
垢版 |
2017/08/20(日) 09:02:07.47ID:02zgg1Cu
話は変わるけどFFIやRPCなどのインターフェイスを抽象化して多言語で共通に使える仕組みがあればいいのに
ThriftやgRPCみたいなのはサービスとして動かさなきゃいけないし、
Javaや.NETみたいなのは理想だけど仮想マシンに縛られるし
0889デフォルトの名無しさん
垢版 |
2017/08/20(日) 11:14:26.93ID:cXtFYNrL
なんだかんだ言ってjs or TypeScriptが最強な気がする
機械学習すら手軽に始められる言語になり始めてるし
https://pair-code.github.io/deeplearnjs/

ここ最近のES2015以降言語仕様の進化はいい方向に進んでいるし
パターンマッチングとか入り始めたらマジでこれでいいってなりそう。
0891デフォルトの名無しさん
垢版 |
2017/08/20(日) 11:36:57.11ID:m8177A+a
周辺のエコシステムがちっともエコじゃない
ボイラプレート使わないと、めんどくさすぎてまずスタートラインにすら立てないという
おにちく仕様
ちゅか、フロタイプかタイプスクリプトを標準にしろ
生JSはできない
0893
垢版 |
2017/08/20(日) 14:05:20.43ID:wfThuXaW
>>888
なんかすごい懐かしい言葉が色々浮かぶけど、どれも対して成功してないな。
逆にhttpがここまで伸びたのも凄いが。
0895デフォルトの名無しさん
垢版 |
2017/08/20(日) 16:38:15.82ID:HvheRl8w
>>885
「処理単位を分けられる処理」なのかは把握した上でストリーム化を勧めてるんだったらわかる。
質問者の望む処理がそういう処理だと思ったってことである程度どうやって分割するかも予想がついた上でストリーム処理にした方がいいって言ったってことだよね?

マウンティングとかじゃなくてさ、問題を的確に把握する前にアドバイスしたってしょうがないだろって思ってるだけだよ。
0896デフォルトの名無しさん
垢版 |
2017/08/20(日) 17:02:53.59ID:zvlsjK6m
>>888
結局、各言語でメモリの取り扱いが異なるわけだから、.NET みたいなことする以外に
解決方法なんてないだろう。
メモリの取り扱いを抽象化するってのはどうしたって結局のところ性能的に無理が生じる。
0897デフォルトの名無しさん
垢版 |
2017/08/20(日) 19:08:10.98ID:2qDLsNd9
847 あ[sage] 2017/08/18(金) 01:19:03.96 ID:WQb8VpS1
>>844
中間ファイル作りながら、次工程進めれば良いのでは?って。
HDDに書き込むのはその端末自身である必要も無いだろうし、別の端末にやらせても良いかと。
teeコマンドは、標準入力からの入力を、ファイルなりなんなりと標準出力に出すコマンド

849 デフォルトの名無しさん[sage] 2017/08/18(金) 09:59:20.00 ID:64r0PFl5
841が非常に適切なアドバイスをくれたから、俺の書き込みでも割と通じてるんだと思ったけど、
844、847には通じてなさそうな気がする
848には通じてる

850 あ[sage] 2017/08/18(金) 13:16:32.57 ID:WQb8VpS1
通じてるよ。ただファイルで渡しても良いけど、出来上がった暁には全部流したいだろうなと思ったんだが。

852 デフォルトの名無しさん[sage] 2017/08/18(金) 15:56:35.28 ID:64r0PFl5
流す?よく分からんけど、FFIの代わりの話ししてるのになんで標準出力にもHDDにも出すことになってるんだ??????

855 あ[sage] 2017/08/18(金) 21:59:17.07 ID:WQb8VpS1
標準出力とは限らんよ。
だからtee「的」と言ってるんだが。

856 デフォルトの名無しさん[sage] 2017/08/18(金) 22:15:46.41 ID:64r0PFl5
何この人。結局何を伝えようとしてくれてるのか全く分からなくて怖いんだけど


明らかに話が噛み合っていないのに「通じてるよ」とか、855の受け答えとか、話し通じないガイジ丸出しで大変面白い
0898
垢版 |
2017/08/20(日) 22:15:08.78ID:yEE4C2MX
>>897
なんの会話もせず、レス拾って文句つけるだけとは随分面白くて有意義な書き込みだなぁ。
0901デフォルトの名無しさん
垢版 |
2017/08/21(月) 00:48:06.97ID:COEoTBs8
>>895
そちらの言い分は分かるが、俺の言いたい事は違うよ
分割の話はFFIを界面にしてる点を取っ掛かりに言ったに過ぎない
不明な仕様という点を踏まえて、より一般化したの代替の提案してるだけ

要するに言外の事に突っ込んだ話はしてません
0902デフォルトの名無しさん
垢版 |
2017/08/21(月) 00:52:50.95ID:ogLdY0/a
このスピードのスレで単発煽りとか、普段はID真っ赤のガイジですって自己紹介してるようなもんじゃん……
0903デフォルトの名無しさん
垢版 |
2017/08/21(月) 02:03:36.52ID:sjKZo8mX
>>901
もしストリーム処理的なものを一度も考慮に入れたことがないんであれば、ストリーム処理で実装可能かどうか考えるのも一つの手かもね、
ぐらいの意味であったということかな?それなら納得します。
0907デフォルトの名無しさん
垢版 |
2017/08/22(火) 11:49:00.34ID:i6ZzO263
光のオーロラ身に纏い
君は闘う人になれ
傷つことを恐れたら
世界は悪の手に沈む

ネットバトラー爆誕である
0908デフォルトの名無しさん
垢版 |
2017/08/22(火) 11:54:49.36ID:wr0MW0qV
>>903
ニュアンスがやっぱり違うぞ
金もメモリも使わずかつ実装が簡単な代替えとなるとそうなるって話
HDDの速度考えれば都度転送のがまだマシだろ
本当はtmpfsが手っ取り早いけど
0909デフォルトの名無しさん
垢版 |
2017/08/22(火) 16:38:49.34ID:WO9jjhJ1
名古屋から山口組の6代目が出たんだし、SKEにも頑張ってほしい


◆AKBは近代ヤクザのシステムを導入しているとしか思えない◆
http://robo-mae.com/2017/06/20/

なんか本職のヤクザ?が書いてる裏事情ブログでおもろいから読んでるんだけど、
ぽいけどこの記事だけ的確過ぎて笑ってしまった。
この人は結構ヲタなんだろうけど、組内では内緒にしてるのかな?
0910
垢版 |
2017/08/22(火) 20:55:51.79ID:5SSOVQI8
パイプとかRPCでやるなら、
プロセスAがデータ作り終わったら、
プロセスAがデータを一定量、プロセスBに送って、
プロセスBはそれを受けてバッファに置いて、
プロセスAは送った分、確実にメモリを開放して、
全部送り終わったらEOF送って、
プロセスBはEOFで走り出せばいいんじゃないの?
その送受信フックしといたら、プロセスBだけもう一回走らせるのも簡単だし、別の計算機でプロセスB動かすのも簡単だし、エビデンスにもなるのでは?
0911
垢版 |
2017/08/22(火) 20:57:28.90ID:5SSOVQI8
全部送り終わったら、のところ、全部送り終わってなければ、また「一定量送って」にループね。
0913
垢版 |
2017/08/22(火) 22:19:18.76ID:5SSOVQI8
>>912
Fortranなら、allocatableで宣言して、allocateで適当な「一度の量」単位で確保して使って、送ったらdeallocateで開放すりゃいいんじゃないの?
pointerで宣言してるならちと考え方変えねばならんかもしれんが。
あと尻から送ったほうが良いかも。
GCある言語だったら開放待ち作らなきゃなんともならんな。
0915デフォルトの名無しさん
垢版 |
2017/08/24(木) 03:36:25.37ID:89P6VciC
久しぶりに覗いてみたらまだこの基〇外いたんだwww
俺が勉強している間も遊んでいる間も色々している間もずっと書き込んでいたんだねww
0917
垢版 |
2017/08/24(木) 12:57:45.68ID:aPple+DF
勉強したり遊んだり仕事したり2chに書き込んだりしてるだけだがなぁ。
一度に1つの事しか出来ないんだろうか。
0919
垢版 |
2017/08/24(木) 13:10:59.72ID:aPple+DF
賑やかしでいいんじゃないの?
黙ってたら進まんかHaskell信者が踊り狂うスレなんだし。キャットドア()の検証()するスレで良いの?

あと、そもそも盛り上がってたら静観してあんまり書かんぞ。
0920デフォルトの名無しさん
垢版 |
2017/08/24(木) 13:23:19.75ID:PzOnmf2Y
結局Haskell最強ってなるの。
正直あんまり仕事で使ってる感じしないけど。
なんか研究者が戯れに使う感じ。そもそも何に向いてる言語なのhaskellって
0921デフォルトの名無しさん
垢版 |
2017/08/24(木) 13:28:16.99ID:0Cezav5n
エンジニアガイジ再訪。Part4より

905 :デフォルトの名無しさん:2017/05/31(水) 06:14:00.96 ID:wEozaoTa
>>879
では、具体的にGHCが実行時型情報を必要とするケースを挙げてみろよ。
言っておくが、パラメトリック多相は全てコンパイル時に解決されるし、
型クラスによるアドホック多相も、あれは関数オーバーロードの形式化だからな。
関数オーバーロードはコンパイル時に解決されるぞ。
さあ、具体的に挙げてみろよ。

908 :あ:2017/05/31(水) 09:15:21.09 ID:dc+IbjjD
>>905
具体的に上げろと言われてもなぁ。
<T>を持ったenumがOptionかcar(T)とcdr(<T,T>)である時くらいかな。
0922デフォルトの名無しさん
垢版 |
2017/08/24(木) 13:32:07.62ID:z+OCxOWy
>>920
仕事で使ってるよ
ファイルのバリデートチェックとか
あとはネットワーク構成の論理矛盾がないか調べる内製ツールもHaskell
0925デフォルトの名無しさん
垢版 |
2017/08/24(木) 21:27:56.58ID:LiUup8WI
>>924
まぁ向き不向きの問題ってことかね。
haskellはバリデーションチェック系が得意っていうのはやっぱりパターンマッチングで宣言的にかけるからってことなのかね。
パターンマッチングはrustとかelixirとかでもできるわけだから
haskellじゃなきゃダメってことはなさそう。
0928デフォルトの名無しさん
垢版 |
2017/08/25(金) 00:50:39.84ID:KCgpTMlD
ある。使ったことは無いがhttps://github.com/BurntSushi/quickcheck
ただRustの型システムはHaskellより貧弱だし、最初からメモリについて意識しないとプログラムが動かない
Haskellで作ったプロトタイプをRustで書き直して速度を稼ぐのはアリ
0931デフォルトの名無しさん
垢版 |
2017/08/25(金) 13:37:23.88ID:nLnLKgfd
>>930
ちょっと言ってる意味わからない。(言いたいことはわかるかな)
暗黙の型変換好きってなら、そのあとの でも型システムを信じすぎる 云々につながるけど
0932デフォルトの名無しさん
垢版 |
2017/08/25(金) 20:25:21.97ID:7uFXgRip
暗黙嫌い=与党ってことだな
たとえ内容が全く同じでも、野党が批判するのと、与党の俺が批判するのは全然違うと
最近の日本語は面倒臭い
0934デフォルトの名無しさん
垢版 |
2017/08/25(金) 20:56:12.07ID:Yqz1DVXO
例えば perl みたいに "123" を勝手に数値変換したり文字列として取り扱ったりってな
言語は好きじゃないって話が一方であり、
じゃあ haskell みたいに型チェックを強めにやってりゃバグありませんって態度も
どうかと思うって話だよ。

なぜ与党とか政治の話になるのか謎。。
0935デフォルトの名無しさん
垢版 |
2017/08/25(金) 21:20:19.63ID:7uFXgRip
与党は比喩だな
一方、Haskellの「バグありません」って態度とか台詞とかは擬人化だろ
0936デフォルトの名無しさん
垢版 |
2017/08/26(土) 08:42:33.45ID:OYkNf4vr
PerlとHaskellは両極端だが激しい対立は起きてなかったよね
対立がなかったところに中立の勢力が現れて両極端 vs. 中立の対立が発生したよね
中立の意味ないんじゃないか?
0937928
垢版 |
2017/08/26(土) 08:49:18.26ID:Mm+y9adx
HKTが無いことを念頭に入れてのレスだったんよ。RustじゃHaskellで便利なFunctorは作れない
型システムを信じすぎるって状況が自分も想像できない。他言語の話だろうか
0938デフォルトの名無しさん
垢版 |
2017/08/26(土) 13:53:01.93ID:+XRpmYj4
ペェ〜ルだかプェチピィだか、あんな真性糞ゴミを中立の位置まで持ち上げて議論に引き出すのが
そもそも間違っている
あんなんジャップランドの土方SIerの低学歴奴隷どもしか使っとらんぞ
0939デフォルトの名無しさん
垢版 |
2017/08/26(土) 15:13:15.69ID:attIITNf
>>938
海外でも使われてるし、土方SIerはむしろPHPなんか使ってなさそうだし色々間違ってるんだが
0940デフォルトの名無しさん
垢版 |
2017/08/26(土) 15:34:56.04ID:+XRpmYj4
>>939
土方SIerにこき使われてる低学歴奴隷ども、な
おまえさんは海外でウンコが食われてたらおまえさんもウンコ食うのか
ガイジか?
0941デフォルトの名無しさん
垢版 |
2017/08/26(土) 15:37:34.37ID:yVg+x2rU
自社事業やってるベンチャーをいくつか転職活動で回ったけど、
俺達の事業に最適な最高のシステムを独自に開発した!もう人間要らねえ!俺すげぇぇ!
みたいな知性を感じないオレオレ系はPHP多かったな
もちろん即辞退
0942
垢版 |
2017/08/26(土) 15:42:18.00ID:X5M1TIXy
>>938
SIerの仕事は、技術ではなくて管理だからな。
不良率や稼働率を客と話し合って、SLAを結んで、それを満たすシステム作らせるべくプロジェクト立ち上げて管理して納品させて、自分らが納品するのが目的なんだし、
定義した稼働率満たしてりゃ中身がなんであれそれで良いよ。
それ以上の品質はただの過剰品質。化粧板止めるネジにチタン使うぐらいのバカ。
理想論者の技術バカは、ちょっと自分に何が求められてるのか把握してほしいわ。
0943デフォルトの名無しさん
垢版 |
2017/08/26(土) 16:10:01.03ID:+f59r+kw
>>941
事業としてはそれが正解な気がしないでもない。
人間いらないならなんで募集していたのかとか気になるが。
0947デフォルトの名無しさん
垢版 |
2017/08/26(土) 19:59:48.46ID:VInW/Le9
>>942
わるいが、俺は25年ぐらいしか業界経験がないから、
「過剰品質なソフトウェア」ってものを見たことがない。
品質が高すぎるが故に害があったソフトウェアの実例を教えてくれるか?
0949デフォルトの名無しさん
垢版 |
2017/08/26(土) 20:34:24.42ID:+XRpmYj4
>>948
ウンポコピーの糞プェチピィ土方を寄せ集めたジャップランド土人さんの悪口はやめたまえ
0950デフォルトの名無しさん
垢版 |
2017/08/26(土) 20:59:45.94ID:UaCnfxPk
いい加減にマ板でやれ
0952デフォルトの名無しさん
垢版 |
2017/08/27(日) 01:25:48.62ID:gWxugQMb
goだとGAE/goが使えるから。という理由でGO言語が選択されてたりするかな。

中国人がGOが好きだという話を中国人のエンジニアの人に教えてもらいました。その人の話では中国でのベンチャーはいきなり一千万人単位のユーザが生まれる場合があるから、サーバ単価が低くできるGOが好まれるとか
0953
垢版 |
2017/08/27(日) 01:26:55.82ID:0sFxQlMg
>>947
俺はもう少し若輩者だけど、それでも過剰品質はあったよ。
●非常時には止めても良いシステムで、止めないでホットパッチ当てれる仕組みまで作ってた
→案の定その部分が原因でデータ不整合が起こった
●ホットなミラーリングが出来るDB使ってみました
→そもそもテンポラリDBしか使わないジョブ用のバッチ。

と言うように、害があるってのは2つの意味がある。
それを作ったせいで余計な対応が発生して余計にかかったコストを害とする
それを作らなくても良かったのに、作った事による、単純な工数の無駄遣い。
0955デフォルトの名無しさん
垢版 |
2017/08/27(日) 03:28:48.46ID:Xm4zUSYU
>>953
PHPで非常時には止めても良いシステムを書かせる
→通常時も落ちる

PHPでDB使ってみました
→不整合データたくさん入りました

PHPを使ったことによる損失は次元が違うから・・・
0956デフォルトの名無しさん
垢版 |
2017/08/27(日) 06:45:30.70ID:uirFB7xG
PHPで求人だしてるのはそれが一番安く雇えるからだろ
品質なんて気にしないというか知らない
自分が気に入るまで文句言ってれば理想のモノが出来上がると思ってる
画面がーとか言われてもな
0957デフォルトの名無しさん
垢版 |
2017/08/27(日) 07:17:55.40ID:5p3PV0IY
>>953
データ不整合が起こったというのは、品質の不足だろ?
君が言っているのは過剰品質ではなく、過剰な作業項目による品質劣化だ。
0959デフォルトの名無しさん
垢版 |
2017/08/27(日) 08:03:58.19ID:A5vH1dU1
過剰に安く買って過剰に高く売ればいいのにね
物価を固定して品質を変えようとする奴しかいないね
0960デフォルトの名無しさん
垢版 |
2017/08/27(日) 09:30:18.93ID:J8/CoBlN
今時はSIerも>>959を夢見て自社資産(成果物の流用に限らず無形のノウハウも含む)を作ろうとしてるところも多く、
要件を超えることが必ずしも悪いわけではない
俺もコストの半分くらいが自社の投資でカバーされる案件やったことあるぞ
まあSIerのクソ技術じゃせいぜいテンプレート化までなんだけど
0961
垢版 |
2017/08/27(日) 11:15:59.94ID:0sFxQlMg
>>955
phpを安易に使ったことによる損失とは違うが、
テレメトリを受けるだけ(取りこぼしても良い)くらいなら十分よ。
>>957
機能を足したことによる、足した部分の品質不足、だな。
メインの機能は十二分にうごいてた。
蛇足そのもの。
>>960
それは研究開発費でやらないと、案件貰わない限りノウハウがたまらない≒ノウハウがないが故に失注する、を乗り越えられんし、研究開発の大切さが上に伝わらんのではないか?
ソフト屋はみんなそうなのかな。
特許請願しにくそう。
0962デフォルトの名無しさん
垢版 |
2017/08/27(日) 13:29:48.08ID:HU59sOY6
あるECサイトが情報漏えいを起こしてニュースになった。

そのECサイト PHPで調べるとだいたい ECサイト/index.php で大体ヒットする
0963デフォルトの名無しさん
垢版 |
2017/08/27(日) 13:45:21.58ID:0P4eY3kj
でもphpも最近は型アノテーション効くんだよね。
phpは型がないからダメだというのはないかも。
0965デフォルトの名無しさん
垢版 |
2017/08/27(日) 16:14:38.67ID:Xm4zUSYU
動的型付けだから書きやすい!生産性高い!
なんて喚いてたのに
今さらプリミティブ型の型アサーション導入で嬉ション漏らしてるなんて
ペチパーってひょっとして馬鹿なのか?
って思った
0966デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:30:06.18ID:0P4eY3kj
>>965
なんでステレオタイプな一つの人格にしようとしてんの?
俺はphperでもないし、動的言語がいいなんて言った覚えもない。

ただ和田さんのプレゼン、防衛的プログラミングの一環として
型アノテーションを使うことを提案されていて良いと思ったから話しただけ。

http://sssslide.com/speakerdeck.com/twada/php-conference-2016
0967デフォルトの名無しさん
垢版 |
2017/08/27(日) 18:22:30.86ID:Xm4zUSYU
>>966
PHP使うのやめたら?ってレベルのギャグだなもはや
なんかもう必死すぎて、そこまでしてPHPにしがみつくなんて
やっぱペチパーって無能なんだなって
0969デフォルトの名無しさん
垢版 |
2017/08/27(日) 18:50:11.83ID:q7bmEdLB
PHPはなぜライト層が好むのか
0970デフォルトの名無しさん
垢版 |
2017/08/27(日) 19:22:26.33ID:Xm4zUSYU
>>969
「PHPなら初心者でも書ける」という大嘘がまかり通ってるから
そんな連中が書いたゴミの山を保守する奴隷が足りてないから
やっぱり「PHPなら初心者でも書ける」と噂を流して
奴隷がやってくるのを待っている
0972デフォルトの名無しさん
垢版 |
2017/08/27(日) 19:48:59.90ID:ZA6o2PCQ
ライト層が好むんじゃなくて結果的にライト層が残るんだろ
まともにコード書ける奴はゴミみたいな単価のWeb制作なんかすぐ辞めて自社事業系に行くよ
0973デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:47:45.53ID:0P4eY3kj
>>968
プレゼンの内容ロクに見ずに批判してるのがまるわかり。
動的言語の良さと静的言語の良さをあわせてる
動的言語はメタプログラミングし易いからフレームワークの挙動を組みやすい。
でもインターフェースがゆるゆるだと使う時にひどいから
インターフェース部分を型アノテーションで固めようってことでしょ。

javaは全部かっちりしすぎて辛い部分もある。だからkotlinとか注目されてる。
ボイラープレートだらけとかシンドいのは事実

goも若干きつくて正直goaに出会うまではgoでwebやろうってあんまり思わなかった
0974デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:14:56.73ID:0uJKb2TV
動的だとメタプログラミングしやすい…?
メタプログラミングって何かわかってる??
0975デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:42:23.55ID:J8/CoBlN
確かに、Rubyのようにコード上の静的なセマンティクスと実行時のデータ構造とが明確に分離されていない言語において
動的にメソッド生やしたりするのをメタプログラミングと呼ぶのは違和感あるよな
0976デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:43:30.82ID:0P4eY3kj
>>974
ダックタイピングとマジックメソッドの組み合わせによって
例えばORMとかだとDBのスキーマ情報からメソッド生やしたりできる。
そういうのはjavaとかgoだとcode genereateするしかないでしょ。
0977デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:51:14.06ID:0P4eY3kj
>>976
あれ?俺の考えてるメタプログラミングって違うの?
例えばジェネリクスもメタプログラミングだと思ってるんだけど

https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

を見る限りじゃ合ってると思うんだけど。
簡単に言えばロジックを記述するロジックを組むのがメタプログラミングだよね。
0978デフォルトの名無しさん
垢版 |
2017/08/27(日) 22:12:18.75ID:otpxcVUC
>>977
ジェネリクスによるメタプログラミングは型という本来静的に決まっているものに依存しないという点でメタ
ロジックを記述するメタプログラミングとは意味が違う
動的言語ではメソッドが静的に定義されている必要は元々全くないし、
定義するメソッドもごく普通のメソッドであり決してロジックを生成しているわけではない
LISPみたいに実行するコードそのものを作ってしまうのがロジックを記述する方のメタプログラミングだ
0979デフォルトの名無しさん
垢版 |
2017/08/27(日) 22:25:38.24ID:J8/CoBlN
補足
動的言語でcallをフックする系のメタプログラミングがメタである所以は、
メソッドは本来クラスに対して静的にアサインされるものである、という前提において、
メソッドを動的にアサイン(動的にロジックを記述しているわけではない)しているという点だ
その前提を認めるかどうかは議論の余地がある
例えば、さすがにJavaScriptでメソッドは静的にアサインされるものだと主張するのは無理があるだろうね
0980デフォルトの名無しさん
垢版 |
2017/08/27(日) 22:26:36.34ID:QZuIwK0r
>>977
>>978

メタプログラミング関係ないけど
「ロジック」と「プログラム」という用語をどう使い分けてるの?

プログラムの中にロジックを記述した部分と
ロジック以外を記述した部分があるというニュアンスに受け取れるけど
ロジック以外の部分って具体的に何を指してるのか教えて欲しい
0981デフォルトの名無しさん
垢版 |
2017/08/27(日) 23:44:09.86ID:0P4eY3kj
>>979
難しいっすわ。
つまりjsでメタプログラミングと言ったら
jsのコードを文字列で記述してそれをevalしたものだけってこと?

学術的な定義だと言われると凄く困るんだけど、
メタ って自己言及ってことでしょ
ロジックを持ってロジックを作るという考え方全般をメタプログラミングと呼んだら
実際的に弊害があったりする?

静的言語だと例えばマクロを駆使してコード生成をかける
部分をメタプログラミングと呼ぶ。

rust のprintln!とかだよね
テンプレート文字列の内容を実際に渡すパラメータの数と型の一致の確認をコンパイル時に行う。

goだとプリプロセッサがないからcode genereteがメタプログラミングなわけだ。

でも動的言語だとコンパイルはないから全て実行時に処理する。
だから明確にメタプログラミングと言える箇所はないってことか。
そこはわかったよ。

でも、実際には静的言語にはマクロがないとできないことを動的言語はできる。
だからメタプログラミングが動的言語は得意っていいたかったんだよね。
0983デフォルトの名無しさん
垢版 |
2017/08/28(月) 00:04:08.73ID:bSe63dl4
誰がなんと言おうと、PHPみたいな糞言語使わないし、使う必要もない
生涯を保守に捧げたい哀れな土方どもにやらせておけばいい
0984デフォルトの名無しさん
垢版 |
2017/08/28(月) 00:15:01.04ID:hSp+oBxP
やはり動的型が好きな人はありとあらゆることがゆるゆるで
それはこういった会話にも表れてしまって、全てが場当たり的なんだな
会話がこうなんだから、他のこともそうなんだろう
指摘されてから直したらよい、的な

どうしてそうなってしまうのか、非常に興味深いところであるが
おそらく現実が正しく認識できていないか、もしくは根本的なところを履き違えているだとか
そんなおかしな状態で日常を過ごしていると
思考回路がいい加減になってしまって常習化してしまうのだろう

モデルが正しくないところへ幾らインプットを流し込んでも
正しく学習できないばかりか、どんどん変になっていく
そのうち何が何やらどうでもよくなってしまうのだろう
0985デフォルトの名無しさん
垢版 |
2017/08/28(月) 01:53:37.57ID:2qTxVo4t
>>984
動的型ではなくソフトウェアが好きなんだろう
ゆるゆるという言葉を正しく認識すればわかる
0988デフォルトの名無しさん
垢版 |
2017/08/28(月) 09:41:42.58ID:hmoIfjPi
あほくさ。
そこまで堅いのが好きならすべてワイヤロジックで組むべきだな。
0989デフォルトの名無しさん
垢版 |
2017/08/28(月) 09:48:23.03ID:IHzBG4Iq
メタプログラミングってどれがって定義とかじゃなくて相対的なものじゃないの
敢えて言えば平均的な使い方よりメタかどうかなので、言語によって変わってくるのでは
0990デフォルトの名無しさん
垢版 |
2017/08/28(月) 10:23:02.60ID:knrf7PIh
静的なメタプログラミングにはチューリング完全ではない特殊な言語を使う
コンパイル時に無限ループさせないために
言語が二つあるから完全に二極化している
0991デフォルトの名無しさん
垢版 |
2017/08/28(月) 15:51:07.02ID:PMfiarSN
メタプログラミングという概念について述べてるところに
メタプログラミングの実現方式について返すから話が噛み合わないわけだw
言語処理能力って重要だね
0992デフォルトの名無しさん
垢版 |
2017/08/28(月) 15:54:35.06ID:hmoIfjPi
まあこれ以上、メタプロとはってなこと話しても無駄だろうということで
話題の発端である「動的言語はメタプログラミングし易いからフレームワークの挙動を組みやすい。」
てなところに戻って、
動的言語でフレームワークの挙動を組みやすいかどうかを語った方が良いのでは?
0993
垢版 |
2017/08/28(月) 16:01:40.95ID:J4nOOC8D
>>966
素晴らしいスライドだな。
言語はおいといても、同じ思想で開発すべきかと。
言語仕様がそもそも、スライドの通りにしかつくれない言語のほうが良いとは思うけど。
0994デフォルトの名無しさん
垢版 |
2017/08/28(月) 16:11:48.75ID:hSp+oBxP
どちらにしても次世代言語の覇者なるものがもし出てくるとしても
動的型言語界隈から出てくるわけないので、どうでもよい
動的なメタプログラミングなど悪夢でしかなく、好まれるはずがない
静的な分、Cのマクロの方がましだ
静的型で出来なくて、動的型で出来ることの殆どは、悪手でしかない
結局人間にもわかりにくいし
実行速度を落としてまでサポートするほどの価値はない
0996デフォルトの名無しさん
垢版 |
2017/08/28(月) 19:04:21.49ID:nnMMDr4F
>>984
そうじゃなくて、動的型についてのあんたの理解がゆるゆるなだけだ。
つまり、ゆるゆるなのは、あんたの頭。
0997デフォルトの名無しさん
垢版 |
2017/08/28(月) 19:06:30.14ID:nnMMDr4F
>>994
つまりあんたはOSをインストールしたら最後、プログラミングなんて一切しない人なんだね。
動的であることを拒否するということは、OS上でユーザは実行可能ファイルを一切生成することも上書きすることも許されないということだ。

IEでインターネットでもしてろw
0998デフォルトの名無しさん
垢版 |
2017/08/28(月) 19:41:37.27ID:hSp+oBxP
と、このように関係のない的外れなことを言い出す
ゆるゆるなのは誰がどう見てもお前じゃねーか
0999デフォルトの名無しさん
垢版 |
2017/08/28(月) 19:48:51.91ID:hSp+oBxP
要するには何の区別も分別もついてないということだな
じゃなきゃそんな的外れなたとえ話w
そういった混沌とした状態の頭で生活をしていから
普段から、何もかも、何が何やらで
終いには全てのことが、どうでもよくなるんだろうな
悪循環だな
1000デフォルトの名無しさん
垢版 |
2017/08/28(月) 20:26:26.83ID:3Zs55+dM
よく考えてみたらメタプログラミングってgoとかでコードを書くようになったから意識するようになった。php自体は意識しないで使ってたから。

静的言語、動的言語って分け方もよくなかったね。
静的言語だってマクロ機能があればメタプログラミングはある程度できる。
goだとreflectとか使わないとphpと同じことはできないしできたとしてもかなり苦しい。
結局言語機能が不足してるのが問題なんだよね。

TypeScriptはその点でかなり自由度が高かった
型の直和型と直積型を & と | を駆使して組み合わせられるから
かなり動的言語よりにコードを書ける。

let a :string|number|undefined;

とやるとstringの可能性とnumberの可能性とundeifnedの可能性がある型が作れる。
もちろん

if (typeof a === ‘string’) {
} else if (typeof a === ‘undefined’ ) {
} else {
// ここに来るのは絶対number型だとIDEも認識する。
}
とういう風にTypeGuardも完璧に動作する。

goはエコシステムがいいのにこういうのが充実してないからかなり苦しむことになる。
だからメタプログラミングは弱いって思ったんだけど
静的言語だから弱いって言うべきではなかったな。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 76日 11時間 32分 19秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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