The problem is simple - We have very few concepts and infinite way to represent them and that's what all of the software industry is doing for decades. All the concepts were originated way back and from then on it is just a new representation that popup every day whether it is some programming language or tool or database or whatever. Same concepts just new names.