# How Software Development Has Become More Complex

DevFeed: [How Software Development Has Become More Complex](<https://devfeed.tech/articles/where-the-development-moving-grumbling-of-developer-30438.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/where-development-moving/>)

Published: 2006-07-13T15:41:57Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [Java](<https://devfeed.tech/topics/java.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [asm](<https://devfeed.tech/tags/asm.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [developer](<https://devfeed.tech/tags/developer.md>), [java](<https://devfeed.tech/tags/java.md>), [languages](<https://devfeed.tech/tags/languages.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

## AI overview

The author argues that software development has become progressively more complex as programmers moved from assembler and simple languages to libraries, object-oriented programming, templates, and modern web technologies. The article emphasizes the growing knowledge required to work effectively with languages such as C++, Java, and C#, as well as web technologies.

## Source excerpt

With years the software development becomes more and more complicated. I remember 8bits CPU assembler for home computers. You only need to understand very few basic principles to write a program on it. Also there weren't many syntactic constructions in it. However, assembler allowed creating any program you want. Assembler is easy to learn. I doubt that experienced developer who hadn't know asm before will not learn it in one or two days to write programs. As for me, Assembler has only one problem: to write even simple program you need to type many lines of unobvious code, which is hard to read and understand. This brings us to a higher level: Pascal and C were really powerful languages. They were simple, almost like assembler. But a problem appeared on the scene. The name of the problem was 'libraries'. First libraries were simple, but to be effective you had to know these libraries. The next step was made with appearing of Object Oriented languages such as C++. OOP is great paradigm and improves development performance. However it needs additional knowledge beside the language. To learn OOP (from my point of view) one needs 2-3 years of development experience. With appearing of OOP many libraries were born. To be effective you had to know something monstrous such MFC. Time passed and new language extensions appeared. I mean templates in C++ and libraries written with them. From one side these libraries greatly improved developers' performance by covering common programming patterns such lists, arrays etc. From other side you need to learn new library. Understanding of templates and learning standard template library will takes more than a year. As shown above to be effective with C++ you need 5+ years of experience (3 year of OOP paradigm and 2 years for language itself and common libraries). Modern languages C# or Java require a year or two less. So, to be effective programmer in one of the modern language (such C++, Java or C#) you need 3-5 years of experience.