「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました

「オブジェクト指向神話からの脱却」というあおり気味タイトルの特集をWEB+DB PRESS vol.132で書きました。 12/24発売!クリスマスプレゼントです WEB+DB PRESS Vol.132技術評論社Amazon 大まかには、「オブジェクト」でソフトウェアをぜんぶ考えるというこ…

ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい

ChatGPT、すごいですね。 Javaは素晴らしいという歌も作ってくれます。すばらしい。 Java素晴らしいという歌を作ってもらいました。https://t.co/Dx94koO2ti pic.twitter.com/E4tWK5FbeM— きしだൠ(K1S) (@kis) 2022年12月1日 プログラミング関係ではいろいろ…

プログラミング言語の入門が終わったら何の勉強をすればいいの?

JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基本的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作り…

ブログは思考の叩き台

前のブログで、「適当に言ってるだけ」「分析がちょっと雑」というコメントがついていた。 でも物事を適当じゃなく言ったり雑ではない分析をするには、最初に適当に言ってみることや、雑な分析を出してみることが大切だと思う。 まず、人に読ませる前提で書…

TwitterをSpaceXやTeslaと同じようにはエンジニアリングできないのでは

Twitterを買収したイーロン・マスクが週80時間勤務に備えろといって、それができないなら退職という話をした結果、エンジニアを含め社員の多くが辞めたという話がでてます。 https://jp.reuters.com/article/twitter-departures-idJPKBN2S806D イーロン・マ…

美術館がブリロボックスを購入したのは値段以上の効果があったのでは

2025年にオープンする鳥取県立美術館でウォーホルのブリロボックスを5箱3億円で買ったことが話題になってます。 ブリロボックスは、スチールウールの配送用段ボールを模した木製の箱です。 位置づけとしては「部屋干しトップ」の配送用の箱を木で作ったもの…

ゆるっとIT vol.12「3年ぶりに帰ってきたIT怪談」 カンペ

昨日2022/10/27に行われた『ゆるっとIT vol.12「3年ぶりに帰ってきたIT怪談」』のカンペです。 これを見ながら話してました。 前振り 今日はほんとに怖い話をするので、資料なしでやりますね。 昔話 ちょっと昔話をしましょう ぼくの最初の仕事はPHPでした。…

Javaの-XmsはMemory Startingの略?

Javaのメモリ確保指定のオプションで、最大メモリは-Xmx、初期メモリは-Xmsで指定します。 -XmxのほうはMemory maXimumかなーと感じるのだけど、-Xmsのほうはminimumでもないしなんだろーと思いながら「まぁ気にしてもしかたない」と25年くらい放置してたわ…

enumの使い方のおさらいと高機能enumとしてのSealedクラス

Javaでは複数の定数をまとめて扱う型としてenum(列挙型)が用意されています。 これはこれで便利なのですが物足りないところもあって、それがSealedクラスなどを使うことで解決できるようになるので、解説します。 enum型 enumは状態やデータ区分を表すのによ…

インスタンスとオブジェクトの違い

インスタンスとオブジェクトは混同しがちで区別がようわからんになりがちです。 とりあえず某所で説明したものを再構成します。 クラス・インスタンス・オブジェクト クラスをインスタンス化(実体化)したものがオブジェクト(物)です。 実際に在るものはクラ…

ノンアル ヒューガルデン来た!

ベルギーで飲んだときにこれはうまいと思って日本でも飲みたいと思ってたノンアル ヒューガルデン、2年前に日本で買える話が流れて残念に思っていたのですが、ようやく買えるようになりました。 ヒューガルデンの味がする!コリアンダーの華やかさとオレンジ…

オブジェクト指向は継承で多態するプログラミング

オブジェクト指向って継承による多態があるからこそなんだけど、継承が非推奨になって以降に雰囲気でオブジェクト指向を知った人には、継承はオプションでカプセル化だけでオブジェクト指向って言ってしまいがちに思います。 実際はカプセル化はオブジェクト…

リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは

おそらくリファクタリングの工数を確保する説得力のある材料がほしくて、リファクタリングの効果をどう示すか悩んでる人がいたのですが、リファクタリングって非開発者に示せるような数字だすのは難しいよねという結論になったので、そのまとめ。 工数として…

なぜオブジェクト指向方法論に代わる方法論が出ないのか

1990年代にオブジェクト指向分析・設計の方法論がめちゃ流行ったことがあります。 ただ、そのブームが終わって、後続となるような方法論が流行ることはありませんでした。 で、なぜなのか考えていたのですけど、オブジェクト指向方法論のウリは分析段階で出…

Javaのプログラムはコンパイルなしで動かせます

Java 11から単一ソースファイルのJavaプログラムをコンパイルなしで直接javaコマンドで実行できるようになっているので、紹介動画を作りました。 例えば次のようなJavaプログラムをHello.javaという名前で保存したとします。 public class Main { public sta…

Night Bird

Shockwaveだったかダウンロードするexe形式だったか忘れたけど、Night Birdというデモがあって気に入って、Javaを始めたときに目コピでアプレットとして実装したことがあった。1996年くらいだと思う。 ちなみに目コピというのは、動きを見て実装することなの…

さよなら「あなたとJAVA」

みんなから愛された「あなたとJAVA」の役割が終わったようです。 「Java」で検索するとjava.comのサイトがひっかかるのですが、このサイトは古いまま放置されていて、Javaの学習を始める人にとっての罠になっていました。 https://www.java.com/ja/ 「あなた…

do whileやwhileなど繰り返しの補足 - 「プロになるJava」ボツ原稿

「プロになるJava」ボツ原稿、今回は9章「繰り返し」の補足です。 書籍ではwhileやdo-while構文について簡潔な説明を載せていますが、多めの説明をしています。 また、繰り返し構文にまつわる話題とサンプルを2つ載せています。 プロになるJava―仕事で必要…

アルゴリズムと計算量 - 「プロになるJava」ボツ原稿

「プロになるJava」ボツ原稿、今回は「13章 処理の難しさの段階」に入れようと思っていた、「アルゴリズムと計算量」の話です。 こういう話題でよくでる「こんな難しいプログラム組まないのでは?」という疑問についても最後にまとめています。 プロになるJa…

カッコが対応しているかどうか判定する - 「プロになるJava」ボツ原稿

「プロになるJava」ボツ原稿、今回は「13章 処理の難しさの段階」の「隠れた状態を扱う処理」のもうひとつの例として、カッコの対応を判定する処理です。13.1.2のあとに入る想定です。 書籍にのせたランレングス圧縮よりもカッコの対応の判定のほうが「隠れ…

移動平均とスライディングウィンドウ - 「プロになるJava」ボツ原稿

「プロになるJava」ボツ原稿、今回は「13章 処理の難しさの段階」の「他のデータを参照する」のもうひとつの例として、移動平均やスライディングウィンドウの話題です。 13.1.1のあとに入る想定です。 プロになるJava―仕事で必要なプログラミングの知識がゼ…

Java Date Time APIでの和暦の扱い、ロケール、タイムゾーン - 「プロになるJava」 ボツ原稿

今回のボツ原稿は和暦を扱うJapaneseDateクラスと各地の時差を反映した時刻を扱うZonedDateTimeについてです。 P.89に5.1.8として続く想定です。 プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書作者:きしだ なおき,山本 裕…

Jakarta EE StarterでJava EE/Jakarta EEを始める

最近のフレームワークにはナントカStarterが用意されていて、簡単に最初のプロジェクトを作れるようになっています。 Java EE/Jakarta EEの場合、コンテナを起動してデプロイするという2段階だったりして、最初に動かすところまでが大変でした。 そういう問…

初めて買ったWindowsパソコンをバラした

初めて買ったWindowsパソコンが使わないのになぜかそのまま置いてあったので、そろそろ捨てようとバラすことにしました。 このパソコン捨てるためにバラすかー。K6-2!クロックは266MHzかな。底がくろっぽいのは例の火事を経験してるから pic.twitter.com/qq…

Java力をあげるための指針

また「プロになるJava」の宣伝か、と思われるので、今回は「プロになるJava」の宣伝は自粛します。 Java力をあげるためには最適な「プロになるJava」がオススメなんですが、そうするとこのエントリもこのあたりで終わってしまうので、今回は自重します。 と…

プログラミングは論理的思考の訓練になるか - 「プロになるJava」ボツ原稿

プログラミングと論理的思考の関係、「プログラマに大切なのは日本語だ」の実際に意味するところの話です。 「プロになるJava」でページ数などの関係でボツにした原稿で、結構ちゃんと書いたのですが、この先に日の目を見る機会もなさそうなので公開します。…

「メソッドのシグネチャ」はJava言語とJava仮想マシンで違う

「プロになるJava」でシグネチャのことを次のように説明しています。 メソッドの名前と受け取る引数、戻り値の種類をあわせたものを シグネチャ といいます。 戻り値は含まないのでは?という話になり、結論から言えばJava言語では名前と引数でメソッドを区…

あの火事から2年 - 漂流開発者の日記(WEB+DB PRESS VOL.22, 2004-8-17)

2004年のWEB+DB PRESS VOL.22に掲載された記事です。絵もかいてます。 火事はその2年前、2002年ですね。 暑いですね 夏です。暑いですね。 夜、暑くて眠れないこともあります。 それはそうと、暑くて眠れないといえば、2年前の夏の火事を思い出します。 ど…

Javaでその場でだせる例外まとめ

「プロになるJava」では、かなり最初のほうでゼロによる除算を行って例外の説明をしています。 jshell> 3/0 | 例外java.lang.ArithmeticException: / by zero | at (#1:1) JShellでゼロ除算を行ったときの例外は、その場で発生しているためスタックトレース…

「プロになるJava」 第4部「高度なプログラミング」の練習問題解答

「プロになるJava」の第4部「高度なプログラミング」の練習問題の解答です。 プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書作者:きしだ なおき,山本 裕介,杉山 貴章技術評論社Amazon 第12章 ファイルとネットワーク ファ…