Posts

Showing posts from September, 2025

Java vs C# - Part 1

Introduction Note: this was ported from the original post here and updated/corrected with the latest language changes. While some of my friends and colleagues seem to think that I don’t like Java and that I am some sort of Microsoft/.NET zealot, that is actually not true! I do like Java, and I worked with it for several years. There are several articles out there on the differences and similarities between C# and Java, but none actually satisfied me. In this new series of posts, I will try to explain these similarities and differences, as extensively and accurately as I can. I don’t want to start a religious war, but I won’t refrain from emitting judgments on what I think is best in each. I will try to cover as much as I can, but I won’t drill into APIs, instead will focus on each language’s intrinsic characteristics. This first post will focus on high-level constructs, what I call structure: namespaces and types. I will be covering latest published versions of Java and C# as of A...