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

  • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

    この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

    時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
    hase0510
    hase0510 2024/02/09
    ステートレスなclassはstaticな存在なんだけど実際static classにしてしまうことはできないがち。通常classでできることができなくなるから。状態を持てずインスタンス化の必要がないが、参照を渡したりはできるclassが欲しい。
  • x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena

    x = x + 1がわからないという話が流行ってました。 で、「=ではなく:=を使えば」とか「イミュータブルにすれば」とかいう話が出たりしてますが、問題をあとまわしにしてるように見えます。 結局のところ、逐次実行がわかっていないことが表面化している場合がほとんどではないかと。 https://speakerdeck.com/kishida/lets-code-a-process?slide=8 プログラム以外の文章は、基的にひとつの状態を示していて状態が遷移するということがありません。 推理小説なども、最終的な状態が徐々に開示されるだけともいえます。途中から読むと犯人が変わるということはないですね。もちろんそのように途中から読むと犯人が変わるような叙述トリックは可能ですが、通常はそうではないからトリックになるわけで。 つまり、x = x + 1という式は、x + 1という演算を行ってから

    x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena
    hase0510
    hase0510 2024/02/07
    そりゃそうだけど記号が違えば見慣れた等式と違うんだな~と思うきっかけにはなるよね。そんなことのために1文字増えるのは嫌だけど。
  • 空の配列に対するmaxは何を返すか - きしだのHatena

    ちょっと前に「配列中のすべての要素が条件を満たすかどうか判別する関数で、空の配列はTrueを返すべきかFalseを返すべきか」のような話が話題になってました。 まあこれは「Trueを返す」が答えなわけですが、では「配列中の最大値を返す関数で空の配列の場合は何を返すか」が気になりました。 「配列中のすべての要素が条件を満たすかどうか判別する関数」について言えば、簡単に言えばこんな感じ。 まず、配列のすべての要素が偶数であるかどうか判別する関数を考えます。 void main() { int[] data = { 23, 44, 12, 98, 5 }; System.out.println(allEven(data)); } boolean allEven(int[] data) { for (int n : data) { if (n % 2 != 0) return false; } r

    空の配列に対するmaxは何を返すか - きしだのHatena
    hase0510
    hase0510 2023/06/06
    maxやminは、四則演算や論理演算とは少し性質が違うよね、というのは競プロをやってると出会う話なのでみんなも競プロをやろう
  • 新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena

    2010年代前半にKotlinが2011年、TypeScriptが2012年、Swiftが2014年、Rustが2015年と、新しいプログラミング言語が立て続けに発表されていましたが、そこを最後にみんなが話題にするような言語は出てきていません。 なんでだろうと、思いつく要因をあげてみます。 ※ 追記2023/5/11 わざとなのか「みんなが話題にするような」を無視してツッコミ入れてる人いるのだけど、言い換えれば「新しい言語が出てもみんな話題にしない」という話です。 プラットフォーム用の言語が出そろった KotlinTypeScriptSwiftRustが2010年代前半に出てきましたが、これはJVM(Android含む)、ブラウザ、Appleデバイス、ネイティブといった代表的プラットフォームでほどほどの言語が出そろったということではないかと思います。 結局のところプログラミング言語は

    新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena
    hase0510
    hase0510 2023/04/05
    既存言語たち、改良はされてもレガシーな機能や構文が残ってるんだよね。そういうのを撤廃したいっていうのは新言語を作る大きな動機の一つだと思うので、RustやGoの構文が古臭くなってきたら次が出てくると思う。
  • APIといえばWeb APIになった現在、ローカルAPIは専らライブラリと呼ばれる説 - きしだのHatena

    APIというとWeb APIのことを指すようになってしばらくたちますが、こういう場合WebじゃないほうのAPIを指すレトロニムができるはずなんですよね。 例えばこのエントリのタイトルではローカルAPIという言葉を使ったけど、埋め込みAPI、組み込みAPIという言い方も可能な気はして、そしてどれもしっくり来ない。シェアドライブラリを考えると埋め込みAPI / 組み込みAPIというのは不適切でローカルAPIが適切な気がするけど、違和感が大きい。 元々でいうと、アプリケーションプログラマがなんらかミドルウェアなどを使うための入り口というのはAPIで、SQLAPIのひとつだったりした。 C.J.DateとCodd博士の「The relational and network approaches: Comparison of the application programming interfac

    APIといえばWeb APIになった現在、ローカルAPIは専らライブラリと呼ばれる説 - きしだのHatena
    hase0510
    hase0510 2023/01/01
    APIという言葉にはもともと曖昧さがあって、APIと呼ばれるかどうかは「作成者がAPIと名乗っているかどうか」に依存するところがあるけど、Web APIは誰の目から見ても境界面が明確で、使いやすい言葉だというのはある。
  • アルゴリズムと計算量 - 「プロになるJava」ボツ原稿 - きしだのHatena

    「プロになるJava」ボツ原稿、今回は「13章 処理の難しさの段階」に入れようと思っていた、「アルゴリズムと計算量」の話です。 こういう話題でよくでる「こんな難しいプログラム組まないのでは?」という疑問についても最後にまとめています。 プロになるJava仕事で必要なプログラミングの知識がゼロから身につく最高の指南書 作者:きしだ なおき,山 裕介,杉山 貴章技術評論社Amazon アルゴリズムと計算量 ここまでいろいろな処理の計算手順について紹介しました。こういった計算手順のことを アルゴリズム といいます。 同じ処理をするアルゴリズムはいろいろ考えられます。そのとき気になるのは実行性能の問題です。 ただ、実行性能はコンピュータによってクセがあるので、アルゴリズムそのものについてを考えるときにはそういったクセを取り除いて考えたいものです。 そこで、アルゴリズムの性能について考えるときに

    アルゴリズムと計算量 - 「プロになるJava」ボツ原稿 - きしだのHatena
    hase0510
    hase0510 2022/04/30
    アルゴリズムをちょっとかじったプログラマーはNが小さいのにオーダーが良い(しかし定数項・定数倍は重い)実装をしてしまったりしがち。どうせ勉強するならもう少し先まで行こう。
  • 組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena

    ここまでのあらすじ 我々の住むソフトウェア業界は、SI、サービス・パッケージ、ユーザー企業という大小3つの大陸にわかれ、時々いさかいがありながらも平和に暮らしていた。 そして、我々の住む世界とは別に、同規模の技術者が暮らす、組み込み業界という世界の存在も知られていた。 組み込み業界は、存在はすることは確かなのだが技術者の姿は見えず、そのプロダクトの存在も、わかるものにしかわからないのであった。 我々は、組み込み業界と交信できる唯一の手段、C言語を使って、その世界の住人と交信するしかなかった。 しかしあるとき、FPGAという次元ホールをみつけたワカモノ達が、組み込み業界に迷い込んでしまう。ワカモノ達の前に立ちはだかる屈強な組み込み技術者。彼らの前にワカモノたちは、あるものは倒され、あるものは捕らわれ、そして、命からがら表の世界に逃れてきたワカモノも「べり・・・ろ・・ぐ・・・」というナゾの言葉

    組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena
    hase0510
    hase0510 2014/03/15
    組み込みはノウハウなんかをネットに書くとハードメーカーに怒られてしまうので、あまり突っ込んだ話はWebに出にくいんだよね。Arduinoみたいなのはそういうの関係ないから色々話せる。
  • 1