【悲報】ひろゆきさん、次は「小学生レベルのプログラミング」に敗北してしまう………😭 [496173787]
■ このスレッドは過去ログ倉庫に格納されています
ひろゆきが明かす「ある天才に完全敗北したときの話」
https://diamond.jp/articles/-/282178
僕が、「完全な敗北感」を味わったのは、あるプログラムを見たときです。
パソコンでゲームをすると、数字の「テンキー」で操作することがありますよね。いわゆる「十字キー」というやつで、「4」で「左」、「6」で「右」に動かすやつです。
これをプログラムするときに、普通の人は2行のプログラムを書きます。「4を押したら左に移動せよ」「6を押したら右に移動せよ」と、2つの指示をコンピュータに向けて書き込みます。
しかし、天才は違います。
天才は、1行でその指示を与えることができます。
「押した数字から5を引いた分だけ、操作せよ」という1行を書きます。そうすると、その1行だけで「-1」「+1」の移動をプログラミングできてしまうのです。
それを知ったときに、「うわーそんなこと絶対に思い浮かばないよ」と思いました。
↓↓↓
「他のテンキー押すとキャラ操作が破綻してしまうのでは?」
「結局case文が必要で複数行になる」
「直感的に理解できないコードは素人」
など叩かれまくる
https://i.imgur.com/IZUaC3S.jpg
どうすんのこれ…
まじでやばい…
チー牛の王さん…
どうして…
🥺 普通のコーディングではやらんわな
だからこそ勝てないってわけで 条件分岐させずに演算だけで済まそうってのは、8ビットコンピューターの時代に高速化テクニックとして身につけたタイプやな
その小学生50歳過ぎてるんとちゃう? 昔のアセンブラでキツキツROMに収まるプログラム書いてた時代じゃないからなあもう。
そんなトリッキーなテクは可読性を減らすだけなのでもはや不要。 最近知ったどっかで広められてる面白い逸話を、プログラマ現役時代に聞いたかのように語る人 よく分からんけどそういうのってゲーム関連のライブラリ呼び出してくるだけでできることなんじゃねーの?
「パソコンでゲームをすると、数字の「テンキー」で操作することがありますよね。」ってひろゆきも言うくらいよくある操作方法なわけだし ずっと昔に本読みながらビット演算で作った記憶があるな
具体的には全く覚えてない 全てに浅いからこんなことになるんだけど言い逃げするから常勝 >>8
それな。
S = inkey$
X = X - (S=4) + (S=6)
みたいな。
何やってたんだこいつ。 確かに昔のファミコンゲームとかでそこまで詰め込まないと容量が足りない局面でこういう考えが出てくる人は凄いと思うな むかーしは全部自分でプログラムする必要があったんだよ
ソースの長さにも制限あるし処理速度の制限もある
そういう時代の工夫の話だろ
今は多少冗長でも可読性の方が優先だね >>8>>22
職業プログラマーの人に教えてほしいんやけど、論理演算は今でも普通に多用してるもんなん?
それともそれも可読性優先にシフトしてるん? 今どきそんなことで処理速くなるわけじゃないから無意味だよ 平成初期に良く見られたコーディングで本当にリソースが足りなかったんだなぁとは思うけどね perlとかはそんな感じだった
可読性とか考えずにガンガン省略していくらでも短くできる 「直感的に理解できないコードは素人」
これは分かる、メンテ性を度外視した自己満コードはチラシの裏に書いててくれ >>27
これこれ
以前も書いたけど自分はMSXBASICのstick関数で訳の分からん論理式使ってる奴に驚いて挫折したんだよな
8方向の移動をxとyの2行で実現してた 馬鹿だな
key=inkey()
dir=(key&0x06)-5
だろ
マスク忘れるのは普段からプログラミングしていない証拠だよ >>31
普通に使うし可読性とは関係なくないか
シフト演算のこと? 昔のスタープログラマーの時代は終わって今は団体戦の時代という事か
ヒストリエで見たマケドニアの戦い方みたいで面白いな >>31
組み込みでは使う
LSIのレジスタはビット単位で
制御するからそっちのがPDFと
合わせて読む時読みやすい ただの例だろ
競技プログラミングの問題とか見てると天才ばっかだなって思うわ >>38
いやいや俺も論理演算使いまくるけど、初心者から見たら暗号に見えるし、プロにとってはどこからが可読性なのかなと思って
そりゃな、論理演算知ってたら、わざわざそれをIF文で書かれた方がめんどくさいよ 三項演算子すら可読性下がるから使わずにif文書けっていう向きもある //ここまでやった、触んな
で1行費してる俺がばかみたいじゃん そもそもケンモメン世代だと
他の方法見る前にデフォがこれだっただけw
まぁ今の時代だとそもそもフレーム固定じゃないから
移動量が定数ではないです >>43
高級言語だと見解分かれそうな感じか
そりゃビット演算やるなら論理演算むしろ避けて通れないやろ JSショートハンドでドヤ顔してる奴は大概周囲からプッて思われてる >>50
そのへんの可読性の議論って、「俺が読めないから使うな」ってのが混じりがちやない?普遍的な話として マイコンBASICマガジンでif文は使うなッ的なのが一般的だった思い出 それっぽい嘘松言わせたらマジで天才だよなコイツ
天性の詐欺師 負荷の軽くなるトリッキーなコードは感心するがこんなのはただのオナニー 本当に頭のいいやつは他人にわかりやすい保守できるコードを書く
自分しかわからないコードを書くやつは頭でっかち
個人で一人でやるならいいけど大体組織やグループだったり、後継必須でしょ
自分がずっとそのサービの担当者なのか?って言う でもプロのプログラマーは意外に思うかもしれないけど、Excelのスプレッドシートだと重くなる関数を避けるためにトリッキーな整数操作考えることあるわ
スプレッドシートは下手に作ると露骨に重くなるからな 単に天才プログラマーはなにをするかを分かり易い例で書いただけだろ。
一般人にプログラムって言っても何のことかわからないし、天才になればタイピングが早いのを天才と呼ぶのか、記憶力を天才と呼ぶのか意味がわからない。
それを天才は発想を基準にしていますよっていう例だろう >>58
一行あたりの情報量をどれだけにすべきかって思想の違いではあると思うけど
でも俺の書き方がわからないやつはいらない、みたいな我を求められる時代ではないとも思う >>1
ひろゆきってネットの検索結果程度の知識で話してんのかね
話が薄いっつーか最近ボロ出すぎじゃね? >>66
例えがヘタクソって時点で、地頭が悪い証明なんよ
プログラムの上手さ話なら
ソートとかを例にあげたらいいのに >>68
三項演算子はVBAにはないから何じゃらほいって検索したけど、書き方の問題やなくて機能の問題やん?
スプレッドシートで例えたら、XLOOKUPはわからないからVLOOKUPで書け、みたいな 8方向全部処理して結局同じ事って事すら理解出来無い
知能の低いニシムラくん でもプログラムの感覚としては関数系に近いんじゃない(適当) ひろゆき「頭の悪い人は必要以上のことをするものなんですよ〜」 20年前に西和彦が2ちゃんねるに対抗して1ch.tvを立ち上げ失笑買っただけで上自滅したやん?
ひろゆきとは丁度年齢差が20歳で今や自分が西ポジションなんだよな 今はラムダあるから良いけど昔は三項演算子じゃないとconstにできない時があったり そもそもテンキーの数字じゃなくてキーコードみたいなのシンボリックな値が返ってくるのが普通だろ
=以外で比較すんなよ バグの引き金になりそう
ただ地雷埋めてるだけじゃね? 松松松
ww
松松
w松
松松松
www松松松
ww松松松
ww
松松松松松
松松松
ww
松松松松松
ww松松松
松松松
ww松松松
松松松
ww
松松
w松
松松松
www
松松
w松
松松松
www
松松
w松
松松松
www
松松
w松
松松松
www
松松
w松
松松松
www
w松
松松松
www
松松
w松
松松松
www
w松
松松松
www
松松
w松
松松松
www 現代ではそんな曲芸みたいなコードは好まれない、というかそんな事をする必要がない
可読性の低いコードはゴミだよ
コイツはふっるい雑学を披露してドヤ顔してるだけ 大規模システム開発なら可読性と保守性重視した方が良いし
オナニーしたければ個人制作のアプリ&ゲーム開発でいくらでもどうぞって話だ 結局はcase使う事になると思うけど
小学生でこういう工夫を考えが出来るってプログラマー向きだと思う >>72
「00110001……」みたいな機械の言葉を人間の言葉に近づけてわかりやすくしましょう、というのがプログラミング言語だから
直感的ではない三項演算子よりも「もし〜であるならば〜」っていう人間語により近いif文の方が表現として高級だよね、っていう考え方がある ゲームプログラミングは最適化より標準化の時代だからな
初心者にこういう誤解を生む表現は避けたい >>93
あーちょっとわかる
三項演算子のない世界でやってきたけど、演算でパラメータ創り出してCASE並べてみたけど、なんかわかりにくいから単純にIFの入れ子に書き換える、みたいな?
それならやってる 短く書くのが天才ならコードゴルフやってたらなれるな 3項演算子は文字数少なくてシンプルな条件なら別に良い
条件が複雑だったり文字数長すぎるとうざい
3項演算子の中に3項演算子書くやつヤバい 三項演算子が嫌なやつはフロントエンド書いたことないだろ
ReactとかVue 俺らでプログラムの天才ひろゆきさんを守るぞwwwwwwwwwwwwwwww ちなみに最近は天才じゃなくても一筆書きができる
keydown(num6).map(x=>1).merge(keydown(num4).map(x=>-1)).map(move)
みたいなイベントをストリームとして扱う流儀がある むかーし
プログラミング初心者の頃
比較文を使わずに、なんでもかんでも表引き、ジャンプテーブル使って
高速プログらむー、とかやったけど
実行回数が数千のオーダーでも差が出なくて
途方に暮れてた、あの頃 可読性のために論理演算使わないもの?って論理演算をなんだと思ってるんだ >>71
じゃあ天才プログラマーとダメなプログラマーの違いを一般人の老若男女の7割がわかるような例でわかりやすく説明してみてよ >>106
動かしてみてエラー無く早いのとエラー吐いて遅いの (x, y) = ((v - 1) % 3) - 1, ((v - 1) // 3) - 1;
こんな感じか?
くっそ読みにくいな >>98
適切にインデントされてれば三項演算子の入れ子もまぁいいんじゃない
代入だけの為にifブロック作るのもいけてないし そこまでまして読みにくいの書いてコードを省略する必要あるの? 技術者ぶってるけど、2chて規模がでかいだけで大した技術詰まっとらんがな 堀江たらこアメーバ藤田てこの3人を日本のIT代表みたいにいまだに持て囃してる風潮なんなん?
全員パソコン自体素人レベルなのに 初期2chは自分でperlでプログラム起こしたとか言ってるけど
あれでさえ本当は夜勤(FOX)が書いてやったんじゃねえかって今となっては思う 自分でゴリゴリ書いたプログラムも半年経って見直すと訳分からんのだぞ
可読性の低いコードは書くな これは西村が正しいな
例だから細部は端折ってるし4と6みたいな都合の良い数字にしてるが言いたいことは判る
高速化のためにはコストの高い分岐を極力減らしたいから
そういうような処理をすることはよくある
まぁ今時のCPU向けならキー操作程度でそんなことやる必要はないけどな >>31
仕事では相当の事が無い限り自前では使わない
ビットフラグチェックすらも&は使わずに標準関数使うのが普通
個人プロジェクトではプロトコルバッファと同じ発想で大量にインスタンス生成するクラスのフィールドを出来る限りビットに敷き詰めたりしてメモリ使用率半減させたりするの好きだけどな 西村の世代だったらBIO100%のプログラマとかその辺かな>ある天才 >>113
clang-formatとtidy使えよ
>>118
3.10でパターンマッチが入ったんだわ >>122
加減で済むならまだしも分岐条件が埋め込まれてる場合であれば律儀に分岐させた方がパフォーマンス上は有利ってケースの方が多いぞ
多態性を利用して分岐を無くそうってのが現代的オブジェクト指向プログラミングな訳だが離れたメモリ番地にあるテーブルにアクセスする方がよっぽどコスト高い サルギョル糞ぴろゆきのステマやめろ
ステマステマ
>>1,2 >3, >4,5,6,7,8, >9,10,11,12, >13,14,15, 16,17,18,19,20
>21,22,23,24,25, >26,27,28, >29,30,31 ,32,33, 34,35,36 ,37,38,39,40
>41,42,43,44,45 , >46,47,48, >49,50,51 ,52,53,54,55, >56,57,58,59,60
>61,62,63,64,65, >66,67,68, 69,70,71,72, >73,74,75,76,77, >78,79,80
>81,82,83,84, >85,86, >87,88,89,90,91, 92,93,94,95,96,97, >98,99,100
∧_∧
(´・ω・`) n
 ̄.. \ ( E)
フ a..f..i... /ヽ ヽ_// 今時は動きゃあいいのよ動きゃあ。あと先考えて組むほど余裕ねンだわ 協調性に欠けるコードは書くなって言われたぞ俺
どうすんだ ビット演算だか論理演算だかそれくらいで可読性悪くならないと思う >>35
>>56
お前が新しいこと覚えられない無能なカスなだけだろ
commitされたコード見てドヤ顔かどうかなんてわからないんだからお前のコンプレックスの発露でしかない
ショートハンドがなぜ導入されたか考えてみろ雑魚
オプショナルチェイニングもnull合体もわかってないんだろう雑魚消えとけ >>132
これ
ただ、頭の悪い奴がギィギィ騒ぐんだ
まあ無視でok まあまあ有りだろこれは
8bit時代のベーシックなら ひろゆきがホントに敗北した天才って自分が匙投げた2chの圧縮アルゴ作った人でしょ basic時代に論理式での移動法見たとき感動したけど
if文羅列のほうが速いってオチで切なかった 他人の書いたコードを解読するのが不毛すぎてこれで食おうってのは諦めた
このときの作者の気持ちを考えよみたいな
アプリなんて、一人で書いて、一人で完成させるもんだわ >>58
3ヶ月後の自分が読めないから俺は使うの辞めた >>138
ただのApacheのzipモジュール落としてインスコするだけだよ 三項演算子や論理演算子は
入れ子にしたときの優先順位を理解してないと分かりにくくなるな
自分で言語実装したことあれば道理が分かるので知らない言語でも予想できるけど 今どきでもシェーダーレベルで小手先の高速化テクは使うし
論理演算もボトルネックになってる最頻出関数には使う こいつの知識はアホに対して騙せりゃいいというレベルだろ くこんな事するのはクロックレベルで高速化したい時だけだな X=X+(INKEY$="4")-(INKEY$="6")
ベーマガでは常識 この場合、実際のキーコード入れ込まないと確実にバグるじゃん 普通にタラコのが正しいというか
今はdispatcherにリスナ噛ませるからcaseすら書かんわ
こういうゴミコードありがたがる奴は絶対仕事できない わざと突っ込みたくなるようなこと言ってるだけだからなこいつ
バカがどや顔で指摘して気持ちよくなってその対価を得るのがこいつのビジネスモデルな
そろそろ相手するのやめろよ >>101
こんな書き方する奴なくね?
FRPやった事ないだろお前 ひろゆきってほんとにプログラミングできんの?
2chの閉鎖騒動のときだって解決したの有志だろ? >>153
うん適当に書いた
関数型は好きだけどFRPは一生やらないと思う >>151
ゴミは俺だった…
差分で移動を叩いてる方がタラコだと思ったら >>155
そもそもFRPはその例みたいなゴチャゴチャした書き方無くすための方法だから… >>11
無料で公開されてるperlの掲示板スクリプトを設置しただけ 他のテンキーどうこう言ってるやつはアホだろ
4と6以外を使わないのはどちらも同じなんだからその処理は別にあるに決まってるじゃん >それを知ったときに、「うわーそんなこと絶対に思い浮かばないよ」と思いました。
例え話なら、最後この一文で締めないよね 「あのさあ!人が読めるコード書こうよ!ねぇ!一人で仕事やってるんじゃねえんだからさ!」 テンキーで移動するやり方自体がトリッキーだろ
西村はまずそれを思いつかないだろ
自分がそれを思いつかないと言うことにも思い至らないだろ 「ハッカーのたのしみ」に載ってたいろんなビット処理のアルゴリズムは
頭の体操になって面白かった
全然覚えてないけど ■ このスレッドは過去ログ倉庫に格納されています