:-/ Hardware performance becomes increasingly high. Software performance seems to decrease, because developers (who are not necesarily programmers) believe that the hardware is so powerful that it will carry out any task.
:| On some of the "geeks forums" every child can advise you to update your computer, buy some quad-code processor, install the latest updates for every single program in your computer, get an antivirus like NOD32 (because it consumes little resources), update the virus database every second (if that would be possible, they'd want do it too).
:@ Every stupid child now creates trojan viruses with Visual Basic, even if the virus needs the 100-Mb Framework, known as .NET, and furthermore, they don't want to give up that framework and learn a real programming language (not Visual Basic).
:) You know .NET Reflector, that program that allows you to see some of the source codes behind .NET programs or the framework itself... I have never seen a bloatware like .NET. Who will learn all that stuff? Basically, it's a god framework, but it has tons of other classes, for everything on this planet (except washing machines, toilets, and a few other things). Eh, just joking... For 80% of the classes I couldn't even find a meaning! Inside classes, private data is so Object-Oriented...
I was against .NET. Some told me I was right, some explained me how I was wrong. Some philosophy is welcome here:
"Any intelligent fool can make things bigger, more complex, and more violent.
It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
- Albert Einstein
A designer knows he has achieved perfection
not when there is nothing left to add,
but when there is nothing left to take away.
- Antoine de Saint Exupery
A guy gave me quite a good explanation. It's a problem of productivity here. People only want the programs to work. Producers only want to produce.
Microsoft seems to help producers, but I think this is a just trick to get more and more clients (especially home users) to buy Microsoft software. Anyway, I am tired on this subject.
Engineers worked hard to create the hardware and it is admirable what they achieved. High-speed CPUs perform a mind-twisting number of calculations per second. Why isn't the software high-speed too? I don't want a framework written entirely in ASM, but simpler is always better.
A year or two ago, I tried to set up a framework of my own. of course I had no chance, but I learned a few things. This is, in fact, the reason for everything I do. Now I know C++ from A to Z. My latest achievement is a template for complex numbers. Who cares? There is no one to help me, I am doing slow and small steps.
You know "Boost"? It is a C++ framework designed to simplify the code, by introducing some classes and templates. It is a "Platform abstraction layer", but is so complicated, that I can't follow it. Nested templates, various classes, and lots of them are designed for internal use.
Now let's move to another subject: ASM.
I recently started learning assembly and I like it. It's not difficult to learn and I can understand well how computers work. I hate that I had to search and search and search to find complete information about the differences between Intel CPUs. But even when I thought I found the right information, someone told me I was still wrong to some aspects. There is either a serious lack of documentation about this subject, either a serious problem with me.
Another subject: different platforms
As far as I know, Intel architecture is the most used in the IT industry. I don't know why other corporations even bother to create their own architecture (Motorola for example). It will result in a headache for programmers.
Concerning the operating systems, a difference between Windows and UNIX is the executable format. Windows uses PE and UNIX uses ELF. They both say they have their advantages. For me it's only a source of confusion.
Some time ago, I wanted to compile come .cpp into an .obj, then link that obj with a windows.lib, linux.lib or mac.lib in order to obtain the executable for each platform. I thought it would be a great idea, but it is SO impossible, and people laughed at me. I had to understand myself why thing are like this.
Right now I don't know what to do next. Because I wanted to make independent and efficient programs, I went through every dark corner, avoiding Java for some reason...
Should I switch to .NET, switch to ASM, switch to Java, web design, or should I try to create an open-source project where I can write native, efficient, independent software, and whatever I dream of, or should I just stop programming because I am a mess?
Undecided, stuck, lost, whatever...