「Visual Basic」を含む日記 RSS

はてなキーワード: Visual Basicとは

2023-09-08

anond:20230908132802

最近の若者が触れる言語だと使いようがないし言語構造として持っていないものも多いからね

これ該当するのって古い時代BASICだけなんだよね

Visual Basicの時点でそんな書き方する方が難しいし

Cでさえかなり無理しないと書けない

2023-01-12

Pythonって何を作れるの?

プログラミングイメージが、学生時代にやっていたCやVisual Basicでのゲームプログラミングで止まっているので、Pythonで作れるものイメージが湧かない。

プログラミングといえば、キーボード操作キャラクター画像を動かしたり、効果音を流したりできるexeファイルを吐き出すイメージなのだが、Pythonはどうもそうじゃないらしい。

まじでなんなんだPythonって。

2022-09-21

タクティクスオウガと俺の半生

11月リメイク版が発売されるので思い出話を書いてみたい。

から25年前の1997年ののこと。当時小学生だった自分の1歳年上の従兄が、夏休みにお婆ちゃんの家にこのゲームを持ってきていたのが全ての始まりだった。

タクティクスオウガっていうゲームがあるんだ。すげーから一緒にやろうぜ。」

従兄に勧められるままゲームを始めたのだが、タクティクスオウガが『すげー』ことはすぐに分かった。

中世ヨーロッパ風の権謀術数渦巻く世界観重厚BGMの中で敵味方がターン関係なく立体的なマップで繰り広げるリアル戦闘

背中に翼の生えたキャラクターが民家の屋根の上に移動して弓を射ると放物線上に矢が飛んでいくわ、ふわふわと宙に浮かぶ幽霊魔法を唱え敵が炎に包まれると足元の草が焼けるわと細部までこだわったビジュアル

とにかく衝撃的なゲームだった。いてもたってもいられなくなり、従兄がお婆ちゃんの家から帰った直後にお小遣いを握りしめて町のゲーム屋さんに走った。

お店のレジ商品を買うときにすごくドキドキしたのを今でも覚えている。スーパーファミコン版のタクティクスオウガ商品パッケージ英語タイトルが書かれており、フォント英語旧字体みたいな形だったので、読み方があっているかな、間違って別のソフト買っちゃうんじゃないかなとすごく緊張したのだ。ぜんぜん自信が無かったが、店員さんにタイトル合ってるか確認して無事に買うことができた。

クワクしながら商品を持ち帰り、ゲームを始めたが小学生にとっては、難易度が高く難しいゲームだった。初回プレイ時にはキャラクターの強さを表すパラメータが多すぎてさっぱり分からなかった。

だけど作りこまれチュートリアルオンラインヘルプ等の親切な機能がたくさんついていたおかげで何とかゲームを進めることができた。一番助かったのは戦闘中の中断セーブ機能だ。小学生の時には、1日ゲームは30分までというルールがあったので非常に助かった。

さて、ゲームを買ってから2週間くらいの時のこと。難しいながらも俺はどうにかChapter1の終わりまでシナリオを進めていた。このゲームプレーヤーが会話中の選択肢を選ぶことでシナリオ分岐するんだけど、途中で出てきた選択肢が衝撃的だったのは今でも忘れられない。ネタバレになるので詳細は伏せるが小学生には重たすぎる内容だった。無茶苦茶悩ましい選択だったが、片方を選んでゲームを先に進めてみた。だが、すぐにゲームに行き詰った。キャラクター育成をよくわからずに進めていたので自軍ユニットが弱く戦闘で勝てなくなったのだ。このまま先に進めないのも悔しかったので攻略本を買うことにした。

ここで話は少々脱線するのだが、俺の生まれ育ったのは日本海側の田舎町だ。町の本屋さんはあまり大きくない。なので、地元本屋さんの攻略本コーナーにはメジャー作品のものしか置いてないわけだ。ゼルダの伝説とか、ドラクエとかFFとかまあそれくらい。それらに比べるとタクティクスオウガマイナーだった。苦労を重ねて隣町の古本屋さんで偶然攻略本を見つけて手に入れるまで1か月かかった。その後は攻略本を熟読してゲームシステムの理解を深めて1から再挑戦したのだが、家の方針で1日のゲーム時間が30分に制限されていたので、クリアするまでにはさらに2ヶ月ほどの時間を要した。だけどその分クリアしたときの達成感は大きかった。興奮冷めやらぬ俺は、小学校同級生たちにタクティクスオウガのすごさを布教したが上手くいかなかった。俺がタクティクスオウガ出会った1997年当時、家庭用ゲーム機の主役はスーパーファミコンからプレイステーションに移行しつつあり、同級生たちはファイナルファンタジー7ファイナルファンタジータクティクスといったスクウェアの大作ゲームに夢中になっていたのだ。

同級生のN君に、「タクティクスオウガってファイナルファンタジータクティクスパクリでしょ?」と言われたのは傷ついたなあ。なんていうか、自分イケてると思ったゲームをディスられるという経験がなかったので。残念ながら、うちの地元では最初タクティクスオウガを紹介してくれた従兄以外に周りでタクティクスオウガファンを見つけることができなかった。

それから2年後の1999年。俺は中学生になり、田舎町の我が家でもインターネットが使えるようになった。ネットが使えるようになってすぐに、以前はまっていたゲームタクティクスオウガ攻略情報を調べてみた。地元田舎町にはいなかったタクティクスオウガファンは、ネットの向こうにはたくさんいるようだった。ファンの集めた情報は膨大で、攻略情報にとどまらゲーム舞台背景の考察クリエイター音楽趣味までカバーしていて、中学生の俺の知的好奇心ガンガン刺激された。ディレクター松野氏の名前もこの時に知った。余談だが、「タクティクスオウガファイナルファンタジータクティクスは主要な開発スタッフが同じ」というのも同時期に知ったので、小学生の時にパクリ呼ばわりしてきたN君に対して「両方同じ人が作ってんだよ、適当言うなざまあ」という気持ちが芽生えたのはここだけの話である

ネット情報から刺激を受けた俺はゲーム世界観もっと味わいたくなって、前作の「伝説のオウガバトル」もプレイしてみた。ディレクター松野氏が好んでいたらしいQueen楽曲を聞いてみたくなり、生まれてはじめて洋楽CDを買いにも行った。コーヒーを飲めるようになった時のように、背伸びして少し大人になった気分がした。

そのうち自分でも似たゲームを作りたくなって、おこづかいVisual Basicを購入したりもした。プログラミング入門書片手にそれらしい画面までは作ったが、しょせんは中学生。体系だったプログラミング言語の知識がないためサンプルコードコピペに終始し、1年くらいかかって紙芝居のようなものが出来て終わった。その後は、高校入試大学入試で忙しくなったのでしばらくゲームから遠ざかっていた。

そこからさらに時が流れて俺は社会人になった。中学生の時のゲーム作りの経験からソフトウェアエンジニアの適性は無いなと思ったのでハード系のエンジニアとして就職した。タクティクスオウガから受けた影響は俺の人生を変えたのであるゲームから遠ざかっていた俺だが、2010年タクティクスオウガの1度目のリメイクニュースを聞いて再び情報を集めだした。そこでたまたま開発者松野氏のプロフィールを見つけたのだが、なかなかの衝撃だった。

まずはスーパーファミコン版のタクティクスオウガ開発時の年齢。発売日の時点で29歳なのであるゲームの開発期間が2年くらいだとすると、開発開始時は27歳くらいだろうか。その若さであの革新的ゲームの開発指揮を執ってたのかよ!松野氏と面識のあるゲームクリエイターインタビュー記事天才という理由が分かった気がする。次に出身地新潟県妙高市となっている。地方出身であのゲーム重厚シナリオを描くだけの知識を身に着けたのか!というのがもう一つの驚きだ。

先に俺の出身地日本海側の田舎町だと書いた。地方で育ったからわかるのだが、地方ゲーム攻略本に限らずあらゆる情報が都会に比べて乏しい世界だ。タクティクスオウガ世界観形成している中世ヨーロッパ歴史文学知識松野氏はどこで得たのだろう?世代的にインターネットが無い時代なので、俺が田舎で育った時よりもさら情報は手に入れにくいはずである。これは今でも気になっているので、今度出る予定のリメイク版の開発者インタビューでだれか聞いてみてほしいところである

最後になったが、今回出る2回目のリメイク版もすごく楽しみにしている。なんていうか2回もリメイクが出るだけでもすごいのに、2回ともオリジナルの開発メンバーがかかわっているのがまた驚きなのだ

発売元スクウェア・エニックスはFFドラクエ等の過去作品をよくリメイクしているけど、オリジナルスタッフが何度もかかわるケースは珍しくないだろうか?しか開発者松野氏はリメイク前にスクウェアを退社しているのだ。それでも声がかかるのだから、本人のカリスマ性がメチャクチャ高いのだろう。過去会社を辞めた人が2回も開発現場に呼ばれるって相当なことだと思うんよね。

2022-05-23

昔、昔、Visual Basicっていう誰でも簡単Windowsアプリが作れる言語がありましたとさ

2021-03-30

anond:20210330180900

ヴィジュアルって付くイメージはVisual C++とかじゃないのか?

あ、ちがうわVisual Basicだ、こっちだな

2020-06-14

VBAからプログラミングを始めた人は、一生VBAやっててくれ

VBAVisual BASIC for Applicationからプログラミングを始めて、「プログラミングとはこういうもの」という感覚を身につけてしまった人は、絶対に他のプログラミング言語の世界に入ってきてはならない。

一度VBAに慣れてしまうと、プログラマとしての正常なセンスを身につけることがほぼ不可能になるからだ。

これは、ヒトラーポルポト金日成などを良しとして政治に入門した人が、ふつう政治感覚を身に付けるよりも大変なことだ。

VBAプログラミングに入門した人は、これからVBAだけをやること。間違ってもプログラマになろうなどとは思わないこと。そして、プログラミングを知らない人にVBAを推薦したりしないこと。

以上。

2020-05-17

日本全国のユウダイを許さない会

エンジニア仲間どうしで年に何回か情報交換を兼ねて飲み会を開催していたのだが、今年はコロナウイルスのせいでZoom呑みに変更した。結果的に、これ以上この会意味あるんだろうかと思うようになってきたので吐き出しておく。

最初のうちは感染の拡大や緊急事態宣言による仕事への影響や、リモートワークの生産性の話をしたり、最近上中里にも店舗ができたらしいオメガラーメン食レポめいた話題が出たりした(参加者にはラーメン好きが多い)。

雲行きが怪しくなってきたのは、いちばん年上の方のムラタさんが会話を独占し始めてからだ。Visual Basic一筋でもう20年以上やっているフリーランスで、いろいろな知識シェアしてくれて悪い人ではないのだが、もともと朴訥というか突っかかるような話し方をする人で、酔っぱらうとそれに拍車がかかる。最近やっと住宅ローンを組んで町屋マンションを買ったのだが、コロナのせいで案件が細ってきて、返済がやばいという話をして場を暗くしていた。

そこまではまだいいとしよう。問題は、ユウダイ絶対に許すなとムラタさんが強硬に主張し出してからだった。

ムラタさんによれば、ユウダイという名前の響きがまずよくない。ユウダイキラキラネームに属するべきもので、一般に広く普及するべきではない。それなのに、平成の頃にユウダイと名付けられた男児が大きくなって社会メインストリームに大量に出てくるようになって、テレビなどでもごく普通にユウダイを見かけるようになった。これは非常によくない、ジェネリック名前なら太郎とか一郎にしておくべきであって、ユウダイは許されない、現状はコロナウイルスよりも危機的状況である。もとはといえば、ユウダイなどという響きの名前がかっこよいと思って名付ける、ゆるゆるの平成ママが悪いのだが(名付けるのは母親だけとは限らないと思うのだが、ムラタさんの頭の中ではユウダイ母親が名付けているらしい)、もはやどうしようもない。残された道は「日本全国のユウダイを許さない会」を結成し、ユウダイ社会侵食を防ぎ、いずれ根絶することである

画面の向こうではムラタさんの目が据わってきて、ボサボサの髪を振り乱し、他の参加者に向かって、お前らも「日本全国のユウダイを許さない会」に加入しろ、おのれっユウダイ、許さんと叫んでいた(リアルでおのれとかいう人をはじめて見た)。若干コミュ障気味のムラタさんは最近祐大か雄大という名前の人事担当者に干されたのかもしれないが、ユウダイに対する深い怨恨の原因は結局不明である。この状況がしだいにだるくなってきたので、iPadの充電が切れそうだから寝ると言ってWindowsシャットダウンしてから歯を磨いた。

2020-03-20

難しいプログラム言語って何

下記の言語仕事&趣味で触ったことがある。

cobol

python

c#

java

shell script

visual basic

vba

java script

sql

初めてのシステム開発java使用したときは難しいと思った。

でも1度感覚を掴んでしまえばどの言語Google検索すればやりたいことを知ることができるため、社会人5年目でやっとプログラムって簡単だなと思うようになった。

プログラムが好きだから色んな言語に挑戦してみたい。

経験のない言語で難しそうなc++を触ってみるべきなんだろうか。

あとよく分かんないけど組み込み系も難しいんだろうか。

2020-03-01

MtGプログラミング言語の色

このプログラミング言語MtGだと多分この色の組み合わせだろう。

みたいなのをまとめたら次のようになった(TIOBEのランキングトップ50)。

後半は知らない言語もあって怪しいが、おおよそこのようになると思われる。

※改めて見てみると何箇所か違和感があったので最初の版からちょっとだけ修正した。

順位プログラミング言語色の組み合わせ 内訳
1 Java アブザン 白黒緑
2 C ゴルガリ 黒緑
3 Pythonティムール緑青
4 C++ ジャンド 黒赤緑
5 C#バント 緑白青
6 Visual Basic .NETレズニア 緑白
7 JavaScript ボロス 赤白
8 PHPグルール 赤緑
9 SQL 無色
10Swift 4C(緑欠色) 白青黒赤
11Go ゴルガリ 黒緑
12Assembly language 黒単
13 R ゼット 青赤
14 D グリクシス 青黒赤
15 Ruby 赤単
16 MATLABゼット 青赤
17PL/SQL 無色
18 Delphi/Object Pascal アゾリウス 白青
19 Perlラクドス 黒赤
20Objective-C エスパー 白青黒
21 SAS アゾリウス 白青
22 Visual Basic 緑単
23Dart ジェスカイ 青赤白
24Scratch 白単
25 Scala 5C 白青黒赤緑
26 Groovy ナヤ 赤緑白
27 Transact-SQL 無色
28F# アゾリウス 白青
29 Rust マルドゥ 赤白黒
30 COBOL オルゾフ 白黒
31ABAP アゾリウス 白青
32 Lispシミック緑青
33Kotlin 4C(緑欠色) 白青黒赤
34 Logo 白単
35 RPG ディミーア 青黒
36 Lua 緑単
37 Fortran スゥルタイ緑青
38 PowerShell ジェスカイ 青赤白
39 Ada ディミーア 青黒
40 LabVIEW ディミーア 青黒
41 Erlang 緑単
42 Julia ゼット 青赤
43 ML 青単
44 Schemeシミック緑青
45 Haskellエスパー 白青黒
46 TypeScript ジェスカイ 青赤白
47 OpenEdge ABL アゾリウス 白青
48 LiveCode アゾリウス 白青
49 PostScript 無色
50 ActionScript ジェスカイ 青赤白

見返してみるとおおよそ次のルールに従って決めているような気がした。

緑の判定があやふやな気が若干しないでもない…

イメージ
レイヤ初心者向け
浮世離れベンダー
レイヤ、黒魔術
速い、先進
基盤、グル
無色 道具

2020-01-12

永遠に書きあがりそうもないやつ

何かの参考とかにしたらダメです。書き始めて半年つんだけどこっからどう直したらいいんだか(何をゴールにしたらいいのか)わからない。。

追記:合流性とか強正規化可能性とか停止性とか、全部チューリング不完全で、事前の静的解析で使うメモリの最大量が確定できる、とかそういう風に読み替えられる人を増やしたいのです、数式の添え字とΣと∫にびびらない人を増やしたいようなもの

理論理学の一分野である証明から成長した、数理論理学理論計算機科学境界領域研究領域である型理論(type theory)は、大規模なプログラムの内的な整合性のチェックを行うための方法論を必要とする情報処理技術の分野で関心を集めている。

 そもそも「型」(type)とは何か。プログラミング言語一般的にはレコード関数といったプログラム構成する「値」(value)の定義をする道具である(*1)。その言語コンパイラ作成者はこれらレコード関数などの値、もしくは第一級の対象(first-class object)の種類を区別する型システム(type system)を必要とする。抽象代数学観点からすると、「型」とはこれらの値もしくは第一級の対象が属する高階の対象(higher order object)としての空間(space)ないし代数系(algebraic system)で、型システムはそれら「型」とそれら相互関係(relation)つまり型のなす順序構造(order structure)ないし束構造(lattice structrure)であるといえる。

 プログラム構成する値すべてに型が付くためには、曖昧でない(*2)こと、自己矛盾していないこと、悪循環を含まないこと、それぞれの値の内容をチェックするために無限時間を要しない(*3)ことなどが必要で、これらを満たすなら、プログラムは有限時間で実行を終え、停止する。手続き型言語では無限ループ、型無しラムダ計算では無限再帰によって型付け不能プログラムを書くことができるが、型理論はこれらのチューリング完全な計算機意図しない停止しないプログラムから守る装甲でもあり、再帰メモリ確保で好き勝手をさせないための拘束具でもある。型が付くプログラムには単に停止するというだけでなく、可能な実行経路(訂正:経路→方法)のすべてで同じ結果を出すなど種々の良い性質がある。

1)この定義現実に使われているプログラミング言語の特徴を覆い切れていない、狭い不満足な定義だが本稿では都合上この定義立脚して限定的議論する。例えば変数(variable)というものを持つプログラミング言語もあり広く使われているが、これについてはレコード関数と同じように性質の良いものとして扱うことが難しい。難しさの原因は次の注の内容と関連する。近年は変数を扱うかわりに値の不変のコピー(immutable copy)やその参照に名前を付ける機能を持つプログラミング言語が増えている。

2) 現実情報システムでは、COBOL言語レコード定義C言語の共用体、一般的関数ポインタVisual Basic言語のvariant型変数のように、同一領域に異なる型の値が共存する共用型(union type)の値がしばしば必要となる。共用型の値はgoto文を排除した構造化/オブジェクト指向プログラミングにおいて条件キャストクラス分岐などによる実行経路の複雑さの主要な原因になるが、これは和型(sum type)すなわち相異なる型の非交和(disjoint sum)として定義することで曖昧さな定義できる。

3) ゲームプログラムネットワークサービスにおいてしばしばみられるように、入力として無限リスト任意に深い木のようなものを想定する場合には明らかに(条件を満たさない限り)停止しないことが正しい動作となり、この場合は最外周のループを(←どうする?)メモリリークを起こさないなど別の考慮必要となる。

2019-08-19

anond:20190819111351

わからんなら仕方が無い。

一般的に「マクロ」と呼ばれる仕事で使うツール

Visual Basic for Applications (VBA)で作成したマクロ

の事を指すときが多いので、それじゃないか?と思う。実行して、Office(ExcelとかAccessとかWordとか…)の結果になるヤツね。

もう暫くで直るらしいが、それまでは該当修正パッチ削除で乗り切れ。

2019-04-06

anond:20190405084225

Python拡張性がありすぎるからなあ。

外部ライブラリが果てしなくあり、


 ← それはPythonに限ったことじゃないでしょ。JavaでもRubyでもPerlでもCでも同様。主要言語はほぼそうでしょ。

似たような機能を実現する方法複数ある


 それはむしろ逆。Pythonスローガンは There's Only One Way To Do It で、これは Perlスローガン There's more than one way to do it. を意識したもの

https://wiki.python.org/moin/TOOWTDI



なお、個人的には C# は良さそうだなとは思うけど、Windows以外のプラットホームではどうなんでしょう。(よく知らない。) これは Visual Basic についても同様。

2019-04-05

anond:20190404130259

Python拡張性がありすぎるからなあ。

外部ライブラリが果てしなくあり、似たような機能を実現する方法複数あるので、本によって書いてあることが違ったりする。

逆説的ではあるが、初心者は、Visual BasicやC#あたりから入るのがいいような気がしてきた。

逆引きハンドブックのような本を片手に、チュートリアル本を手打ちコードを動かしながら読了すると、Visual BasicやC#の世界は一通り把握できる。わからないことは索引を見ればだいたい出ている。Visual BasicやC#があんまり尊敬されてなくて、限界や不満もあることもだんだん理解できる。

Visual BasicやC#でも相当なことができるし、そこからスマート言語に移行すれば、比較対象となるものがあるので、守備範囲自分のペースで広げていける。

2018-10-21

anond:20180624224045

その発言した増田ではないが、その発言は少し無責任な気がするので補足。

まずRはやめるべき。

R言語という統計などの計算に強いプログラミング言語がある。

逆に統計くらいでしか使わないので、貴方算術処理をバリバリやるのでなければ使用するべきではないだろう。

Python言語だが、Rに比べると汎用的であり、かつ機械学習(scikit-learn、NumPyやPandas等の統計ライブラリ主体だけど)などでも使われていてホット言語である

ホット言語だと、書籍ネット情報豊富にあるので、学ぶ分には困らないのでもしプログラミング言語をやりたいのであればPythonお勧めする。

そして、Excelマクロも一応Visual Basic for ApplicationというVBを下敷きにした言語なので、その言語を今から学ぶのであればPythonを学べばいいのではないかというのが先の発言趣旨ではないかと推察する。

しかしながら、言うまでもなく、Excelセルに書かれたデータをあれこれしたい(主に業務活用したい)という要件ならVBAが最適である

プログラム言語って得意/不得意があるから、やりたいことに合わせて使う言語を変えたほうが幸せになれます。(本格的なプロジェクトだと選択余地はなかったりするけど)

なお、おうちで触りたいというレベルなら私もPythonお勧めします。

MacでもWindowsでも同じ書き方で、Excelに囚われず色々な処理ができる。AIIoTなどで需要が高まっているので覚えておいて損はないし。

「これだけ凄いから導入許可をください」と情シスに掛け合えるレベルまで成長したら会社でも使えばいい。

ただ、対象者ちょっとしたプログラミング言語を覚えて、手間がかかることを自動処理とかしてみたいなぁと考えられる人。Excel効率よく使えれば十分って考えの人にまでお勧めするものではないので、その辺は誤解がないように。

2016-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。

かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日リリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。

今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。

Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日オラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。

当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。

1996年の時点にこんな言語が登場したのですから革新的でした。

いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。

プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロードテンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

Wikipediaからピックアップすると1.1での大きな機能追加は

といったところです。当初よりJavaの内部文字コードUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。

なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。

当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。

JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。

Microsoft Visual J++ もこの時代ですよ。

Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。

当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

strictfpキーワード浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。

リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。

1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。

初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。

JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。

あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。

Microsoft 離反

Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつMicrosoftだったわけですね。

Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。

結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。

JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。

Java EE

Java SE とは別にこの時代に Java EEリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。

2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的ユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。

企業で用いられる社内システムにもServletは多く採用されました。

理由はいろいろ挙げれると思うのですが

というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャある意味では便利で簡単でした。

もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を2001年に戻しましょう。

Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。

Java Appletブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。

Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。

端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。

また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。

こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。

Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。

RIAの代表とされるのは

あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。

Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。

RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。

しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。

Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。

言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。

その後

Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。

Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日オラクル吸収合併されました。

Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。

やや戻って2007年Androidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。

Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。

このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2016-01-15

JAVA言語という表記違和感

好きに表記すればいいと思いつつも見ると内心もやもやしてしまう。

やっぱりJava表記してほしい。Java……かっこいいじゃん!

Javaだけだと馴染みのない人もいると思うので似たような例を挙げる。

× SKYPEアプリSkype

× PHOTOSHOPソフトPhotoshop

× YOUTUBEサービスYouTube

この「JAVA言語」という表記が抱えている問題は何か?

大まかには次の二点だと思っている。

大文字

COBOLLISP、ALGOL、FORTRANPL/IAPLBASIC……

大文字名前は古い言語代名詞だ。

今はFORTRANも新しいFORTRANFortranと名乗っているし、BASICBASIC派生Visual Basicなどと名乗っていたりする。

時代に逆行してJavaJAVA表記してしまうとJavaがあたかも古い言語であるかのような印象を与えることになる。

× JAVA1960年代言語ですか?
○ Java ← 今時の言語っぽい!

言語」という接尾辞

Javaはそれ単体でプログラミング言語Javaを指す。

言語」という接尾辞をつけてしまうと二重敬語のようなまわりくどい印象を与えることになる。

Cのようにググラビリティが低いため止むを得ずC言語表記するという場合もあるが、Javaならそういった問題は無い。

コンピュータ関係で他のJavaと衝突していないか?それは大丈夫だ。

https://ja.wikipedia.org/wiki/%e3%82%b8%e3%83%a3%e3%83%90

本題

今日金曜ロードショー天空の城ラピュタがあるらしい。

Scalaちゃんは今日も「余裕でした(´・_・`)ドヤッ」とツイートするんだろうか。

https://twitter.com/scalachan/status/363317870685462531

2015-02-23

http://anond.hatelabo.jp/20150223114637

ちったぁ自分で調べろや。ろくなプログラマになれんぞ。

IsNumeric Function (Visual Basic)

IsNumeric returns True if the data type of Expression is Boolean, Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, or UShort, or an Object that contains one of those numeric types. It also returns True if Expression is a Char or String that can be successfully converted to a number.

ここは普通のことをいっている。 IsNumeric が True を返すのは以下のとき

から問題があるのは Empty のほう。

VBE Glossary (Empty)

Empty

Indicates that no beginning value has been assigned to a Variant variable. An Empty variable is represented as 0 in a numeric context or a zero-length string ("") in a string context.

Empty は context にあわせて以下のように解釈される。

というわけで IsNumeric(Empty) は Empty が数値として解釈されて 0 になるので True を返す。

2014-07-29

部下がくれたアドバイス

前いた会社を辞めた時に、部下がくれたアドバイスを思い出した。

部下は新人ときから、びっくりするほどできるやつだった。

同僚の三倍程度の仕事量をてきぱきとこなし、涼しい顔で毎日定時に帰っていく。上司の俺が何も指示していないときに、社内を歩きまわって、同僚や先輩に仕事を「お願い」していた。

けれども、そいつを悪く言うやつはいなかった。笑ったときえくぼが印象深い奴だった。

俺は会社でパッとしない上司をやっていた。

経験だけはあったが、他にその役につく人間がいないという理由で、ロケット鉛筆のように押し出されてそのポジションに付いた。

かつて新人だった頃は、プログラマーとして四苦八苦しながら、作る喜びを糧にしていたものだった。

だが月日が経って、机の位置が変わった。プロジェクトを指揮するようになった。部下が増えた。いつしか俺はコードを離れ、代わりに人間を扱うようになっていた。

責任が増えると共に、やりがいも増えた。チームをまとめて、目標に向かっていく。自分一人ではできないことを、仲間たちと力を合わせて達成する。砂漠の中にピラミッドを建てるように。

プロジェクトを完遂すると、メンバーがガラリと変わった。力になってくれた仲間たちは、別のチームでその才能を発揮することになる。俺の元には営業がやってきて、新しいプロジェクトの発足を告げる。

程なくして新しいメンバーがやってくる。俺は別なチームとともに、別のピラミッドを建てるのだ。

そんなループを何度か繰り返したある日、プロジェクト終了直後の閑散とした社内を眺めて、缶コーヒー片手にボンヤリしている時に気がついた。

味がしない。缶コーヒージョージアエメラルドマウンテン・ブレンド(つめた〜い)の味がしない。

いやもちろん缶コーヒーなので、本来そんなに旨くない。街の喫茶店はおろか、スターバックス女子高生がカップで飲んでるやつにも及ばない、いわゆる”コーヒー飲料なのだが、初めの頃はうまかったのだ。

入社当時、Visual Basic の教本を片手にキーボードにしがみついていた時に机に並べていたエメラルドマウンテン・ブレンドは、もっとスカッとした味だった。

抜けた空のような味。

何かが違う。そう感じた。

iPodを作った天才スティーブ・ジョブズはかつてこう言った。

私は毎日自分に問いかけてきました。「もし今日人生最後の日だとしたら、今からやろうとしていることをするだろうか」と。「違う」という答えが何日も続くようなら、何かを変えなければならない時期にきているということです。

一週間の後、俺は退路を歩むことを決めた。

退社まで残りひと月と迫って、引き継ぎが一段落したある週末に、俺は例の、できる部下と酒を飲むことになった。

そのときの部下は会社の期待のエースとして注目を集め、人より多くの責任仕事を与えられていた。しかし本人はプレッシャーに怯むことはなく、むしろ水を得た魚のように、やる気に満ちていた。テカッテカだった。

酒の席に誘うと忙しいにもかかわらず、嬉しそうに快諾した。へんなやつだ。

その夜、俺は柄にもなく酔っぱらい、いつのまにか部下に向かってだらだらと仕事上の愚痴をこぼしつづける、情けない中年オヤジになっていた。

聞くと部下も結構酔っていると言ったが、俺は知っていた。こいつは顔は真っ赤になるが、それでいて実態は”ザル”だ。笑顔を崩さず、俺の話に機械的に相槌を打っている。

俺の話が一段落したときに、すべりこむように部下が横槍を入れた。「でもね上司さん。そういうのって上司さんが悪いんですよ。」

失礼ですけど。

顔を上げて確認すると、部下は笑顔の目元に困ったような表情を乗せていた。俺が息を呑むと、覚悟を決めたように、話を続けた。

上司さんは自分の頭で考え過ぎなんです。」

部下の説教

から何まで自分のアタマで考えないと気が済まない、そんなタイプ人間がまれにいます(ご指摘の通り、俺がそうだ)。

確かに、自分のアタマで考えるということは、ものすごく気持ちがいいですよね。なにかすごく『意味のあることをした感覚』を得られます

けれども、そこには隠れたコストリスクがあるんです。

説得するコスト

最高責任者とか芸術家とかでない限り、自分のアタマで考えたことは「誰かに説明して納得してもらう」というフェーズ必要です。

相手が上司さんの上司さんであるなら、例えば説得はこんなふうに行われます

お偉いさんの元を尋ねて、現状の問題分析するとこういう構造になってて、どこがどう問題と考えられるので、このようにやりかたを変えれば、このくらいよいことが起こるでしょう、みたいなのを説明して、話の前提をちゃんと共有しないと理屈が通らないから、考えに至る前提条件とかを事細かに説明して、相手との認識が合わなかったら合うように、考え方の違いに注意しながら調整して、ようやく自分のアタマで考えたこと、を分かってもらえたら次は、それって絶対・100%・間違ってたら責任取るの? とか聞かれます、でもそんなん100%なんて世の中にありえないだろ、と思っても言い出したのは自分だし、時間をかけて分かっていただいた手前もあるし、それら有象無象を踏まえて相手のプライド考慮しつつ、こちらの責任が大きくなりすぎないように、うまく首を縦に振ってもらうように、知略の限りを尽くして言いくるめるんです。

一方で、去年と同じで行きましょう、ならサラッと通ります

競合他社と同じ戦略で行きましょう、偉い人の方針をまるごと継承しましょう、とかでも。

冷静に、比べてみてください。自分のアタマで考えた場合コスト

説明のために、ものすごいコストや苦労をかけてストレスをためこみ、結果自分責任が増しただけ。

限界自覚するリスク

自分のアタマで考えようとして、なんにも結論が導き出せなくなることがあります

どの因子がどう関わってるのか整理しきれない。どこの範囲まで前提として考慮に入れるべきかがわからない。「Aと言う視点なら正しいとも言えるし、Bという視点なら間違いとも言える」みたいな項目ばかり。

なにを考えても「他人が出した別案」に引っ張られる。なんとかごまかしつつ、ちょっと甘いかな、って思いながら考察した結論他人に見せる。でも、アタマの鋭い人はどこでもいるもので。

ピンポイントでその弱いところを突かれちゃったりする。自分でも「俺バカなのかな」と薄々感づいてる点を、改めて他人にも認識させられることになります痛恨の一撃です。大ダメージです。

賢者歴史から学び、愚者経験から学ぶ、と言います

ゼロから考え直すなら、誰だって結論を間違えたり、推論を見失ったりすることがありえるんですけど、『自分のアタマで考えている俺』に酔っていると、そういう基本的なことは、忘れちゃうんです。

根拠のない自信を持ってる人ほどひどい結果になりがちです。

自分天才とまでは言わないけども、周囲の中でまあまあ使える、ほうだし、今は流されてるけど、本気出せば自分で考えて結論出すようなこともできるもんね!」

そんな自信は崩れ去ります

失った自信を取り戻すのには、より多くの時間必要です…。ご年配の方ほど、必要な苦労は過酷ものになるでしょう。

一方で、すでに確立された方法に従うなら、挫折はありません。

その仕事が得意な人、エキスパートに全部お任せする、というのでも。

考えてもみてください。自分のアタマで考えた場合リスク

挫折が無ければ、その間仕事ができた。挫折があるから、周辺分野へ再び手を伸ばすことが、おっくうになった。

天びんの片方を高く見積もりすぎている

例えば、さっきお酒持ってきてくれたの店員さん。カウンターで寂しそうにひとりで飲んでるオジサン。自分のアタマで考えているように見えますか?

自分のアタマで考えてる人って、ものすごく少ないです。

たいていの人たちは、流されています。考えが浅いし、近視眼的です。リスク管理の面から見ても、脆弱です。

でも、その人たちって、不幸ですか?

かなり幸せそうじゃない? 自分はすごいという自信のもとに楽しく過ごし、うまくいかなかったことは運が悪かった、また次があるさ、と片付けてポジティブに生きてる。掘り込んだ原因分析なんてしないで、場当たりに生きてる。若者から人生訓を聞かれたら嬉々として語っちゃう、的な幸せさに溢れてるw

偉そうにw 生意気言うやつだなw とその晩は軽くたしなめて別れたけど、

よくよく思い返すといい話ではあった。なんだか、ずっと温めていた感もあるし。

から後になって感謝メールで伝えた。

俺は今まで、自分のアタマで考えてきた。それを誇りにしていたというほどではないけど、出来る限り自分でやってみる、が俺のモットーだった。

けれども、それで、何が残っただろうか。

すり減ったり、焦ったり、自己嫌悪に陥ったり。紆余曲折を経て、何が残ったのか。

ひょっとすると、俺は自分人生の将来や、手に入れられる幸福や可能性から、目を逸らしていたかっただけなんじゃないか。

実感を求めて効率犠牲にする。それで誰かの足を引っ張る。あるいは、身の程をわきまえて、歯車として、自分に与えられた役割を果たす。その分岐路で立ち尽くしている。アタマで考えても前に進めない。思考停止すれば進める。『結果』を手に入れる。上手く行けば成功できるかもしれない。彼女のように。慣性は惰性だ。だからプライドは捨てる。直感は捨てる。生き方を変える。

(以上。なんかディティール盛り過ぎてる感があるけど、部下の言いたかった、本筋のところは外していない?)

-----------------------------------------------------------------------------------------------------

後書き:

id:uxlayman さんの元エントリ分析エントリです。

俺の考えでは、元となるアイデアが良ければ、読みやすくするためにストーリーを与えて、読んでて途中で躓かないように、注意深く、入念に推敲すれば、ある程度伸びます(俺はこの文章推敲に6時間かけました。ヒマスギシヌ)。

コアとなるアイデアはなんでもいいわけではないようです。というのも、同じようなストーリーで同じような語り口の記事過去に書いたことがあるんですけど、そっちは全然伸びませんでした。

自分のアタマで考えてはいけない。

追記 (7/30 1:35時点):

頂いたコメントより

部下のアドバイスを受け入れられる人は人間として素晴らしい人だと思います

逆に言うと、部下のアドバイスを受け入れられない上司が世の中に、はびこっている、と。 うーん。。

2014-01-21

http://anond.hatelabo.jp/20140121125807

ネットを一切見ないで Visual Studioと マニュアル 参考書だけで 基本的テトリスを作れるかどうか? 8時間以内

とかでいんじゃね?

隔離した部屋で やれば できるやつは簡単にできるし

できない奴は 1日かけてもできないだろ

 

別に ブラウザのみとかVisual Basicのみとかでもいいけど、言語はなんでもいい。 ネットを見ないでテトリスが作れないなら、採用しない方がいい。

ぷよぷよは難しいけど テトリスは簡単に作れる。グラも四角形だけでいけるから簡単

 

あとは出来上がるまでの時間とか作りこみ (移動とか回転とかブロックの色とか、次のブロックとか 対戦まで作るか?とか)で評価を上げていけばいい

大学時代の俺で初めて触るX11の練習として授業中にこっそり作って、(当時今みたいなネットはなかった)最小限のテトリスで2-3時間ぐらいだったはず。

そのレベルで 初級ぐらいだとおもう。 ただ 今はもう年齢が高いからな速く作るのは逆に難しいから 年齢は考慮してほしいな。

2013-12-25

Visual Basic 2010 Expressプロジェクトを発行できません

Visual Basic 2010 Expressプロジェクトを発行すると以下の様なエラーが出ます xxxはユーザー名の置き換えです

プロジェクト新規作成から作った初期状態のプロジェクトを発行しても同じエラーが出ます

エラー 1 プロジェクトビルドできなかったため、発行できません。

警告 2 項目 '.NETFramework,Version=v4.0,Profile=Client' が 'C:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1' で見つかりませんでした。

警告 3 項目 'Microsoft.Windows.Installer.3.1' が 'C:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1' で見つかりませんでした。

エラー 4 必要ファイル 'setup.bin' が 'C:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Engine' で見つかりませんでした。 WindowsApplication1

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine\setup.binをC:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Engineコピーするとエラー4がこのように変わります

エラー 4 ブートストラップビルドするために利用可能なリソースがありません。 WindowsApplication1

Visual Studioを修復したりMicrosoft SDKインストールしたりしましたが、解決しませんでした。

どうしたらよいでしょうか。

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine\setup.binをC:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Engineコピー

更に

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine\jaをC:\Users\xxx\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Engineコピーしたら発行できました

参照URL

http://msdn.microsoft.com/ja-jp/library/ms228158%28v=vs.90%29.aspx

ログイン ユーザー登録
ようこそ ゲスト さん