ライブラリについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
おーばー

ライブラリについて

#1

投稿記事 by おーばー » 7年前

c言語にはたくさんのライブラリ関数があるじゃないですか,標準ライブラリーは標準であるしきっと現場(プロのプログラマー?プログラミングを職にしてる方)でも使われているだろうし
なんたって"標準"だ、と言い聞かせて何とか割り切って入るのですが,つい最近グラフィックス系のライブラリを発見しました(gtkライブラリ),そのライブラリは標準ライブラリ、というワードでヒットするようなもの
ではないです、より現場の人々に近い環境でプログラミングするのならばやはりこれらの標準ライブラリでないものの使用は控えたほうがよろしいですかね??実際現場では使われているのか,
また使われているのならばどういう考え方で使われているのかが知りたいです
上記のようなことを思ってしまうのは,やっぱり自分の力でいろいろなことができるようになりたいからです,最後にライブラリ関数の中身を見ることが可能ならばどういった方法で見ることができるのかも
お教えしてほしいです!!

inemaru
記事: 108
登録日時: 7年前

Re: ライブラリについて

#2

投稿記事 by inemaru » 7年前

C言語でなくて、C++を使用していますが、
論点はそこになさそうなので、回答してみます。

[hr]
前提として、
現場で働いている人は、成果物を提出する事が仕事です。
つまり、
納期までに成果物が完成することが必須条件で、
個人の技量や知識は二の次です。

それを踏まえて、
ライブラリの件について書くと
  • 品質
  • 開発効率
  • 人件費
を両立させるために、
標準か外製かなんて関係なく普通に使用されてます。

使用するための条件はありますが、
大体はライブラリのライセンス絡みです。
(ライセンスによっては、製品をオープンソースにしないといけなくなったりする為)

特に、例に挙げられているような、
グラフィックス系のライブラリは、
専門知識が必要な上に、簡単に作成できない物なので、
デファクトスタンダード(準標準)な物を中心に使用されます。
(※社内ライブラリとして作っている場合もあるが、よく使われるのは「OpenCV」)
オフトピック
ツールだったりゲームのクレジットを見れば一目瞭然
よほど低レイヤーな物でない限り
制作会社のコピーライト以外の、ライセンス表記とかが書かれている
[hr]
おーばー さんが書きました: c言語にはたくさんのライブラリ関数があるじゃないですか
標準ライブラリーは標準であるしきっと現場(プロのプログラマー?プログラミングを職にしてる方)でも使われているだろうし
なんたって"標準"だ、と言い聞かせて何とか割り切って入るのですが,
そもそも、割り切って考えるものではないと自分は思います。
プログラム言語として最低限の機能を提供するために用意された機能なので
突き詰めて処理内容を知ろうとすると、半ブラックボックスだったりすることもあります。
割り切るのではなく、言語の一部だと認識した方が良いです。

また、複数人でプログラミングをする際
標準化されたコードを使用することは、共通化されたコードを
扱うという意味で非常に効率が良いです。

ちなみに実務では
標準ライブラリは、使えて当たり前。
「使い方を知らない = プログラム言語を扱えていない」 と見なされたりする。
おーばー さんが書きました: より現場の人々に近い環境でプログラミングするのならば
やはりこれらの標準ライブラリでないものの使用は控えたほうがよろしいですかね??
実際現場では使われているのか,
また使われているのならばどういう考え方で使われているのかが知りたいです。
上記のようなことを思ってしまうのは。
前述の通りです。
標準ライブラリでないから使用を控える、と考えるのは極端だと思います。
おーばー さんが書きました: やっぱり自分の力でいろいろなことができるようになりたいからです。
自分が何を作ろうとしてプログラミングしているのかが論点になります。
「いろいろなこと」を達成するために本当に必要なものを確認してください。
極論を言えば、
画像ビューワーを作るために、画面に画像を表示する”仕組み”を知る必要はないのです。

その仕組みはすでに専門家によって作られているのだから
専門家になりたいのでなければ、素人がむやみに手を出すべきでない。
おーばー さんが書きました: 最後にライブラリ関数の中身を見ることが可能ならばどういった方法で見ることができるのかも
お教えしてほしいです!!
オープンソースな物であれば、GitHub等で目的のライブラリを検索するとソースコードが見れたりします。
(GitHubに限らず、適当なリンクに公開しているはず)

標準ライブラリについて、使い方以上のことを知りたいのであれば、規格書をさがして読むとか必要です。
先にも書きましたが、目的達成のために「詳しい仕組みを知る必要があるのか」は自分で判断してください。
[hr]
長文になってしまいましたが、以上が回答です。

おーばー

Re: ライブラリについて

#3

投稿記事 by おーばー » 7年前

すべての疑問に対し一つ一つ丁寧な解説をありがとうございました
オフトピック
Githubについては、いろいろ言われてきたので利用してみようかなと思っているのですが
Githubについてよくわからないことが多すぎます,管理用のソフトウェアだとおもっていたのですが
他の人の書いたソースコードも閲覧することができる、というようなことも耳にしましたし
一番の謎,疑問がGithubについての本があるということです、ただのソフトウェア(自分の中では)に技術書のようなものが存在していて,これはなんだ。。。と困惑しています。Githubとはどういったものですか??

hide

Re: ライブラリについて

#4

投稿記事 by hide » 7年前

gitはバージョン管理ツールです。
このソースコードはあの時どうなってたんだっけ を確認したり
ソースコードAを改造したBと、Aを改造したCを合わせてソースコードDを作ったりとかを行います。

githubはウェブサービスです。
gitでバージョン管理しているものを、web上に置きます。
そうすることで、いろんな自分の端末から参照したりできます。
また、公開することによって、いろいろな人に使ってもらったり、改造してもらったりできます。

hide

Re: ライブラリについて

#5

投稿記事 by hide » 7年前

補足

ソースコードAを改造したBと、Aを改造したCを合わせてソースコードDを作ったりとかを行います。
で気づくかもしれませんが、gitって便利なんですが、使うと結構悩みます。
変更履歴をどれぐらいに分割していくのか、多人数で開発するときどうやるのが効率がいいのか、
管理すべきもの、管理すべきでないもの、変更履歴につける名前のつけかた、
そもそも操作ミスったときどうやって元に戻せばいいのか、
とかちょっと動かすだけで悩みます。お仕事で導入するようになっていくらかたちましたが、未だに運用で揉めますw
でも、それはとてもとても便利な機能がたくさんあるからなのです。
きっと本にはそんな悩みを解消する方法が載っていることでしょう。

おーばー

Re: ライブラリについて

#6

投稿記事 by おーばー » 7年前

なるほどです!
Gitの管理なる書籍はGitの欠点を補うための技術が載っているわけであってGitの機能ではないのですね!

たいちう
記事: 418
登録日時: 13年前

Re: ライブラリについて

#7

投稿記事 by たいちう » 7年前

> Gitの管理なる書籍はGitの欠点を補うための技術が載っているわけであってGitの機能ではないのですね!

hideさんは、gitの欠点の話はしていないと思います。

ソースコードの管理は昔からの難題で、大人数で開発する場合は難しさも膨れ上がります。
現在はバージョン管理ツールを使って管理する方法が主流であり、gitはそのツールの1つです。

ソースコードの管理は、開発チーム毎にスタイルがあり、
バージョン管理ツールが求められている機能も様々です。
強力で多機能なので、すぐに使いこなせない人が多いとしたら、欠点と言えるかもしれませんが。

Excelにも技術書(解説書)がありますが、それがExcelの欠点を補うものと捉える人は少ないでしょう。
gitの場合も同様ではないでしょうか。

閉鎖

“C言語何でも質問掲示板” へ戻る