Leverage Your Language - Use What It Gives You


Manage episode 289940855 series 1919132
By Rob Broadhead. Discovered by Player FM and our community — copyright is owned by the publisher, not Player FM, and audio is streamed directly from their servers. Hit the Subscribe button to track updates in Player FM, or paste the feed URL into other podcast apps.

An often overlooked facet of object-oriented design is how to leverage your language to speed development. Every coding language has features and strengths to make your design or implementation better. We should not design to a language initially. However, we can tailor our implementation and detailed design to take advantage of these features.

Leverage Your Language to Boost The Implementation

Languages are implementation tools. Therefore, they come into play during that phase. Nevertheless, you can leverage your language as you consider the details of the design. Some approaches will either be simple or complex based on the language. We can include the concept of interfaces or multiple-inheritance in a hierarchy. That includes more granular steps like patterns built into the language. We often see these in the form of iterators or factories.

Keep Up With Changes

While the initial design should leverage your language, enhancements and upgrades should incorporate the same. Be aware of the changes to a language or environment over time. That includes fixes, tweaks, and new versions. A problem that may have been overly complex to solve in the past could be a "freebie" solution now that it is handled in a single line of code.

Languages evolve and often do so with a focus on eliminating weaknesses. That is due to developers suggesting features based on their pain points. We often see a language that is limited in use during early versions become more general-purpose over time. The developer is the customer, so the software team or company will cater to the developers. The things that are difficult to use early on will be simplified or greater support provided.

Under The Covers

The changes to be aware of include those that are "under the covers." These types of changes are much more implementation-impacting. However, version upgrades have been known to make vast improvements in persistence, multi-threading, and thread-safety.

519 episodes