Where the development moving? (Grumbling of developer)

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.

Internet technologies improved greatly during past 10 years. To be a web developer you need to know several languages and technologies. For example I am developing web application on C#. In addition to C# I need to know HTML, CSS, JavaScript and SQL as a minimum. Also I need to know how to write ASP.NET applications, which demands deep ASP.NET knowledge. In addition I have to keep in mind differences between Internet Explorer, FireFox and Opera browsers. I fear to suppose how long it takes to learn all these technologies and languages to be a guru.

Also I have a feeling that all code we are writing with help of fashion features (such as drag and drop with AJAX) is like repairing an engine through exhaust. I am asking myself why Microsoft or someone else doesn’t develop a technology which allows writing web application from start to finish using only one base language. Let it be completely new browser, new Windows and new DevStudio, but please, please, please only one language…

3 thoughts on “Where the development moving? (Grumbling of developer)”

  1. Development is getting more abstract. You always need to know surrounding technologies to be effective in individual ones.

    The same argument could be made for Assembler – they need compiler theory, some hex code memorization, big/little endian etc… but as software abstracts away from the wires, the details change costumes along with it.

    Don’t worry about there being too many details. Just worry about which details pay lots of money.

    Like

  2. Hi Vadim: I agree with you 100%, and I’ve been getting into Ruby on Rails. It’s a world apart from C# in .NET, and it’s rough to get proficient in (for all the reasons you mentioned above) but it is very elegant, and just about everything you do is in Ruby.

    Like

  3. have u seen windows presentation foundation (wpf), supposed to be one XML form for desktop applications, web applications (subset) and mobile applications (subset).

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s