プログラミング

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.17

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したくなった時に検討すること

using namespace stdしたくなった時、そこに確固たる理由があるならば、次の2点について検討すること。 スコープを限定する。 対象とする識別子を限定する。 ある程度C++と戯れたことがある人ならば、using namespace stdについて理解しているだろう。理解し…

C++で妙なリンクエラーに遭遇した話

最近、自作ライブラリに機能を追加したのだが、実装中に妙なリンクエラーに遭遇して右往左往したので、メモを残しておく。当初、へなちょこC++使いの私には原因がつかめず、とりあえず回避策でお茶を濁していた。追加したのはstd::this_thread::sleep_for()…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.16

2024-06-23現在のステータス。昨年(2023-06-18)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1まあ…

C言語が難しいのか、それともCプログラミングが難しいのか?

問い:C言語は難しいか? 答え:C言語の言語仕様自体は難しくないが、C言語でのプログラミングは難しい(私見)。C言語が簡単なのか難しいのか問われた場合、C言語の「なに」の難易度について問われているのか考えなくてはならない。 C言語そのものは難しく…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.15

2023-06-18現在のステータス。昨年(2022-06-19)から1年経て、こうなっている。eel3.hatenablog.comなおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1 よく…

Lispマル非入門

コンピュータは電子計算機とも訳されるように計算に用いるのが本流である、という信念*1の元に、私はちょっとした計算にもパソコンを用いている。当然ながら*2計算にはLisp処理系のREPLを使用する。*3ちょっとした計算にてLisp処理系のREPLを用いるメリット…

2022年の収穫:やっぱりちゃんと単体テストしよう

単体テストという言葉の意味が人によって異なるのでややこしいのだけど、ここで私の言う単体テストは「関数やメソッドを単体で取り出して、そのインタフェース部分と内部実装に着目して実施するテスト」のことである。10年以上も職業プログラマをやっている…

WindowsではCtrl-cでPythonのスクリプトを即時中断できないことがある

CPythonの既知の不具合に遭遇した。処理系本体ではなく、標準ライブラリの問題のようだ。界隈では有名な話かもしれないが、忘れないように個人的なメモを残しておく。具体的には、標準ライブラリのsocketを使用して自前でUDPパケットを受信する、以下のよう…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.14

2022-06-19現在のステータス。 https://eel3.hatenablog.com/entry/2021/06/20/211327 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

プログラマはコミュ障じゃないよ

時にコミュ障とプログラマがセットで語られることがあるのだが、そもそもプログラマに占めるコミュ障の割合は他の職業と比較して有意に大きいのだろうか、という疑問がある。世間一般でいう「コミュニケーション能力」が具体的にどのような内容であるのか、…

Better C的なC++の使い方

C++をあまり深入りせずにBetter Cとして使うとこうなる。 事前準備:文法面の細かな差異を押さえる 細かいところにC言語とC++の非互換な部分があるので、それを押さえておく。例えば: 標準ライブラリのヘッダファイル名 例えばassert.hではなくcassert。ま…

汝テストアプリと侮るなかれ

信頼性のあるテストアプリやテストデータを用意できないと、十中八九モジュールは爆発する――私の職業プログラマとしての経歴の大半は、モジュールの開発に費やされてきたのだが、その中で悟ったことだ。振り返ると、何らかのアプリケーションなりシステムな…

Re: オブジェクト指向はすでに粒度が時代にあっていない

この記事はオブジェクト指向はすでに粒度が時代にあっていない - きしだのHatenaの個人的補足である……本当は書くつもりはなかったのだけど、ちょっと気になったので。あの記事の趣旨なのだが、乱暴に言うと: 「OOA + OOD + OOP」の勝利の方程式でV10達成必…

Re: シェルスクリプトを書くのをやめる

この記事はシェルスクリプトを書くのをやめる - blog.8-p.infoの個人的感想である。なお元の記事を書いた人と私は全くの赤の他人であり、何の接点もない。つまりこの記事は単なる外野のたわ言である旨をご承知いただきたく。 Re: シェルは悪いプログラミング…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.13

2021-06-20現在のステータス。 https://eel3.hatenablog.com/entry/2020/06/30/201935 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

コードリーディング対象としての標準ライブラリのすゝめ

年頭において、初心を忘れないように書いておく。新しいプログラミング言語の使い方を学ぶ時、個人的に、公式のチュートリアル/コーディングスタイル/リファレンスを参照するのと並行して、当該言語の標準ライブラリのソースコードを読むことが多い。全く…

シェルスクリプトを生成するシェルスクリプト

超小規模な社内サーバの管理に関わることが多いためか、管理用に「スクリプトを生成するスクリプト」を作成することがある。「スクリプトを生成する」と書くと、なにかしら大層なことをやっているように聞こえるが、何のことはない、単に可変のパラメータを…

2020年Objective-Cの旅

まだObjective-Cで消耗してるけど、なんか質問ある?いや、別にSwiftが嫌いな訳じゃない。「Xcode + Swift」とか「Android Studio + Kotlin」みたいな「開発環境込みでの『モダンな静的型付け言語』」の便利さは体験済みな訳で、私だって今からiOS/macOSアプ…

21世紀に新たにMakefileを書く意味はあるのか?

物心ついた頃は昭和で、十代まるまる20世紀だった地方民にとって、21世紀は「超音速原子力旅客機が飛び、潜水可能な豪華客船が航行し、海底の透明チューブの中を列車が走り、マイカーは自動運転でホバーで空だって飛べるさ」な時代になるはずだったのだが、…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.12

2020-06-30現在のステータス。 https://eel3.hatenablog.com/entry/2019/06/30/000000 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

「IT業界の『奥が深い症候群』」について:バッドノウハウと「奥が深い症候群」再考

IT業界には「奥が深い症候群」って言葉があってな使いにくいシステムを使いこなすことに喜びを感じて、使いこなせない人間を見ると罵倒するそういう人が幅を利かせていつまでも改善がされないそんな症状だ https://anond.hatelabo.jp/20200603093957 ソフト…

コードに愛を注ぐ

愛のないコードは好きになれない。機能仕様は満たしているものの、中身はネット上のコードのコピペで、複数のコピペ元のコーディングスタイルが絡み合った、使われない変数とステートメントがあちこちに残ったままのスクリプト。正常系での見た目の振る舞い…

コンソールアプリを自作する時のお約束

長らく――というほどではないが、そこそこの期間をコンソールアプリの自作に費やしてきたので、コツのようなものを晒してみる。 対話型を避け、他のツールとの連携を重視する 今、この時代にコンソールアプリを新たに作成する場合、ユースケースの大半は「自…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.11

2019-06-30現在のステータス。id:eel3:20180630:1530319168 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1 よく使ってい…