Introduction

Software is but a tool to fulfill a need. It does not grow on trees; energy must be spent to build and maintain it. Moreover, the need itself, or at least the understanding thereof, evolves over time. The challenge is to minimize the energy spent on ensuring the software fulfills the need over its entire lifecycle.

There are different strategies to tackle the challenge; one of them is closing the semantic gap between the source code and the requirements; indeed, in the ideal case when the code is but a transcription of the requirements, ensuring its correctness in the face of changes to the requirements is trivial. To move closer to this nirvana, one can opt for a high-level programming language like Clojure; however, even Clojure code can at times fail to express th…

Similar Posts

Loading similar posts...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help