Skip to main content

Undefined Behavior

The programming language Rust was created in 2007 with the intention of resolving a shortcoming that the C language had been grappling with for many years, without the hiccup of runtime pauses, as seen in languages that use a garbage collector (Java, Go). 

The actual technical details of what these terms mean are not important. What stands out is a concept introduced and enforced in Rust through a compiler mechanism called the borrow checker.

Rust uses an ownership model, and the borrow checker verifies that ownership and borrowing rules are followed. If ownership becomes ambiguous or unsafe, it refuses to compile, come what may.

This forces the user to be clear about ownership and be accountable for that declaration. The C programming language, in contrast, trusts its writer.

It assumes the programmer will manage ownership as per their discretion, deferring the need for immediate declaration. This can be dangerous, as ambiguous ownership could mean nobody ends up taking responsibility, or everybody takes responsibility, which leads to fatal failures during runtime.

Don't we see such parallels in human behaviour as well? Problems remain unresolved due to a lack of ownership and accumulate like memory leaks, quietly consuming emotional bandwidth until, one day, they trigger a catastrophic failure that can permanently alter relationships and damage our decision-making.

A borrow checker approach to life increases the likelihood that all underlying issues are addressed with defined ownership and accountability, rather than deferring them for another day.

This does cause frequent conflicts and resistance in the short term, but in the long term, it makes sure one is always accountable for their actions. No acts or feelings go undefined or unresolved, leading to a safer and more stable relationship with oneself and others alike.

Comments

Popular posts from this blog

Choking the communication channel.

There are instances where everything looks in order. Structures are rightly in place. Right roles are defined. Responsibilities are distributed. Bi-directional open communication is expected to take place. And with that, collective work is expected to turn out productive. Yet, when the action begins, everything breaks apart. Productivity dwindles, cooperation is missing, and ad-hoc interactions are common-place That creates chaos. No one appears in charge even though there is someone responsible. It clearly is a sign of broken communication channels. A well-orchestrated workplace focuses on methods to communicate grounds-up and top-down. It encourages patient listening, internalizing and responding rather than reacting. All effective open communication channels are a result of making such communication possible. Often, the structures are set such that you centralize communication of every bit of your activity to someone in the hierarchy. Over time it turns into a permission-based inter...

Top up.

An effort of any kind will stop without a top-up mechanism. The cooking range doesn't work without gas. When petrol runs out, vehicles don't work. In the absence of solar panels, green energy is just a dream. Such issues apply to us humans too. Our ability to work hampers seriously if we don't have an energy replenishment plan. We think we enjoy the most when we do work involving our passions. We think tirelessly doing the same activity will keep our enthusiasm. Like writer's block, there comes a day when our ideas don't work. Monotony dries up the fun. What used to be the reason to be at work feels like the most dreaded place. When we encounter such a situation, it's time to check if our energy tank is emptying out fast enough that we need to land to refuel. Top up is a vital periodic part that recharges us. Different activities, places or people might refuel us with new energy and ideas. But first, be open to knowing you will run out of fuel. Sooner or later, ...

Checks and balances!

Defining a good purpose, setting a target goal and getting people working on them is usually not enough! There are too many aspects involved in getting the results we want. For example, there is an aspect of painting the big picture, working on motivation management, productivity tracking, building experimentation labs, and erecting resilient systems that systematize the workflows. Just putting bodies to work and defining milestones rarely achieves the right results. The other aspects that help march towards the milestones in an orderly manner, they are equally important. At the very least, they make objectives widely understandable and results more attainable. The job of a thought leader is to enable progress and enable recovery. Therefore, it is never enough to have just ideas. Those with ideas also have the responsibility to assemble the work environment in such a way as to create situations containing the energy disperses. Energy dispersal from lack of clarity, loss of motivation, ...