2009年05月05日(火)

低レベルなプログラミング

テーマ:専門用語

「低レベルなプログラミング」と聞いて、どういうものをイメージするだろうか。プログラマとそうでない人では、答えが違ってくるのではないだろうか。


一般の人には、「誰でもできそうな簡単なプログラミング」、あるいは「質の悪いプログラミング」といった意味にとられるかもしれない。


しかし、プログラミングについての文脈で「低レベル」といわれる場合は、通常は「ハードウェアに近い」という意味である。つまり、「低レベルなプログラミング」とは、「ハードウェアが理解する言葉」に近い(たとえばアセンブラのような)言語を使ったプログラミングだとか、直接ハードウェアに命令を送って制御するようなプログラミングのことである。


このハードウェアとの「近さ」は測定できる類のものではないが、プログラマ(あるいはその周辺の業界人)は、なんとなく了解していると思う。このブログの「スキルアップのためにラップを剥がしてみる 」というエントリで「層」と表現したものにも近いだろう。



もともと「レベル」という言葉は「何らかの基準」を意味しているだけである。それが何の基準であるか、ということは文脈によって変わるので、別段ここでの使われ方が特殊であるというわけではないだろう。


しかし、何の説明もなく「低レベル」という言葉を使うと、上記のような了解のない人には、「品質が低い」、「スキルが低い」といった侮蔑的な意味に誤解される可能性があるので、気をつけたい。


また、初心者プログラマの中には、そのような誤解をしてしまう人も多いかもしれない。あるいは「低レベル・プログラミング」と聞いて、「簡単そう」と思ってしまう人もいるかもしれない。しかし、低レベルなプログラミングほど難易度は高レベルだったりもするので、注意が必要である。







■関連記事
普通の言葉
「¥」について普通の感覚で考えてみる
スキルアップのためにラップを剥がしてみる
簡単フレームワーク・プログラミングの罠




CPUの創りかた
CPUの創りかた
posted with amazlet at 09.05.05
渡波 郁
毎日コミュニケーションズ
売り上げランキング: 1745
おすすめ度の平均: 4.5
5 基本的な電子回路でCPUができる
5 趣味の本だよねぇ
5 読んでもすぐには理解できませんが、他のCPU本はもっと理解できません
5 ノイマン型コンピュータを自作する・・・名著かも
4 CPUの超基本構造

真・コンピュータ用語辞典 (ホームページブックス)
tell‐a‐lie
キルタイムコミュニケーション
売り上げランキング: 377785
AD
いいね!した人  |  コメント(17)  |  リブログ(0)
2009年03月22日(日)

ダーティなデータ

テーマ:専門用語

「データがダーティである」という言い方は一般的だと思うが、私の周囲では伝わらないことも多い。


何らかのデータを変更するプログラムにおいて、保存されているデータを直接書き換えるのではなく、データをコピーしてからそのコピーを変更し、最終的に元のデータに書き戻す、という方法をとることがある。このとき、「コピーの方は変更されているが、元データには反映されていない」という状態を「ダーティである」という。


たとえば、ユーザーが画面でデータを編集するようなソフトでは、既存のデータを編集してそのまま終了しようとすると、「変更されています。保存しますか?」といったメッセージを表示するのが一般的だ。このような、データが「ダーティかどうか」という判定を「ダーティチェック」と呼んだりする。


また、データベースで「ダーティリード」という時の「ダーティ」も同じ意味だろう(「汚い」という英語の意味を考えるとこれが語源かも?)。



「ダーティ」という言葉を使わなくても、「データが変更されたかどうか」と言えば伝わるのだから、あえて使う必要もない、と思うかもしれない。


しかし、開発チームの中で、このような、「使わなくてもやっていけるが、使うと便利」というレベルの言葉がどれだけ共有されているか、ということは、円滑なプロジェクトの進行のための要素のひとつである。


また、言葉を共有することの効果は、コミュニケーション面の向上だけでなく、ものの考え方(システム開発であれば「設計思想」など)の共有にまで及ぶことも多く、侮れないものである。







■関連記事
曖昧言葉




2009-'10年版 [最新] パソコン・IT用語事典
堀本 勝久 大島 邦夫
技術評論社
売り上げランキング: 35830

IT英語のナゾ
IT英語のナゾ
posted with amazlet at 09.03.22
豊沢 聡 緒方 孝文
カットシステム
売り上げランキング: 261531
おすすめ度の平均: 4.0
4 実務英語に即した本です。
3 多少勉強になる
3 もっと収録語数をしぼってくれたほうが、個人的にはよかった。
5 この著者は語学もコンピュータも詳しい
5 IT業界人に限らず 中級以上の英語学習者にもお勧め!!
AD
いいね!した人  |  コメント(12)  |  リブログ(0)
2008年07月07日(月)

紐付く

テーマ:専門用語

中学生の頃だったろうか、「サボる」という言葉を漢字で書こうとして辞書を引き、はじめて「サボタージュする」の略だということに気がついた。ずっと純粋な日本語だと思っていたので驚いた記憶がある。日常的に使っている言葉は、昔からあったかのように思ってしまうものだが、意外に新しいということがある。



この業界では「ひもつく」という言葉がよく使われる。個人的には「ひもづく」と言う方が多いのだが、同じものだろう。データ構造に関する文脈などで、「繋がっている」、「関連している」といった意味でよく使う。たとえば、「従業員のデータは部門コードで部署マスターにひもづいている」という具合である。


しかし、この言葉、メールに書こうとすると漢字変換できない。辞書で調べても出てこない。実は、最近生まれたいわゆる「オトナ語」なのである。仕方がないので「繋がっている」とか「リンクしている」などに置き換えてみるが、文脈によってはしっくりこないこともあり、ちょっと困る。


まぁ、どのみち受託システムに関する文章は専門用語のオンパレードである。関係者が読んで理解できる言葉であれば、メールで使うくらいは構わないだろう。とはいえ、平仮名では格好が付かないので、「紐付く」と表記することにした。



逆に、きちんと定義された「正しい」言葉であっても、それを読む人が理解できないものを使うのはよくない。先日も、あるシステムの画面に、


 20バイト以内で入力してください。


というエラーメッセージが出てきて、エンドユーザーが「意味が分からない」と言っていた。システムを作る側は、「バイト」という単位にあまりに馴染んでしまっているので、思わず使ってしまったのだろう。しかし、一般には、「バイト」といえば「アルバイト」の略である。


ここは、ユーザー層を考えて「バイト数」ではなく、「文字数」で表現すべきところだった(細かいことをいえば、文字数とバイト数との関係は文字コードセットによって違うので、単にバイト数を示すだけでは、いずれにせよ不十分である)。



バイトといえば、「バイト敬語」が日本語の乱れとして問題視されている。「1万円からでよろしかったでしょうか?」のような、コンビニやファミレスの店員などが話す独特の言葉である。


私もこうした「乱れた」とされる言葉には違和感を感じる方である。しかし、言葉が本来「変化する」という特徴を持っていることを思い出すと、あまりこだわることもないか、と思い直す。何を基準に「乱れている」というべきか分からないからだ。


特に、そう思わせるのが「全然」の誤用問題である。私はずっと「全然」という言葉がその後に否定的な意味を伴わずに使用されるのは誤用だと信じていた。つまり、「全然良くない」は正しいが、「全然良い」のような肯定的な表現は最近の「日本語の乱れ」だと思っていた。しかし、調べてみると実はそうでもない。「全然」の肯定的な表現は昔からあり、漱石や鴎外も使っているというのである。


結局、言葉が「正しい」かどうかというのは、それを使う人同士が持っている「基準」に合っているかどうか、という程度でしかないのだろう。つまり、うまくコミュニケーションするには、「相手が正しいと思う言葉を使え」ということである。相手によっては、自分より「基準」が厳しい場合だってあるだろう。そう考えると、「ひもつく」などという辞書にない言葉に違和感を感じる人もいるかもしれない。とりあえず、設計書などの正式な文書には、「紐付く」などと書かないようにしようと思う。







■関連記事
普通の言葉
曖昧言葉
えいやぁと眉を引く話
エンドユーザーとは




問題な日本語―どこがおかしい?何がおかしい?
北原 保雄
大修館書店
売り上げランキング: 56754
おすすめ度の平均: 4.0
3 文法的な解析や過去の吟味とあわせて、現在の生きた用法をしっかりと見据える事が大事
5 「問題な日本語」は問題ではないでしょうか?
5 ってゆ0か、わたし的にはおもしろい、ってかんじ?
5 柔軟な思想
5 言葉は生きている!


問題だ!そのバイト語―その言葉は耳障り!直すべし、その言い方!
浦野 啓子
東洋経済新報社
売り上げランキング: 72839
おすすめ度の平均: 5.0
5 普段何気なく使っているけど

AD
いいね!した人  |  コメント(5)  |  リブログ(0)
2007年08月19日(日)

ちょっとしたプログラム

テーマ:専門用語

「ちょんプロ」という言葉がある。プログラマが自分自身の作業を楽にするために作る簡単なプログラムのことである。私がこの言葉を初めて聞いたのは、おそらく職場だったろう。ネットで検索しても出てくるが、それほど頻繁に使われているわけでもなさそうである。語源は不明だが、おそらく「ちょっとしたプログラム」の略だろう。


「ちょっとした」というのは面白い言葉である。大辞林(goo辞書 )によると、ひとつには、「わずかな」「ささいな」といった意味がある。「ちょっとした風邪」、「ちょっとした感情の行き違い」といった使い方だ。一方で、「大層立派とはいえないまでも相当の」「かなりの」という意味もある。「ちょっとした会社の経営者」だとか「どうだ、ちょっとしたアイデアだろう」といった使い方である。


「ちょんプロ」という言葉には、その両方の意味が込められているように思う。ソースコードの量が少ないプログラム、あるいは、短い時間で作ったプログラムであるのは確かだが、それだけではない。何かしら実用的な機能を持っていたり、それ自体が技術調査を目的としたものであったりと、ちゃんと役立つものでなければ、ちょんプロとは呼ばれないのである(つまり、"Hello World!" と表示するだけでは駄目だ)。


つまり、ちょんプロを作るには、それなりの力が必要である。有用なプログラムをいかに短く、短時間で書けるかということだからだ。綿密なテストを行うわけでもないので、コーディングの品質も高くなければならない。


必要なのはプログラミングの技術力だけではない。そこには、企画から、要件定義、設計、実装といったソフトウェア開発工程の縮図がある。その全てをプログラマ自身で行うのだ。例えば、単純作業を自動化するためのプログラムが欲しいと思っても、それを作るのに時間がかかり過ぎるのなら、作るべきではない。そういったことを正しく判断するには、プログラミングに必要な時間を正確に見積もる力が必要だ。そしてそのためには、事前にある程度の実装方法までイメージできていなければならないだろう。


たかが「ちょんプロ」。されど、それを作る過程には、ソフトウェア開発者として学ぶところは多くありそうだ。







■関連記事
面倒くさいこと




Short Coding ~職人達の技法~
Ozy やねうらお
毎日コミュニケーションズ (2007/08/09)
売り上げランキング: 1057


業務システムのための上流工程入門―要件定義から分析・設計まで
渡辺 幸三
日本実業出版社 (2003/10)
売り上げランキング: 11335
おすすめ度の平均: 4.5
4 上流工程のル―ル化促進を期待します
5 システム屋にとって感動を呼ぶ本でした
3 上流工程の入門書

いいね!した人  |  コメント(4)  |  リブログ(0)
2007年07月22日(日)

エンドユーザーとは

テーマ:専門用語
コンピュータ業界では「エンドユーザー」という言葉がよく使われる。直訳すれば「末端の利用者」だが、文脈によって微妙に意味が変わるようだ。

例えば、ユーザーを管理者とその他に分けた場合に、後者のことを指す場合がある。あるいは、システムを使ってサービスを提供する者と区別して、そのサービスを利用する者を指すことがある(例えば、ショッピングサイトで言えば、ショップの運営者と区別してショップの顧客を指す)。


他にも、パッケージソフト等では「最終消費者」のような意味で使うこともあるし、受託システム等を孫受けする場合に直接の(つまり二次の)発注者と区別して一次の受発注者を指すようなこともある。


あるいは、単に漠然と「コンピュータに詳しくない人」を意味する場合もある。



ほとんどの場合、文脈から意味が理解できるので困ることもないのだが、ちょっと気になったので、一般的な定義がどうなっているのか調べてみた。


まず、@ITの Insider's Computer Dictionary では、


 広義には、製品やサービスなどを末端で消費する利用者のこと。コンピュータ関連では、コンピュータ自身をビジネスにしたり、第3者のコンピュータ環境を管理したりするのではなく、あくまでもコンピュータを道具として利用するユーザーのことを指す。

 エンドユーザーのハードウェア/ソフトウェア環境やネットワーク環境などを管理する「管理者」と対比させ、「管理される側」という意味を込めて、エンドユーザーという言葉が使用されることもある。


となっている。あえて「第3者の」としているところをみると、自分(達)用のシステムを管理する人はエンドユーザーと呼ぶのだろう。実際、「@IT情報マネジメント用語事典」の「エンドユーザー・コンピューティング」の説明 では、システムアドミニストレータ(システム管理者)がエンドユーザーの代表として位置づけられている(上記の引用の最後が「こともある」となっているのは、そういう例をふまえてのことだろう)。


次に、日経パソコン用語事典2007(日経パソコンオンライン) をみると、


自分の業務を処理することを目的に、コンピューターを道具として使っているユーザーのこと。情報システム部門の担当者のように、社内の各部門の人々の要求に応えてコンピューターシステムを構築するユーザーと対比する場合に使う。


とある。@IT の記述に似ているが、「管理」ではなく「構築」という言葉が使われている。システムを「管理する人」は「構築する人」よりも「エンドユーザー寄り」だと思う(※1)が、そういう意味では、「管理者」の位置はもっと曖昧になってしまっている。


これらと全く毛色の違う説明をしているのは、三省堂「デイリー 新語辞典」(goo 辞書) だ。


末端の利用者。一般使用者。コンピューターでは自分ではプログラムは組まず,アプリケーション-プログラムだけを利用するユーザーをさす。


なんとも乱暴な説明である。プログラミングをする人でも、他者が作ったアプリケーションを使うだけなら、他のユーザーと同じだと思うのだが、この定義だとそうはならない。また、コンパイラのようなプログラマ向けのソフトウェアは、エンドユーザーを持たないということにもなってしまうだろう。更に、「エンドユーザープログラミング」、「エンドユーザー言語」といった言葉と矛盾してしまう。


とはいえ、「コンピュータに詳しくない人」といった曖昧になりがちな分類に対して、明確な基準を与えていることには潔さを感じる。例えば、同じシステム管理者の中でも、プログラムを組まない人はエンドユーザーだし、プログラムを組む人はエンドユーザーではないということになる。



他にもいくつか用語解説の類を調べてみたが、多様に使われている「エンドユーザー」という言葉を包括的に説明する記述は見つけられなかった。


考えてみれば、「ユーザー」という言葉自体が広い意味で使われるものである。ユーザーというのは、何かを「使う人」であり、その「何か」によって意味が変わるのは当然である。先に書いたように、ほとんどの場合、文脈から意味を判断できるので、特に難しく考えることもないのだろう。


ただ、「カスタマー(顧客)」とか「コンシューマー(消費者)」と表現した方が分かりやすいような場面では、あえて「ユーザー」という言葉を使う必要もないだろう。自分が使う場合には、注意したいと思う。








※1
というよりも、システムを「構築する人」はシステムの「ユーザー」ですらないような・・・。コンピュータ=ハードウェアのユーザーとしての話なのかも。




■関連記事
 ・曖昧言葉




1週間で分かる初級シスアド集中ゼミ「午後編」〈2007春秋〉
栢木 厚
日本経済新聞社 (2006/11)
売り上げランキング: 1362
おすすめ度の平均: 5.0
5 基本をおさえることが合格の秘訣
5 午後は○○!?


エンドユーザコンピューティング
佐藤 修 佐々木 憲一 松尾 道明 山田谷 勝善 大塚 修彬 沢田 博光 山川 隆義
日科技連出版社 (1996/07)
売り上げランキング: 768402


いいね!した人  |  コメント(3)  |  リブログ(0)

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。