アカウント名:
パスワード:
古臭い言語だと思う。土台が言語仕様貧弱なC言語なのに、無理して増築した感がある。土台から変えた言語を使うべき。
古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。昔、C言語の関数名制限に8文字以下というのがあったときは、相当苦労していたでしょうね。
C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。
# ファイル拡張子をcppと書いて内部ではCで書いている私です# ガンプラはどう作ろうと自由だ
> 古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。
C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。
> C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。
コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょ。
AC(#2777520)です。
> C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、まあ確かにそうですね。 constやrestruct修飾子を巧く使えば、最近のコンパイラがある程度のミスを見つけてくれるのは助かります。ポインタを使うことによる危険性も確かにありますが、コンパイラに全て任せて良いのかとの懐疑的であったりします。まぁ、任せたほうがコーディング的に楽ですが。バッファとかをSTLで確保した場合、いつ開放されるかはSTLの実装次第なので、やはりある程度はプログラマも認識は必要だと思いますね。あ、C++11では開放タイミングが指定できるようになったんでしたっけ。
昔、こんな提唱もありましたね。結構気に入ってます。C-language's Object Oriented Languagehttp://www.sage-p.com/process/cool.htm [sage-p.com]
> C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。組み込み系でよいか解かりませんが、OpenBSDのIntelのデバイスドライバなんかは巧いことやっています。純潔LinuxやFreeBSDだとフレームワーク化されているので、かゆいところが見えないところがありますね。http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe.c [cc.uoc.gr]http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe_x540.c [cc.uoc.gr]※ 実際はいくつかのデバイスを切り替えているので、さらに数ファイルで構成されています。関数宣言とか書き方が微妙なのはデバイスドライバということでご理解ください。
> コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょまさにそうですね。
# ガンプラはどう作ろうと自由だ
ありがとうございます、C-language's Object Oriented Language はかなり前に見た記憶があるような、ないような。デバイスドライバの方は、ビルド中にチラ見してましたが後でゆっくり見てみます。
リソース解放タイミングの指定はもともと出来ていると思ってますが、多分自分が思ってることと、AC(#2777520)さんが言ってることに違いがありそうな気がするな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
最初のバージョンは常に打ち捨てられる。
ひどい言語というより (スコア:1)
古臭い言語だと思う。
土台が言語仕様貧弱なC言語なのに、無理して増築した感がある。
土台から変えた言語を使うべき。
Re: (スコア:1)
古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。
昔、C言語の関数名制限に8文字以下というのがあったときは、相当苦労していたでしょうね。
C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。
# ファイル拡張子をcppと書いて内部ではCで書いている私です
# ガンプラはどう作ろうと自由だ
Re:ひどい言語というより (スコア:0)
> 古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。
C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、
C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、
どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。
> C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。
コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょ。
Re:ひどい言語というより (スコア:2, 参考になる)
AC(#2777520)です。
> C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、
まあ確かにそうですね。 constやrestruct修飾子を巧く使えば、最近のコンパイラがある程度のミスを見つけてくれるのは助かります。
ポインタを使うことによる危険性も確かにありますが、コンパイラに全て任せて良いのかとの懐疑的であったりします。まぁ、任せたほうがコーディング的に楽ですが。バッファとかをSTLで確保した場合、いつ開放されるかはSTLの実装次第なので、やはりある程度はプログラマも認識は必要だと思いますね。あ、C++11では開放タイミングが指定できるようになったんでしたっけ。
昔、こんな提唱もありましたね。結構気に入ってます。
C-language's Object Oriented Language
http://www.sage-p.com/process/cool.htm [sage-p.com]
> C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。
組み込み系でよいか解かりませんが、OpenBSDのIntelのデバイスドライバなんかは巧いことやっています。純潔LinuxやFreeBSDだとフレームワーク化されているので、かゆいところが見えないところがありますね。
http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe.c [cc.uoc.gr]
http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe_x540.c [cc.uoc.gr]
※ 実際はいくつかのデバイスを切り替えているので、さらに数ファイルで構成されています。
関数宣言とか書き方が微妙なのはデバイスドライバということでご理解ください。
> コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょ
まさにそうですね。
# ガンプラはどう作ろうと自由だ
Re: (スコア:0)
ありがとうございます、C-language's Object Oriented Language はかなり前に見た記憶があるような、ないような。
デバイスドライバの方は、ビルド中にチラ見してましたが後でゆっくり見てみます。
リソース解放タイミングの指定はもともと出来ていると思ってますが、多分自分が思ってることと、
AC(#2777520)さんが言ってることに違いがありそうな気がするな。