« Back to home


Back when I was 17, I thought C was the greatest programming language in the world. I had started programming in BASIC, messed with assembly language, then discovered Pascal. Both BASIC and Pascal were interpreted, at least in the implementations I had, so C was my first compiled language. Being able to produce machine code without writing assembler was a revelation. Sure, C had rough edges here and there — the type declarations often needed careful thought to decode — but it did the job like nothing else.…

Read more »

Java: Call by reference, or call by value?

My attention was drawn to a trainwreck of a discussion on Reddit, which was triggered by another trainwreck of a discussion on an enterprise Java community web site. The vexed question: Is Java pass by value, or pass by reference? My short answer, carefully phrased: Java passes both object references and primitive types by value. I’ll now unpack that answer and explain it, and talk about why there’s so much confusion.…

Read more »