タグ

ブックマーク / nowokay.hatenablog.com (12)

  • Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena

    オブジェクト指向言語の話をするときに便利なように、Javaを中心にプログラミング言語をまとめてみました。 Javaに影響与えるか、Javaから影響を受けるか、という感じですね。 Simula オブジェクト指向はここから始まったと言われています。 クラス、オブジェクト、継承、仮想関数(多態)といった、オブジェクト指向の基要素が備わっていました。 ただし、「オブジェクト指向」という言葉は生まれていません。 Smalltalk Simulaから発想を得て「オブジェクト指向」という言葉を生んだのはアラン・ケイでした。 しかし、モデルとしてはSimulaとは異なりメッセージングを主体としたものでした。また、アラン・ケイの「オブジェクト指向」はプログラミングのパラダイムだけではなく、人がコンピュータをどのように扱うかというメタファであり、ダイナブックというハードウェアやそのユーザーインタフェースを含

    Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena
  • コミュニティに入るか入らないかでエンジニアとしての幸福度がかわる - きしだのHatena

    以前、「勉強会に参加しないと不幸になる話」というのをアップしました。 勉強会に参加しないと不幸になる話 - きしだのはてな このときは、勉強会x勉強会という枠だったので、「勉強会」と表現していますが、実際にはコミュニティに参加しないと不幸になる話でした。 あと、ここでの幸せ・不幸せというのは、エンジニアとして、という話で、エンジニアリング能力があがるとか、エンジニアリングの活動がやりやすいとか、エンジニアリングの活動が評価されるとか、エンジニアリングの話題を共有できる仲間が増えるとか、そういう観点です。 エンジニアとしての幸せ以外にも、人生にはさまざまな観点の幸せがある、ということは最初に補足しておきます。 会社が教育機能をもっていない エンジニアとしての幸せに大切なのは、エンジニアリング能力を上げていくことです。 ただ、2013年の産業経済省IT人材白書の概要に IT企業に対して、201

    コミュニティに入るか入らないかでエンジニアとしての幸福度がかわる - きしだのHatena
  • 文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena

    Software Design 12月号の特集が「なぜエンジニアは文章が下手なのか?」というタイトルだったので、読んでみたら、ちょっと残念な内容だった。 「それは文章で書くべき情報なのか」という章があって、直列化した論理構造であれば文章には書きやすいけど、分岐やループがあるような構造だと書きにくいということが書いてあった。そこで文章化しにくい構造の例として地図があげてあって、暗にそういう構造は文章化をやめて図であらわせと言っているように読める。 けれども、図に書いたところで、書く側は文章化から逃げれて満足かもしれないけど、それを読み取る側は結局どこかから順番に解釈していく必要がある。図に逃げるのは、読み手に責任を押し付けているだけだと思う。 で、「ですから文章を書く前にまず論理構造を考える必要があります」と続いていて、では考えた論理構造が「文章に向かない論理構造」だったらどうするの?逃げる

    文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena
    seiunsky
    seiunsky 2012/11/26
    10回くらい音読する必要がありそう
  • プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな

    プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自

    プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな
  • ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな

    ふと「ソフトウェア品質のxxx」みたいな文章を見つつ、基としてはソフトウェアがいかに仕様どおりになっているか確認する話だったので、これってソフトウェア品質じゃなくて、ソフトウェア開発品質だよなーと思った。 実際、ソフトウェア開発の品質と、ソフトウェアの品質には相関はあると思う。とくに1990年代まで、まだITという言葉があまり使われず、OA、つまりオフィスオートメーションがソフトウェアの主な開発対象だったときには、データがちゃんと入ってデータがちゃんと届けられるということが主な処理だったため、ソフトウェア開発の品質と、ソフトウェアの品質はほぼ一致していたと思う。 そういう中で、ソフトウェア品質として、ソフトウェア開発の品質が研究された。 実際、ソフトウェア開発プロセスの基コンセプトのひとつは、「よいプロセスがよいソフトウェアを作る」ということで、ソフトウェアプロセスのを見ると必ずとい

    ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな
  • MapReduceのパターン、アルゴリズム、そしてユースケース - きしだのHatena

    Ilya Katsov氏による「MapReduce Patterns, Algorithms, and Use Cases」の翻訳 http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/ (下書きに入れて推敲するつもりが、なんか公開されてしまっていたので、あとでいろいろ修正すると思います) February 1, 2012 この記事では、Webや科学論文で見られる異なるテクニックの体系的な視点を与えるために、数々のMapReduceパターンとアルゴリズムをまとめた。 いくつかの実用的なケーススタディも提供している。 すべての説明とコードスニペットでは、Mapper、Reducer、Combiner、Partitionaer、ソーティングにおいてHadoopの標準的なMapReduceモデルを利用します。このフレー

    MapReduceのパターン、アルゴリズム、そしてユースケース - きしだのHatena
  • Redmineで作業管理すると仕事をサボりにくくなった話 - きしだのはてな

    会社に出勤して他の人と作業するなら、一日何も作業しなかったということはあまりないんだろうけど、家でひとりで作業してると、せっぱつまってるのに結局だらだらして一日なにも作業をしていないということが多くあって、それをとても問題に思ってました。 やらないといけないのにやってなくて、作業が遅れて気が重くなって、気が重くなるから作業も遅れてという悪循環。 作業の効率をあげるためにはRedmineなんかの管理ツールを使うことが不可欠だということはわかっていました。ただ、問題は作業にそもそもとりかかれないというものでした。 それが、Redmineの設定する気持ちの余裕がなくて後回しにしていたのを、ちょっとどうにもならないと思って作業用Ubuntuに入れて使い始めたら、作業が効率よくなるだけじゃなく、ちゃんと作業にとりかかるようになったことに気づきました。 Redmineじゃなくても、TracでもBack

    Redmineで作業管理すると仕事をサボりにくくなった話 - きしだのはてな
  • PHPの価値が相対的に落ちてJavaの価値があがっていく 2009-10-19 - きしだのはてな

    2000年あたり、PHP4やJSP1.0が出たころ、PHPよりもJavaがよいと言っても、「Javaは動かせる安いサーバーがない」ということで、サーバーの確保が容易なPerlPHPが使われました。 Javaを使うには、一台まるごと借りれる割高なレンタルサーバーで、自力でTomcatなどをインストールする必要がありました。そういった状況はしばらく続き、「PHPならば安く借りれるサーバーがたくさんある」ということから、PHPがよく使われるようになりました。 PHPの普及初期では、サーバーの確保が容易なことがPHP採用の大きな理由のひとつだったと思います。 こういう状況は最近まで続いたけど、Amazon EC2のおかげで「Javaは動かせる安いサーバーがない」という問題は解決してきました。Amazon EC2を借りても自力でTomcatなどをインストールする問題がありましたが、HerokuやS

    PHPの価値が相対的に落ちてJavaの価値があがっていく 2009-10-19 - きしだのはてな
    seiunsky
    seiunsky 2009/10/20
    jRuby on GAE も忘れないでください></今後の GAE の進歩で Java の価値が~というのなら、PHP対応された瞬間同じ土俵になってしまうのでは(対応するか知らないけど)。
  • どうでもいいことをあたかもなんかすごいことのように語るメソッド - きしだのHatena

    どうでもいいことを、あたかもなんかすごいことのように語る方法を考えてみる。 まず、書きたい「どうでもいいこと」を決めよう。 とりあえずここでは、「明星のインスタント焼きそば作るときにかやくを入れ忘れたのだけど、それってフタの説明が悪いんじゃない?」ということを書くとしよう。ここで、読んでる人に「ようわからんけどなんかすごい」と思わせるために話の主題をずらすのが大切だ。今回は、結論を「UFOのターボ湯切りいいよね」ということにしよう。 文はこのようになる。 先日明星のインスタント焼きそばをべた。 ふたの説明を見ながら手順どおりに作ったのだけど、べる段になって、かやくはあらかじめ入れておかないといけないことに気づいた。これはふたの説明が悪いのではないか。ふたの説明はインスタント焼きそばの味を最終的に決めるものであるから、わかりやすく書くべきである。 UFOのようにかやくをあらかじめめんの

    どうでもいいことをあたかもなんかすごいことのように語るメソッド - きしだのHatena
    seiunsky
    seiunsky 2009/06/05
    なんというDANメソッドw
  • 「オブジェクト指向は教えないでください」ってなんてよくわかった会社だろうか - きしだのはてな

    よく分かってる会社だ。 次世代の基幹系オープンシステム開発に利用されるプログラミング言語は? - forest book 先日、SIer友人が新人研修の講師として Java を教えるというお話を聞きました。会社側からは「Java を教えるのではなく、"プログラミング" を教えてほしい。オブジェクト指向は教えないでください。」との指示を受けたそうです。 プログラミングにおいて、現場での「オブジェクト指向」の優先度が低いってことですよね。 そして、理論的にも優先度は低い。アルゴリズムとか関数的ななにかとかをちゃんと扱えるようになるのが先決ですね。 関数+制御構造がやはり基だし、その範囲がちゃんと扱えないで「オブジェクト指向」がちゃんと活用できるとは思えないし。 ただ、そうしようとしてもJavaではオブジェクト指向のための構文を知らざるを得ないので、その範囲のオブジェクト指向の知識は必要に

    「オブジェクト指向は教えないでください」ってなんてよくわかった会社だろうか - きしだのはてな
    seiunsky
    seiunsky 2009/05/16
    伝え聞いた話に寄ると、昨年の新人研修では全角文字でプログラム書いて「コンパイルとおりません><」となった人が居たらしい。・・・さすがに、それは特例だとは思いますけどね。。。
  • いまSICPを読むのは時間の無駄 - きしだのはてな

    SICPは、よい内容について書かれたであり、最良のだった時期もあった。 けれども、今となっては、理解が難しく内容の割には時間がかかる、時間の無駄ともいえるといってもいいかもしれない。 もちろん、Schemeの可能性、数値計算、プログラミング、コンピュータ教育歴史、そしてSICP自体のすべてに興味があれば、効率がいいかもしれない。 けれども、コンピュータ教育歴史、SICP自体に興味がないのなら、あまり効率のいいとはいえない。特に、Scheme、数値計算に当面の興味はなく、プログラミングについてだけを学びたいのであれば、時間の無駄でしかないと思えるし、今となっては足りない部分もある。 SICPの欠点として、まず、次の点が挙げられる。 日語がよみにくい サンプルに数学の知識が必要 プログラムがよみにくい 日語がよみにくいというのはよく指摘される。ただこれは翻訳だけが悪いのではな

    いまSICPを読むのは時間の無駄 - きしだのはてな
    seiunsky
    seiunsky 2009/04/26
    関数型プログラミング言語をやるなら、SICP よか良い本があるよ、ということかな。
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
    seiunsky
    seiunsky 2008/12/13
    詳しい事はよくわからないけど、大概のシステムではDBが最初のボトルネックになりますね。パフォーマンスチューニングできる人はもっと欲しいのが自分の職場の現実。
  • 1