「C#」を含む日記 RSS

はてなキーワード: C#とは

2009-06-03

プログラマーシステムエンジニアの違いが分からない。

http://el.jibun.atmarkit.co.jp/hidemi/2009/06/post-3b92.html

今まで自分はずっとプログラマーとは名乗ってきたけど

SEと名乗ってきたことはない。というか、会社からSEという肩書をもらったこともないけど。

学生時代からプログラミングやり続けて、仕事プログラマーを選んで、今年で社会人7年目。

社員10人弱の小さな会社で、プログラム作ってる。

お客さんのところに行って打ち合わせして、

どんな機能が欲しいのかとか、どんな画面にするかとかって話もするし、

つまり要件定義も概要設計も詳細設計も実装も全部やるけど、

肩書はプログラマーだし、自分自身、その肩書に違和感を感じたことはない。

違和感を感じたのは、ほかの開発会社の人と会ったりしたとき、

SEを名乗っているのに、プログラム技術)のことをあんまりよくわかってない人が結構いたこと。

今まで仕事とかで会った人で、

C++とかC#とかWindowsAPIとかLinuxとかApahceとかSQLとか

HTMLとかCSSとかjavascriptとか、、、、

を知らないのに、SEを名乗ってる人が少なくはなかった。

でも、SEプログラマーよりも偉いらしい。

結局SEって何をする人なんだろう、、。

2009-05-27

http://anond.hatelabo.jp/20090526005614

オレは新人の頃から多少むずかしめのコードを書いたり、再現性のあまりないバグを直したりといったことが他のひとより達者だったからずっとプログラムを書かされてるよ。

それで、気づいたら42才になってた。

人並み以下か人並みのコードしか書けないやつは、割と早くワード仕事ばかりになって数ヶ月~1年くらいかけてお客さんと打ち合わせばかりするようになってる。

最初の3年くらいはUnix でCだったけれど、以降はずっとC++Windows仕事ばかりになってC++/CLIとかC#さえ触る機会がない。

仕事で他の言語を触ればたぶん3ヵ月くらいで職場で一番になれると思うんだけどなかなか仕事が離れなくてね。

2009-05-21

http://anond.hatelabo.jp/20090521130853

さっきjといえば複素数と書いた増田ですが、途中お二方がレスってくれたみたいに、

a+bi形式に慣れています。Nが抜けちゃてましたが、FORTRANとか、昔のHP-BASICとか。

普通複素数クラスって、C++C#, Javaも?で出てくるんでしたっけ。

個人的にはa+bi形式の方が、比較的、手書きの数式とも親和性がよくて

気に入っています。昔のFORTRAN資産C++に置き換えようとしてみたものの、

そこで挫折して、結局FORTRAN(日常の簡単な計算はiMemo)に戻ってきてしまいました。

2009-05-04

http://anond.hatelabo.jp/20090503232851

元増田です。

元記事で「同じ動きをする」の前に「ほぼ」と書いたのはintがオーバーフローするときに1万回に1回ではなくなっちゃうことを考慮したものです。

「== 0」を書いた理由はこのコード例をC言語に特定したくなかったからです(せっかくJavaC#でも通用する話なのにCに特定しちゃうのはもったいない)。printfでなくprintと書いたのもそのためです。

初心者が最初に覚えるべきプログラミング言語


『本人がプログラミングをして、何をしたいかによる』

そっからは、やれC言語だ、やれActionScriptJavaScriptだ。ってやっていけばいい。


例えば、ゲーム作りたい!っていう奴がいるとする。

それで、まず最初はC言語だからねーって言ってscanfとprintfで電卓を作らせる。

これで感激して、もっと勉強したい!覚えたい! って、なるのか。

なればいいよ。でも多分ならないだろー

情報処理教科書みたいに、10進数から2進数へ変換するプログラム書きましょーって。出来るけど、そいつにとって何が面白いのよ。

C言語は確かに基礎だけど、ifとかforを基礎というならJSでもいいし、ポインタやらメモリ管理って言っても、本当にそれは必要なの?

それはC言語にとっての基礎で、シューティングゲームASとかで作る時は最初に覚える必要はないよね。

なにかしら目標もって、それを実現するために勉強していって、自分スキルが上がっていくのが分かるからモチベーションに繋がる。

そいつにとって、C言語目標までのトンネルが長すぎる。出口が遠すぎて目の前が真っ暗。

プログラミングの歩き方をよく分かっていない初心者。早く画面でいろんな動きが見たい!という初心者が、トンネルの出口までたどり着くのは難しい。

それなら、10行で早押しゲームが出来る言語から始めるべき。JSとかが楽かな。他にそういうのがあればそれでいい。

初心者にとっての丸写しじゃない10行は、エキスパートからみる500行と同じ。書いてる時の気分は。

自分の書いたコードが画面に色をつけて、クリックしたら反応する!!

でもクリックしても文字が変わるだけかー。それならもう一回クリックしたら、別の文字になるようにしてみるか。

ならついでに色も変えよう。以下略

まず自分パソコンの画面が動かせる!』ということを実際に体感してみないと。


RPGでも、最初からボス出てきて瞬殺されたらやる気なくすじゃん。最初はユルい敵倒していって、レベルアップしていく。

そのうち勝てない敵が現れるけど、勝ちたいから経験値貯めるんでしょ。

そのうちに、その言語だと絶対不可能なことが出てくるはず。その時にC言語やってポインタ覚えればいい。


今回はゲーム作ってみたいっていうパターンを例にしたからC言語ダメだと言ったけど

コンピューターの動作について理解したいとか、そういうのなら断然C言語かなと思う。

もちろんC++でもC#でも何でもいいけど。


とりあえず、初心者が「プログラミングしたいんだけど、どの言語がいい?」と聞いてきたら、

C言語と答える前に「プログラミングで何をしてみたい?」って聞いてみようよ。

そのやりたいことが比較的簡単に実現できる言語で、まず楽しさを覚えさせてあげて、こっちの世界に引きずり込め!

2009-04-05

http://anond.hatelabo.jp/20090404235214

http://anond.hatelabo.jp/20090404235214です。

ご協力ありがとうございます。

私の本棚から普通一角ダメげな一角を晒します。

普通の:

・Compiler Construction (Louden)

・Effective C# (Wagner)

・Compilers (Aho, et al.)

・Virtual Machines (Smith, Nair)

Garbage Collection (Jones, Lins)

・車窓で旅する日本列島

Common Lisp 第2版 (Steele Jr.)

Assembly Language for Intel-Based Computers (Irvine)

・Concrete Mathematics (Knuth, et al.)

・Programming Language Pragmatics (Scott)

Basic Category Theory for Computer Scientists (Pierce)

ダメげなの:

サモンナイトコレクション

きらきらみけおうアートワーク

・しろ画集

カーネリアンコレクション

Bittersweet Fools ビジュアルファンブック

ISO/IEC 13211 Information technology - Programming languages - Prolog - (Prologの規格書)

・県別マップル十数冊

整理されてなさすぎるのがよくわかった。

その他本棚にあるもの:

・危ない28号 3冊

妖界ナビ・ルナ シリーズ

・夏少女の紙袋

・ペンハリガン香水 4本

2009-03-12

ギークにはなれない

一応プログラマ(というよりはソフトウェア開発者)として仕事してるんだけど、俺はギークにはなれないなとつくづく思う。

ぶっちゃけプログラミングとかコンピュータアーキテクチャネットワークプロトコルみたいなものに興味が無いんだよね。

俺にとってプログラミングは、その背景にある数学モデルマテリアライズあるいはマネタイズするためのツールでしかない。

○○ハックとか、どの言語が有利だとか、凝ったコーディングテクニックだとかデータ構造の細かな工夫なんかには全然興味が無いんだ。

ぶっちゃけそこそこ習得能力はある方じゃないかと思う。コーディング始めてまだ1年経ってないけどオブジェクト指向(C++)でバリバリ書ける。

JavaC#みたいにガベージコレクタがあって抽象度の高いオブジェクト指向言語なら(たぶん)少し慣れればかなり書けるだろう。

でも興味無いんだよね。だからコンピュータ大好き少年のようにどんどん新しいことを覚えて勝手にのめり込んでいくようなことができない。

勉強しなきゃなとは思うから本とか読むけど、あくまで義務感でやってるだけ。

プログラミングそのものには興味が無いから、作るシステム目的がつまらなかったらやる気が無くなる。

それからLINUXとかにも興味が無いので、なかなか使いこなせなくて困ることがある。

ギークにはなれない。どうやって生きていくのがいいかなあと思う。

2009-02-19

モダンPerl入門』を第1章だけ読んだ

巷のPerl Mongerな人たちの間で話題の『モダンPerl入門』を読み始めた。

第1章はオブジェクト指向トレンドの話で、とても興味深く読んだのだが、同時に「なんでこれPerlで実装せなあかんの?」と疑問に思った。ていうかオブジェクト指向やりたいならJavaC#でいいじゃん。

Perl5には本格的なOOPの仕組みが実装されていない。

継承という基本的な概念もないし、コンストラクタなんかも用意されていない。ゆえに、MooseとかのCPANモジュールを使って実装しなければいけないのだけれど、その分敷居が高くなって初心者には判りづらい。初心者でも現場に投入できるような、強力なオブジェクト指向機構が用意されているJavaC#といった言語StrutsASP.NETといったフレームワークなんかとは全然違う。

私はメインPHPASP.NET(C#)という人間で、Perlバッチプログラムとかクローラの実装とか雑用処理なんかに使っている。PHPは小規模プロジェクトアジャイルな開発がしたい時、ASP.NETは大規模プロジェクトに呼ばれた時用の懐刀という感じで使い分けている。PerlWebサービスを作ることももちろん出来るけれども、どちらかというとスピードが優先される開発に用いるものだと思うし、OOPを用いた大規模なプロジェクトPerlを使おうとする理由がよく判らない。無駄に難しいし、そもそも本書を読めるレベルPerlを理解している人の頭数がかなり少ないだろうから、実装しても保守コストがやたらかかる。Livedoormixiはてなのような大規模サイトPerlで動いているようだが。。。

モダンPerl入門』は内容も書き方も素晴らしい良書だけれど、その辺りが引っかかった。「PerlOOPを使う理由(APS.NETStruts+Java採用しない理由)」は何なのだろうか? 私のプログラマーとしてのスキルが低いだけだと思うが、よく判らないので誰か教えてくだしあ。教えてダンコーガイ

2009-02-09

ActionScript vs C#

これからのWebサービスとかデスクトップアプリケーション市場ActionScriptC#の対立になると思っているんだけれども、

その2つを対比している事をあまり見たことがない。

それはたぶんプラットフォームの軸でまとめられているから黒子になっているんだと思う。

ActionScriptFlashAIRの開発言語で、それに対してC#WPFSilverlight

Flash VS Silverlight最近ちょくちょく目にするから対比構造はあるんだろうけれども

それがActionScript VS C#とはならないのはなんでかなぁ

/*

VSと書いたのは煽っているからだけど、もっとC#Javaのようなイデオロギー紛争になっていも面白いのになぁ。

ASJava系譜の流れなんだから、AS vs C#言語コンセプト論争もあってもいい気がするんだけれども)

畑が違うっていうけれどもAdobeMSも向かっている所は似たり寄ったりで、

事実技術採用の時にFlashか?Silverlightか?みないな話は水面下でちょいちょいあるはずだと思う。

(それで「やっぱりFlashかな」とかなるんだろうけど)

*/

仮にRIAっぽいことを目指すならFlashSilverlightかを選択肢にあがるけれども、

そこにはプラグインの機能有無や普及の優劣の話しか持ち上がらない。

ビジネス的にはもっともな論点だけれども、

デベロッパから見た選択理由としてプログラミング言語のあれこれを考えないはずがない。

それなのにその考えが全然見かけないよ。

2009-01-28

[]キーワードアンカー文字列にあるとそこからキーワードリンクにされてしまう

おそらく一昨日の激しいMOJIBAKE不具合の発生原因となった修正によると思われる、キーワードアンカー文字列にあるとそこからキーワードリンクにされてしまう、という別の不具合が発生している。

日本語などの例

+[http://anond.hatelabo.jp/:title=はてな匿名ダイアリー]
+<a href="http://anond.hatelabo.jp/">はてな匿名ダイアリー</a>
+[http://anond.hatelabo.jp/:title=&#x306F;てな匿名ダイアリー]
+[http://anond.hatelabo.jp/:title=これがはてな匿名ダイアリーの姿]
+[http://anond.hatelabo.jp/:title]

現在、上記のように書くと下記のようなリンクが生成される。

  1. はてな匿名ダイアリー
  2. はてな匿名ダイアリー
  3. はてな匿名ダイアリー
  4. これがはてな匿名ダイアリーの姿
  5. はてな匿名ダイアリー

5番目のパターンは、多くの文字の数値文字参照化と取得した文字との関係で起こっている現象であろうと、たとえば「YouTube - Broadcast Yourself([http://www.youtube.com/:title])」等から推察できる。

英数字の例

+http://www.hatelabo.jp/
+http://anond.hatelabo.jp/
+[http://www.hatelabo.jp/:title=http://www.hatelabo.jp/]
+[http://anond.hatelabo.jp/:title=http://anond.hatelabo.jp/]
+[http://anond.hatelabo.jp/:title=http://www.hatelabo.jp/]
+[http://www.hatelabo.jp/:title=http://anond.hatelabo.jp/]

例えばwwwとこのエントリー内に書いてありキーワードリンクが発生している条件では、上記の内容が下記のようなリンクになる。

この時、ASCII文字によるanondもキーワードである事に注意。

  1. http://www.hatelabo.jp/
  2. http://anond.hatelabo.jp/
  3. http://www.hatelabo.jp/
  4. http://anond.hatelabo.jp/
  5. http://www.hatelabo.jp/
  6. http://anond.hatelabo.jp/

これは若干異なるものの、以下のように連続した英数字からなる文字列の場合は途中でキーワードリンクにならないが、他の場所でキーワードリンクとなってる文字列の場合はキーワードリンクとなる従来の仕様の影響かもしれない。

  • anond0
  • abcwwwxyz

このほか従来からのpタグ(下記参照)に加え、&amp;や&gt;(ASCII文字による&と>)等の不具合も出ている。

<p&gt;

しかし、この修正でhttp://anond.hatelabo.jp/20070129012129と同一の内容であっても、多くのキーワードが正常にリンクされるようになった。

OK

C# $10 (T_T) *ist D +ANIMA yes,mama ok -196℃ .book c/w :active ave;new アンリ・カルティエ=ブレッソン ?B @CHaT [TV] ^H _no PE`Z ||リ・_・`川

文字参照ならヒットするもリンク書き換えならず

AirH" AirH" 女子高生 GIRL'S-HIGH 女子高生 GIRL'S-HIGH MÄR MÄR (*゚∀゚)ノ パキャッ (*゚∀゚)ノ パキャッ

文字参照に変換されるため双方上と同様に

R&B R&B のどごし<生> のどごし<生>

キーワード文字参照ではないが変換されるためヒットせず

P&G

存在するはずだがたぶんはてな側の問題かな?

!K7

含むキーワードを見つけられず

% \ { } ~

キーワード関連

<p&gt; <p&gt; <p>

というわけで、残るは文字参照関係だけかな。

また、近い問題としてhttp://anond.hatelabo.jp/20070328234724もあげておく。修正されていた。

結論としてエスケープは面倒臭

2008-12-31

http://anond.hatelabo.jp/20081230225149

元増田っす

言語仕様コンパクトなのがなぜ良いのかと言うと、実は2つ理由があります。

  1. 学ぶのが楽だから
  2. コンパイラを作るのが楽だから

1つめは「全体像を把握するのが楽」という理由で。C++JAVAだと全体像を把握するだけで疲れてしまうわけです。(使い方は奥深いけどね)

2つめはCOBOLを学ぶのと同じ後ろ向きの理由だけど、これからも活躍の場が多いだろうという予測。いまだに組み込みとかハードよりのところだとCは現役だったり、新製品の開発でももりもり使われてます。コンパイラが簡単に作れるし移植も楽だから。(これがCOBOLとかJAVAだと、開発環境を整えるのが大変なので選択されない。未来はわからないけれどもね)

標準ライブラリまで含めても、Cは異常に小さいよ。速いし。

Cのポインタってのは、値渡しのみにするとスタックコンパイラをすっきりかけるけど、じゃあどうやって柔軟に運用させるべーと考えた妥協の産物です。

だから標準ライブラリにすら文字列・集合・リスト配列を便利に扱えるものは入ってないし、ガーベジコレクションも多重のスレッドもヒープも入ってないわけです。(だからスタックと静的割り当てだけなんとかすればコンパイラが作れちゃう)知らなかったから作れなかったんじゃなくて、あえて切り捨ててる。

方向性として「間違いを少なくプログラミングする」とか「効率よくプログラミングする」ではなく、「コンパイラを簡単に作れるのが1番。でもできるだけプログラミングしやすいよう」にしてる。

そういう言語を2番目以降に学ぶのが良いのは、ハードよりの考え方(正確には、コンパイラよりの考え方)が出来るようになるから。これが「ポインタと言う概念を理解できる」ということに含まれてる。

メモリ意識したりポインタ概念を理解しておくと「なんで暴走するのか」「どうすると自分の足を撃てるのか」が理解できる。限界も面倒くささも便利さもわかるからね。(ポインタだからっつって暴走するんじゃなくて、C言語ポインタの実装だから、なんだけども。あと、ほんとは機械語アセンブリを学ぶのが良いとは思うけど、それはハードルが高い。出来ることも少なくなっちゃう)

ポインタが暴走するから隠蔽する・使わないようにする・ミスっても平気にする、ミスらないようにするというのは、言語としては正しい方向性だと思う。

誰がどう考えても「存在しない配列を参照したらエラーを返さずに黙って暴走する(そこにあるメモリを見ちゃう)」「仕様として不定な動作が多い」なんてのはまずいでしょう。けれども、なぜまずいのか知らないまま便利な言語に慣れちゃうのは、感覚として良くない様な気がする。

C#だと信じられないくらい簡単にアプリ作れるし、PythonPerlは普段使いの言語としてはすっごく便利。でもそれって、パック野菜やお惣菜を買ってきて晩御飯を作るようなものじゃないかな、と。ピーラーやミキサーは便利だし炊飯器はなきゃ炊事なんてやってられない。それでも、その道を学ぶのであれば「レシピを見れば料理は作れる」「包丁となべで調理できる」「なべかまでご飯は炊ける」なんてのは、必要じゃないかなあと。

今あえてC言語を学ぶのは、それが学びやすい(情報が手に入りやすい)最後の言語だから。

(まあ、何を目指すかによって違うとは思うけどね。僕の言ってんのは「いまあえてスペイン語だ!」って言ってるようなもんだし。違うか)

2008-12-30

http://anond.hatelabo.jp/20081230060518

とはいえ、参照や配列を理解するのにポインタは必須ではない、というか別概念だよね。

Cでは参照や配列を扱うときにポインタという生の実装がむき出しになってしまうけど。

OCamlSML (もしくはHaskell) のような、ぜーんぶ値渡し+必要なところだけ陽に参照(ref)型を使う、という言語を最初に使ってれば、ポインタを理解してなくてもJavaC#の参照もまあすんなり理解できると思う。

なまじ中途半端に参照と値渡しが構文的に区別されずに存在していたり、Rubyのように参照しかない(と思ってるんだけど)世界からはじめると、後々苦労するような。

CはもはやゲームとかOSとか組込みとか、リソース制約のきついソフトウェアを書くための言語にすぎないと思う。やっておくに越した事はないし、低レベルレイヤを理解しておくべきだし、言語間の関数呼び出しみたいなことをするのにも知っておいた方がいいけど(とはいえSWIGみたいなものもある)、より抽象度の高いところから手をつけるアプローチもあっていいんじゃないかなー。

# トラバ先を誤爆

2008-12-19

o 21 !K7

22 AirH"

o 22 AirH"

22 AirH&amp;quot;

o 23 C#

o 24 $10

  • 25 %

26 R&B

o 26 R&B

26 R&amp;amp;B

27 B'z

27 B'z

o 28 (T_T)

o 29 (T_T)

o 2a *ist D

o 2b +ANIMA

o 2c yes,mama ok

o 2d -196℃

o 2e .book

x 2f c/w

o 3a :active

o 3b ave;new

3c のどごし<生>

3c のどごし<生>

o 3d アンリ・カルティエ=ブレッソン

3e のどごし<生>

3e のどごし<生>

x 3f ?B

o 40 @CHaT

o 5b [TV]

5c \

o 5d [TV]

^H

o 5f _no

o 60 PE`Z

7b {

o 7c ||リ・_・`川

7d }

7e ~

MÄR

o MÄR

(*゚∀゚)ノ パキャッ

o (*゚∀゚)ノ パキャッ

P&G

P&G

2008-10-30

http://anond.hatelabo.jp/20081025202001

いまさらだがFizzBuzz

1から100まで、3の倍数5の倍数云々って、全部定数の計算じゃね?

というところに気付き、自称メタプログラマー(略してメタグラマー)俺の血が騒いだ。

定数計算なら、それは実行時ではなくコンパイル時に行なわれるべきだ……。

というわけでC++テンプレートメタプログラミング召喚。

#include <iostream>

const int FIZZ_NUM = 3;
const int BUZZ_NUM = 5;
const int BEGIN_NUM = 1;
const int END_NUM = 101;

template<int N> struct Fizz {
    enum {PRINT = 0, NEXT = N + 1};
    static void print() {}
};

template<int N> struct Buzz {
    enum {PRINT = 0, NEXT = N + 1};
    static void print() {}
};

template<int N, bool ForB> struct Number {static void print() {std::cout << N;}};

template<> struct Fizz<FIZZ_NUM> {
    enum {PRINT = 1, NEXT = 1};
    static void print() {std::cout << "Fizz";}
};

template<> struct Buzz<BUZZ_NUM> {
    enum {PRINT = 1, NEXT = 1};
    static void print() {std::cout << "Buzz";}
};

template<int N> struct Number<N, true> {static void print() {}};

template<int N, int F, int B> struct FizzBuzz {
    static void print() {
        typedef ::Fizz<F> Fizz;
        typedef ::Buzz<B> Buzz;
        
        Fizz::print();
        Buzz::print();
        Number<N, Fizz::PRINT || Buzz::PRINT>::print();
        std::cout << std::endl;
        
        FizzBuzz<N + 1, Fizz::NEXT, Buzz::NEXT>::print();
    }
};

template<int F, int B> struct FizzBuzz<END_NUM, F, B> {static void print() {}};

int main(int argc, char **argv)
{
    FizzBuzz<BEGIN_NUM, 1, 1>::print();
    return 0;
}

ifなし%なしループ系なし、しかも実行時オーバーヘッドなし!(多分)

あ、これを見て理解する人間オーバーヘッドは無視ね。

ああ、久しぶりにC++を触ったけど、やっぱC++テンプレートってダメダメだな。20世紀の遺物といわざるを得ない。

君がもし21世紀モテイケメンメタグラマーなら、21世紀プログラミング言語D言語を使うべきだ!

驚くべきことに、D言語コンパイル時に関数が実行でき、その結果をソースコードとして取り込める!

ただし実行できるのは簡単な関数だけだけど……。

以下、それを使ったD言語によるメタプログラミング的実装。

import std.stdio;

// これでFizzBuzzを全部出力するコードを作るぜ!
string makeFizzBuzzCode() {
    string code;
    for(int i = 1; i <= 100; ++i) {
        // 効率? コンパイル時にそんな配慮は要らん!
        if(i % 3 == 0 &amp;&amp; i % 5 == 0) {
            code ~= "writefln(\"FizzBuzz\");\n";
        } else if(i % 3 == 0) {
            code ~= "writefln(\"Fizz\");\n";
        } else if(i % 5 == 0) {
            code ~= "writefln(\"Buzz\");\n";
        } else {
            code ~= "writefln(" ~ static_itoa(i) ~ ");\n";
        }
    }
    return code;
}

int main(string[] args) {
    // おまけで生成されたコードも見せるよ。
    pragma(msg, makeFizzBuzzCode());
    
    // 生成したコードを埋め込む。コピペみたいな感覚
    mixin(makeFizzBuzzCode);
    return 0;
}

// 以下ユーティリティ。このぐらい標準で欲しいな……。

/// 整数文字列変換(コンパイル時)
string static_itoa(int n) {
    if(n == 0) {
        return "0";
    }
    
    // 10で割りながら余りを文字にして追加。桁が逆転した文字列になる。
    string s;
    for(; n; n /= 10) {
        s ~= ("0123456789")[n % 10];
    }
    
    // 桁位置を正常にする。相変わらず効率無視。
    return static_reverse(s);
}

/// 配列リバースコンパイル時)
/// 実行時ならarray.reverseが使えるんだけどね……。
T[] static_reverse(T)(T[] s) {
    T[] result;
    foreach_reverse(c; s) {
        result ~= c;
    }
    return result;
}

// 心配なので静的ユニットテスト(笑)
unittest {
    static assert(static_itoa(0) == "0");
    static assert(static_itoa(10) == "10");
    static assert(static_itoa(999) == "999");
    static assert(static_itoa(9999) == "9999");
    static assert(static_itoa(12345) == "12345");
    static assert(static_itoa(314159265) == "314159265");
}

コンパイル結果

$ dmd -unittest fizz_buzz.d
writefln(1);
writefln(2);
writefln("Fizz");
writefln(4);
writefln("Buzz");
writefln("Fizz");
writefln(7);
writefln(8);
writefln("Fizz");
writefln("Buzz");
writefln(11);
writefln("Fizz");
writefln(13);
writefln(14);
writefln("FizzBu(ry

出力結果は略。

さすがD言語C++JavaC#にできない事を平然とやってのけるッ

そこにシビれる!あこがれるゥ!

というか、

writefln(1);
writefln(2);
writefln("Fizz");
writefln(4);

もうwritefln(出力関数)要らなくね?

修正。

// これでFizzBuzzを全部出力するぜ!
string makeFizzBuzzCode() {
    string code;
    for(int i = 1; i <= 100; ++i) {
        // 効率? コンパイル時にそんな配慮は要らん!
        if(i % 3 == 0 &amp;&amp; i % 5 == 0) {
            code ~= "FizzBuzz\n";
        } else if(i % 3 == 0) {
            code ~= "Fizz\n";
        } else if(i % 5 == 0) {
            code ~= "Buzz\n";
        } else {
            code ~= static_itoa(i) ~ "\n";
        }
    }
    return code;
}

int main(string[] args) {
    // もうコンパイル時のメッセージしか出さない。(笑)
    pragma(msg, makeFizzBuzzCode());
    return 0;
}

コンパイル結果。

$ dmd -unittest fizz_buzz.d
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBu(ry

実行するまでもなく結果が出力された。つまり実行時間ゼロ、ということは……

世 界 最 速

以上、世界最速なD言語宣伝でした。

みんな使おうD言語

D言語リファレンス日本語

http://www.kmonos.net/alang/d/1.0/index.html(1.0。こっちの方が安定してる?)

http://www.kmonos.net/alang/d/2.0/index.html(もっと凄い2.0)

D言語本家配布元(無料コンパイラが入手できます)

http://www.digitalmars.com/

それにしても、ちゃんとD言語シンタックスハイライトを実装しているはてなは偉い。(笑)

2008-10-04

http://anond.hatelabo.jp/20081004120243

正社員プログラマだけど時給換算したら1300円くらいしかもらってなくて泣いた。

1ヶ月150時間(くらい)労働で20万円くらい。

VBどころか、C、C#JavaコボルアセンブラJavaScriptRubyPerl、あたりなら扱えるのに。

仕事プログラマってか最近設計にシフトし始めたけど。

バイトやってたほうが儲かるとかなんだよ・・・。

2008-09-06

IT系労働者のたいしたことのない悩み

肩書としてはソフトウェア開発。

だけど、ソフトウェア開発なんてやったことはない。

やったことあるのは出来上がった製品テストだけ。

SEのように設計するでもなく、コーディングするわけでもない。

部内のサーバ運用もちょこちょこやってみるが自分でもスキルのなさ具合に吐き気がする。

てきとーにテストスクリプト組んで自動化してざざーっと流す。

仕様書? 出来合いの製品仕様書はついてこない。

わからないから誰かのまねごとをするしかない。

スクリプトも真似ごと。

テストの内容も真似ごと。

ちょっと改造しただけ。

とりあえず、他のところが公開してる資料とかWebで調べたのとか見て同じタイプテストを導入してみる。

さすがに何もわからないと嫌なので。何でやるのか休日に本を漁りにいって意味を調べてみる。

……ダメだ。広大すぎて埋もれそう。

問題起きたら調べてねー、と言われてソースの中を漁る。

cscopeとタグジャンプはそのうちにやっと覚えた(最初から知っとけ、恥ずかしい)。

環境構築して再現テストして、解析(してもよくわからないが)

とりえあえず現象が発生してる原因はわかった。

だけど、それが問題なのかどうか調べないといけない。

Intelとかから仕様書引っ張ってきて格闘。

英語ダメだなぁ。仕様書クラスのはちょっと辛い。

でも日本語版は古くて中の記述がこっそりかわってたりする。おのれ。

デバイスドライバなんてしらねー。そもそも仕様わかんねー。

えーと、なんとなくやっぱり原因はわかった。

だけど、仕様って何それ? 周りも誰もしらない。

だからまた放浪の旅に出る。

……やっとわかった。だけど、やってる人からすれば当り前のこと。

自分じゃなかったら一瞬でわかるんじゃないだろうか?

プロジェクト管理もまともにできてない。

テストなんて本で書いてることなんて眩しすぎる。

理念はなんとなくわかる。そうしたい。

だから自分のやってることのギャップがとてつもなく苦しくて惨めだ。

それに、テスト担当者としてはどうも向いてないようだ。

そんなことをいっぱいつなぎ合わせてなんとか今の仕事をしてる。

2000年以前はCGI全盛期だったのでPerlスクリプトを作ったり改造したりしてたときは楽しかった。

でも、JAVAとかC#とか今はもうついてけない。

Perlですらもうついていけないだろう。

知ってるのはCとシェルだけだ。しかもまともな開発経験なし。

入社時にみんなで研修で作ったのが最後。

あの時はプログラム組める奴が少なかったけど、今じゃすっかり逆転してるだろうなぁ。

設計したい。

休み時間に足りない頭でシステムを考えてみる。

つぎはぎだらけのシステムより、もっとよいシステム

休みの日にPCに向かってみる。

でも、俺の知識で作れるものなんてないんだ。

読んでもわからない。永遠に差は縮まらないような気がする。

挫折しそうだし、誇りも持てない。

技術者なんて言葉は自分には似合わない。

隣の開発してる人たちを横目でみながら、みんな眩しくてよいなと思う。

自分もそっちに行きたい。

行きたいけど経験がない。

経験を積むためには技術が居る。

でも、もう遅すぎる。

ちょっと疲れた。眠って起きたらまた少し頑張ろう。

たとえ遅れていくとしても、歩むのを止めてしまうとあとは沈むだけだろうから。

生産性の高い技術者は羨ましい。

自分には何が足りないんだろう。自分と凄い技術者の差はなんだろう。

埋められるものではなくとも、その原因を知りたいと思う。

2008-08-29

http://anond.hatelabo.jp/20080829041925

javaなんておさわりでしか触ったことが無いけど、どれもわからん。面接とおらんわw

Enum と 可変長引数 はなんとなく察せられるが、拡張for構文 はなんのこっちゃ?

http://journal.mycom.co.jp/column/java/016/index.html

for (int target : integers) {

これをみるかぎり、foreachみたいなもんか?

可変長引数はみてみたが、Javaみたいにチームで開発するんだったらまあいいんじゃないかな。

基本設計をするひとがうんこだと全員死ねるけど。

http://www.stackasterisk.jp/tech/java/jdk505_01.jsp

C#の可変個引数地獄に落ちたほうがいいとおもうけど。

2008-06-27

http://anond.hatelabo.jp/20080626232424

ジャンルがわからんので何ともいえんけど、大卒の新人とか見てると、自分の仕事こなせるようになるまで3年はかかるね。

だから1ヶ月強でそのレベルまで達しているなら、それだけでスゴいと思うけどw

「そっち側」というのが (広義の) Webサービス構築をひと通り自分だけでこなせるぐらいのスキルだとすると、こんな感じか?

ググったりパクったりしながらでもいいので、とにかく経験することかな?

このレベルまで来れば仕様書を書くのも面白くなってくるはず。

結局一定レベルを超えると、どれもパターン化できちゃうことに気づくと思う。

あとはそれぞれの分野で専門化したり、バリエーションを広げたりするとギークと呼ばれるようになるかも。

2008-03-30

http://anond.hatelabo.jp/20080330162718

チョットしたツールをつくるんだったらVB6とか使ってたけど、最近はどうなんだろうね。

C#とかあのお手軽感に比べるとちとめんどくさい感じ。

どんどん重たくなっていく……。

C#を最後にいくつかやってWinアプリ系の開発は殆ど組まなくなったのだけど、

vistaの時代になっちゃうとWinアプリっちゅうとやっぱりC#一本なのかな?

c++DLLとか作るぐらいならc#IDEつかっちゃったほうがよさそうだし。

ODBC利用できてちょっと簡単なWinAPI叩けるだけで大抵は満足なんだけど、、

大げさだよ・・・。

JavaSwingBeansとかも結局期待はずれだったし。。

フラッシュあたりがもうちょっとGUIを簡単につくってくれたらなぁ。

そんな、ぼやッきーを総合して、

Windowsアプリを作るのに最適な言語を教えてください。」という一言なんじゃないだろうか。

この回答している人達の内容が気になりますね。

HSPあたりが息を吹き返してRuby扱いされる時代が来ないかなー。

だれかHSPRoRつくらんかね。

ネタ質問かね

http://q.hatena.ne.jp/1206713348

昔は掲示板でこんな質問の仕方すると、「何をしたいのかはっきりしろ」ときつく言われたが。ポイント出すと数十円でもお客様だもんなぁ(w

アプリ」に限定するなら、C#で書いて、速度を問われるところだけC++プラグインだな。

2008-03-10

http://d.hatena.ne.jp/fromdusktildawn/20080309/1205057461

分裂勘違い劇場を、わんさかブックマークする人達というのは何を好きこのんでいるのだろう。浅く、薄っぺ。腹が立つので、ブックマーカー突っ込みを入れてみよう。ちなみにこのエントリ日本でしか生きていけないと将来破滅するリスクがあるので世界中どこでも生きていける戦略のご紹介 - 分裂勘違い劇場」には今現在183のブックマークがついていた。

ブックマーカー突っ込み

id:taitoku

考えさせられる

そうですか?腹が立つという意味なら同意です。

id:todojun

分裂君の評論能力にはつくづく感心させられるなぁ。

ある意味正しい。きちんとblogの形にまとめてくる能力は評価できますね。でも、なんだかバックグランドとして透けて見える彼の価値観がどうにもよろしくない。プロフィールのところで、逃げを打つあたりも疑問だしネ。

id:carrotsword

理屈は同意なんだけど、「たとえば??」とかいって具体的に出てくるキーワードに幻滅してしまうのは何なんだろう。

同意。全くその通り。地方のSEにこんな感じのリーダが昔は沢山いた。世間狭すぎる。会社にべったりのスキルを獲得しないで、何をやった気になってるんだろう。大型開発ほど、困難な開発ほど、会社として総力戦になる。自ずと独自製品べったりになる。そんな現場に立ち会っていない。というか、立ち会ったかも知れないが外野として俯瞰していた感じだ。

本人のblogに何点か突っ込み

UnixRDB正規表現JavaPerlTCP/IP.NETC#

AJaxが無いのは書き漏らしたのかな。独自製品べったりを嫌うだけあって運用管理ツールは無いな。Apatche, MTが無いあたりは勘定系などのSEなのかと思わせられる。それにしても、「正規表現TCP/IP」は一般教養だからここに書かない方がいいのでは。iosが無いのはネットはやらない人なんだな。

国家に対しても同じことが言えます。

IT系企業国家を同列で考えるのはいかがな物か。しかも、文の構成から見てIT企業考察から類推している(国家破滅の例としてIT企業を出したとは思えない)。

全ての資産を一点がけするのが危険投資戦略であるように、自分の生活基盤となる国家を一カ所だけに限定してしまうのも、極めて危険な賭なのです。

またも、理由を開示せず類推で話を終えている。投資ポートフォリオをどっかで聞きかじったんだろうが、薄っぺらい。

「1人の異性しか知らず、最初につきあった異性と一生添い遂げなければならない」というのはいかにも古めかしい道徳観念です

古いとしか言っていない。良い悪いの話じゃないのか。古いが悪いのはITだけだよ。価値観なんて人それぞれ、古かろうが主流じゃなかろうが幸福追求に都合が良ければそれでよし。

また、タバコ依存症から抜け出すために、さまざまな方法があるように、日本依存症から抜け出すにも、さまざまな方法があります。

まただ。しかも、今回は「依存症」という単語で一本書こうとした糸口が透けて見える。面白いけど、調査不足。力不足埋め草が多すぎる。

利回りのよい債権株式に自分の資産を分散投資し、運用することは、どこの国に居住していてもできます。

なぜ、この話題で計算式を出さない。計算してみればあなたの提案がとても難しい物だというのがよく分かるはず。私の資産では年率16%の運用利回りをたたき出さないと生活はできない。平均的な資産運用は5%。企業年金運用を2〜5%でやっている。16%の運用ができるなら、日本にいた方がいい。

新しく登場した.NETC#にしても、過去にマスターしたスキルにほんのちょっと上積みしたぐらいのわずかな薄皮でしかなく、いままで蓄積した基本スキルはそのまま通用します。

仕事は何をやってるんだろう。わずかな薄皮で日々しのげる楽な仕事なんだろうなぁ。スコープも狭いし。

自営業は、あたると凄いんです。

あたらないと書いてるように見えるのだが、気のせいだろうか。

最後に

いちいち、けちを付けて申し訳ない。なんだか、今猛烈に反省モードです。しかも、初めて彼の日記を読み切ったのですが、薄っぺらいという感想は変わりませんが好きになったかも(w。愛されるべきSEなんですね。でも、これだと商談取れないぞ。

2008-03-05

http://anond.hatelabo.jp/20080304133755

だいぶ前にTurbo Delphi Explorerを試してみたが、添付ファイルは送られてきたよ。メーラーとかファイアーウォールが添付ファイルを剥ぎ取ってない?

もともとTurbo Pascal 2.xあたりからのユーザーなんだが、Delphi 5.xくらいでアップデートを止めてしまった。久しぶりにDelphi無料版をインストールしてみた時には悲しくなったよ。

ヘルプアップデートされていないので、あちこちつじつまが合わないんだよ。おまけに、ヘルプのトップに堂々と昔の日付が書いてあったりして、「もうわれわれにはこれを続ける余力はありません」って無言のメッセージが伝わってくる。

Delphiに触った連中が、あきらめ切れず今でも愛し続ける理由はわかるんだよ。でも、これからはじめるなら俺はC#を薦めるね。Delphiチーフエンジニアが開発を率いたので、Delphiの良いところがいろいろ盛り込まれているし、悪いところも改善されている。

Visual Studio無料版がある。

2008-02-29

http://anond.hatelabo.jp/20080228161909

嘘っつーかなんか破綻してるよね。

C/C++/C#」とかって C# そこで一緒に!?

>臆面も無く低レベルプログラミング言語を挙げる人のほとんどが、

C#!?

2008-02-28

http://anond.hatelabo.jp/20080228152620

「私、プログラミング好きだよ」と言うプログラマに、好きな言語や開発ツールを聞いて「C/C++/C#」の名前があがってくるとげんなりする。心底がっかりする。C/C++/C#は俺も大好きだし、素晴らしい開発環境だと思うけども、臆面も無く低レベルプログラミング言語を挙げる人のほとんどが、それ以外の低レベルプログラミング言語を知らないんだもの。それどころか、IA-32仕様書があることすら知らないし、興味が無い。せめて4004の基本構造くらい理解してから言ってもらえませんかね。

要するに「プログラミングを理解する知識の深い私」を演出するために、いちばんてっとり早くて優等生な回答なんですよね。C/C++/C#は。あと、アセンブリ言語や、機械語もこのカテゴリに入る。

確かにUnixを記述したC言語として鉄板なことは間違いないけど、本当にプログラミングが好きならもっとたくさんの名前が挙がってもいいと思う。もっと書けよ!インテル系以外も!最近のも!「C」「アセンブラ」「MMX」「SSE」「3DNow!」のコンボはもう飽きました。

1度だけ悲しきAdaという回答が返ってきて、土下座せんばかりに感動したことがあります。あ…この方、本当にプログラミング趣味でやってるんだ…と思ったよ。


ごめんなさい、僕、嘘をつきました。

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