Kotlin’s extension functions are a convenient way of attaching behavior to the most natural place it belongs. Extensions are incredibly handy to extend the behavior of classes you don’t control, or to define behavior that may only be useful to a subset of users of the class.
... ➦psql
is a powerful command-line Postgres client that’s useful for both
scripting, and to work with databases interactively.
When working interactively with a database, typos in transactions can be extremely annoying.
... ➦I learned Vim1 in my first programming job, when a senior engineer who loved Vim gave my group of new hires a few Vim basics intro sessions. I floundered at first, then got to the point where I could navigate Vim fairly fast. I could comfortably use Vim, but I didn’t really get Vim: I only got good enough at using it to make it work as well as any other (normal) text editor.
... ➦PostgreSQL offers multiple ways of quoting string literals. Most programmers are familiar with the first, but not the other forms.
... ➦Many programmers new to Unix shells are confused by shell variables, and how they relate to the Unix environment.
... ➦A key aspect of writing good code is asking for your dependencies as inputs, instead of hard-wiring references to your dependencies in the code, viz. dependency injection
... ➦When writing code that needs the current time, don’t hardcode a reference to the current time.
... ➦When programming, you may have to work with dates and times in different time-zones, or look at events in calendars in the past or future. You can do all of these using GUI tools, but your Unix command-line is there for you (and easier to script).
... ➦If you’re introducing Kotlin to an existing Java codebase, you’ll probably have places in your code where new Kotlin code has to call existing Java code, or vice-versa. Kotlin’s default behavior for Java interop poses a subtle, but significant safety problem with nullability.
... ➦