![]() ![]() ![]() Without individuals and companies pouring money into software that they give freely to the community, much of what we build today wouldn’t be possible without an order of magnitude more cost and effort. By far the biggest gain we have made in this over the last two decades is open source software (OSS). Looking forward to the future, it is unlikely that language design will give us the same kinds of improvements we have seen over the last few decades.īut reducing the amount of code it takes to build software involves many other avenues that don’t require making languages more expressive. C gave us similar advantages over writing in assembler. Languages such as Python, Ruby, or JavaScript can take as little as one third as much code as C in order to implement similar functionality. Much of this reduction has been accomplished by making programming languages more expressive. Over the last few decades, our industry has been very successful at reducing the amount of custom code it takes to write most software. So how did we get here? Software has become easier…in certain ways. ![]() We get enthralled by the maelstrom of complexity and the mental puzzle of engineering elegant solutions: Another layer of abstraction! DRY it up! Separate the concerns! Composition over inheritance! This too is understandable, but in the process, we often lose sight of the business problems being solved and forget that managing complexity is the second most important responsibility of software developers. It’s not intentional, but over time, we get waylaid by unforeseen complexities in building software and train ourselves to seek out edge cases, analysis gaps, all of the hidden repercussions that can result from a single bullet point of requirements. It is a goal that every engineer should support wholeheartedly, and we should always strive to create things as efficiently as possible, given the constraints of our situation. ![]() It is certainly an understandable and laudable goal – especially if you’ve spent any time around software developers. Since the dawn of time (before software, there was only darkness), there has been one constant: businesses want to build software cheaper and faster. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |