なんか考えてることとか

変な人が主にプログラミング関連で考えていることをまとめる。

あなたが誤解しているRustの「安全」について

  • 2025/2/6
    • 動作がわかりやすいようにほぼすべてのコードに標準出力を追加

最近(2025/1/18現在)、チェスプログラムの評価を通して、Rustをボロクソに叩いた記事がZennに投稿された。
zenn.dev

Rustはデバックモードでのスタックサイズが限られていて、これが非常に愚かだ。
安全な言語なのにスタックサイズに制限がある事は愚かだ。

こんな事を書いたら、後からクレームのコメントがバンバン来るだろうなとは思ってますが、この動画で私が共感したのは、Rustは糞だと言う事です。
一概に、Rustが早くて安全と言う事は、決してありません。

これについて、率直に感じたことは、「Rustの『安全』は、あなたが思っているようなものではない」ということだ。そしてRustaceanも含め、この辺りは本当に誤解が多いと感じているため、今回は多くが誤解しているRustの「安全」について書くことにした。

続きを読む

C言語で定数に型を付ける方法

現在デファクトスタンダードとなっているC99において、定数を定義する方法として、マクロ定義を用いる方法と、enumによる列挙定数を用いる方法がある。
しかし、マクロ定数はあくまで「コードの展開」という機能でしかなく、マクロ定義そのものには型がない。
また、列挙定数では型は付くものの、32bit整数型としてでしか定義することができない。

そこで、Cにおいて、定数に型を付ける方法について考えたので、備忘録として書いていこうと思う。

続きを読む

Zenn, Qiitaの記事削除につきまして

Zenn, Qiitaに記事を投稿させていただきました。Ukicodeと申します。
今回は、その該当記事の削除につきまして、お話をさせていただければと思います。

まず、ZennとQiitaの記事を削除した理由ですが、

エンジニアの情報共有ツールとして、相応しくない記事であったから

これにつきます。
と言いますのも、私がZenn, Qiitaに投稿をしたきっかけは、本ブログで扱うには、あまりにも小さすぎる、小ネタを投稿するつもりで投稿をいたしました。これには、エンジニアのためになる情報を共有しよう!という目的はあまりありませんでした。何せ、処理系に依存した書き方を紹介したわけで、もとより、万人に推奨する書き方ではないとしたうえで書いたのが、あの記事となります。

記事投稿数時間後に、

「エンジニアのためになる情報ではないな」

と思っていて、そのときに削除すれば良かったのですが、そのまま放置をしてしまいました。ですから、

  • エンジニアの情報共有サイトであるZenn, Qiitaに記事を出してしまったこと
  • その記事を放置してしまったこと
  • コメントをいただいたのに、最終的に削除する形になってしまったこと

に関しましては、この場を借りてお詫びをいたします。誠に申し訳ありませんでした。

これからは、Zenn, Qiitaに記事を投稿せず、小ネタも本ブログで取り扱うことを約束いたします。その際は、明らかな間違いに対しての指摘コメント等も、歓迎いたします。(なお、他人にとって不快になるような文章は、申し訳ございませんがこのブログのポリシー上例外とさせていただいておりますので、ご了承ください)

よろしくお願い申し上げます。

文字列結合に(+)演算子を使うことへの違和感の正体

私はソフトウェア開発をしていて、ずっと違和感があったところがある。それが一部の言語で見られる文字列結合演算子(+)である。
今回は、この違和感について、正体がわかってきたので書いていくことにする。

続きを読む

PureScriptに入門した

仕事柄、Webアプリケーション開発に携わることはあまりないが、JavaScript(以下JS)で辛い思いするのはもう嫌になったので次携わることになったときのために、JSを改善したAltJSやフロントエンドフレームワークを使えるようにしておこうと思い、PureScript(以下PS)に入門することにした。

PureScriptのロゴはクリエイティブ・コモンズ・ライセンス(表示4.0 国際)に基づいています。
ロゴ製作: Gareth Hughes, 2014

続きを読む

HaskellのIOアクションが副作用を持たず、参照透過であることをようやく納得できた話

今回は、HaskellのIOアクションについて、ようやく納得できたので書いていく。

続きを読む