From Java to .NET Core, Part 2: Types

In my previous post in the series, I discussed some fairly surface-level differences between C#/.NET and Java. These can be important for Java developers transitioning to .NET Core, to create code that looks and feels “native” to the new ecosystem. In this post, we dig beneath the surface, to understand .NET’s type system. It is my belief that, with Java in the rear view mirror, the .NET type system is more effective and enjoyable to write on. But you be the judge.

Continue reading “From Java to .NET Core, Part 2: Types”


From Java to .NET Core. Part 1

There was a time when the word “.NET” was virtually synonymous with bloat, vendor lock-in, and Windows. .NET Core is the exact opposite. It’s blazingly fast. It’s open source under a permissive license (Mostly MIT, some parts Apache-2.0). Unlike some other open-source platforms, .NET Core’s Contributor License Agreement does not grant exclusive privileges to a single corporation. .NET Core is cross-platform, allowing you to target Windows, Mac, Docker, and many flavors of Linux. My favorite resource for getting started with .NET core is Don Schenck’s free book. This post, I hope, can serve as an addendum specifically for Java developers exploring .NET’s flagship language, C#. While C# borrows much from Java, there are important differences to be aware of. Fortunately, some of them are for the better. In this series of posts, I’ll go over a few of the most prominent differences.

Continue reading “From Java to .NET Core. Part 1”


How to Get Developers to Adopt Your Product

Recently, I participated in a focus group where developers were asked to discuss how they make technology adoption decisions. Even “the big guys” seem unsure of how to get developers to notice and adopt their products. So, in this post, I’m going to try to reduce our learning and adoption process down to some concrete steps. The truth is, we don’t just pick up tools, components, libraries, or languages just to complete a particular task or project. In truth, any technology we adopt has to help us do one or more of three important jobs. The more of these jobs your product can do, the more likely developers will pick it up and stick with it.

Continue reading “How to Get Developers to Adopt Your Product”