[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 12/27 16:26 / Filesize : 104 KB / Number-of Response : 328
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向ってクソじゃねぇかよPart3



1 名前:デフォルトの名無しさん [2018/11/22(木) 20:07:52.47 ID:OdN2A7JT.net]
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。


カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96

前前スレ
オブジェクト指向ってクソじゃね?
https://mevius.5ch.net/test/read.cgi/tech/1535085129/

前スレ
オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/

159 名前:デフォルトの名無しさん [2018/12/05(水) 12:19:31.57 ID:ZLI12txd.net]
>>158
> 何よりもユーザーが作れるもの全てがオブジェクトになるんで「ここだけオブジェクト指向の考えを入れよう」っていうアプローチがとれない

と言っているのにその擁護はおかしい。

160 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 14:32:43.01 ID:w2+RR7F7.net]
>>159
ユーザーがプリミティブ型を作れると思ってる?

161 名前:デフォルトの名無しさん [2018/12/05(水) 14:40:35.72 ID:3gNaylqN.net]
>>160
分かった。けど>>155の文章力はちょっと酷すぎないか…

162 名前:デフォルトの名無しさん [2018/12/05(水) 16:30:58.93 ID:ifntcr/4.net]
>>153
OOPも元は宣言的を目指してるし、smalltalkや最近の関数型機能も取り込んだOOPな言語もある程度宣言的なんだよね。
じゃあ宣言的ってなんぞやってなるんだけど、HaskellもPrologも結局ループを再帰とかmapとかfoldlとかに置き換えて、if/switch文がガードやパターンマッチになっただけって言う。
(実際、Haskellのパターンマッチはcase(C言語系のswitch)の構文糖衣)

OOPもそう言う制御構造をメソッドに押し込んじゃえって感じだけど(少なくともmainとかの中身は宣言的に書きやすい)、メソッドの中身は相変わらず手続き的と言う。
(この辺、最近の言語だとクロージャ(ラムダ式含む)やらLinqやらで比較的、制御構造を隠蔽し易くなってると思う。あとはif/switch文だけだ。がんばれ!)

でも逆にそう言う目で見ると、関数型言語も手続き型言語も大差無い。
(関数型言語も事実上の再代入は可能だし)

強いて言えば関数型言語の方が関数に分割し易かったり、ガードやパターンマッチで分岐のネストが減る分、見やすいってだけ。
(どっちかと言えばアルゴリズムと相性が良いリストが基本か、効率重視の配列が基本かの違いの方が大きいので、リスト使う限り文法以上の違いは感じない)

GoとRust入門サイト読んでみたけど、どっちもOOPじゃ無いんだね。

Go=手続き型言語に最近トレンドの機能入れました。(ただしOOPは除く)
Rust=手続き型言語でも関数プログラミングな書き方出来ますが、関数型言語は言語レベルでサポートしてますー>なら、手続き型言語でも言語レベルで関数プログラミングをサポートしようじゃ無いか。

Goは依存関係に苦しんでた結果生まれたとか(dllとか基本的に作らない方針)、OOPへの問題提起な印象。
RustはOCamlとかSMLで良くね?と思ったけど、関数型言語のままだと普及しないから、手続き型言語に寄せました的な印象。

163 名前:デフォルトの名無しさん [2018/12/05(水) 17:09:13.00 ID:dEDNahW6.net]
OOPのすべてを表現できるOOPLが無いから
こうなるんだよ。たぶん不可能だし、その場しのぎ
で作って、文法ごと捨ててしまうのが正しい。

164 名前:デフォルトの名無しさん [2018/12/05(水) 17:10:16.06 ID:dEDNahW6.net]
>>141
そんなミイラの話をするのか?

165 名前:デフォルトの名無しさん [2018/12/05(水) 17:39:07.44 ID:dEDNahW6.net]
死んだのはJavaだけやろ
そらインタプリタやらサブセットやら自由な実装を認めないし
フレームワークをゴミ箱に捨て続けるようでは
そらうんざりだわ

166 名前:デフォルトの名無しさん [2018/12/05(水) 17:40:27.21 ID:dEDNahW6.net]
>>154
だな

167 名前:デフォルトの名無しさん [2018/12/05(水) 17:41:51.93 ID:dEDNahW6.net]
>>160
作れる言語もあるよ



168 名前:デフォルトの名無しさん [2018/12/05(水) 17:43:38.84 ID:dEDNahW6.net]
アノテーションは、くそだし、いいわけ臭い

169 名前:デフォルトの名無しさん [2018/12/05(水) 17:47:53.12 ID:dEDNahW6.net]
くそはJavaだから、限定すると
Cとかと結合出来にくいから、ダメなんよ
逆に呼ぶのもメンドイし、バインディングが
最大の欠点よ。自分の殻に閉じ籠って
独自の世界観作っちゃってるのよ。

170 名前:デフォルトの名無しさん [2018/12/05(水) 17:53:40.31 ID:dEDNahW6.net]
>>162
ちゃうぞ、パターンマッチはオーバーロードの機能もあるから

171 名前:デフォルトの名無しさん [2018/12/05(水) 17:59:22.17 ID:ifntcr/4.net]
>>170
OOPとの比較だとそうだけど、if/switchは手続き的と宣言的(OOP含む)の比較だから。

172 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 18:07:26.91 ID:Sqih7UKg.net]
>>169
その言い方だと、他の言語はC言語と結合できやすいといってるように思えるけど、
ソースレベルで結合できるC/C++以外で、
C言語は他の言語と結合できるの?
くそなのはむしろC言語では?

173 名前:デフォルトの名無しさん [2018/12/05(水) 18:54:41.97 ID:ifntcr/4.net]
Hello World!!
ello World!!
llo World!!
lo World!!
o World!!
World!!
World!!
orld!!
rld!!
ld!!
d!!
!!
!

を無限に繰り返すプログラムをCで宣言的?に書いてみた。

174 名前:デフォルトの名無しさん [2018/12/05(水) 18:55:14.61 ID:ifntcr/4.net]
#include <stdio.h>
#include <string.h>

void hello(char[],int);

int main()
{
char s[] = "Hello World!! ";
int sl = strlen(s);
while(1) for(int i = 0; i < sl; i++) hello(s,i);
return 0;
}

void hello(char str[], int i)
{
puts(&str[i]);
for(int j = 0; j < 50000; j++){}
}

175 名前:デフォルトの名無しさん [2018/12/05(水) 18:56:07.81 ID:ifntcr/4.net]
こっちはHaskell

main = do
mapM_ (\_ -> hello str) [1..]

hello [] = return ()
hello (s:ss) = do
putStrLn (s:ss)
mapM_ (\_ -> putStr "") [1..50000]
hello ss

str = "Hello World!! "

176 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 19:03:09.82 ID:Sqih7UKg.net]
こっちはシェルスクリプト

#!/bin/sh

while :; do
s="Hello World!!"
while [ "$s" ]; do
echo "$s"
s=${s#?}
done
done

177 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 19:05:46.15 ID:Sqih7UKg.net]
シェルスクリプト版改良

#!/bin/sh

while [ "${s:=Hello World!!}" ]; do
echo "$s"
s=${s#?}
done



178 名前:デフォルトの名無しさん [2018/12/05(水) 21:57:00.01 ID:ifntcr/4.net]
do-doneが宣言的じゃ無いぬ(´-ω-`)
Cのはwhileやforが一つの文か式は{}を省略できるから宣言的であって。。。
てか、OOPどうした。

179 名前:デフォルトの名無しさん [2018/12/05(水) 22:00:07.15 ID:ifntcr/4.net]
てか、手続きやOOPの本当に厄介なのはポインタとか参照とか使う場面なんで、これは良い例であってだな。。。
しかし、手続き型言語の良い点もまたそこを効率的に使える点なんだよね。。。
(安全性とトレードオフ)

180 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 22:39:32.59 ID:lB72HyJ5.net]
正直どうせフォンノイマン型計算機なんだから手続きベースでいいじゃんっていう気もする
そんなことより問題領域を表現するデータ構造(演算の定義域)をきちんと構造化してですね...

いわゆる巷で言われるOOPだと、何というか分散処理の匂いがしてあまり好みではない
OS上のプロセス自体を巨大なFSMとして見ることができて、そのモデルはかなり役に立つけど、どうしてその実装までそのモデルを強いられるんだ、という
別にメモリ上の構造化されたデータ群に対して演算を加えていく形式でもいいじゃんっていう
そっちの方が順序回路っぽいし

ミクロの視点かマクロの視点か、という違いな気もするけど

181 名前:デフォルトの名無しさん [2018/12/05(水) 22:51:05.76 ID:XBoqgBKa.net]
> Cのはwhileやforが一つの文か式は{}を省略できるから宣言的
> Cのはwhileやforが一つの文か式は{}を省略できるから宣言的
> Cのはwhileやforが一つの文か式は{}を省略できるから宣言的
> Cのはwhileやforが一つの文か式は{}を省略できるから宣言的

なんでバカは知ったかが他人にバレないと思い込むんだろう?
浮気男が「自分がこんなに楽しんでいるのだから妻も同じようなことをしてるに違いない」と決めつけるように、
「自分がよく分からないのだから適当なこと言っても他人も分からないに違いない(からイキっておこう)」という精神なのだろうか。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


182 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 22:51:40.08 ID:vbqGwRKl.net]
>>173 GNU Smalltalk

| str |
str := 'Hello World!!'.
0 to: FloatD infinity do: [:idx | (str allButFirst: idx \\ (str size + 1)) displayNl]

https://ideone.com/4QgJwe

183 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 22:57:46.55 ID:O9mDBW5G.net]
ソートしたいぜ!
と宣言すればあとは誰かが宜しくやってくれる素晴らしい世界

しかし
ソートが遅い
ソート順が特定条件で意図しない結果に
などの現実にぶち当たり自分が小人さんになったりする世界

184 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 23:10:23.55 ID:9gT+gzvf.net]
真面目な話だけど、forとwhileは「ボクの考えた最高な制御構造だから、ブロックの中身を全部見て、どこで変数が使われてるか全部把握してね!」って書いてるようなもんだよ
そこをmapにすると「シーケンスの各要素を関数で変換します」、foldだと「シーケンスの各要素を使って一つの値を出力します」って意図が最初っから込められてる
だから宣言的な方が読み取りやすい

185 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 23:47:33.72 ID:tu0nld1G.net]
>>181
いや、そいつに関してはシッタカというよりはもっとシンプルに
本人のおつむの悪さが俺らを困惑させてるケースだと思うw
周回遅れの人間が微笑んでくる感じ

186 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 23:58:29.47 ID:Sqih7UKg.net]
>>184
forは「要素を全てブロックの中で処理します」だろ?

187 名前:デフォルトの名無しさん [2018/12/06(木) 00:11:05.89 ID:3Vav0lUR.net]
「それではその処理を説明します」
「“まず”〜〜します」
「“次に”〜〜します」
「“それから”〜〜します」
「“最後に”〜〜します」
「そして何も返しません」
「操作していた配列は無茶苦茶にしておきました」



188 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 00:23:57.83 ID:vM4xO2xb.net]
なるほど、つまりconstを使えば宣言的って言いたいわけだな!

189 名前:デフォルトの名無しさん [2018/12/06(木) 01:28:24.96 ID:kqr3R6FL.net]
>>181
>>185
いあぁ。。。宣言的ってのに再代入禁止とか関数脳に侵され過ぎてもね?
実際、再代入可能な方がメモリ効率は良いのよ。
それをプログラマーが見やすいか?が重要なんだけど、現状関数プログラミングよりhs手続き型で単純な方が宣言的って言うね?

まあ悪い例とでも受け取ってよ。
普通に{}で囲む処理書いてたし。
それをわざわざ?宣言的っぽく関数に括り出したわけで。

OOPならこうじゃ!なのも受け付けるし。

>>182
さすが、純粋OOPLやね。
ただ、関数型もOOPLも結局か標準関数の多さが強みじゃね?って思いがある。
(samlltalkはオブジェクト自体がコード呼び出せるって意味で文系環境だし、理系なら結局Cに行くわな。。。って意味で関数型にもOOPLにも、ライブラリの重要性しか感じないんだけど)

190 名前:デフォルトの名無しさん [2018/12/06(木) 04:18:18.28 ID:xIiNgjk2.net]
バカ「関数に括り出すと宣言的」

191 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 08:46:37.49 ID:vM4xO2xb.net]
でも>>177が一番シンプルでわかりやすいよな?
宣言的だからって必ずしもいいとは限らない例だよな

192 名前:デフォルトの名無しさん [2018/12/06(木) 09:12:46.27 ID:rq0vzYZs.net]
藁人形論法と言う。
「ミカンと浣腸は違う。お前はミカンが何か全く知らないのに知ったかで論評しようとするからめちゃくちゃな文になってる」
「でもミカンが黄色いとは限らないよね」←これがお前。

誰もミカンが必ず黄色いとは言ってない。
お前のミカンの理解が間違ってる、浣腸と比べるものではないと言っている。

何事か言い負かされて、でも空って青いとは限らないよね、と言ってるのと同じだ。

お前はあれか、全く本も読まない勉強もしないでこんなところでノー知識で言葉のうわべだけから妄想したポエム書き散らしてるだけで何か得ることができるとでも思ってるのか。

193 名前:デフォルトの名無しさん [2018/12/06(木) 22:46:17.83 ID:LqRlvnk/.net]
池沼「ペンギンは空飛ばない空飛ばない」
池沼「カモノハシは卵産む卵産む」

低学歴知恵遅れにかぎって
継承大好きだからな

194 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 05:32:10.71 ID:frCtIBO+.net]
>手続き型で単純な方が宣言的って言うね?

単純なら宣言的って思ってるのか
>>178で{}を省略できたから宣言的だって主張してるのはそういうことなのか
頭がくらくらする

195 名前:デフォルトの名無しさん [2018/12/07(金) 14:33:41.27 ID:F84vPdId.net]
>>194
単純ならってわけでも無い。
whileやforを繰り返し構造を表す関数として解釈した。

関数が関数や値を受け取って、処理を進めているように見えるように意識した。

196 名前:デフォルトの名無しさん [2018/12/07(金) 16:41:42.35 ID:/wuQ7bh3.net]
よりドツボにハマっていくスタイル

197 名前:デフォルトの名無しさん [2018/12/07(金) 18:24:50.91 ID:F84vPdId.net]
ドツボに嵌るついで。

>>175 のdo式の書き方をモナド式に直す。

main = mapM_ (\_ -> hello str) [1..]

hello [] = return ()
hello (s:ss) = putStrLn (s:ss) >> mapM_ (\_ -> putStr "") [1..50000] >> hello ss

str = "Hello World!! "



198 名前:デフォルトの名無しさん [2018/12/07(金) 18:26:57.31 ID:F84vPdId.net]
>> は、左を実行して右を実行する演算子。
Haskellでは2項演算子を()で囲むと2引数の関数になるので

main = mapM_ (\_ -> hello str) [1..]

hello [] = return ()
hello (s:ss) = (>>) (putStrLn (s:ss)) ((>>) (mapM_ (\_ -> putStr "") [1..50000]) (hello ss))

str = "Hello World!! "

199 名前:デフォルトの名無しさん [2018/12/07(金) 18:28:40.18 ID:F84vPdId.net]
(>>)を関数fに置き換える。

main = mapM_ (\_ -> hello str) [1..]

hello [] = return ()
hello (s:ss) = f (putStrLn (s:ss)) (f (mapM_ (\_ -> putStr "") [1..50000]) (hello ss))
where f = (>>)

str = "Hello World!! "

200 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 22:07:56.84 ID:BUuGF4Ds.net]
いい加減、50000ってのを直せよ
バグだろ

201 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 22:09:23.48 ID:BUuGF4Ds.net]
とっても見やすくシンプルでバグもないシェルスクリプト版

#!/bin/sh

while [ "${s:=Hello World!!}" ]; do
echo "$s"
s=${s#?}
done

202 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 23:06:18.22 ID:QnrdJVUz.net]
クソみてえなおまじないコマンド/usr/bin/[ とか代入と値評価を一度にするクソ構文のどこがシンプルなんだ?
これがシンプルでわかりやすいなら、↓のCも同じくらいシンプルでわかりやすくなっちゃうけど、普通にわかりにくいだろ。

#include<stdio.h>

int main(void) {
while(!NULL) {
char* c = "Hello World!!";
while(printf("%s\n", c++) != 2);
}
return 0;
}

203 名前:デフォルトの名無しさん [2018/12/07(金) 23:30:46.58 ID://esc+Fs.net]
Javaならオブジェクト指向でこんなに簡単に

Stream.generate(() -> "Hello World!!")
.flatMap(s -> IntStream.range(0, s.length()).mapToObj(s::substring))
.forEach(System.out::println);

204 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 23:43:31.81 ID:BUuGF4Ds.net]
>>202
シェルスクリプトの文法が複雑かどうかじゃなくて
書いたコードがシンプルって話をしてるんだよw

205 名前:デフォルトの名無しさん [2018/12/08(土) 02:19:55.24 ID:5PBkTMHJ.net]
>>200
iPadでちょうど良い速さにする重み付け。
CPU性能に合わせて増減して下しあ。

206 名前:デフォルトの名無しさん [2018/12/08(土) 02:36:05.47 ID:5PBkTMHJ.net]
重み付け消すと流石にスッキリ。

main = mapM_ (\_ -> hello str) [1..]

hello [] = return ()
hello (s:ss) = f (putStrLn (s:ss)) (hello ss)
where f = (>>)

str = "Hello World!! "

207 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 09:15:05.98 ID:LYqii6LP.net]
だったらアセンブラがいいな

上記のことをやるカスタム命令


unk xxxxx xxxxxx xxxx xxxx



208 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 11:13:42.32 ID:TkizOfcn.net]
カスタム命令に対応しているCPUを教えてください
作るしか無いのであれば、その作り方まで書く必要があります。
そこまでやって回答として認められます。

209 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 12:14:15.63 ID:Wi+m9177.net]
>>193
半角サマが正気に戻った…

210 名前:デフォルトの名無しさん [2018/12/08(土) 13:40:17.04 ID:fIshozug.net]
>>149
>チンの始皇帝
>略してチンシコ

2014-07-26
草間彌生の水玉は去勢されたペニス
なんと若き草間彌生が無数のペニスの上に寝転がっている。この写真を見てはっとした。
現在の水玉の作品にいたるまで、草間はひとつのテーマで描き続けているのではないだろうかと直感した。
hpo.hatenablog.com/entry/2014/07/26/110000

211 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 01:12:09.09 ID:jHINMsWI.net]
ここまでオブジェクト指向のメリットなし

212 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 22:46:18.49 ID:yA4tg2d2.net]
低学歴知恵遅れがオブジェクト指向言語使わなければ
オブジェクト指向言語はメリット満載

213 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 23:21:32.78 ID:y908H20V.net]
>>212
そしたら誰も使わないだろうに
満載もクソもあるか

214 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 01:07:24.00 ID:8DZ4oTBo.net]
www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

215 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 01:17:08.28 ID:mMIcaeGH.net]
>>214
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。

216 名前:デフォルトの名無しさん [2018/12/13(木) 19:24:28.58 ID:/U42sxDQ.net]
Object-oriented programming is an exceptionally bad idea which could only have originated in California.



— Edsger W. Dijkstra

217 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 00:40:39.32 ID:ayIeof0t.net]
>>214
面白いおっさんだなぁw

実際素晴らしい物を作る
という様な理由や
そう言った事を実は言って無いんだよなぁ
寧ろ難しいから普通の人は止めておけ
って言っていたらしい
実際そう思う

その記事に有る
気まり事を沢山覚えておかないと大変な事になる
というのはその通りで
c++11やそれ以降も増え続けていて
いったいこれはどうやって使えばいいんだ?
なんて思う
既にオブジェクト指向言語の枠は超えて
関数型みたいな形でライブラリーを使わないといけなかったり
かなり大変

オブジェクト指向は実際に効果が有る
その記事に書いて有る方法だと余り活用する方法は未だに思いつかないけど
それ以外なら結構効果が有る
わざとらしく上手く行かない部分だけ持ち出す辺りは
あのおっさんらしいと言うべきなのかw

続く



218 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 00:41:24.35 ID:ayIeof0t.net]
続き
オブジェクト指向プログラミング問題は
それを使いこなす事が難しいって事だ
結局オブジェクト指向とc++を同時にまともに使える人はそんなに居ない
逆に言うとまともなプログラマを確保するには
良いフィルター
になっているとも言える
そういった人たちに安定的に報酬を与えたい
それに散々描いて有るけど
設計をしっかりしないといけない
これが重要で
設計をしっかりやって更に作る
となると時間が掛かるのは当たり前で
そういう事をしないといけない
そうする事を出来る人間が本来使う物
そういう面が有るのがc++とオブジェクト指向

ここを見ていれば解るとおり
オブジェクト指向プログラミングだけでも難しい
その上cの元々持ってる文法的な誤認性の高さを持ったままc++は更に難しくなってる
c++を使いこなすのは実際至難の業だと思う

osはリーナスなんかも言ってるけど
細部まで制御して作りたいし
しないといけない
でもc++はかなり背景で色々な事をするから邪魔
だからcの方が向いている
最適化すら余計な事をするなって言うくらいだし
まぁ当たり前だわね

それでもアメリカのf-35はc++で出来てるって最近聞いて驚いた

219 名前:デフォルトの名無しさん [2018/12/14(金) 01:08:15.68 ID:cnCtFwTt.net]
つまり時間がかかるようにしてお金がかかるようにした。
C++作者が自ら言ってるように、雇用創出だね。

220 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 01:17:07.94 ID:g+Rqe6w2.net]
>>219
科学技術や文化が後退するぞ
そんなこと言っていると

221 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 01:51:29.18 ID:g+Rqe6w2.net]
設計は理不尽な方法を力ずくで遂行するのではなく
科学的工学的手法を用いて合理的にすべし

222 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 06:24:46.77 ID:vqN/tea0.net]
普通に、Json オブジェクト程度のものとしておけばいいのにね

223 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 07:54:14.33 ID:8KSBcVH8.net]
何人かの常駐を除いて、意外に前スレと前々スレが良スレだよな

224 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 10:00:28.99 ID:Zmoa3gJf.net]
ジョークすらわからんのか

225 名前:デフォルトの名無しさん [2018/12/14(金) 12:32:56.65 ID:IR70YMjL.net]
ちんぼがシコシコするぜ!!

226 名前:デフォルトの名無しさん [2018/12/14(金) 13:38:31.78 ID:z5B+Ssa1.net]
1 C/C++
2 その他

C/C++それ自体は使い難いが、要らないコードを減らすため、コンピューターの仕組みを知るための C/C++。

227 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 13:42:14.57 ID:f5Y1ye2A.net]
C/C++にはいらないコードを減らす能力はないよ

結局の所、何かしらのコードは、コンピュータが自動でやるか
人間がやるかのどちらかしか無い。
コンピュータにやらせれば人間の負担は減るが、実行速度が遅くなる。

C/C++は実行速度を早くするのが第一の目的になってるので
人間がやることが多い



228 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 22:01:09.12 ID:lcoUdBQK.net]
とはいえ、ある程度同じような内容なら
同じような形で最適化できてチューンせんでも良いから高級言語ってものが成り立つわけだ。

229 名前:デフォルトの名無しさん [2018/12/15(土) 01:39:33.98 ID:k5T0HzJW.net]
>>227
>C/C++にはいらないコードを減らす能力はないよ

気軽にコードを書き加えられないつーことでは、無駄なコードを減らすことにも繋がるのでは?

C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です
pg-kura.hatenablog.com/entry/20120616/1339856279
低スキルでも読めるコードは、属人的なコードになる
https://mevius.5ch.net/test/read.cgi/tech/1541173295/

1 C/C++
2 その他

前者のほうがスキルとデバッグの苦労が多い分、コードの書き加えに慎重になるだろう?

230 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 01:41:14.00 ID:EyhC0X8P.net]
> 前者のほうがスキルとデバッグの苦労が多い分、コードの書き加えに慎重になるだろう?

それはマイナス点ですよね

231 名前:デフォルトの名無しさん [2018/12/15(土) 01:45:15.34 ID:k5T0HzJW.net]
高級言語は簡単にプログラムを書けてかつデバッグの労力も少ないが、要らないコードが増えやすい。

パワーポイント使用を禁止する会社が増えている理由
https://news.allabout.co.jp/articles/d/88444/

同様にパワーポイントを使えば簡単に書類作成できるが、その分無駄な書類が量産されやすくなる。

232 名前:デフォルトの名無しさん [2018/12/15(土) 01:48:10.37 ID:k5T0HzJW.net]
宮本
いま、若いデザイナーがゲームをつくっている時、面白くならなかったら、ついつい新しい材料を追加して
面白くしようとするんですよ。実は、いま目の前にあるのものをちゃんと使ってそれを面白くするほうが先やのに、
新しいものを持ってくるという。
https://www.nintendo.co.jp/wii/interview/r7pj/vol1/index6.html

 コ ー ド 書 く の は 簡 単 だ け ど 、 コ ー ド 直 す の は 難 し い ん だ よ !

230 デフォルトの名無しさん sage 2018/12/15(土) 01:41:14.00 ID:EyhC0X8P
> 前者のほうがスキルとデバッグの苦労が多い分、コードの書き加えに慎重になるだろう?

それはマイナス点ですよね

233 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 09:52:05.77 ID:mEke7jIQ.net]
> 前者のほうがスキルとデバッグの苦労が多い分、コードの書き加えに慎重になるだろう?
言語の問題よりも直交性のない書き方してるかどうかのが大きいけどな。

234 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 17:47:07.05 ID:86paL/Pn.net]
プログラミングに限らず、環境や部品を作る技術者と
その上で部品を組み立てる技術屋を分けて考えないとな

どんな業種でもなんとなく住み分けできてるのに、
プログラミングだけは技術屋が背伸びするんだよな

235 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 17:53:31.83 ID:VvS+qBfB.net]
分業だったりそうじゃなかったりもするし

236 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 18:18:52.12 ID:tRQh3wn/.net]
自分がやってる事が組み立てでしかないって感じる事すら出来ずに居るからだろうな。
犬小屋程度なら日曜日のお父さんでも作れるのと同じ。

237 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 18:56:24.50 ID:xvkgSdvR.net]
犬小屋程度のものに金払いすぎだろお前



238 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 20:12:53.48 ID:mEke7jIQ.net]
>>234
他の業種に比べるとプログラムは再現性が高いからというのがあるのかも。
それがある種の選民思想というか万能感を産んでる気はする。
うまく行き過ぎる分野でやってる人というのは他も同じようにうまくやれると思い込む可能性が
高いのではないか。

239 名前:デフォルトの名無しさん [2018/12/15(土) 20:49:06.63 ID:cynZ90Gn.net]
>234,238は本当に背伸びが好きなのです

240 名前:デフォルトの名無しさん [2018/12/15(土) 22:48:36.56 ID:8aRCy95z.net]
このスレみればわかる通り
低学歴知恵遅れ仕様のオブジェクト指向()が
すべてを不幸にしてるのが証明されてる

低学歴知恵遅れはどんなものでもダメにする才能がある

低学歴知恵遅れにオブジェクト指向は
キチガイに刃物

241 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 01:22:07.08 ID:0WbTxJge.net]
故にこの世の中から、刃物を無くすべきだ
鉄、金属、電気そんなものはなくして
人間は自然とともに生きるべきだエルフのように

242 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 01:54:20.69 ID:lUGhamUq.net]
オブジェクト指向ってしっくりこないんです

243 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 01:59:44.85 ID:0WbTxJge.net]
「語呂が良い」「しっくりくる」 高輪ゲートウェイを「高輪門」とする案にいいね殺到、「ゲートウェイ」を凝縮して「門」に
nlab.itmedia.co.jp/nl/articles/1812/07/news117.html

244 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 08:05:20.43 ID:c+zeSDWw.net]
技術者とはOSなりコンパイラなりIDEなり、フレームワークなりを作れる人。
おおいにOOPを活用すればいいし、その資格がある。

技術屋はその環境でライブラリを活用すればいい。
ただし学者気取りでOOPを議論してはならない。
日曜大工にとどめておいて、仕事に持ち込まないこと。

245 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 13:22:19.58 ID:xYD22s/a.net]
むしろアプリレイヤーの方が恩恵が大きいだろ

本当にOSやコンパイラ開発にOOPなんて使ってんのか?

246 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 16:55:41.30 ID:X3IN+Evw.net]
そもそもIDEの始祖たるSmalltalkはアルト向けのOS(のいくつかるうちのひとつ)として開発されたもの

247 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 18:30:05.26 ID:UsBD63Zl.net]
>>245
まあ、oo自体いらないからね



248 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:38:36.88 ID:iM9tKYK0.net]
先駆者の言葉を使わずにオレオレ定義を作りたがる、けど論理的でもないし発想が優れているわけでもない
俺は知ってるぞ。そういうやつが何の役にも立たないフレームワークもどきを作って1ヶ月で技術的負債にするんだって

249 名前:デフォルトの名無しさん [2018/12/17(月) 20:41:06.58 ID:oCmK2PVR.net]
とゆう非論理的な感情の吐露

250 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 23:54:22.59 ID:pyrPEcPo.net]
OOPの言語でなくてもOOなデザインはやってるだろう

イベント駆動で受け身のコーディングじゃなきゃしんどいよ
中央政権的なコーディングには限界がある

251 名前:デフォルトの名無しさん mailto:sage [2018/12/18(火) 12:51:46.93 ID:q/J1cc1X.net]
中央集権的な、だった

252 名前:デフォルトの名無しさん mailto:sage [2018/12/18(火) 13:26:04.43 ID:oYgGV2Oh.net]
>>251
訂正しなくてもそう読めたよ。
仕様書読む上では余計な機能だけど。

253 名前:デフォルトの名無しさん [2018/12/19(水) 14:30:45.83 ID:0YMLYUSa.net]
379 その名前は774人います (ワッチョイWW 4b08-kSAM) 2018/11/11(日) 09:59:42.88 ID:SzY2QaI/0
>>221
>CycはFredがひげをそっている間、Fredはそれでも人間なのかと尋ねた

チンポがシコシコしている間、俺はそれでも人間なのか?

221 その名前は774人います (バットンキン MM32-lPnu) 2018/10/10(水) 04:41:52.41 ID:Ko5F36TvM
>>211
>所有者の意思とは無関係に、勃起して「シコシコする」

それは『電気カミソリ』とは全く違う!

(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。

『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル

254 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 14:31:49.25 ID:QzBRL+7W.net]
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。

255 名前:デフォルトの名無しさん [2018/12/20(木) 00:45:34.98 ID:JEb4hZ4L.net]
Cycは「ええ、アタシはいつだって人間よ!アナタの性の玩具ではないのよ!」
そう言ってスカートをたくし上げると、パンティに隠されていないCycのオマンコが丸見えになった。
Fredはそのオマンコに齧りつきたいと考えたのだが、朝にひげをそっていない事を思いだしたので
「すこしチクチクするかな?下手糞だと思われたら嫌だな」と心の中で思った。
しかし、抗い難い性的欲求を抑えきれなくなったFredは「おまえがパンティを履いてないのが悪いんだぞ!」と
叫ぶなりCycを上四方固めに極めてツルリと剃り上げられたCycのオマンコに自分のひげを押しあてた。
Fredはそれなりに勃起した。

256 名前:デフォルトの名無しさん [2018/12/21(金) 01:43:59.75 ID:JxXDkc1c.net]














257 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 02:16:52.51 ID:2iFVCAc3.net]
抽象化ってどういうことなんですか? を考えていたら答えが出た話
https://togetter.com/li/1300402

これはわかりやすい



258 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 02:17:20.29 ID:2iFVCAc3.net]
特にこの図
https://twitter.com/kmic67/status/1075296494482145282/photo/1
(deleted an unsolicited ad)

259 名前:デフォルトの名無しさん [2018/12/21(金) 08:27:36.93 ID:AbI0aG/Q.net]
>>257
それ抽象化ちゃう共通化やw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<104KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef