We are programmers. We are always busy to figure out what interesting new technologies are out there and try to decide if we need to learn it. Then we spend time in learning it.
In this picture, one of the most annoying and time-sucker part is to understand what the new technologies are for. There are good writers who explains things easily and bad writers who explains in a way which cannot be understood easily even for simple concept.
I think people at Microsoft at the latter kind of people.
Why? First, let’s try download the latest VS2010 RC.
If you click the link above, it will show a list of files you can download.
We know that .NET framework is THE FRAMEWORK which MS pushes hard. With C#/C++ .NET or managed code, .NET framework is supposed to be used. In other words, it is essential. However, what makes me confused is that they also provide separated links for downloading .NET Framework 4 RC. They didn’t write a statement like
“If you also download only the .NET framework” “You can download only this .NET framework”. So, it is not strange for you to think, “Oh.. probably the .NET Framework 4 RC is not included in the package which I can download by clicking the link for VS 2010 RC.”
Even when you click the link for the VS2010 RC and open a page for that, it doesn’t mention if that installer contains the .NET Framework 4 or not. Moreover, links for the .NET Framework 4 and Visual Studio 2010 SDK RC are also shown there under a statement, “What Others Are Downloading
Others who downloaded Microsoft Visual Studio 2010 Ultimate RC – ISO also downloaded:”
It gives impression, “Oh.. I need to download those also.”
Why don’t they provide information
which people who would download the files will need? about what files are necessary?
This is the very typical Microsoft-crap, which can waste your time.
The second problem is more critical to people like us, programmers.
Yesterday, I read document at MSDN site which explains about WPF, i.e. Windows Presentation Foundation. I see bunch of problems in MS documents.
First, it is full of marketing statement although it is written for programmers.
In other words, instead of explaining what the technology is for and what it is, lots of cool-looking adjectives are used to describe it. If I were them, I would write, “WPF is to describe your resource file (.rc) in a new way with XML. WPF utilizes XAML which is an MS extension to XML for that purpose, and provides classes, methods to manipulate those GUI elements in your codes.”
They would not mention “Mozilla XUL”, because they don’t want to mention what the idea of WPF came from. I understand it. But at least MS should explain in easier and clearer way than explain with lots of marketing statement.
Second, the choice of terminology is seriously wrong.
For example, in System 7 ( Mac OS ), Apple used a term “Subscriber” and “Publisher”. MS adopted the idea and used term like “Sink” and “Link”. ( may be something different. )
Whatever the exact words were, point is that it was not clear which was the source of data and the target of the data with MS terminology. Apple’s terminologies are quite easy to understand. So, while you are reading a lengthy document with those terminologies, there is less chance that you lose the meaning. But when you read MS document, you would have higher possibility to think “What was this?” and flip a few pages and find some information and go back to the page you were reading.
So, does MS people get better on this? NO! DEFINITELY NO!
Let’s take a look at WPF document.
Let’s pick two terminologies : Mark-up and Code-Behind
They are very weird wording.
Why? When you hear just the terminology “Mark-Up”, then you will think, “for what?”
“Mark-up” is too general. I would name it like “GUI Description” or something else.
“Code-behind” also has the same problem. Well.. Although it is something like that they “invented” a new terminology and call it “Code-behind”, but it also sounds too general. There are bunch of code-behind. Whenever you see some nice 3D games, there are “codes behind” the scene to make it happen. When you use Excel, there are “codes behind” which does the calculation, and others.
To understand what scope the “Mark-up” and “Code-behind” is and what they mean, you should memorize “Oh, those are MS terms to describe their something”.
Actually, in this industry, there are already established terminology for them.
For code-behind, people would say “Controller” codes and “Model” codes, while for “Mark-up”, people call it “View” something.
I understand why they decided to use “mark-up”. It is because they adopted XML, i.e. eXtensible Markup Language. However, Problem with words like “mark-up” is that you need to think the 2nd idea comes out from your brain. The 1st idea is, as I said above, “Oh this is MS term for their specific something”. And your brain operates quite busily to narrow down and come out “Oh.. new way of describing a GUI design, which was *.rc file did before!”.
They have somewhat consistent problem on this issue. “Microsoft SQL Server”, is their product name. One day I asked others “What SQL server do we use for this DB?” They answered “We don’t use SQL server”. So, I asked again “Don’t we use a DBMS system, or DB?”. They said “Yes. We use a DB system”. So, I asked “What is that?”, They answered “PostgreSQL”. So, I said “That is SQL server.” Even though some of them have CS background, I think they didn’t learn SQL at school. Whenever I talk with others in US, I feel like that US students studied only in certain area. For example, if you are a CS student and have interest in computer graphics”, then you don’t know about compiler, and so on.
In Korea, we are different. Almost all area is covered in BS level. Well, there are a lot of students who enrolls classes for “humanities subjects” once they enrolled the minimum required classes for your major. Although it is true, if he/she is interested in his major, he/she tries his/her best to attend classes which cover important area of the major.
So, they thought “SQL server” was the MS’s specific DBMS product. They didn’t know that SQL server is a general term for DBMS solution. Whatever DMBS servers which use SQL, they are called SQL servers. Other types of DBMS are flat DBMS like the original File Maker solution. Nowadays, as far as I know, no company provides flat-DBMS. SQL is the core of the DB industry!
But anyway, this is MS fault. They choose confusing terminology and words.
This makes it difficult or slow for us to adopt their new technology. There can be also communication problem between Unix and Windows programmers, and so on.
If there are people who understand the both worlds, they can translate what the one actually wants to mean to others. But, you know…. programmers tend to have bad-tamper and tend not to consider others (because they usually talk with computers not humans most of the time. ) So, there is less chance that they will wait for others to translate. :)
People at MS.. please, please consider this issue very seriously.
Or, do you guys intentionally choose those words to build your own castle and make it difficult to communicate over walls?