X



なんでもC言語で開発する奴アンチスレ

0001仕様書無しさん
垢版 |
2020/12/13(日) 09:07:28.51
リーダーの命令でC#、C++、Python、Java、Javascript、Kotlin等、OOPパラダイムを取り込んだ言語及びフレームワークを使った開発を封印して苦労しながら開発している人達のためのアンチスレです
0391仕様書無しさん
垢版 |
2021/01/22(金) 18:33:56.73
昔はアセンブラができないCプログラマーは使えないと言われてたな
0392仕様書無しさん
垢版 |
2021/01/22(金) 19:28:26.20
そうだな、アセンブラを知り、その開発効率の悪さを
思い知らされた挙句の果てで、Cを使うぐらいが望ましい。
0393仕様書無しさん
垢版 |
2021/01/23(土) 08:09:57.67
MFC縛りで開発してる奴おる?
私 で す
ふえぇ...辛いよぉ...
先輩の書くコードがC言語風
しかもこれ、2021年の話なんだよ
信じてくれる?
0394仕様書無しさん
垢版 |
2021/01/23(土) 10:07:09.78
先輩ってことは自社開発のようだが、
お前らが何かにつけて自社開発やりたいっていうから、
ハケンジジーのおれが、何度もCは必須って言ってきたのに。
0395仕様書無しさん
垢版 |
2021/01/23(土) 10:56:50.13
>>394
> 先輩ってことは自社開発のようだが、
> お前らが何かにつけて自社開発やりたいっていうから、
> ハケンジジーのおれが、何度もCは必須って言ってきたのに。

使えるのならC#使いたいよぉ...
でも、頑固上司及び先輩がそれを許さない


C#とか言うなんちゃてC言語wwww
https://medaka.5ch.net/test/read.cgi/prog/1398490686/


2014年にあのようなスレを建てた人がおったじゃろ?
2021年にも、あのようなスレを建てそうな人達が会社を運営しているんじゃよ
ふぇぇ...辛いよぉ...XamlやHtmlでレイアウトを記述したぃぃぃいいいい
リソースファイルも使わずにC言語風のプログラムでデバイスコンテキストを叩いて印刷レイアウトを描画するのは、もう嫌じゃぁぁぁああああ
0396仕様書無しさん
垢版 |
2021/01/23(土) 11:44:08.98
C++とC#は全くの別物だからね。
なんちゃってですらない。

C#は事実上のVBで、Javaと比較する言語なんだよ。
0398仕様書無しさん
垢版 |
2021/01/23(土) 13:01:45.24
C#とVBの比較でC#に幻想抱いてる奴いるけどさ
あんなのMS社内の派閥争いでしかないよ
0399仕様書無しさん
垢版 |
2021/01/23(土) 14:39:35.81
>>398
逆に聞くけど、貴方は何言語でWinネイティブアプリ開発するの?

Reactとか言って逃げるの無しね
Winネイティブアプリ(exeかwin10アプリね)
0401仕様書無しさん
垢版 |
2021/02/23(火) 12:43:08.64
最近はすっかりpython使いになってしまった
もうCなんて原始人の使う言語にゃ戻れないわ
0402仕様書無しさん
垢版 |
2021/03/07(日) 19:14:56.24
>>96
俺、理工学部出身でIT業界で働いた事は無いけど、在学中にC言語なんて授業ではやらなかったぞ。
電子計算機演習は、FORTRAN77っていう化石みたいな言語を、TSS端末経由でVOS3っていう化石OSの稼働しているHITACというマシンで、
授業で扱ったのは、主に数値計算に関するプログラムばかり。
レポート課題は、ニュートン法による√xの計算や、ピボット交換を伴う連立多元1次方程式、
ニュートンコーツ法やルンゲクッタ法、予測子修正子法、リープフロッグ等の数値積分法や常微分・偏微分法、
FFT、線形回帰、二次方程式等ばかり。

ペーパー試験問題も、

 ・0.01を100回足して1にならない理由
 ・円周率πを数値計算で求めるのに、π/4を計算して最後にそれを4倍しなければならない理由
 ・実数の合計値や平均値を求めるのに、昇順でソートした後、小さな数値から計算していかなければならない理由
 ・ビット列で示された浮動小数点数を、IBM形式からIEEE形式への変換(ビット列を記述)

といった問題ばかり。
しかも、二次方程式の問題は、わざと引っ掛けで高校で習った二次方程式の一般解の公式が書かれている。
これをそのまま使うと0点。

他には、Common Lisp、Prolog、EFS等。
0405仕様書無しさん
垢版 |
2021/03/07(日) 22:25:31.06
東大だって今はC言語じゃなくJavaだ、京大はC言語やってる。
0407仕様書無しさん
垢版 |
2021/03/08(月) 04:20:01.62
>>404
GithubとかだとC単体だし、普通に文脈があればCで通じるんじゃないかね
0408仕様書無しさん
垢版 |
2021/03/08(月) 08:34:17.03
>>404
日本語と同じよ
時と場合によっては”C”で通る時もあれば”C language”でないとダメな時もある
0409仕様書無しさん
垢版 |
2021/03/08(月) 10:47:11.03
プログラミング言語って英語で対応する動詞ってuse?speak?
言語だからspeak?
0410仕様書無しさん
垢版 |
2021/03/08(月) 15:05:11.69
>>405
東大理を6年前くらい前に出たけどFortran(2008)だったぞ、2年前にもやってた
ハートリーフォック法とかDFTとかフルスクラッチ
あとPythonも押してる
弥生キャンパスにある情報センター開講なんで他の学部学科もそんなもんかと、さすがに情報学環はIT向き言語やってそうだけど
0411仕様書無しさん
垢版 |
2021/03/08(月) 15:14:37.48
c自習してるけど癖だらけで学び甲斐があって好きだよ
検索に埋もれるからc-languageと書いてほしい
なげーからclangみたいな通称使いたいけどclang死ね
clispお前もだ(common lisp処理系)
しかもclangほど頑張ってない最終更新十年以上前のゴミクヅ
なぜコンパイラ書きは自己顕示欲を抑えられないのか?
0415仕様書無しさん
垢版 |
2021/03/27(土) 21:48:43.05
Cで検索するだけで上から二番目がC言語だったぞ
ちょっと「練」が足りないんじゃないか
0418仕様書無しさん
垢版 |
2021/04/28(水) 21:30:38.21
>>416
吐き出す中間コードは同じだと聞いたが?
0420仕様書無しさん
垢版 |
2021/08/07(土) 05:16:22.69
C++の難しさは
後から後からその場しのぎに拡張して来たことによる複雑さと「わかりにくさ」

そしてそれらを完璧に理解して使いこなしていても
複雑な込み入ったプログラムではどうしても主にメモリ関連のバグ(ミス)が生じてしまっている現状

だから有能な人ほどRust導入を検討もしくは導入しているし大手IT企業はRustを採用しようとしているか既に採用している
0421仕様書無しさん
垢版 |
2021/08/07(土) 05:33:18.26
そりゃあ企業単位でC++で開発するのはもう無理だよ。
できる奴確保できないもん。

最初に言ったように、能無しをうっかり雇うのを防ぐという目的なわけだが、
そのふるいをかけて人材確保に成功するかどうかは、あくまでも別の話だからね。
0422仕様書無しさん
垢版 |
2021/08/07(土) 05:54:46.25
>>420
言語の優秀さの差で勝負ついたね
新規プロジェクトはC++捨ててRustだらけ
0423仕様書無しさん
垢版 |
2021/08/08(日) 03:59:10.49
C++使いの人に質問
これは10年前の記事からの抜粋だけどいまでは解決されてるの?

・STL のアロケータは極めて扱いづらいく、コードの肥大化を招き、効率も最適ではない。
・いくつかの STL の実装には slist, hash_map, shared_ptr などの有用なものが用意されているが、これらはポータブルではない。用意されてない実装もあるし、バージョンの違いで互換性がなかったりもする。
・STL は関数呼び出しの階層が深く、それによりインライン化が妨げられ、遅くなっている。
・STL は非常にデバッグしづらい。例えば std::list は void* を使うためにデバッガで内容を見れないことがある。また、暗号めいた変数名やデータ構造だらけな上、コードに関するドキュメントがない。
・STL のコンテナは、格納するオブジェクトのアライメントをサポートしていない。アライメントに関するサポートが弱いのは C++ の欠点である。アライメントに関するサポートは C++09 で提案されている。
・STL のコンテナは、要素を追加するときにコピー渡しする必要がある。これはコンストラクタのコストが高いオブジェクトで非効率的である。
・STL コンテナは private な実装を持ち、データ構造などをポータブルには弄れないようになっている。これができることが重要な場合もある (node pool など)。
・STL の多くの現在の実装が、空のコンテナにメモリを割り当てることがある。これは最適化を妨げており、効率改善の大きな余地がある。空のコンテナはメモリを割り当てるべきではない。
・STL のアルゴリズムの全ての実装は述語の参照をサポートしておらず、それが原因で非効率的なハックを強いられることがある。
・STL は実用性、効率より正当性に重点を置いている。これは妥当なポリシーだが、std::allocator など、いくつかのケースではユーザビリティと効率を妨げている。
0424仕様書無しさん
垢版 |
2021/08/08(日) 05:09:00.67
ホントに最適化が必要なら自力で高速コンテナ作るよ
べつにすべてが最適化されている必要はないし最適化されていないと夜も寝れないビョウキなのか
0425仕様書無しさん
垢版 |
2021/08/08(日) 05:13:19.77
どちらかというと自分が書いたコードの動きが詠めずにコンパイルエラーに頼りまくるやり方の方が大問題な気がする
0426仕様書無しさん
垢版 |
2021/08/08(日) 05:16:10.35
コンパイルエラーが難しくて解りにくいってコード書いてエラー出しているのは自分なんだから少し考えればどうしてそうなったか判るだろ普通は
0427仕様書無しさん
垢版 |
2021/08/08(日) 05:35:37.94
新たな案件だとバックエンドから組み込みまであらゆる分野で、C++捨ててRustにする例が増えているから、C++は既存の案件メンテ用の地位に落ちた。
0428仕様書無しさん
垢版 |
2021/08/08(日) 10:29:53.95
>あらゆる分野で、C++捨ててRustにする
だったら良かったけど、まだまだC++な部分が多いしなぁ

>C++は既存の案件メンテ用
にまで行くには、まだあと5年10年かかるコースでしょ
0429仕様書無しさん
垢版 |
2021/08/08(日) 18:17:26.04
>>424
最適化されないと夜も寝れないビョウキな人はいる
ゲーム機向けに開発している連中は病的なほどに最適化にこだわる
この記事は米EA社(Apex Legendsとか作ってる会社)が書いたもの
STLはゲーム開発に適さないのでEASTLという自社ライブラリを作成して使った
というのが10年前のはなしなんだけど、10年経って状況は変わったのだろうか?
0430仕様書無しさん
垢版 |
2021/08/08(日) 19:29:42.71
規格レベルの話と実装レベルの話が混在しててなぁ

少なくとも規格レベルの話はざっと見ただけでも解決されてるものは多い
std::unordered_map / std::unique_ptr / std::shared_ptr の標準入り(C++11) とか要素の直接構築, ムーブ挿入 (C++11) とか
0431仕様書無しさん
垢版 |
2021/08/09(月) 01:58:40.73
そうか、C++も日々改良されて使いやすくなっているんですね
0432仕様書無しさん
垢版 |
2021/08/09(月) 04:49:30.14
C++より便利かつ安全なRustが登場したことで徐々に置き換わっていきそうですね
0433仕様書無しさん
垢版 |
2021/08/09(月) 14:58:24.85
ゲーム開発の現場ではそろそろC++では難しくなっているのかもしれない
その理由の一つがビルド時間である

ハードのスペックが年々上がり、それにともないゲームも複雑化している
昔は1対1だった対戦ゲームがいまでは100人バトロワである

カプコンはモンスターハンターRISEでC++をやめてC#を採用した
結果ビルド時間が1/100になったそうである
https://www.nintendolife.com/news/2021/06/feature_monster_hunter_rise_director_talks_re_engine_on_switch

その面でRustはC++の代替候補にはなりえない
RustもC++並にビルド時間を要するのだから
0434仕様書無しさん
垢版 |
2021/08/09(月) 15:09:56.10
>>433
その論だとC#の代替にはならないだけで
C++並みなのだから、C++の代替にはなるだろ
0435仕様書無しさん
垢版 |
2021/09/05(日) 01:20:06.59
なんでもKotlinとswiftで作ってごめんなさい
C♯とかDartとかC++は無理でございます
0436仕様書無しさん
垢版 |
2022/02/05(土) 10:31:17.86
業務系のプログラム作ってて、ラムダ式やテンプレート知らなくて困ったことが1度もない。
0438仕様書無しさん
垢版 |
2022/02/05(土) 11:06:07.26
>>436
ラムダ式ってsort関数みたいなやつに渡す一回限りの処理をぱっと作るためのやつでは?(細かく言えば違うけど)
確かに使わんでも組めるけど使えるのなら実装が楽になる
0439仕様書無しさん
垢版 |
2022/02/22(火) 22:03:31.86
ビット一つが重要な意味を持つハードウェア制御とかにゃCが向いてるよな、軽いし
0440仕様書無しさん
垢版 |
2022/02/25(金) 02:21:33.10
一回限りといえば一回限りだが、ループぶん回して何百もバリエーションを量産して、それを何百回も使って初めて意義があるので、使い捨てになるのは結果論でしかない
大体無名なのは、そういう使い方では名前なんて一々付けてられないし、その必要がないからで

無名なのも結果論
0441仕様書無しさん
垢版 |
2022/02/25(金) 02:30:06.79
名前を必要とするという仕様はいわゆるarbitrary limitationだよな
名前を付けたければ付ければいいんだし、コンパイル時にはどうせシンボル名は適当な識別子を割り当てられるんだから
0442仕様書無しさん
垢版 |
2022/02/25(金) 02:41:53.85
>>483のように、無数のバリエーション必要としない、本当に使い捨ての関数を一回限り定義する為に無名関数を使うのは明らかにバッドプラクティス
名前を付ける事が可能であるかぎりは付けるべき
一つ一つの関数に名前を付ける事が現実的に不可能であるケースにのみ使用すべき
0443仕様書無しさん
垢版 |
2022/04/15(金) 04:42:23.40
>>436
それは高階関数を引数とするメソッドが多い現代的なプログラミング言語を使ったことがない初心者なだけでは
0444仕様書無しさん
垢版 |
2022/04/15(金) 10:56:14.55
メンテナンス考えたら本当に同じ役務にしか使い回しはしたらダメだしなぁ
基本関数以外に同じにしていい関数なんてほぼ無いんだよなぁ
0446仕様書無しさん
垢版 |
2022/04/18(月) 09:46:57.62
>>442
ほとんどの言語では無名関数(ラムダ式)を変数に入れることができて変数名が付くので全く問題ない
そして何でも通常の名前のある関数にしてしまうのは名前汚染で邪魔
もちろん高階引数を取るsort, map, filter類などに渡す時は名前すら必要なく無名関数(ラムダ式)のまま渡せたほうがメリット多い
0447進撃のコンパイラ
垢版 |
2022/04/19(火) 00:37:37.13
Cを笑うものはCに泣く
この世の9割はCで出来ているのだから
0448仕様書無しさん
垢版 |
2022/04/24(日) 00:13:23.56
自分「組込でCを10年以上使ってます」
敵「じゃあC++でもC#でもJavaでも何でも応用効くよね」

無茶言うなや
10年もそれだけやってたら今更簡単には他の言語に移れんわ
0449仕様書無しさん
垢版 |
2022/04/24(日) 08:17:00.21
CしかやってなかったらC++でさえ厳しいのにね
C#なんてむしろJavaとかやってなかったら多分Cからの移行は結構しんどいかも
オブジェクト指向というかクラス的な考えを中々理解出来ない人も多いようだし
0450仕様書無しさん
垢版 |
2022/04/25(月) 09:28:35.98
C++のテンプレート
C#のデリゲートやラムダ式
いまだに使いこなせないわ
0451仕様書無しさん
垢版 |
2022/04/26(火) 23:57:53.74
C++のテンプレートはコンパイル時に処理される別の言語だと思った方がいい気がする

デリゲートやラムダ式は使いこなすのに修練が必要な類のものでもない
0452仕様書無しさん
垢版 |
2022/04/27(水) 11:22:14.57
デリゲートをラムダ式で書くとかさ、
まあ、むしろ追うの一箇所で済むからいいけど
0453仕様書無しさん
垢版 |
2022/05/09(月) 07:26:10.89
Cは開発当時は完成度が高い最強の言語だったと思うよ
俺もCでプログラム覚えたし
でも今は流石にね
0454仕様書無しさん
垢版 |
2022/05/10(火) 21:19:36.49
今はCの代わりにRust
言語機能の利便性と安全性が段違い
0456仕様書無しさん
垢版 |
2022/05/12(木) 00:54:44.07
bufに詰めて返すAPIが分かりにくすぎる、サブルーチンなのか関数なのか、呼び方の文法だけ改善してほしい
Fortranみたいにせめて文法的に分けるとか
func()
call subr()
0457仕様書無しさん
垢版 |
2022/05/12(木) 00:59:15.58
intent指定ができずaliasingの問題で最適化が妨げられてるし、そういうところでハイパフォーマンス言語としても中途半端でFortranに後塵を拝したわけで
0459仕様書無しさん
垢版 |
2022/05/13(金) 11:21:11.28
なんでもFortranで書くやつなんて居ないから無害じゃね
0461仕様書無しさん
垢版 |
2022/05/13(金) 14:23:03.73
何でも重たい関数呼び出しにしてしまったツケは、まあ地道にinlineすればある程度埋められるだろ
0462仕様書無しさん
垢版 |
2022/05/14(土) 00:57:30.62
opencobolというのがある
cobolの正反対の立場にいた
gnuが提供していることが
歴史の皮肉だな
0463仕様書無しさん
垢版 |
2022/06/04(土) 23:23:09.04
やっぱFortranしか勝たん()
0465仕様書無しさん
垢版 |
2022/07/06(水) 23:54:41.45
久しぶりにこのスレを見るのだが、Cは必須厨のハケンジジーが、
なんと、Cの組み込み案件に携わることになってしまった。
0466仕様書無しさん
垢版 |
2022/07/12(火) 23:32:16.87
なんでもC言語で書くのはあまり見たこと無いけど、なんでもC言語(の書き方)で書く人は結構見てきている
お前今書いてるのC++/C#だぞCじゃねぇんだぞって何度思ったことか。おっさんや組み込み出身者は大体そう
0468仕様書無しさん
垢版 |
2022/07/13(水) 09:36:39.11
C++とC#なんて全く違うのに同じ括りで語るとか
C++ならまだCっぽく書けるがC#なんて無理だろ
0469仕様書無しさん
垢版 |
2022/07/13(水) 15:22:38.08
>>466
Cの汎用性の高さが証明されたな
ちゃんと動くならどんな書き方でも良くね?
0471仕様書無しさん
垢版 |
2022/07/13(水) 19:31:03.91
ん?
a << bで済むのが、わざわざstrcatつかってるとか?
0472仕様書無しさん
垢版 |
2022/07/13(水) 21:27:32.42
C言語なんて勉強していたらコロナ禍でリモートワーク率0%の現場に派遣される
キャリアサポートセンターの人もC言語は学ばない方がいいとセミナーで話していた
0473仕様書無しさん
垢版 |
2022/07/13(水) 21:32:55.78
リモートワークの現場なんてスグにクビになるからねぇ。
0474仕様書無しさん
垢版 |
2022/07/16(土) 18:48:29.59
>>472
子供か?
0475仕様書無しさん
垢版 |
2022/07/16(土) 23:57:02.39
>>468
極端な例だとstringすら使わずchar[]で全部書いて標準ライブラリも使わず関数は自分で実装
クラス変数は全部パブリックみたいなとんでもないのは見たことがある
まぁそこまで極端でなくても割と組み込みとか制御とかそっち系の人が書くC#はバリバリハンガリアンですforeachなにそれみたいなのが多い
0476仕様書無しさん
垢版 |
2022/07/17(日) 01:18:55.00
>>475
もう高齢者なんだから許してやれよ
0477仕様書無しさん
垢版 |
2022/07/18(月) 12:42:30.61
C#のコーディングスタイルでグローバル変数云々とかヤメレ
staticメンバーならまだ許せる
0478仕様書無しさん
垢版 |
2022/07/18(月) 12:53:52.85
>>475
そこまでするんならアンセーフコードもバリバリ書けそう
擁護する訳でないがアンマネージコードで処理したい場合に活用する事がごく稀にある
0479仕様書無しさん
垢版 |
2022/07/20(水) 08:16:51.44
>>475
まあ、自分勝手な業務外アプリの開発とかなら、それぐらい普通だけどね。
Cが必須ってのは、勉強の一環としてそれぐらいやれってことね。
なんのライブラリ使ってるのか、ちゃんと意識しないといけない。
0480仕様書無しさん
垢版 |
2022/07/21(木) 02:44:47.44
C言語はどんなマシン語、アセンブラになるのかわかるレベルの人間が使わないと意味がない。
0481仕様書無しさん
垢版 |
2022/07/21(木) 07:51:22.28
まあ結局はそうなんだけどね。
最近、アセンブラのことが書かれた本もチラホラ見るようになった。
0483仕様書無しさん
垢版 |
2022/07/21(木) 14:34:08.79
>>482
横だけど、標準にあるやつを使えばいいのでは?
多分>>475の「クラス変数」は「インスタンス変数」の書き間違いだと思う
クラス変数ってC++だとstatic付きメンバ変数のことらしいし
打ち間違いだと思う
もしそうなら普通はよっぽどの理由がない限りpublicにはしないと思う
システムハンガリアンは使わずに変数名をつける
foreachが使えるなら使う
とかじゃない?

あとはその言語のコーティング規約を読んで対応するとか
0484仕様書無しさん
垢版 |
2022/07/21(木) 14:37:24.51
地味に言語によってコーティング規約が違うみたいだし

C++ではメンバ関数は大文字から始めるキャメル、Javaだとメソッド名は小文字から始めるとか
0485仕様書無しさん
垢版 |
2022/07/21(木) 15:53:39.22
>>483
たぶん元レスはメモリをどこに確保するのかの話だよ
C++としてマナーのいい書き方をしたところでハードウェア的にはマナーの悪い動きしかしない
だから「どんなマシン語、アセンブラになるのかわかるレベルの人間が使わないと意味がない」ってレスが続いてるんだと思うよ
0488仕様書無しさん
垢版 |
2022/07/22(金) 01:45:56.81
Googleのガイドラインはあんまり好きでない
仕事でも圧倒的多数はMicrosoftのほう
だがこれ以上言うと戦争起こりそうなのでやめとく
0489仕様書無しさん
垢版 |
2022/07/23(土) 08:27:47.90
>>484
C++には大文字と小文字を使い分ける慣習はない。

単語の区切りに大文字を使い始めて普及させたのはマイクロソフト。
0490仕様書無しさん
垢版 |
2022/07/27(水) 21:07:07.13
c以前の言語は後方互換の為に大文字小文字を区別しないのが多いねFortran, lisp, cobolとか
lispとFortranは書くけど、lispは出力は出力は自動で大文字になるので入力(コード)は全て小文字で書く、replで入出力が一目で分かるので便利な慣習
まあスネークでもなくて独特なkebab-case-pだけど
Fortranはスネークもキャメルも居るけど、repl開発じゃないし大文字にするか悩む合成語の表記揺れてもコンパイル通るので俺はキャメル
0491仕様書無しさん
垢版 |
2022/07/27(水) 21:10:16.45
クラスとそのインスタンスを大文字小文字違いでしか命名出来ないような奴はOOP向いてない説
レスを投稿する