いざ、語ろうぞ。
スレタイ超過のため、一部省略。
Go, Erlang, Kotlin, etcもウェルカム。
Haskellは協議により次世代失格になりました
前スレ
次世代言語議論スレ[Go Rust Haskell Scala]第3世代
http://echo.2ch.net/test/read.cgi/tech/1488608741/
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/20(木) 04:43:27.12ID:mNwXvrXv
203デフォルトの名無しさん
2017/05/04(木) 12:53:07.54ID:g5LPBSe2 なんだ PHP だったのか
204あ
2017/05/04(木) 13:45:55.83ID:iOTKQL/7 >>202
口実やね。
専用品と汎用品なら、圧倒的に前者の方か仕様変更の回数は少ない。
無理に延命したり使いましたりしたいからこそ、よくわからん仕様変更するハメになる。
無駄な仕様変更なら、最初からしなけりゃいいんだよ。
無駄なんでしょ。
使い捨てを使い捨てと認識する事こそがスタート地点。
歯が折れたら取り替えたいし、違う歯を使いたいからチャックがあるんだから。
歯の代わりにバフ付けることも出来るけど、それに対して仕様変更なんか要らないでしょ。バフを新規に作るだけじゃん。
置換原則出してきて証明する必要も無い。
>>203
そうだ、と言う認識だなぁ、俺は。
PHPも同じ理由で、いろんな意味でとても潔い言語だと思うよ。
口実やね。
専用品と汎用品なら、圧倒的に前者の方か仕様変更の回数は少ない。
無理に延命したり使いましたりしたいからこそ、よくわからん仕様変更するハメになる。
無駄な仕様変更なら、最初からしなけりゃいいんだよ。
無駄なんでしょ。
使い捨てを使い捨てと認識する事こそがスタート地点。
歯が折れたら取り替えたいし、違う歯を使いたいからチャックがあるんだから。
歯の代わりにバフ付けることも出来るけど、それに対して仕様変更なんか要らないでしょ。バフを新規に作るだけじゃん。
置換原則出してきて証明する必要も無い。
>>203
そうだ、と言う認識だなぁ、俺は。
PHPも同じ理由で、いろんな意味でとても潔い言語だと思うよ。
205デフォルトの名無しさん
2017/05/04(木) 15:09:17.79ID:TpHQvZsj 言語設計とドリルチャックを一緒くたとか…完全に呆れた
206あ
2017/05/04(木) 17:00:05.42ID:iOTKQL/7 呆れるなら簡単だからな。
どう違うかをきっちり教えて欲しいわ。
本当に勉強になったら素直に勉強になったと言うことにしてるし、実際何度もそうレスしてるよ。
言語なんて外から見たときに一意に呼び出し規約や入出力が決まってりゃそれでいいんだよ。
これでも素晴らしい言語とやらを5個10個と多数見てから言ってるんだけどな。
それ以上の、実用性以上の思想の旗を振りたいなら、何故その思想が必要か語ってほしい。
どう違うかをきっちり教えて欲しいわ。
本当に勉強になったら素直に勉強になったと言うことにしてるし、実際何度もそうレスしてるよ。
言語なんて外から見たときに一意に呼び出し規約や入出力が決まってりゃそれでいいんだよ。
これでも素晴らしい言語とやらを5個10個と多数見てから言ってるんだけどな。
それ以上の、実用性以上の思想の旗を振りたいなら、何故その思想が必要か語ってほしい。
207あ
2017/05/04(木) 17:07:42.27ID:iOTKQL/7 しかし、式に型をつける構文が後置だから出来るのは本当なのかな。
キャストの前置や後置と何か違うのかなぁ。
って考えたら「宣言文 名前 型」の方が遥かに簡単にパースできるなって思わんのかな。
式に型をつけるってのも、コンパイラに教える意味での型か、キャストの型か2つの意味あるけど、どっちの事かな。
疑問。
キャストの前置や後置と何か違うのかなぁ。
って考えたら「宣言文 名前 型」の方が遥かに簡単にパースできるなって思わんのかな。
式に型をつけるってのも、コンパイラに教える意味での型か、キャストの型か2つの意味あるけど、どっちの事かな。
疑問。
208デフォルトの名無しさん
2017/05/04(木) 21:21:01.22ID:IvFxbTrW209デフォルトの名無しさん
2017/05/04(木) 22:18:26.60ID:L3vkrSi7 むしろ変な原理原則に縛られてる方が糞仕様の増加を招くのだが。
haskell みたいにな。
haskell みたいにな。
210デフォルトの名無しさん
2017/05/04(木) 22:34:29.63ID:IvFxbTrW 確かに、関数型とかいう変な原理でHaskellを理解しようとしてるならやめた方がいい
静的型の原理だけで理解できるから
静的型の原理だけで理解できるから
211あ
2017/05/04(木) 22:35:23.26ID:iOTKQL/7 >>208
「交換できる、交換出来ない」と「使い捨てである、改良を加えて連用する」は同時にどの組み合わせも成り立つのでは?
これを捨てる代わりに、これと同じ機能プラスαの新ライブラリを作る、みたいな話で、
完全に前方後方互換の代替品であるかもしれないし、そうではないものかもしれない。
そういう意味では、無条件に捨てる事ができるってのは立派な見返りだよ。
「交換できる、交換出来ない」と「使い捨てである、改良を加えて連用する」は同時にどの組み合わせも成り立つのでは?
これを捨てる代わりに、これと同じ機能プラスαの新ライブラリを作る、みたいな話で、
完全に前方後方互換の代替品であるかもしれないし、そうではないものかもしれない。
そういう意味では、無条件に捨てる事ができるってのは立派な見返りだよ。
212デフォルトの名無しさん
2017/05/04(木) 22:36:44.00ID:hGwzsYkf 良いんだよ。
Haskellは美しさが売りなんだから。
むしろ美しさを保ったまま、どこまで実用的なの作れるかが楽しいんだよ。
そう言う意味じゃsmalltalkと同じ、純粋xx言語でxxの真髄理解するなら〜って言語であって、次世代言語じゃあない。
Haskellは美しさが売りなんだから。
むしろ美しさを保ったまま、どこまで実用的なの作れるかが楽しいんだよ。
そう言う意味じゃsmalltalkと同じ、純粋xx言語でxxの真髄理解するなら〜って言語であって、次世代言語じゃあない。
213あ
2017/05/04(木) 22:36:44.02ID:iOTKQL/7 >>210
ならPrologの方が賢いし、Scalaの方がまともだし、Lispの方が最低限の原理から出来てるから、Haskellは要らない子だな。
ならPrologの方が賢いし、Scalaの方がまともだし、Lispの方が最低限の原理から出来てるから、Haskellは要らない子だな。
215デフォルトの名無しさん
2017/05/05(金) 01:26:49.15ID:xfO5LNpr Haskellは代数的データ型が便利
何気にあのレベルに便利な型システム他に見ない
何気にあのレベルに便利な型システム他に見ない
216あ
2017/05/05(金) 03:41:35.36ID:05XvGSte217デフォルトの名無しさん
2017/05/05(金) 05:49:16.66ID:IB1/E975 SmalltalkとHaskellは使ってみるとゴミと分かる二大巨頭
信者が煩いとこもソックリ
信者が煩いとこもソックリ
218デフォルトの名無しさん
2017/05/05(金) 07:09:34.37ID:+77JIYq6 >>217
アンチがウザいのもそっくりだよね
アンチがウザいのもそっくりだよね
219デフォルトの名無しさん
2017/05/05(金) 07:18:58.13ID:IB1/E975 >>218
どっちの信者?
どっちの信者?
220デフォルトの名無しさん
2017/05/05(金) 07:39:38.28ID:dc5WkLcd >>217
アンチが無知なのもそっくりだよね
アンチが無知なのもそっくりだよね
221デフォルトの名無しさん
2017/05/05(金) 08:48:03.35ID:2f8pCQ29 IntelliJとかのマトモなIDEを使った後に
Smalltalkの時代遅れのIDEモドキ?を使ってみると、
終わった言語の進化に取り残されてる感がよく分かるし
こんな出来損ないを使うの強制されるSmalltalkerって哀れだなーって優しい気持ちになれるよ
Smalltalkの時代遅れのIDEモドキ?を使ってみると、
終わった言語の進化に取り残されてる感がよく分かるし
こんな出来損ないを使うの強制されるSmalltalkerって哀れだなーって優しい気持ちになれるよ
222デフォルトの名無しさん
2017/05/05(金) 09:20:19.67ID:7NmAzLlS >>221
言語としてはどこらへんがゴミなの?
言語としてはどこらへんがゴミなの?
223デフォルトの名無しさん
2017/05/05(金) 09:39:59.96ID:2f8pCQ29 >>222
動的型言語の中ではぶっちぎりで冗長なコードになるところ
動的型言語の中ではぶっちぎりで冗長なコードになるところ
224デフォルトの名無しさん
2017/05/05(金) 09:54:56.24ID:WrAdTxbV 文字列クラスを改変したら元に戻せないという話はSmalltalkにも当てはまるのかな
文字列クラスクラスがあれば壊れたクラスを使い捨てて新品のクラスに交換できるのに
文字列クラスクラスがあれば壊れたクラスを使い捨てて新品のクラスに交換できるのに
225デフォルトの名無しさん
2017/05/05(金) 10:13:52.40ID:b5hiFaeg >>224
クラスが壊れるという事自体が糞めんどくさい
クラスが壊れるという事自体が糞めんどくさい
226デフォルトの名無しさん
2017/05/05(金) 13:00:01.57ID:tVaTXT91 Smalltalkっていうか遅延結合の徹底ってスタイルは人類には早すぎたんだな
227デフォルトの名無しさん
2017/05/05(金) 16:27:38.21ID:lho11o7a RESTful API等でサービス間を遅延結合するのは流行ってるしメリットがあるけど
ひとつのプロセス内で遅延結合しても意味が無い
アホは適切な抽象化レベルってものが分からないから
やりすぎてナンセンスになっちゃうんだよね
Smalltalkはアホがナンセンスなデザインした結果死ぬべくして死んだ言語
ひとつのプロセス内で遅延結合しても意味が無い
アホは適切な抽象化レベルってものが分からないから
やりすぎてナンセンスになっちゃうんだよね
Smalltalkはアホがナンセンスなデザインした結果死ぬべくして死んだ言語
228デフォルトの名無しさん
2017/05/05(金) 17:23:18.30ID:9atsKcF/ Haskellは遅延評価が本当に苦痛すぎる
あの辛さはやってみるまで想像もつかなかった
あの辛さはやってみるまで想像もつかなかった
229デフォルトの名無しさん
2017/05/05(金) 17:51:23.35ID:tVaTXT91 Smalltalkにおいて「遅延結合の徹底」に期待されるのは通常の言語で想定されるそれとは違って
システム構築中に得られた新たな知見を、既に構築済みだったり運用中の部分へ適用できたり
オブジェクトとそのストアを長期にわたって運用し続けるために細胞の新陳代謝を模した試みだから
http://metatoys.org/oxymoron/oxymoron.html
'70年代からほんの数回の再起動で動き続けている同システムは狙いとしては成功しているんだよね
システム構築中に得られた新たな知見を、既に構築済みだったり運用中の部分へ適用できたり
オブジェクトとそのストアを長期にわたって運用し続けるために細胞の新陳代謝を模した試みだから
http://metatoys.org/oxymoron/oxymoron.html
'70年代からほんの数回の再起動で動き続けている同システムは狙いとしては成功しているんだよね
230デフォルトの名無しさん
2017/05/05(金) 17:51:28.56ID:RNJ7gaAH 無限リスト扱えるし便利でもあり、バグ取りで厄介でもあるね。
RWHにその辺の解決策載ってるから手元に置いとくと良い。
RWHにその辺の解決策載ってるから手元に置いとくと良い。
231デフォルトの名無しさん
2017/05/05(金) 17:51:33.32ID:xTb1W+Ca 馬鹿は抽象化することがなんでもえらいと思ってるからね。。
232あ
2017/05/05(金) 19:50:22.56ID:05XvGSte >>227
意味無いとは言わんがなぁ。
プロセス内でもプロトコル決めてやっとくと、あとでスケールするとか、
固まりへのインアウトが自ずと決まるから可換だと言いやすいとは思う。
やりすぎると自分の重さで死ぬだけで。
意味無いとは言わんがなぁ。
プロセス内でもプロトコル決めてやっとくと、あとでスケールするとか、
固まりへのインアウトが自ずと決まるから可換だと言いやすいとは思う。
やりすぎると自分の重さで死ぬだけで。
233デフォルトの名無しさん
2017/05/05(金) 20:29:10.87ID:RNJ7gaAH FacebookでHaskell採用されたね。
234デフォルトの名無しさん
2017/05/05(金) 20:49:47.45ID:JET5JsI8236デフォルトの名無しさん
2017/05/05(金) 21:21:35.63ID:JET5JsI8 >>235
そんなら勘違いしてるね
そんなら勘違いしてるね
237デフォルトの名無しさん
2017/05/05(金) 21:31:07.05ID:n4hNDFR+ 全然関係ないけど、字数が少ないコードって一目で取れる情報が多くて読みやすくて好きだわ
238デフォルトの名無しさん
2017/05/05(金) 21:42:23.21ID:RNJ7gaAH239デフォルトの名無しさん
2017/05/05(金) 22:47:31.33ID:PGBNZ8Aw いつの間にかHaskellがスレタイから抜けててワロた。
240デフォルトの名無しさん
2017/05/05(金) 23:29:21.86ID:RNJ7gaAH 取り敢えず拡張性比べるんならプログラム組むべ。
まずはファイル名とキーワードを受け取って、ファイルの中にキーワードがあったらTrue。無かったらFalseと表示するコマンド。
プログラミング自体から離れてだいぶ経ったので、錆びた頭だったがHaskellでどうにか書いてみた。
search部分を拡張してくから、各自searchは自前で書いてくれ。
import System.Environment
search _ [] = False
search s ns | take (length s) ns == s = True
search s (_:ns) = search s ns
main = do
arga <- getArgs
content <- readFile $ args!!0
print $ search (args!!1) content
まずはファイル名とキーワードを受け取って、ファイルの中にキーワードがあったらTrue。無かったらFalseと表示するコマンド。
プログラミング自体から離れてだいぶ経ったので、錆びた頭だったがHaskellでどうにか書いてみた。
search部分を拡張してくから、各自searchは自前で書いてくれ。
import System.Environment
search _ [] = False
search s ns | take (length s) ns == s = True
search s (_:ns) = search s ns
main = do
arga <- getArgs
content <- readFile $ args!!0
print $ search (args!!1) content
241デフォルトの名無しさん
2017/05/05(金) 23:31:16.17ID:tVaTXT91 前スレのドアのお題をPharo Smalltalkでも書いてみた
http://ws.stfx.eu/JD8JH4XF3I3U
Go版ももう少しマシな感じにしてみた
http://ideone.com/aFqKsd
http://ws.stfx.eu/JD8JH4XF3I3U
Go版ももう少しマシな感じにしてみた
http://ideone.com/aFqKsd
242デフォルトの名無しさん
2017/05/05(金) 23:36:43.64ID:RNJ7gaAH だから、使い所不明なクラス書いてどうしろと。
プログラム組みたいのであってクラス作りたいんじゃ無いんだぞ?
プログラム組みたいのであってクラス作りたいんじゃ無いんだぞ?
243デフォルトの名無しさん
2017/05/05(金) 23:59:41.96ID:tVaTXT91 >>242
いや別に>>240へのレスというわけではないのだが…
これでいいか?(Squeak Smalltalk、もしくはPharo)
| search |
search := [:fname :keywd |
FileStream oldFileNamed: fname do: [:file |
(file findString: keywd) > 0
]
].
search value: 'test.txt' value: 'something' "=> true "
http://ws.stfx.eu/1UQT4K8GSVHU
いや別に>>240へのレスというわけではないのだが…
これでいいか?(Squeak Smalltalk、もしくはPharo)
| search |
search := [:fname :keywd |
FileStream oldFileNamed: fname do: [:file |
(file findString: keywd) > 0
]
].
search value: 'test.txt' value: 'something' "=> true "
http://ws.stfx.eu/1UQT4K8GSVHU
244デフォルトの名無しさん
2017/05/06(土) 00:04:14.20ID:nikLe03p >>240
それだとコンパイル通らないよ
import System.Environment (getArgs)
import System.IO (readFile)
import Data.List (isInfixOf)
search :: String -> String -> Bool
search = isInfixOf
main :: IO ()
main = do
(word:file:_) <- getArgs
putStrLn . show =<< search word <$> readFile file
それだとコンパイル通らないよ
import System.Environment (getArgs)
import System.IO (readFile)
import Data.List (isInfixOf)
search :: String -> String -> Bool
search = isInfixOf
main :: IO ()
main = do
(word:file:_) <- getArgs
putStrLn . show =<< search word <$> readFile file
245デフォルトの名無しさん
2017/05/06(土) 00:23:53.40ID:9tv813Aq え。。。
通ったけど。。。
通ったけど。。。
246デフォルトの名無しさん
2017/05/06(土) 00:29:01.13ID:gXvlLccW うん、普通のデータ処理の比較は面白そうだ。
247デフォルトの名無しさん
2017/05/06(土) 00:29:23.53ID:9tv813Aq248デフォルトの名無しさん
2017/05/06(土) 00:33:03.34ID:nikLe03p249デフォルトの名無しさん
2017/05/06(土) 00:35:03.84ID:9tv813Aq あ、argsをargaってタイポしてた。。。
LinuxにHaskell入れたばかりなのでPCで実行確認してiPhoneで書き込んでるんで、コピペでコンパイル出来ない時はどこかタイポあると思う。
LinuxにHaskell入れたばかりなのでPCで実行確認してiPhoneで書き込んでるんで、コピペでコンパイル出来ない時はどこかタイポあると思う。
250デフォルトの名無しさん
2017/05/06(土) 00:50:29.93ID:9tv813Aq 次世代言語勢に参戦して貰わんとだから、第二形態は明日の夜発表って感じで良いかな。
一応、第三形態までの予定。
明後日から夜勤なんで、第三形態どうすっかな。
一応、第三形態までの予定。
明後日から夜勤なんで、第三形態どうすっかな。
252あ
2017/05/06(土) 02:11:17.59ID:BE072L/9 >>241
Go版、マシどころか疎にしておいたところ密にされてしまったな。
ノブのないドア、ノブはあるけどラッチのないドア
実現する術がなくなったね。
With Withなんて気色悪い無理に継承関係を作ったような型作るくらいならもう継承とか全部捨てたほうがマシ。
もうちょっと真面目にやって。
Go版、マシどころか疎にしておいたところ密にされてしまったな。
ノブのないドア、ノブはあるけどラッチのないドア
実現する術がなくなったね。
With Withなんて気色悪い無理に継承関係を作ったような型作るくらいならもう継承とか全部捨てたほうがマシ。
もうちょっと真面目にやって。
253デフォルトの名無しさん
2017/05/06(土) 03:50:07.06ID:oP2bFz9u Kotlinになれるためにアプリを作ってるんだけど、久しぶりにc++触るとセミコロンがうっとおしくなるね
参照、ポインタ、値を自由に扱えてかつ新しい言語の特徴を捉えてるような言語が出てほしい
参照、ポインタ、値を自由に扱えてかつ新しい言語の特徴を捉えてるような言語が出てほしい
254デフォルトの名無しさん
2017/05/06(土) 06:35:37.73ID:7HgaeBZn 勝手にHaskellをスレタイから省くな。
255デフォルトの名無しさん
2017/05/06(土) 07:19:08.10ID:gBi5/Vqg >>252
前スレの埋め込みを使った再帰型の試みとして、主要なメソッドを再定義しなければならない版より「マシ」と言ったまでで
君のチャンネル版よりマシという意味ではない
それは他言語版と同じ設計で比較しやすくしたって程度だから気にしないで
前スレの埋め込みを使った再帰型の試みとして、主要なメソッドを再定義しなければならない版より「マシ」と言ったまでで
君のチャンネル版よりマシという意味ではない
それは他言語版と同じ設計で比較しやすくしたって程度だから気にしないで
256デフォルトの名無しさん
2017/05/06(土) 07:23:37.59ID:gXvlLccW 各自、次世代言語に求めるものが違うのだろうけど、
気を悪くしないで欲しいがHaskell外してKotlinは個人的にはないかな。
敢えて外すなら次世代感満載のAgdaを入れて欲しい。
が、呼び水としての趣旨からしたらHaskellを敢えて外す理由が分からない、個人的な怨嗟?
気を悪くしないで欲しいがHaskell外してKotlinは個人的にはないかな。
敢えて外すなら次世代感満載のAgdaを入れて欲しい。
が、呼び水としての趣旨からしたらHaskellを敢えて外す理由が分からない、個人的な怨嗟?
257デフォルトの名無しさん
2017/05/06(土) 08:00:28.21ID:Yu22orOs 実用性が乏しすぎるので次世代にふさわしくないとの事
あと前スレでまともなコードを掲示しなかったので、そもそもHaskellerが居ない事が分かった
あと前スレでまともなコードを掲示しなかったので、そもそもHaskellerが居ない事が分かった
258デフォルトの名無しさん
2017/05/06(土) 08:15:37.40ID:JdaZnrFf259デフォルトの名無しさん
2017/05/06(土) 08:35:08.14ID:9tv813Aq Haskell推しだが、次世代取れるほどライブラリ充実してないし、速くもないからsmalltalk的な立ち位置だと思ってる。
次世代じゃ無いけど、学ぶべき価値ある言語。
次世代じゃ無いけど、学ぶべき価値ある言語。
260デフォルトの名無しさん
2017/05/06(土) 08:41:48.81ID:gBi5/Vqg >>255
参考まで、ほぼ同じ設計にした場合の
Ruby版 http://ideone.com/7VnOfe
Python版 http://ideone.com/UngSO8
Scala版 http://scastie.org/30851
Swift版 http://swift.sandbox.bluemix.net/#/repl/59032b64ebfba02b8d274320
参考まで、ほぼ同じ設計にした場合の
Ruby版 http://ideone.com/7VnOfe
Python版 http://ideone.com/UngSO8
Scala版 http://scastie.org/30851
Swift版 http://swift.sandbox.bluemix.net/#/repl/59032b64ebfba02b8d274320
261デフォルトの名無しさん
2017/05/06(土) 08:43:22.81ID:9tv813Aq262あ
2017/05/06(土) 08:50:48.08ID:BE072L/9263デフォルトの名無しさん
2017/05/06(土) 08:56:13.51ID:VviFbgmi 各言語、得意分野あるからな。
証明付きでプログラム書けとかなったら、Coqなどの証明支援系の独壇場で、
他言語の入り込む余地がないように思われるが如何?
証明付きでプログラム書けとかなったら、Coqなどの証明支援系の独壇場で、
他言語の入り込む余地がないように思われるが如何?
264デフォルトの名無しさん
2017/05/06(土) 08:58:57.84ID:ye19IDAy Bertrand MeyerがEiffelを大事そうに抱えながら>>263を睨んでいるぞ。
265デフォルトの名無しさん
2017/05/06(土) 09:31:45.79ID:nikLe03p 自分もRubyやGroovy使ってたせいかもしれないが
Kotlinは言語としては悪くないけど次世代感は感じない
golangぐらい簡素な仕様にしてくれればまた違ったとは思うけどJVM言語だしなあ
Kotlinは言語としては悪くないけど次世代感は感じない
golangぐらい簡素な仕様にしてくれればまた違ったとは思うけどJVM言語だしなあ
266デフォルトの名無しさん
2017/05/06(土) 10:21:48.72ID:BwUsBv8i 言語が次世代でありさえすればライブラリはJVMでもなんでもいいぞ
ライブラリ関係ないなら、ライブラリがない言語でも参加しやすい
ライブラリ関係ないなら、ライブラリがない言語でも参加しやすい
267デフォルトの名無しさん
2017/05/06(土) 10:22:29.07ID:ubF1nelW >>262
> smalltalkでもパッシングに徹すればひたすらコーディング量はあるけど割りと文句無いのできそう
具体的にはどこらへんにその「量」を感じた?
ドアの振る舞いを記述してるコード自体はGoで書くよりずっと簡潔でステップ数も少ないはずだけど
念のため補足すると件のSmalltalk版では、通常はGUIやIDE任せにするクラスやメソッドの定義
(ちなみにGNU Smalltalkなどを除き、IDE前提のSmalltalkにはクラスやメソッド定義の構文が無い)
をあえてクラスへのメッセージングでやっているのでそのぶん冗長にみえるかもしれないけど
> smalltalkでもパッシングに徹すればひたすらコーディング量はあるけど割りと文句無いのできそう
具体的にはどこらへんにその「量」を感じた?
ドアの振る舞いを記述してるコード自体はGoで書くよりずっと簡潔でステップ数も少ないはずだけど
念のため補足すると件のSmalltalk版では、通常はGUIやIDE任せにするクラスやメソッドの定義
(ちなみにGNU Smalltalkなどを除き、IDE前提のSmalltalkにはクラスやメソッド定義の構文が無い)
をあえてクラスへのメッセージングでやっているのでそのぶん冗長にみえるかもしれないけど
268デフォルトの名無しさん
2017/05/06(土) 12:29:53.45ID:64kzmcng 何でSmalltalkerさんは劣った設計で比較する事に拘ってんの?
Goが得意な技法はダメ、Smalltalkで書きやすい技法だけ使って書くっていう縛りでもあるの?
Goが得意な技法はダメ、Smalltalkで書きやすい技法だけ使って書くっていう縛りでもあるの?
269デフォルトの名無しさん
2017/05/06(土) 12:43:22.47ID:xfCUj8G0 >>259
同意
同意
270デフォルトの名無しさん
2017/05/06(土) 12:46:26.00ID:ye19IDAy271デフォルトの名無しさん
2017/05/06(土) 12:52:37.52ID:ubF1nelW >>268
いや別に拘ってないですよ
そもそも誤解があるようなので断わっておくとGoを貶めるつもりは全然なくて
Smalltalkに難癖を付けてるID:BE072L/9が前スレからGoが詳しそうなんで
その方がわかりやすかろうとGoを引き合いに出したまでです
Goの得意な技法を駆使した優れた設計ってどんなのですか?ぜひ教えてください
今のところ埋め込みスタイル以外で出ているのだとこういうのでしょうか?→http://ideone.com/yvttId
このお題自体では設計を工夫しにくいと言うことであれば、新たにGoに有利なお題をご提供いただければと
いや別に拘ってないですよ
そもそも誤解があるようなので断わっておくとGoを貶めるつもりは全然なくて
Smalltalkに難癖を付けてるID:BE072L/9が前スレからGoが詳しそうなんで
その方がわかりやすかろうとGoを引き合いに出したまでです
Goの得意な技法を駆使した優れた設計ってどんなのですか?ぜひ教えてください
今のところ埋め込みスタイル以外で出ているのだとこういうのでしょうか?→http://ideone.com/yvttId
このお題自体では設計を工夫しにくいと言うことであれば、新たにGoに有利なお題をご提供いただければと
272デフォルトの名無しさん
2017/05/06(土) 12:58:55.97ID:ubF1nelW273デフォルトの名無しさん
2017/05/06(土) 13:05:23.06ID:BwUsBv8i 愚問という便利な言葉がある
答える側には間違えるリスクがあるのに問う側を無リスクで無謬とするのは不公平
答える側には間違えるリスクがあるのに問う側を無リスクで無謬とするのは不公平
274デフォルトの名無しさん
2017/05/06(土) 13:51:25.64ID:dM6SBXFL その言語特有の機能で書いた方が優劣分かりやすくね?
275デフォルトの名無しさん
2017/05/06(土) 14:24:42.57ID:wNWjHlrM >Goの得意な技法を駆使した優れた設計
chan と select 使ったサーバープログラムなんでねーの。
ああいうふうにチャンネルに放り込んだものを適当に一列に並べてくれるのはかなり楽。
chan と select 使ったサーバープログラムなんでねーの。
ああいうふうにチャンネルに放り込んだものを適当に一列に並べてくれるのはかなり楽。
276デフォルトの名無しさん
2017/05/06(土) 15:30:08.75ID:TldMS9JZ ここまで次世代言語から>>240のコードが出てない件。
単純な力押し検索だから、難しいアルゴリズムでも無いんだが。。。
おいらも頭悪いんよ。
>>244の書き方でargs書き換えと、nsをcontentから取ってcsへ変更。sも折角だからwordから取ってwへ。
import System.Environment
search _ [] = False
search w cs | take (length w) cs == w = True
search w (_:cs) = search w cs
main = do
(file:word:_) <- getArgs
content <- readFile file
print $ search word content
単純な力押し検索だから、難しいアルゴリズムでも無いんだが。。。
おいらも頭悪いんよ。
>>244の書き方でargs書き換えと、nsをcontentから取ってcsへ変更。sも折角だからwordから取ってwへ。
import System.Environment
search _ [] = False
search w cs | take (length w) cs == w = True
search w (_:cs) = search w cs
main = do
(file:word:_) <- getArgs
content <- readFile file
print $ search word content
277デフォルトの名無しさん
2017/05/06(土) 15:43:50.78ID:TldMS9JZ 仕様変更への耐性だから、基準となる第一形態のコードの長さは問わない。
どんな変更があるか事前準備したクラスがあってもおk。
第三形態までの変更箇所の少なさが言語の優劣とする。
どんな変更があるか事前準備したクラスがあってもおk。
第三形態までの変更箇所の少なさが言語の優劣とする。
278あ
2017/05/06(土) 16:40:50.57ID:BE072L/9 意見≒難癖とは生きづらいな
279デフォルトの名無しさん
2017/05/06(土) 18:13:57.91ID:ye19IDAy 事実に基づかない悪評価は難癖だわな
280デフォルトの名無しさん
2017/05/06(土) 20:12:56.46ID:XqR1goBE エンジニアガイジのGo版ってあのなぜか最初から並列化を意識して書かれてたやつだっけ?
281あ
2017/05/06(土) 23:05:01.66ID:BE072L/9 >>279
主観としての悪評価と客観としての悪評価を混同すんなよ…。
採点してる訳じゃないんだから。そこまで傲慢でも無いよ。
俺Rubyボロクソに言ってるけど、主観としてだよ。
>>280
並列化を意識してるんじゃないよ。
コンポーネントとして存在し得るかを考えただけ。
ノブがノブだけで存在できないなんておかしいじゃん。何にも繋がってない地面に転がったノブさえ定義できないのに、突然ドアについてる突起をノブだと言うくらい不自然じゃないの?
オブジェクト指向ってなんなの?
地面に転がってるのも、ドアについててもノブであって、ノブとしての役割を果たしているか否かでしかないのでは?
確かにそのノブがノブとして成立するのはドアについたときだろうけど、それ以前からそいつ自身の存在が変わったわけじゃないじゃん。
主観としての悪評価と客観としての悪評価を混同すんなよ…。
採点してる訳じゃないんだから。そこまで傲慢でも無いよ。
俺Rubyボロクソに言ってるけど、主観としてだよ。
>>280
並列化を意識してるんじゃないよ。
コンポーネントとして存在し得るかを考えただけ。
ノブがノブだけで存在できないなんておかしいじゃん。何にも繋がってない地面に転がったノブさえ定義できないのに、突然ドアについてる突起をノブだと言うくらい不自然じゃないの?
オブジェクト指向ってなんなの?
地面に転がってるのも、ドアについててもノブであって、ノブとしての役割を果たしているか否かでしかないのでは?
確かにそのノブがノブとして成立するのはドアについたときだろうけど、それ以前からそいつ自身の存在が変わったわけじゃないじゃん。
282デフォルトの名無しさん
2017/05/06(土) 23:09:30.32ID:bKqO2+sL >>281
んー。クローザーついてないドアにもスレッド使ってなかったっけ?
んー。クローザーついてないドアにもスレッド使ってなかったっけ?
283あ
2017/05/06(土) 23:16:33.79ID:BE072L/9 >>282
スレッドと言うかまあマイクロスレッド使ってるけど。
キューイングしてる所で同期をGoにやってもらった形に近い。
イベントやらメッセージパッシングと変わらんつもりだけど、キュー抜いて中もgoroutineなのは確かに悪手は悪手か。
それは確かにそうだな。
スレッドと言うかまあマイクロスレッド使ってるけど。
キューイングしてる所で同期をGoにやってもらった形に近い。
イベントやらメッセージパッシングと変わらんつもりだけど、キュー抜いて中もgoroutineなのは確かに悪手は悪手か。
それは確かにそうだな。
284デフォルトの名無しさん
2017/05/07(日) 02:09:25.68ID:bNWzpChq まだHaskell信者が暴れてるのか
ラッチの開閉すら実装出来ないと前スレで判明してのによく再登場出来るな
ラッチの開閉すら実装出来ないと前スレで判明してのによく再登場出来るな
285デフォルトの名無しさん
2017/05/07(日) 02:38:17.71ID:zdh+Rbcj いやあの問題が糞だと思ったHaskellerが問題出してる流れじゃないの?
286デフォルトの名無しさん
2017/05/07(日) 02:59:03.65ID:JOXD31Or >>284
実装はできてたでしょ?
実装はできてたでしょ?
287デフォルトの名無しさん
2017/05/07(日) 04:54:40.21ID:ehHyxLGM 久しぶりに覗いてみたけど、お前らまだやってたの?
良く飽きないな
良く飽きないな
288デフォルトの名無しさん
2017/05/07(日) 08:02:58.35ID:M/7nygcc Smalltalkerはお題で使って良い言語機能に縛りを入れようとするからクソ
289デフォルトの名無しさん
2017/05/07(日) 08:26:48.70ID:HF1KyfYe まぁここであーだこーだ言ったところで、大手の採用が多くなった言語が次世代扱いになるだけだからな
主に決めるのは外人だ
主に決めるのは外人だ
290デフォルトの名無しさん
2017/05/07(日) 09:55:32.27ID:6O1o1Sih291デフォルトの名無しさん
2017/05/07(日) 10:05:54.32ID:4Tfm86M3 >>281
主観で悪評価しているなら、それこそ難癖以外の要素ゼロじゃないか。
主観で悪評価しているなら、それこそ難癖以外の要素ゼロじゃないか。
292デフォルトの名無しさん
2017/05/07(日) 10:48:31.07ID:6O1o1Sih 嘘ニュースを野放しにして個人の感想を問題視するのは本末転倒
293デフォルトの名無しさん
2017/05/07(日) 10:56:51.74ID:U5ljnRqU Haskell 難しすぎて叩きたくなるのもわかる。
294デフォルトの名無しさん
2017/05/07(日) 11:24:25.93ID:PZmLVVS1 ほんと難しいよ
物を作る道具としては失格だな
物を作る道具としては失格だな
295デフォルトの名無しさん
2017/05/07(日) 11:25:56.17ID:6O1o1Sih 静的型が難しすぎて失格なんだよ
叩きたいことと叩くべきことが一致してない
叩きたいことと叩くべきことが一致してない
296デフォルトの名無しさん
2017/05/07(日) 11:29:53.16ID:Kq+qtoGk microsoft word の動作が難しいって意味での難しさだわな。
無意味なむずかしさだわ。
無意味なむずかしさだわ。
297デフォルトの名無しさん
2017/05/07(日) 11:56:43.37ID:uANj4DVJ 性的型が難しいって。。。
自分で正しくプログラム組めてませんって言ってるようなもんじゃん。。。
自分で正しくプログラム組めてませんって言ってるようなもんじゃん。。。
298デフォルトの名無しさん
2017/05/07(日) 12:01:01.50ID:uANj4DVJ 溜まってんのかな。。。
x性的型が
o静的型が
x性的型が
o静的型が
299デフォルトの名無しさん
2017/05/07(日) 14:33:06.42ID:2RFcNsFZ お前らのゆう次世代言語って、キャットドア問題を解けるのか?
300デフォルトの名無しさん
2017/05/07(日) 14:53:43.84ID:38Z51qvh301デフォルトの名無しさん
2017/05/07(日) 14:58:24.43ID:EXP2lJkU >>240
>>276
ライブラリ使うのとかはありかな?
主旨から外れるかもしれないが、こんなのどうだろう
import System.Environment
import Data.Conduit
import qualified Data.Conduit.Text as CT
import qualified Data.Conduit.Binary as CB
import Control.Monad.Trans.Resource
import qualified Data.Text as T
import Control.Monad.IO.Class (MonadIO)
searchSink :: (Monad m, MonadIO m) => T.Text -> Sink T.Text m Bool
searchSink w = do
n <- await
return $ case n of
Nothing -> False
Just s -> T.isInfixOf w s
main :: IO ()
main = do
(file:word:_) <- getArgs
x <- runResourceT
$ CB.sourceFile file
$= CT.decode CT.utf8
$$ searchSink (T.pack word)
print x
>>276
ライブラリ使うのとかはありかな?
主旨から外れるかもしれないが、こんなのどうだろう
import System.Environment
import Data.Conduit
import qualified Data.Conduit.Text as CT
import qualified Data.Conduit.Binary as CB
import Control.Monad.Trans.Resource
import qualified Data.Text as T
import Control.Monad.IO.Class (MonadIO)
searchSink :: (Monad m, MonadIO m) => T.Text -> Sink T.Text m Bool
searchSink w = do
n <- await
return $ case n of
Nothing -> False
Just s -> T.isInfixOf w s
main :: IO ()
main = do
(file:word:_) <- getArgs
x <- runResourceT
$ CB.sourceFile file
$= CT.decode CT.utf8
$$ searchSink (T.pack word)
print x
302デフォルトの名無しさん
2017/05/07(日) 15:03:42.15ID:zdh+Rbcj キャットドアが解けて何かいいことがあるんですかね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
