Headline About TechLog Download Java VBA Link

March 18, 2008.

葉桜の慶び


電車に乗ると袴の女性がちらほら。大学の卒業式シーズン到来か。大学院に進まない限り、卒業というイベントはこれで最後。損得勘定をせず、純粋に友人との別れを体験できるのはこれが最後になる。単なる偶然によって得る、学校と言う空間での友達は、会社の同僚などと異なり、何の役にも立たないところが素晴らしい。欠点を罵り合いしながら生活する関係は、家族のそれに酷似している。同僚が究極的には利害関係によって結び付けられるのとはその点で大きく異なるだろう。無論そこに友情が生まれることもあるだろうが、引継ぎや残作業の整理に追われる退社時の別れは、卒業式のそれに比べ随分白々しい。学生生活の終焉を、大切に惜しんで欲しいものだ。

 

本日も作業無し。楽なのはいいが先月なんぞ残業0時間。当然残業代も0円。でも生活残業は大嫌いだから絶対やらんぞ。こりゃ副業をするか、霞を食って生きるしかない。携帯の買い替えを一番ちゃちなモデルで我慢すればよかったのでは、などと言う突っ込みは無用。それでは人としての勢いがなくなってしまうのだ、自分の場合。

余りに暇だったので、仕方なくVB .NETやC#の学習などで時間を潰した。C#は「シー・シャープ」と読むことになっている。正しくは「しー・いげた」なのだが。「#」は井桁と呼ばれるもので、「♯」がシャープ。と言っても、Microsoftはそれを理解したうえで、表記の簡便さのために#を採用しているので全く問題は無い。ただ、両者の違いを知らない人が多いのは若干問題かと。日本で#をシャープと呼ぶようになったのは、電話機のせいだろう。海外では一般的に#を連番を表す記号として用いる。ドラマの話数などは、#1、#2のように表記する。日本では大抵No.とする箇所だ。別に1話半、2話半という意味ではないので気をつけよう(そんな奴はいない)。

コーヒーサーバは無事復活。マグカップを胸に挟んで猫じゃ猫じゃを踊りたいところだったが、大矢さんにパテント料を請求されそうなので断念した。ともかく、なんとか人間に戻った。

 

携帯を変えてから気持ち悪いぐらいに迷惑メールが来なくなった。不思議に思ってサーバの設定などを調べたところ、URLつきでリンク先が未承諾広告系の場合は送信しない、という設定が自動で適応されていた。大事なメールも削除されたら困ると思い、ためしにwikipediaのURLをPCから送ってみたところ、問題なく受信できた。なかなか大したものだ。もっとも、受信無料なSoftbankとしては死活問題だから頑張って当然か。しかしその結果、誰からもメールが来ない。折角新しい機種になったのに殆ど触ることすらないのだ。うーん、こんなに友達が少なかったのか(笑)。

 

帰りの電車でぶたぶたを再読。その後の電車とミスドで英語。現在22/105まで完了。楽しみにしていた21/105を通り越してしまった(笑)。21/105で1/5だからようやく20%。遠い...。サイゼリアで軽く食べてから、家で餃子などを食べた。母親の新作餃子が激ウマ。春雨入り、シューマイ皮つつみのもの。参った。

寝る前にまた新しく買った921SHをいろいろ弄った。携帯動画変換君で640 x 480のムービーを作って再生してみたところ、十分な画質かつ余裕を持った再生が可能だった。実に素晴らしい。2,000円程度のカナルイヤホンをつけて聞いたら、想像外に素晴らしい音質。そもそもモノラルスピーカということで音には期待していなかったところ、スピーカ音質が意外に素晴らしくて驚いたのだが、イヤホンで聞くと絶賛レベル。音源チップが良いのだろう。サラウンド、クラブ、などの簡易DSPモードはそれぞれの個性が強く、効果がはっきりしているため面白い。ピュアオーディオでは無いのだから、これぐらいの味付けで正解だろう。暗いところでのカメラの画質はいまひとつ、いやイマ二つぐらいだが、マクロモードなどをマメに切り替えることで、随分マシな結果が得られる印象。web上の作例を見る限り、日中屋外の画質は素晴らしいので、休日が楽しみだ。ボタンは想像していたより押しやすい。画面効果のため体感速度が低く感じられるが、操作性も悪くは無い。タッチレガートもおおむね良好。あたりまえだが指紋がもの凄くつくのだけはどうしようもないな。クリーナ持参は必須。

 

 

【プロパティ値 -- setterとgetterの話】

VB .NETの勉強をしていて驚いた。マイクロソフトのサイトに以下のような記述があったのだ。

 

-- 以下 Microsoftのサイトより引用 ---------

 

プロパティ構文が変更になりました。 Visual Basic .NET では、

Public Property MyProp1() As Object

  Get

    ' プロパティを取得する処理

  End Get

  Set

    ' プロパティを設定する処理

  End Set

End Property

(中略)

このコードの書き方からも予想がつくと思いますが、Set と Get のアクセスレベルをそろえる必要があります。これは、意味的にも正しいことですので、異なるアクセスレベルに設定できないことは、問題ではないでしょう。

-- 引用ここまで --------

原文はhttp://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/chapter4_12.aspxを参照

 

「SetとGetのアクセスレベルを変えられないのは意味的に正しいから問題ない」と明言している。これには驚嘆だ。オブジェクト指向言語を齧った人なら誰でも知っている話だが、オブジェクトの意義の1つにカプセル化というものがある。簡単にいえば不要なものは見せない触らせない、という事だ。publicな変数を定義し、それをいろんなプログラムが直接参照・更新するとバグやセキュリティ上の問題になるため、最低限のアクセス権しか与えないよう、変数はprivateなメンバ変数とし、しかるべきアクセス宣言を設定したメソッド越しにしか操作を許可しないようにしよう、という考え方である。したがって、閲覧メソッドはpublicだが、設定メソッドはpackageレベル、などの制限を加えることは当然の設計である。ところが、Microsoftは「閲覧が可能な立場の人間は設定もやってよいのが当たり前」と述べているのだ。

例を挙げよう。ある美術館にゴッホのひまわりが届いた。一般公開されているので入場料を500円も払えば、誰でも見ることが出来る。Microsoftの発想だと、見ることのできる人は書いてもいい、ということなので、入場者は誰でも自由に、ひまわりを緑に塗ったり、ピンクに塗ったりすることが出来ることになる。どれぐらい馬鹿な発想か分かっていただけただろうか。

 

その後、C#を学習していたところ、C#のバージョン2.0における変更点を読んで、重ねて驚いた。

  get { return status; }

  private set { status = value; }

のように表記することで、getとsetのアクセスレベルを変えることができるようになった、と言うのだ。無論、オブジェクト指向言語としては正常進化であり、喜ぶべきことであるが、もう少し考えて物を言って貰いたいと思う。C#の仕様を読んでいて思うが、言語としての目指す姿に一貫性が感じられない。アンチとしての発言でも、Javaの真似をするなという了見の狭い意見でもない。JavaはCの良い部分を真似し、素晴らしい言語となった。C#もJavaの良い部分を真似し素晴らしい言語となるよう期待していたのだが、そうならなかったことに対し失望しているのだ。無論C#は齧り始めのため、評価眼が確かでない事は分かっているが、いきなりperlと同様の混沌を見せられ、入り口から中に踏み込むことに勇気を必要とするのだ。みんなの意見を取り入れる事は大事だが、なんでも盛り込めばいいというものでは無いだろう。こんな言語ではバグも増えるだろうに。

しかしまぁ、refをつけないと値渡しと言う仕様等は初心者に親切だ。オブジェクト引数が参照渡し、数値が値渡し、なんて基本を理解していないJavaプログラマが結構多いんだよなぁ....。

 

 

【今日の進捗】

・英語 :60min 22/105

・その他無し。いかんな...。


名前: 意見: パス:

※パスにはこの日記のタイトルをコピペして下さい。


March, 2008
SUN MON TUS WED TUR FRI SAT
1
2345678
9101112131415
16171819202122
23242526272829
3031