Microsoft abandons the C language

J

Jens Gustedt

Am 27.08.2012 06:46, schrieb Ansel:
Just wailing "ISO standard, ISO standard! Hail to
the ISO standard!" lacks substance.

Standards are there to ease portability between platforms. This is
their main use, otherwise a good specification of the compiler you are
working with would be completely sufficient. You wouldn't need a
standards body at all for the specification.

A compiler vendor that cherry-picks features that are declared
mandatory by a standard undermines that portability goal, so it
undermines the usefulness of the whole standard.

This is not a question, if I/we need that and that feature. This is
the question of reducing the complexity of decisions I have to take
during a development.

What was implied by some of the posts here, was that people suspect MS
to do this willingly. All that I can see is they didn't work much to
avoid such a suspicion.

Jens
 
A

Ansel

Jens said:
Am 27.08.2012 06:46, schrieb Ansel:

Standards are there to ease portability between platforms. This is
their main use, otherwise a good specification of the compiler you are
working with would be completely sufficient. You wouldn't need a
standards body at all for the specification.

A compiler vendor that cherry-picks features that are declared
mandatory by a standard undermines that portability goal, so it
undermines the usefulness of the whole standard.

This is not a question, if I/we need that and that feature. This is
the question of reducing the complexity of decisions I have to take
during a development.

What was implied by some of the posts here, was that people suspect MS
to do this willingly. All that I can see is they didn't work much to
avoid such a suspicion.

Well if vendors just bowed to ISO, then there would be no check-n-balance.
"Absolute power corrupts absolutely". Apparently ISO did not get MS's
committal sign-off on the standard before it went to the printing press (?)
that they would implement it in its entirety? Live and learn? Did they fair
better with C 11 (or whatever the newest C standard is)? ISO in need of some
management consulting?

I think MS might (read, I wouldn't put it past them, but then again, I'm not
a trusting person, especially when money and/or power is involved so it's
not just MS, but everyone) sabotage others via what they implement, but as I
have no examples, I refrain from making such an accusation. The way you
stated your "suspicion" was: "Well, no I don't have an example where a
feature left out directly compromised <whatever>, but the fact that they did
not implement it surely means those craft devils are doing something bad!".
It's like you, and others here, are warriors for ISO. WWIII: ISO fan-boys
vs. MS.

I think it is nothing but hot air unless someone(s) examine(s) the issues
and report(s) their findings. "Hail to thee ISO Standard" has no merit.
 
Ö

Öö Tiib

Nope. I'm not going to do someone else's research for them. That is hardly a
common household fact, so if someone makes some statement like that, they
need to provide the source of the information.

MS revenues *are* common knowledge, what is here to research? One can not
sell shares in public stock if they hide such things.
IOW, don't waste the reader's time, and also don't expect anyone to "just
believe" you.

The USENET is specially made so we can entertain each other with
discussions. Entertainment is for wasting time. We do no science research
or publish some encyclopedia here. If you do not believe then play by
rules and prove them wrong or just argue endlessly without ground and
see if they give up.
 
N

Nick Keighley

ISO does not control industry. Three or so posts now by three or so
different people have presented nothing but fan-boyism. List the things that
are missing, qualify and quantify the need for them, stick it in MS's face.
By their analysis (I *assume* that they do that), they seem to have decided
they are not important. Just wailing "ISO standard, ISO standard! Hail to
the ISO standard!" lacks substance.

I avoid C99 features largely because Microsoft doesn't support them.
 
A

Ansel

Nick said:
I avoid C99 features largely because Microsoft doesn't support them.

I've have implemented some missing things (C++ 11) myself in the past. E.g.,
strongly-typed enums.
 
J

Jens Gustedt

Am 27.08.2012 09:16, schrieb Ansel:
Jens Gustedt wrote:
Well if vendors just bowed to ISO, then there would be no check-n-balance.

nobody is asking for that. other compilers have a lot of extensions, no
problem with that if they are just marked as such.
"Absolute power corrupts absolutely". Apparently ISO did not get MS's
committal sign-off on the standard before it went to the printing press (?)
that they would implement it in its entirety? Live and learn? Did they fair
better with C 11 (or whatever the newest C standard is)? ISO in need of some
management consulting?

Clearly it is a vendors choice to decide whether or not they want to
implement a standard. They just shouldn't call it C (or C++, POSIX,
whatever) if they don't implement it completely. Unfortunately there is
no trademark on the word C as a programming language. (There might be on
ISO C by the way, so anybody claiming to be ISO C should actually comply
to C11 nowadays.)

- snip -
I think it is nothing but hot air unless someone(s) examine(s) the issues
and report(s) their findings. "Hail to thee ISO Standard" has no merit.

I find it quite unfortunate that you only try to read in my post what
you like to read. This makes discussions difficult.

Jens
 
A

Ansel

David said:
The divisions they use has varied a little over the years, giving
different splits.


A 10 second google search gives this:

<http://betanews.com/2012/01/19/microsoft-q2-2012-by-the-numbers-windows-revenue-falls-6/>

You and others are missing the message for Tiib's inappropriately snipping
and for me not retyping all the nouns. When I said, "That is hardly a common
household fact", I was referring to this:

Oh, Tiib was grasping the low-hanging fruit perhaps (I think after going
back and reading my post which Tiib snipped).

Time-out. Here is the context:

"> Also, don't forget that Microsoft only has two profitable products,
Windows and Office,

Citation needed.
and both are written in C.

100% C? Citation needed.
Every other MS product
exists only to generate more demand for Windows and/or Office.

Citation needed."

The first one, well Stephen should count the number of products MS actually
has (100? more?). Then he needs to substantiate his "MS has only 2
profitable products" statement).

The second one makes it sound like the producs are written mostly, if not
completely in C, to which I said: "prove it", because I don't believe it and
I think most would also find it absurd. (See more discussion at the end of
this post).

The third one is the one I thought Tiib was replying on. I could have
expounded and said more, such as, "Do you really think that MS Project
exists just to generate MS Office revenue"?

OK, so now everyone should be on the same page.
From that, MS revenues are 30% Windows, 23% Server/tools, 30%
Business, 3.8% Online services, and 20% Entertainment / Devices.

As percentages of total income, business (Office etc.) gives 46% of
the income, Windows gives 31%, and Server/tools gives 22%. Entertainment
is actually profitable after many years of loses, for
6%, while online services are 5% loss.

I don't know what use you will make of this data, but you asked for
it, so I hope it makes you feel better.

Well, there are products and then there are business divisions. Under
business division called "Windows" are products. Under business division
"Office" are products. To make is sound like only 2 real *products* are
making a product is simply incorrect because "Windows", e.g., is not just
one product. A better example is Office for there is way different
functionalities: word processing, project management, database, etc. If I
had a company with 10 divisions but only one was making a profit, but it had
10 profitable products while the other divisions only had one each but were
not making a profit, would you go on and say that my company had 9
unprofitable products and 1 profitable product?

Stephen's assertions are vacuous (but his post was maybe just a
*thoughtless* posting) without substantiation. I think all three of his
assertions are false (the second one maybe not literally 100% false, but I'd
hypothesize (not guess, mind you) that there is a large percentage of C++
code in MS products and that C++ has replaced a lot of C code over the
years).

Is everyone clear now?
 
A

Ansel

Jens said:
Am 27.08.2012 09:16, schrieb Ansel:


nobody is asking for that.

I got/get the impression that the 3 or so of you that I am referring to are
indeed on that track. I don't know if what MS left out is the major
deficiency Jacob (he was the first to "whine" about C99 in this thread) is
making it out to be. So what did I do? I suggested that someone put together
the story (and thought maybe someone may even post a link) so it could be
known exactly what the situation is. If there are no pain points, then the
issue of C99 compliance is moot.

Now surely MS has a big presence and influence at the standards meetings,
yes? Well, if they didn't get commitment from everyone before declaring the
standard finished, there really is nothing to whine about after the fact.
The solution is to change the process, or something if it has shown to give
inadequate results. Isn't it called "insanity" to keep doing the same thing
and expecting to get a different result?

I am curious to know, that is why I asked. If you take the stance, "Well
they didn't implement the entire standard, so there is nothing more to
discuss", well, then indeed, there is nothing more to discuss for that is
fan-boy stance!
other compilers have a lot of extensions,
no problem with that if they are just marked as such.

I thought the issue was omissions, but in either case.
Clearly it is a vendors choice to decide whether or not they want to
implement a standard.

Yet they are members of <whatever they have to be a member of to influence
the ISO C standard>, yes? So, you have all these vendors in a room to agree
on a standard, you have their captive attention, and then don't close the
sale. Maybe, just maybe, sales is not your strong suit?

I'm sure I'll be enlightened now about how all this standards stuff works,
which I welcome for I am now curious about it.
They just shouldn't call it C (or C++, POSIX,
whatever) if they don't implement it completely.

Maybe the actual implementations are C and the standard should not be
calling itself C. The goal of the committees are to codify common practice?
Maybe if MS C didn't implement part of "ISO Standard C" (tm) then those
things should be removed from "The ISO Standard" (tm). (I'm being facetious,
to make the point).
Unfortunately there
is no trademark on the word C as a programming language.

Ah ha! So my "(tm)" thingies above are *very* on track. You meant by
"unfortunately", of course, "It is unfortunate that the *ISO* does not have
the trademark on C".
(There might
be on ISO C by the way, so anybody claiming to be ISO C should
actually comply to C11 nowadays.)

Now we're getting to the crux of the issue I think.
- snip -


I find it quite unfortunate that you only try to read in my post what
you like to read. This makes discussions difficult.

Do you still think I'm "reading something into" your post that isn't there?
Hmm?
 
Ö

Öö Tiib

Well, there are products and then there are business divisions. Under
business division called "Windows" are products.

You mean products like "Windows 7 Premium", "Windows 7 Professional", "Windows
7 Ultimate"? These consist of mostly same files and others are just
crippled versions of "Windows 7 Ultimate". Typical marketing trick.
Under business division "Office" are products. To make is sound like only 2
real *products* are making a product is simply incorrect because "Windows",
e.g., is not just one product.

What it is then? Sure it contains several modules but that's normal about
any software sold those days.
A better example is Office for there is way different
functionalities: word processing, project management, database, etc.

Yes, and the functionality is done by different modules of one product
"Office Professional Plus 2010". What is so unusual about typical modular
design of a product? Rest of the "products" they sell are again just
crippled versions of that product. Maybe you are distracted by fact that
these modules were one day different products like Word and Excel, but
now those are integrated together into single product.
If I had a company with 10 divisions but only one was making a profit, but
it had 10 profitable products while the other divisions only had one each
but were not making a profit, would you go on and say that my company had
9 unprofitable products and 1 profitable product?

You are stretching it and pretending that you do not understand what you talk
about. What other products? You mean older versions of same products? Or
versions of same SW compiled and bundled for different hardware platforms?
Stephen's assertions are vacuous (but his post was maybe just a
*thoughtless* posting) without substantiation. I think all three of his
assertions are false (the second one maybe not literally 100% false, but I'd
hypothesize (not guess, mind you) that there is a large percentage of C++
code in MS products and that C++ has replaced a lot of C code over the
years).

Initially (first versions) were certainly mostly C and some Assembler.
Why only C++? They still write Assembler and C and also they use C# now.
Rewriting something written in good C as C++ is lot more pointless and
also lot more expensive than you seem to think.
 
S

Stephen Sprunk

Cynics might suggest that Microsoft do this sort of thing intentionally
in order to avoid effective standards that would let people choose tools
and platforms independently, instead of always using MS products. But
I'm sure that is unfair, and the reality is that they are just
incompetent and different MS departments and employees are incapable of
talking to each other.

Their own internal memos, both leaked to the press and discovered during
various anti-trust lawsuits, show that this was (and is) a deliberate
strategic decision on their part.

Have you really never heard of "Embrace, Extend, and Extinguish"?

S
 
S

s0suk3

Suppose you're developing another language (Pascal for example, or just

ASM); making it talk with foreign functions and interfaces specified in Cis

trivial, once you've figured out whether 'long' is 32 bits or 64. Dealing

with a C++ interface (and all that COM and DCOM stuff, whatever the hell

that's all about) isn't.

Well maybe you'd want to find out what it's all about before enbarassing yourself. Language neutrality and interop is precisely one of the functions of COM, which allows mixing of languages without having to resort to the stone age of DLL-exported functions.
 
S

Stephen Sprunk

While it may lead to investigation of other platforms and some may go, it
hardly means, as you said, that everyone would jump ship. Moving to a 100%
new way of developing and delivering software vs. a new way of coding
Windows, is extremely different. Like moving from a US state to another
country vs. moving to another US state.

This is, of course, as obvious as your post was sensationalistic.

I don't find it sensational; everyone who looks into the business side
of how Microsoft works comes to the same conclusions, and they're common
knowledge in the industry by now.
While I don't know if that is their M.O.,

You can quibble over their motivations for doing so, but their track
record clearly demonstrates that _is_ what they're doing. Once or twice
I could chalk up to a mistake, but their patterns of behavior is
consistent enough to be considered deliberate. They're not idiots; if
they wanted to do something different, they would.
Microsoft is "a leader" because people *follow* them. I wonder if that
surprises "them" as much as it surprises me.

Are you really a "leader" if your "followers" are a chain gang?

S
 
S

Stephen Sprunk

Citation needed.

Look at Microsoft's own financial reports, as referenced by others.

100%? I doubt it. But that's the primary language, i.e. that of the
core product features. The flowery stuff around the edges, which
changes in every release, may well be in another language.
Citation needed.

Statements from several current or former employees of Microsoft who
work(ed) on those products.
Citation needed.

Explicit statements from both Gates and Ballmer on the topic.

Yes, I know none of the above are specific citations that would be
acceptable in an academic paper, but they are solid enough for me to be
comfortable with my position--especially since I have never seen even an
_unsupported_ claim to the contrary.

S
 
S

Stephen Sprunk

Well, there are products and then there are business divisions. Under
business division called "Windows" are products. Under business division
"Office" are products.

Actually, Microsoft sets up their divisions by market, each of which
make several products targeted at those markets--and share products, eg.
Windows is sold by the divisions targeting consumers, businesses, etc.,
but packaged differently for each.
To make is sound like only 2 real *products* are making a product is
simply incorrect because "Windows", e.g., is not just
one product.

I think the term you are looking for is "product lines", and yes, the
Windows and Office product _lines_ contain several different products.

The point was to distinguish those two products (product lines, to be
precise) from the rest of what Microsoft sells, and that was obvious
from the context.
If I had a company with 10 divisions but only one was making a
profit, but it had 10 profitable products while the other divisions
only had one each but were not making a profit, would you go on and
say that my company had 9 unprofitable products and 1 profitable
product?

Microsoft has five divisions. One division sells Office at a
profit--and a bunch of other products at a loss. Three divisions sell
Windows at a profit--and a bunch of other products at a loss.

Within these divisions, the strategy is to develop satellite products
which lose money but increase the sales of that division's profitable
Windows/Office products for a net gain. This "loss leader" business
model has been around (and complained about) for at least a century, and
probably much longer than that--and it works.

The fifth division exists solely to fight Google and loses ridiculous
amounts of money--because it sells neither Windows nor Office.

S
 
B

BartC

Well maybe you'd want to find out what it's all about before enbarassing
yourself. Language neutrality and interop is precisely one of the
functions of COM, which allows mixing of languages without having to
resort to the stone age of DLL-exported functions.

That presumably applies to C too. In that case why all the fuss in this
thread? Or maybe:

since all interfaces with the
system go through a COM interface that would be feasible to adapt but
what a pain!

I just do not have the resources nor the will to follow Microsoft any
more in that direction.

(from an expert in writing C compilers specific to Windows) using COM isn't
as simple as you seem to be implying.

But, seeing as you're the expert, perhaps you can give an example in writing
a simple task in C to run under Windows, without using 'stone-age' DLLs and
without a console. Such as Hello, World (just an alert box will do). You
might need to explain exactly how the executable that the C is compiled to,
actually talks to Windows.

(BTW my Windows 7 still seems to have some 19,000 DLL files; somebody's got
their work cut out if they're all going to be replaced by Windows 8.)
 
R

rashid

Am 25.08.2012 23:09, schrieb rashid:


such a great friend that they refused to support the successive
standards since 1999

Sorry this is garbage. MSVC supports all C/C++ standards, also extra
features (eg C++ style // comments will be accepted in C programs too)
There is no such thing like C/C++.

??? Are you a crazy? Or you only use JAVA? __Most__ modern software
development relies on C/C++.
Ah, now I see you are joking :)

No you are the joking clown, you and all the MS haters. You want the
Linux? Go and use the Linux and be happy. But please do not spread stupid
lies about MS.

Thank you.
 
J

James Kuyper

Sorry this is garbage. MSVC supports all C/C++ standards, also extra
features (eg C++ style // comments will be accepted in C programs too)

They've never even fully adopted C99; they've barely even started to
support it, 13 years after original adoption.
??? Are you a crazy? Or you only use JAVA? __Most__ modern software
development relies on C/C++.

No, it does not. A lot of it relies on a language called C, and a lot of
it relies on another language called C++. However, the existence of a
language called C/C++ is a common confusion that has nothing to do with
reality. It often co-exists with the somewhat better-justified, but
still erroneous, belief that C is a subset of C++.
No you are the joking clown, you and all the MS haters. You want the
Linux? Go and use the Linux and be happy. But please do not spread stupid
lies about MS.

MS C compilers have never supported more than a tiny sub-set of the
changes that were made in C99. You can call that "support" if you want
to, but I don't see how you could possibly call that "great support".
 
K

Keith Thompson

[Dropping comp.compilers.lcc, since this has nothing to do with the lcc
or lcc-win compiler]

rashid said:
Sorry this is garbage. MSVC supports all C/C++ standards, also extra
features (eg C++ style // comments will be accepted in C programs too)

You are mistaken. MSVS's support for C90 is reasonably good; their
support for C99 and C11 is nearly nonexistent, and deliberately so.

You probably have a newer version of MSVC than I do. Try compiling
this program, which is strictly conforming under the 12-year-old
C99 standard. (You can expect some warnings about unused variables,
if the compiler gets that far.)

#include <stdbool.h>
#include <complex.h>
#include <stdint.h>

inline void foo(uint32_t *restrict p) {
}

int main(void) {
bool b = false;
int size = 20;
uint32_t vla[size];
double complex x;
foo(vla);
return 0;
}

I don't know how well MSVC supports the various versions of the C++
standard. My guess (and it's no more than that) is that they're working
on C++11 support.

[...]
??? Are you a crazy? Or you only use JAVA? __Most__ modern software
development relies on C/C++.

Perhaps this is just a confusion about terminology.

Some people use the term "C/C++" to mean "C and C++", or "C or C++". In
that sense, of course both languages exist (even if they're not fully
supported by some compilers).

Others use the term "C/C++" as if it were a single language. The point
we're making is that C and C++ are two distinct (but closely related)
languages, and the term "C/C++" tends to obscure that fact.

If you mean that most modern software development relies on C and C++, I
won't argue. I'm not sure that's correct, but I haven't looked into the
relative popularity of C vs. C++ vs. other languages. If you mean that
"C/C++" is some single thing, it isn't.

[...]
No you are the joking clown, you and all the MS haters. You want the
Linux? Go and use the Linux and be happy. But please do not spread stupid
lies about MS.

Thank you.

Even if you're right, you really should be more polite. Being
simultaneously rude and wrong is not good for your reputation here.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top