Package Visibility is Broken

In Java, classes and class members have by default package visibility. To restrict or increase the visibility of classes and class members, the access modifiers private, protected, and public must be used. Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y … Continue reading Package Visibility is Broken


Masterminds of Programming

Masterminds of Programming features exclusive interviews with the creators of popular programming languages. Over 400+ pages, the book collects the views of these inventors over varying topics such as language design, backward compatibility, software complexity, developer productivity, or innovation. Interestingly, there isn't so much about language design in the book. The creation of a language … Continue reading Masterminds of Programming

Understanding the Visibility of Side-Effects

This entry is all about the Java Memory Model and the happens-before partial order it formalizes. The official specification of the JMM is authoritative but unreadable. Fortunately, there are useful resources around that aim at making it more accessible: the wikipedia entry the JSR 133 FAQ Java Concurrency in Pratice Happens-Before The JMM defines a … Continue reading Understanding the Visibility of Side-Effects