プログラミング
10年以上前に書いたhcaslという小ツールについて「これなあに?」と問い合わせが来た。備忘録として裏事情を含めて書き残しておこうと思う。hcaslには元ネタとなる自作ツールがある。元ネタの自作ツールは、かつて「教えて! goo」が生きていた頃にプログラミ…
2026-06-27現在のステータス。昨年(2025-06-30)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1まあ…
C/C++でのプログラミング歴が長くなると、肌感覚としてmalloc(3)やnewが遅いということが分かってくるものだ。そもそも、21世紀の4分の1が経過したのに未だにC/C++を使っている連中(私もそうだ)の多くは、リアルタイム性に関して一定以上の要求を抱えるソ…
一気呵成に「とりあえず動く」というレベルのコードを書いてしまい、後で整理しようとする――というパターンの開発を何度か見かけたことがあるのだが、その多くが結局整理されないままか、整理不十分なまま代々引き継がれていき、後進が苦労する羽目となって…
C言語で書かれたソースコードをC++化する作業に関わったので、メモを残しておく。 前提条件 主にC++やC言語で構成されたアプリケーションにおいて、中間層に位置するコンポーネントの1つとして、C言語で書かれたライブラリがある。 このライブラリは今後も積…
21世紀になってからプログラミングを始めた口で、世代としては新人研修の言語がJavaだった時分である。しかし何の因果かC言語、それも組込みではなくシステムプログラミング寄りの分野でプログラミングのイロハを学ぶことになった。C言語によるクロスプラッ…
自宅のPCのディスクの奥底からHello Worldを発掘し始めて2週間経った。我ながら色々な言語でHello Worldを書いてきたものだと、つくづく呆れている。多少なりとも本格的に言語に触れたいならFizzBuzzを書くべきだろう。プログラムの実行環境との関係性を探る…
最近、他人が書いたソースコードを以前よりも多く読んでいる。環境の変化*1によるものだが、とにかく、自分以外の人のコードを読み、理解し、時に問題点を指摘する、という機会が増えた。同時に、相変わらず自身でもコードを書いている。仕事で書いて、時折…
WSH (Windows Script Host) のJScriptやVBScriptを触っていた頃からの不満なのだが、MicrosoftのEUC (End-User Computing) 向けプログラミング言語の教材は軒並み「プログラミング初心者向け」である。いやまあEUCなので、幅広い層をターゲットにしようとし…
2025-06-30現在のステータス。昨年(2024-06-22)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1まあ…
並行処理を実現する機能として最初に触れたのがOSのスレッド(あとメモリ保護の無い環境のリアルタイムOSのタスク)である。そのせいか、スレッドの生成・終了のコストが気になってしまい、ワンショットの処理をスレッドで行わせる(≒頻繁にスレッドを生成し…
今の職場は――いや、今の職場も、新人教育にC言語を採用している。実際の業務としてはC++も多い上に、C#、Dart、JavaScript/TypeScript、Kotlin(とごく稀にJava)、Python、Swift(と時々Objective-C)と色んな言語が飛び交う環境なのだが、歴史的事情により…
最低でもあと10年は職業プログラマとして働き続けようと思っているのだが、働き続けるにあたり重要なファクターをあれこれ考えた結果、結局のところ根本的には「心身の健康」と「体力」と「お金」だろうという結論にたどり着いた。……これだけでは話が広がら…
前回からの続きである。eel3.hatenablog.com「非公開の関数やメソッドを個別に単体テストするか否か」という観点では、現状では「組み込みソフトウェア(特にファームウェア等のハードウェア寄りのもの)の開発なら有りでしょ」という見解に至ったのであった…
非公開の関数やメソッドにたいして独立した単体テストを実施するか否かについては、正直なところ「ケースバイケース」と答えるしかない。ただし、ある種の傾向は見られるように思う。そもそも関数やメソッドにたいする単体テストには、大まかに以下の観点が…
using namespace stdしたくなった時、そこに確固たる理由があるならば、次の2点について検討すること。 スコープを限定する。 対象とする識別子を限定する。 ある程度C++と戯れたことがある人ならば、using namespace stdについて理解しているだろう。理解し…
最近、自作ライブラリに機能を追加したのだが、実装中に妙なリンクエラーに遭遇して右往左往したので、メモを残しておく。当初、へなちょこC++使いの私には原因がつかめず、とりあえず回避策でお茶を濁していた。追加したのはstd::this_thread::sleep_for()…
2024-06-23現在のステータス。昨年(2023-06-18)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1まあ…
問い:C言語は難しいか? 答え:C言語の言語仕様自体は難しくないが、C言語でのプログラミングは難しい(私見)。C言語が簡単なのか難しいのか問われた場合、C言語の「なに」の難易度について問われているのか考えなくてはならない。 C言語そのものは難しく…
2023-06-18現在のステータス。昨年(2022-06-19)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1 よく…
コンピュータは電子計算機とも訳されるように計算に用いるのが本流である、という信念*1の元に、私はちょっとした計算にもパソコンを用いている。当然ながら*2計算にはLisp処理系のREPLを使用する。*3ちょっとした計算にてLisp処理系のREPLを用いるメリット…
単体テストという言葉の意味が人によって異なるのでややこしいのだけど、ここで私の言う単体テストは「関数やメソッドを単体で取り出して、そのインタフェース部分と内部実装に着目して実施するテスト」のことである。10年以上も職業プログラマをやっている…
CPythonの既知の不具合に遭遇した。処理系本体ではなく、標準ライブラリの問題のようだ。界隈では有名な話かもしれないが、忘れないように個人的なメモを残しておく。具体的には、標準ライブラリのsocketを使用して自前でUDPパケットを受信する、以下のよう…
2022-06-19現在のステータス。 https://eel3.hatenablog.com/entry/2021/06/20/211327 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…
時にコミュ障とプログラマがセットで語られることがあるのだが、そもそもプログラマに占めるコミュ障の割合は他の職業と比較して有意に大きいのだろうか、という疑問がある。世間一般でいう「コミュニケーション能力」が具体的にどのような内容であるのか、…
C++をあまり深入りせずにBetter Cとして使うとこうなる。 事前準備:文法面の細かな差異を押さえる 細かいところにC言語とC++の非互換な部分があるので、それを押さえておく。例えば: 標準ライブラリのヘッダファイル名 例えばassert.hではなくcassert。ま…
信頼性のあるテストアプリやテストデータを用意できないと、十中八九モジュールは爆発する――私の職業プログラマとしての経歴の大半は、モジュールの開発に費やされてきたのだが、その中で悟ったことだ。振り返ると、何らかのアプリケーションなりシステムな…
この記事はオブジェクト指向はすでに粒度が時代にあっていない - きしだのHatenaの個人的補足である……本当は書くつもりはなかったのだけど、ちょっと気になったので。あの記事の趣旨なのだが、乱暴に言うと: 「OOA + OOD + OOP」の勝利の方程式でV10達成必…
この記事はシェルスクリプトを書くのをやめる - blog.8-p.infoの個人的感想である。なお元の記事を書いた人と私は全くの赤の他人であり、何の接点もない。つまりこの記事は単なる外野のたわ言である旨をご承知いただきたく。 Re: シェルは悪いプログラミング…
2021-06-20現在のステータス。 https://eel3.hatenablog.com/entry/2020/06/30/201935 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…