Bruce Eckel's Blog

July 5, 2023

Trying Substack

TLDR: BruceEckel.substack.comI’ve noticed that I haven’t been writing here that much lately, and I began to suspect it is because of the necessary ceremony of creating a blog post. Which, really, isn’t that much but I’ve started to see that even the smallest amount can be an impediment.When I began trying to paint, I discovered these impediments, and they’re different for each person. In my case, the stretched canvas was “too important” and I resisted putting paint on it (both parents grew up in the depression, so I am overly careful about wasting things, which makes experimentation hard).
1 like ·   •  0 comments  •  flag
Share on Twitter
Published on July 05, 2023 17:00

September 28, 2022

Why Are There Functions?

Returning from giving my Polymorphism Unbound presentation at StrangeLoop (not yet available on YouTube, but all the examples and presentation slides are on Github), I found myself dissatisfied. Part of this was certainly my failure to cram a 2-hour presentation into 40 minutes (after cutting it down from a day-long, workshop-length size). The bigger issue was my inability to answer the essential question at the end of the presentation: why are we writing polymorphic functions?
 •  0 comments  •  flag
Share on Twitter
Published on September 28, 2022 17:00

May 10, 2022

Misunderstanding Python Class Attributes

I was attempting to assist on an open-source project when I was stopped short by this (names have been changed):class DataPoint: measurement1 = None measurement2 = None measurement3 = None DataPoint was later used like this:d = DataPoint() d.measurement1 = 100 d.measurement2 = 200 d.measurement3 = 300 Why give names and initialization values to class attributes, then when you make an object, immediately create and initialize instance variables with the same names as the class attributes?
 •  0 comments  •  flag
Share on Twitter
Published on May 10, 2022 17:00

February 3, 2021

Java Object Equivalence

This is an update to the subsection “Testing Object Equivalence” in the “Operators” chapter of On Java 8. This will appear in the book in its next update. The relational operators == and != work with all objects, but their results can be confusing:// operators/Equivalence.java public class Equivalence { static void show(String desc, Integer n1, Integer n2) { System.out.println(desc ":"); System.out.printf( "%d==%d %b %b%n", n1, n2, n1 == n2, n1.
 •  0 comments  •  flag
Share on Twitter
Published on February 03, 2021 16:00

January 1, 2021

The Problem with Gradle

Or: How to Remain Sane when Approaching Gradle (with apologies to Hans Dockter). (James Ward and I go into more detail about this article in the Happy Path Programming Podcast).I started using make in the 80’s. When I wrote Thinking in C++, I created a tool I called makebuilder which analyzed the examples extracted from the book and generated an appropriate makefile. make is a dedicated tool that only cares about dependencies and actions, so it is reasonably approachable.
 •  0 comments  •  flag
Share on Twitter
Published on January 01, 2021 16:00

November 21, 2020

Python Extensions with Rust and Go

The goal of a developer retreat is to stop what you are doing for awhile and explore something new. This usually requires a shift in mindset, and the biggest shift is to suspend the focus around productivity and urgency. It’s important to give up the idea that “we must accomplish something in an amount of time.” Only with the sigh of relief that comes from liberating yourself from goals is your brain allowed to float to the most interesting places.
 •  0 comments  •  flag
Share on Twitter
Published on November 21, 2020 16:00

July 29, 2020

We Haven't Invented Zero Yet

I am the author, with Svetlana Isakova, of Atomic Kotlin.I suspect most people currently alive were introduced to the concept of zero quite early in their development—early enough that they internalized it as a foundational principle and don’t ask questions about it. In addition, many people probably know that zero was invented after the original number systems.The ancient Greeks didn’t have a zero, and it puzzled them: “How can nothing be something?
 •  0 comments  •  flag
Share on Twitter
Published on July 29, 2020 17:00

February 8, 2020

Value-Based Pricing and TDD

I first heard about value-based pricing from an accountant who was creating a startup based on the idea. He tells a story about consulting for a family who inherited an estate. Because of the accountant’s extensive knowledge, he was able to give advice that saved the family a million or more. However, he only charged for his time, a couple of hours. To save that amount, the story goes, the family would have been happy to pay more, an amount based on the value of the work rather than the time it took.
 •  0 comments  •  flag
Share on Twitter
Published on February 08, 2020 16:00

December 23, 2019

Unspoken Assumptions Underlying OO Design Maxims

For Atomic Kotlin, I’ve been struggling with an “atom” (very small chapter) during the last couple of months. It’s on object-oriented design, and it brought up a lot of feelings I’ve had for quite awhile about some of the various maxims and design guidelines that have appeared in recent decades, since OO became mainstream.I couldn’t quite put my finger on what bothered me about these design ideas. Then @codingunicorn did it for me by writing a post called Flexible code considered harmful.
 •  0 comments  •  flag
Share on Twitter
Published on December 23, 2019 16:00

October 13, 2019

Podcast on Atomic Kotlin and Teal Organizations

A recent interview with The Six Figure Developer podcast. I talk about how much I’m enjoying the design of Kotlin while writing Atomic Kotlin and also my experiment with creating a “Teal” software consulting firm.
 •  0 comments  •  flag
Share on Twitter
Published on October 13, 2019 17:00

Bruce Eckel's Blog

Bruce Eckel
Bruce Eckel isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Bruce Eckel's blog with rss.