タグ

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

  • ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena

    ITはもう面白くなくなってますね。 技術が面白いときには、いろいろ新しいものが出て性能あがったりできることが増えたりします。調べたらどんどん新しいものが出てくるし、新しいものもたくさん作るし、面白い。ですが、IT技術は一通り出そろって、成熟期に入っています。そうすると新しい技術に出会うことも新しいものを作ることも減っていきます。その結果、いままでの変化のあった状況を知っていれば、つまらんってなりますね。 ※2024/8/24 追記 言いたいことをまとめると、IT素振りのネタ探しに苦労するようになったよねってことです。 結局のところITというのは新しいハードをどう動かして社会に実装していくかというものなので、新しいハードが出ないとどうしようもないのです。けれどもだいたい飽和してしまった。 雑にいえば、これまで1980年くらいにBASIC搭載8bitパソコンが普及するとBASICプログラミング

    ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena
    t-murachi
    t-murachi 2024/08/21
    新しいものに飛びつき続けていた人たちほど老害化していってる疑惑ガガガガ
  • ソフトウェアの「詳細設計書」とはなんなのか - きしだのHatena

    設計書」というのは、作るものの構造を抽象的に表現したものと言うことができます。 ただ、ソフトウェアの抽象化の仕組みはプログラミングコード自体に備わっているので、ソフトウェア生成可能な抽象的表現というのはコード表現ができるはずですね。コードで表現しておくと、整合性のチェックとかも行いやすいです。 でも、コードではない「詳細設計書」というものが一部業界には必要とされているので、その「詳細設計書」というのは実際はなんなのか考えてみます。 ※ 最初はタイトルは「設計書」としてましたが、話を限定するため「詳細設計書」に変更しました。 追記:納品物に関する記述を追加しました。 表現を変えたコーディング ソフトウェア生成可能な抽象的表現というのはコード表現ができるわけですが、文字で表記する必要もなく、ダイアグラムで表現することもできますね。 代表的なのがER図やクラス図で、これは文字表現との相互変換が

    ソフトウェアの「詳細設計書」とはなんなのか - きしだのHatena
    t-murachi
    t-murachi 2024/08/15
    論点が詳細設計に絞られてた(´・ω・`) まぁ、doxygenなりjavadocなりでやってくれよとは思うけど… 最近その手のツールも流行りじゃないからね(´・ω・`) でもAPI仕様のドキュメントはしっかり書いて欲しかったり(´・ω・`)
  • プログラミングが設計作業であるという話 - きしだのHatena

    いわゆる「ソフトウェア設計書」が設計ではなく、ソースコードが設計であるという話。 随筆です。考えマトメ中なので、ツッコミはそのあたり踏まえていただければ。 追記:ブコメに「設計の定義は?」とあったので末尾に追加しています。 追記(2024/8/15):設計書ってなんだろう?というのも書いておきました。 ソフトウェアの「設計書」とはなんなのか - きしだのHatena このエントリで書いたのですけど、もうすこしちゃんと。 建築では多重下請けでやれてるのに業務システムでだめなのはなぜ? - きしだのHatena このエントリでは次のように書いています。まあ、これで全てではあるのだけど。 「建築などの施工図面に相当するのはソースコードで、建築現場で多重下請けでやってる作業は、ソフトウェアだと(でも?)ビルドです」 あと「継続的デリバリーのソフトウェア工学」からの抜粋。 「継続的デリバリーのソフト

    プログラミングが設計作業であるという話 - きしだのHatena
    t-murachi
    t-murachi 2024/08/14
    あまり意味のある議論には思えないなぁ。設計にも段階はあって、画面レイアウトにせよデータモデリングにせよソースコードだけで書き表すには詳細に過ぎるからこそ文書化することで保守性を担保するわけだし。
  • プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena

    Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonMicrosoftはかなり力をいれている。象徴的なのが、Pythonのオリジナル開発者の入社 C/C++ Windows上でのC/C++コンパイラではMS C/C++が圧倒的シェアであるし、C++の標準化団体にMicrosoftGold Memberとして参加している。 https://isocpp.org/about Java 4位のJavaに関してもかなりリソースは割いているわけですが、全体の影響度としてそこまで大きくはないですね。 昨日のブログにも書いたようにOpenJDKビルドを出してい

    プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena
    t-murachi
    t-murachi 2023/02/13
    MS-BASIC、Quick C、Quick BASIC 辺りを挙げるまでもなく…な気もするが(´・ω・`)
  • なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena

    1990年代にオブジェクト指向分析・設計の方法論がめちゃ流行ったことがあります。 ただ、そのブームが終わって、後続となるような方法論が流行ることはありませんでした。 で、なぜなのか考えていたのですけど、オブジェクト指向方法論のウリは分析段階で出てきたオブジェクト(といいつつクラス)がコードにそのまま引き継がれるというものでした。ようするにオブジェクト指向方法論というのはコードのスケッチを書いて詳細化していくというものだったのです。 しかしながらこれは、スケッチとして書いた分析・設計が間違っていればコードも間違うわけで、強くウォーターフォールの性質をもつものでした。 結局のところスケッチの妥当性というのはコードを書かないと検証ができません。分析・設計段階で見出されたクラスが妥当かというのは、コード書かなければわからなかったのです。逆に、コードを書けば妥当かどうかわかります。であれば、最初から

    なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena
    t-murachi
    t-murachi 2022/08/06
    何でもかんでもオブジェクトって呼んでりゃあそら廃れん罠(´・ω・`) 言うて同じ言葉でも出たてのJavaとKotlinじゃまるで別世界やし、方法論は次第次第で変わり続けてたんでねーの?
  • プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな

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

    プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな
    t-murachi
    t-murachi 2019/05/14
    ✕使う機会がない ○身についてる人は普段から役立ててるけどそうでない人は価値を理解できない / ブコメ眺めてたらそりゃ実力に開きも出る罠としか(´・ω・`)
  • Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena

    ※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども

    Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena
    t-murachi
    t-murachi 2014/08/02
    イマサラですが… IT Pro の記事 http://itpro.nikkeibp.co.jp/atcl/column/14/224071/072300002/ にログインするの面倒だったので…
  • オブジェクト指向について - きしだのHatena

    参考までに、ぼくの基的な定義は、ランボーの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」という定義に従っています。そのようなオブジェクトが単体ではなく組織化されるということが重要です。オブジェクト指向を勉強するとはそのような組織化のしかたを勉強することだと考えています。 現在のシステムは、データはデータベースに格納され、振る舞いとは分離して管理されています。そのような中では、システムをオブジェクトの集まりとして組織化することはできません。 局所的にも、ステートレスを前提としたHTTPの処理では、オブジェクト組織の必要な局面はありません。 個別のオブジェクトの共通化に継承を使うという点では「クラスは単にユーザー定義型であり、継承は部分型と差分プログラミングを実現する仕組みだととらえる」だけで充分だと考えています。 そうしたシステムにオブジェクト

    オブジェクト指向について - きしだのHatena
    t-murachi
    t-murachi 2014/07/25
    まぁーSIer、Web開発者が構築するアプリケーションでこれが必要になる局面って、よく知られている典型例以外ではあんまり無さそうだ罠。
  • オブジェクト指向は禁止するべき - きしだのHatena

    プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムのに、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

    オブジェクト指向は禁止するべき - きしだのHatena
    t-murachi
    t-murachi 2014/07/25
    面白い。しかし「禁止すべき」と強い忌避を表明する必要性を感じるほどに、Javaプログラマーとは斯くもオブジェクトに束縛されるものなのだろうか。
  • Technology RaderもJava8を認めた! - きしだのHatena

    技術の注目度・実用度を分析したTechnology raderというのを、Thought worksが半年ごとに発表してます。 で、これいつもJava嫌いなんだなーって思う感じの内容だったんですね。 たとえば、2011年1月には「Java language end of life」といって、JavaはVMは残るけど言語は終わるよねーみたいな感じになってました。 http://thoughtworks.fileburst.com/assets/technology-radar-january-2011.pdf これが、2011年7月では、「Future of Java」として、今後でてくるJavaなら評価していいんじゃねーのみたいに。 http://thoughtworks.fileburst.com/assets/technology-radar-july-2011.pdf そして、先日

    Technology RaderもJava8を認めた! - きしだのHatena
    t-murachi
    t-murachi 2014/07/14
    C++er「( `д´) ケッ!」
  • JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena

    夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ

    JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena
    t-murachi
    t-murachi 2014/07/09
    十数年前、 Java プログラマーってもっとギラギラしていた印象があった。あの人達は今みんな、良くも悪くも落ち着いてしまって、おっさんになってしまったんだなぁ、ってこれ見て思った。
  • Java8時代の文字列連結変態さんまとめ - きしだのHatena

    いろいろな文字列連結のコードを書いた人がいたのでまとめておきますね。 主に変態さん。 とりあえず、基準として、メモリ確保したStringBuilder版 public static String stringBuilderJoinMem(){ StringBuilder s = new StringBuilder(9100).append("["); for(int i = 0; i < strarray.length; ++i){ if(i != 0){ s.append("],["); } s.append(strarray[i]); } s.append("]"); return s.toString(); } 1037ms ということで、まずはbackpaper0さん。比較的常人のコード。 https://gist.github.com/backpaper0/10273558 pu

    Java8時代の文字列連結変態さんまとめ - きしだのHatena
    t-murachi
    t-murachi 2014/04/14
    「性能面でセンシティブな場面で String を使うことを考えるな。CharBuffer 使え。」
  • iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena

    ちょっと気になったので、簡単にベンチマークしてみました。 最初は、ラムダ呼び出しが入る分forEachは遅いんじゃないかと思っていたら、倍の速さに。 もちろん、いろんな条件で変わるんだろうけど、ここまで差が出ることがあるのは驚き。 あと、Collectors.summingIntのような基型に対するCollectorを使うよりは、intStreamに変換してからsumなど専用メソッドを使うほうが圧倒的に速いことも確認できた。 とりあえず、0から10万件のListを用意。 array = IntStream.range(0, 100_000).boxed().collect(Collectors.toList()); それからベンチマーク用のメソッドを用意。 public static void bench(String name, Supplier<Integer> proc){ ben

    iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena
    t-murachi
    t-murachi 2014/04/01
    アセンブリ出力を見比べてみたいな…。
  • ソフトウェア工学は失敗している - きしだのHatena

    特に学術的にソフトウェア工学に触れたことはないのですが、むしろそうではなく現場にいる身としては、ソフトウェア工学は失敗しているように見えます。 「成功していない」ように見えるのではなく「失敗している」ように見えるのです。 もちろん、いまソフトウェア開発で使う技法やツールなど、ソフトウェア工学の産物はたくさんあり、現在のソフトウェア開発がソフトウェア工学から生まれたもので支えられていることには間違いありません。 でも、そうやって築き上げてきたものが、1999年以降ガラガラと崩れて、そしてうまく再構築できていないように見えます。 1999年、なにがあったかというと、XPエクストリーム・プログラミング入門というが発行されたのです。リンク先は2版ですが、日語版でも初版は2000年12月になっています。 ここからソフトウェア工学がガラガラ崩れた気がしています。 では、ここまでソフトウェア工学がど

    ソフトウェア工学は失敗している - きしだのHatena
    t-murachi
    t-murachi 2013/03/26
    興味深い。ソフトウェア工学が失敗、という表現が適切かどうかは疑問ではあるが…。
  • スーパービールクズの季節です - きしだのHatena

    ビールを飲んでクズになろう! ついでにやせよう! やせたい人は、今夜もビールを飲みなさい 作者: 安中千絵出版社/メーカー: PHP研究所発売日: 2012/05/25メディア: 単行(ソフトカバー) クリック: 167回この商品を含むブログ (2件) を見る

    スーパービールクズの季節です - きしだのHatena
    t-murachi
    t-murachi 2012/06/19
  • ヘッドフォンを常用してる人で雑音の中で会話が聞き分けづらいのは難聴の可能性 - きしだのはてな

    Twitterで、「会話のときに周りに雑音があると聞き取れない」という発言があって、ヘッドフォンを長いこと常用しているということなので、難聴の可能性があるので耳鼻科で診てもらうよう勧めました。 同様に、ヘッドフォン(イヤフォンでも)を常用していて、なんとなく雑踏のなかで会話が聞き取りづらいという人で、実は難聴になっているという人がいるんじゃないかと思ったので、ちょっとまとめておきます。 たとえば、ニュースのアナウンサーの声は聞きとれるのに、バラエティで笑い声が入ったりすると聞き取りにくいという場合には要注意です。 心当たりがある人はヘッドフォンの利用の見直しと耳鼻科での検診を勧めます。 ヘッドフォンを常用すると高音難聴になりやすい ヘッドフォン難聴という言葉は有名になってきましたが、スピーカーで音楽を聴くのとヘッドフォンで音楽を聴くのとの違いは、鼓膜にとどくまでに高音が減衰しないということ

    ヘッドフォンを常用してる人で雑音の中で会話が聞き分けづらいのは難聴の可能性 - きしだのはてな
    t-murachi
    t-murachi 2012/04/17
    ノイズキャンセル機能は個人的にはあまりお勧めしないなぁ… あれはあれで耳への負担が大きい。
  • プログラマが解くのに1時間かかるという問題が普通にプログラマな方法で5分で解ける話 - きしだのはてな

    こういう問題が流れてきた。 まつひろのガレージライフ: 幼児が数分で解けるのに大人が解けない算数(?)の問題 「幼稚園児が5〜10分で解けるのに、プログラマなどの頭脳労働職の高学歴の方が解くのに1時間もかかる」とあるけど、これ1時間かかるの、プログラマとしてあまりよくないんじゃないのかなーと思った。 ので、プログラマ的に解いてみる。 改めて書き出すとこう。 8809=6 3333=0 7111=0 5555=0 2172=0 8193=3 6666=4 8096=5 1111=0 1012=1 3213=0 7777=0 7662=2 9999=4 9313=1 7756=1 0000=4 6855=3 2222=0 9881=5 3333=0 5531=0 5555=0 2581=??? 問題は英語だし語呂合わせじゃない。幼稚園児にわかるということでそこまで複雑なルールでもない。なんらか

    プログラマが解くのに1時間かかるという問題が普通にプログラマな方法で5分で解ける話 - きしだのはてな
    t-murachi
    t-murachi 2012/04/12
    まぢレスするとそも問題文は = 記号を使うべきではないし、和であることもさることながらそも10進値ではなく数字の羅列であるってのも類推に過ぎない。 / んだけど、テスターとしてのセンスを測れるって見解には同意。
  • ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな

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

    ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな
    t-murachi
    t-murachi 2012/04/03
    ペアプロもコードレビューもない TDD とか、要件定義のなってないウォーターフォールとか、そういうお話。
  • ThinkPad X220 Tabletを買った - きしだのHatena

    順番逆になったけども。 いままでX60 Tabletをだましだまし使っていたわけですが、ちょっともう実用的に作業ができないということになってきたので、ついうっかり買ってしまいました。 レノボ・ジャパン ThinkPad X220 Tablet (i5-2520M/2/320/W7/12.5/WiMAX) 42963CJ 出版社/メーカー: Lenovo発売日: 2011/05/31メディア: Personal Computersこの商品を含むブログを見る Lenovoのサイトで深夜に買うと、かなり安いです。昼間は高いよ。 http://shopap.lenovo.com/jp/notebooks/thinkpad/x-series-tablet/x220-tablet Core Duo/メモリ2GBからCore i5/メモリ8GBなったので、非常に普通に仮想マシン立ち上げたりGlassfi

    ThinkPad X220 Tabletを買った - きしだのHatena
    t-murachi
    t-murachi 2012/04/02
    「Lenovoのサイトで深夜に買うと、かなり安いです。昼間は高いよ。」<え、そうなの…??
  • ThinkPad X220 Tablet でVT-x 仮想化支援がきかない - きしだのHatena

    新しいノートパソコン買ったんだけど、またタブレットなんだけど、タッチスクリーンすげーお気に入りなんだけど、VirtualBox入れて動かしてみようと思ったら 「64ビットCPUを検出できず、起動できません」 とか言われて、えーCore i5って64ビットじゃねーの?とか仮想化対応してねーの?とか取り乱してしまいつつ、ぐぐったらBIOSの設定をしろって書いてある。 いや、ダイアログにもちゃんと書いてあったのだけど。 んで、再起動してスタートアップ画面を見るんだけど、「起動を中断するには青いThinkVantageボタンを押せ」みたいなことが書いてあって、押したらWindowsの再設定画面が出て、BIOSの設定なんかできない。 さらにぐぐったら、F1キーでBIOS画面に入るって書いてあって、そのとおりしたらBIOS画面に入れた。 でも、CPUの設定にはマルチコアサポートとハイパースレッドサポー

    ThinkPad X220 Tablet でVT-x 仮想化支援がきかない - きしだのHatena
    t-murachi
    t-murachi 2012/03/29
    VirtualBox で Win8 動かしてもマルチタッチ拾って貰えないのか…。