Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Why is VC++ 6 Enterprise lying to me?

0 views
Skip to first unread message

Ted Byers

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to
Hi

All of this code compiles without so much as a warning using Borland's C++
Builder 5 Pro, and it works almost as expected. I ran it through VC++ 6
Enterprise, though, because of incorrect handling of std::strings, only to
find this nonsense.

Clearly, VC++ has trouble distinguishing between initialization of a static
const data member and pure function syntax, even though s_size claerly is
not a function, yet the code is standard compliant. This error propagates
to line 22.

The errors it identifies for parsingfunctions.cpp are equally nonsensical.
It is claiming, for example, that getline and find are not members of
namespace std, which, according to Stroustrup ("The C++ Programming
Language", Special Edition, 2000), and Josuttis ("The C++ Standard Library",
1999), is wrong.

So what gives? Why does VC++ 6 Enterprise gag on standard compliant code? I
bought both VC++ 6 and BCB5 early this year, and since the standard is a
couple years old, I would have thought both would be reasonably standard
compliant.

Ted

R.E. Byers
rtb...@bconnex.net

PS: When I first attempted this, I had included the wrong file in the
project, and I have found no way to remove a file from a project. Is there
a quick and easy way to do this, or do I have to reconstruct the whole
project if I make such an error?

// Contents of the error message window when I try to build the test
project.
--------------------Configuration: FileIOTest - Win32
Debug--------------------
Compiling...
Test2.cpp
e:\test projects\vciotest\replacestreambuf.h(20) : error C2258: illegal pure
syntax, must be '= 0'
e:\test projects\vciotest\replacestreambuf.h(20) : error C2252: 's_size' :
pure specifier can only be specified for functions
e:\test projects\vciotest\replacestreambuf.h(22) : error C2065: 's_size' :
undeclared identifier
e:\test projects\vciotest\replacestreambuf.h(22) : error C2057: expected
constant expression
e:\test projects\vciotest\replacestreambuf.h(22) : warning C4200:
nonstandard extension used : zero-sized array in struct/union
ParsingFunctions.cpp
e:\test projects\vciotest\parsingfunctions.cpp(15) : error C2039: 'getline'
: is not a member of 'std'
e:\test projects\vciotest\parsingfunctions.cpp(15) : error C2065: 'getline'
: undeclared identifier
e:\test projects\vciotest\parsingfunctions.cpp(36) : error C2039: 'find' :
is not a member of 'std'
e:\test projects\vciotest\parsingfunctions.cpp(36) : error C2065: 'find' :
undeclared identifier
e:\test projects\vciotest\parsingfunctions.cpp(36) : error C2440: '=' :
cannot convert from 'int' to 'const char *'
Conversion from integral type to pointer type requires
reinterpret_cast, C-style cast or function-style cast
e:\test projects\vciotest\parsingfunctions.cpp(66) : error C2040: 'it' :
'const char *' differs in levels of indirection from 'class
std::_Tree<char,char,struct std::set<char,struct std::less<char>,class
std::allocator<char> >::_Kfn,struct std::less
<char>,class std::allocator<char> >::const_iterator'
e:\test projects\vciotest\parsingfunctions.cpp(67) : error C2679: binary
'!=' : no operator defined which takes a right-hand operand of type 'const
char *' (or there is no acceptable conversion)
e:\test projects\vciotest\parsingfunctions.cpp(70) : error C2784: 'class
std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> __cdecl std::operator +(_D,const
class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &)' : could not deduce
template argument for '' from
'class std::_Tree<char,char,struct std::set<char,struct
std::less<char>,class std::allocator<char> >::_Kfn,struct
std::less<char>,class std::allocator<char> >::const_iterator'
e:\test projects\vciotest\parsingfunctions.cpp(70) : error C2676: binary '+'
: 'class std::_Tree<char,char,struct std::set<char,struct
std::less<char>,class std::allocator<char> >::_Kfn,struct
std::less<char>,class std::allocator<char> >::const_iter
ator' does not define this operator or a conversion to a type acceptable to
the predefined operator
Error executing cl.exe.

FileIOTest.exe - 13 error(s), 1 warning(s)


// ------- contents of
replacestreambuf.h -----------------------------------------------

#ifndef REPLACE_STREAMBUF_H
#define REPLACE_STREAMBUF_H

#include <streambuf>
#include <algorithm>

class replace_sbuf: public std::streambuf {
public:
replace_sbuf(std::streambuf* sbuf): m_sbuf(sbuf) {}
private:
int_type underflow() {
if (gptr() == egptr()) {
char* end = m_buf + m_sbuf->sgetn(m_buf, s_size);
std::replace(m_buf, end, '\r', '\n');
setg(m_buf, m_buf, end);
}
return gptr() == egptr()? traits_type::eof():
traits_type::to_int_type(*gptr());
};
static std::streamsize const s_size = 4096;
std::streambuf* m_sbuf;
char m_buf[s_size];
};

#endif

// ------- contents of
parsingfunctions.cpp ---------------------------------------------
#include <iostream>
#include <list>
#include <set>

void consumeEOL(std::istream& is) {
std::istream::int_type c = is.peek();
if ( (c != std::istream::traits_type::eof()) &&
(std::istream::traits_type::to_char_type(c) == '\n') ) {
is.ignore();
};
};

std::istream& My_Get_Line(std::istream& is, std::string& s) {
s = "";
std::getline(is,s);
consumeEOL(is);
return is;
};

void istream2stringList(std::istream& is, std::list<std::string>& theList) {
std::string s;
while ( My_Get_Line(is,s) ) theList.push_back(s);
};

void Tokenize1(const std::string& s, std::list<std::string>& theList) {
theList.clear();
for (std::string::size_type begin = 0, pos;
(pos = s.find(begin, '\t')) != std::string::npos;
begin = pos + 1)
theList.push_back(s.substr(begin, pos - begin));
};

void Tokenize2(const std::string& s, std::list<std::string>& theList) {
theList.clear();
for (std::string::const_iterator beg = s.begin(), end = s.end(), pos;
(pos = std::find(beg, end, '\t')) != end; beg = pos + 1)
theList.push_back(std::string(beg, end));
};

void Tokenize1(const std::string& s, const std::set<char>& delim,
std::list<std::string>& theList) {
theList.clear();
std::set<char>::const_iterator dfIT;
for (std::string::const_iterator beg = s.begin(), it = s.begin(),
end = s.end(); it != end; ++it)
if ( (dfIT = delim.find(*it)) != delim.end()) {
theList.push_back(std::string(beg, it));
beg = it;
}
};

void Tokenize2(const std::string& s, const std::string& delim,
std::list<std::string>& theList) {
theList.clear();
for (std::string::size_type beg = 0, end;
( end = s.find_first_of(delim, beg) ) != std::string::npos;
beg = end + 1)
theList.push_back(s.substr(beg, end - beg));
};

void Tokenize3(const std::string& s, const std::set<char>& delim,
std::list<std::string>& theList) {
int dels[256];
std::fill(dels, dels + 256, 0);
for (std::set<char>::const_iterator it = delim.begin();
it != delim.end(); ++it)
dels[static_cast<unsigned char>(*it)] = 1;
theList.clear();
for (std::string::const_iterator beg = s.begin(), it = s.begin(),
end = s.end(); it != end; ++it)
if ( dels[static_cast<unsigned char>(*it)]) {
theList.push_back(std::string(beg, it));
beg = it + 1;
};
};

// -------- contents of test.cpp -------------------------

file://---------------------------------------------------------------------
------

#include <iostream>
#include <fstream>
#include <string>
#include <list>

#pragma hdrstop

#include "ParsingFunctions.h"
#include "ReplaceStreamBuf.h"

int main(int argc, char* argv[])
{
file://std::string s = "DATA\\test.dat";
std::string s = argv[1];
std::list<std::string> theList;
{
std::ifstream in2(s.c_str(),std::ios::binary);
replace_sbuf sbuf2(in2.rdbuf());
std::istream filtered_in2(&sbuf2);
istream2stringList(filtered_in2, theList);
}

std::ifstream in(s.c_str(),std::ios::binary);
replace_sbuf sbuf(in.rdbuf());
std::istream filtered_in(&sbuf);
std::list<std::string>::iterator IT = theList.begin();
std::string tmp;
/* for ( int i = 0 ; i < 20 ; i++ ) {
if (!getline(filtered_in,tmp)) return 0;
std::cout << tmp << std::endl;
if ( IT != theList.end() ) {
std::cout << *IT << std::endl;
++IT;
};
} */
while ( IT != theList.end() ) {
std::cout << *IT << std::endl;
++IT;
};
file://std::cout << theList.size() << std::endl; indicates that for this
file there are 6887 lines
return 0;
}
file://---------------------------------------------------------------------
------

// --------- contents of
ParsingFunctions.h ---------------------------------

#include <iosfwd>
#include <list>
#include <set>

void consumeEOL(std::istream&);
std::istream& My_Get_Line(std::istream&, std::string&);

void istream2stringList(std::istream&, std::list<std::string>&);

void Tokenize1(const std::string&, std::list<std::string>&);
void Tokenize2(const std::string&, std::list<std::string>&);

void Tokenize1(const std::string&, const std::set<char>&,
std::list<std::string>&);
void Tokenize2(const std::string&, const std::set<char>&,
std::list<std::string>&);
void Tokenize3(const std::string&, const std::set<char>&,
std::list<std::string>&);

Jon Anglin

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to

> So what gives? Why does VC++ 6 Enterprise gag on standard compliant code?
I
> bought both VC++ 6 and BCB5 early this year, and since the standard is a
> couple years old, I would have thought both would be reasonably standard
> compliant.

You would think that in the last two years MS could find the time to bring
the C++ compiler up to the standard. But alas, the truth is they have not.
Read the article at
http://www.msdn.microsoft.com/visualc/headlines/joninterview.asp

In this article, Microsoft's Jon Caves explains that users rank backwards
compatibility higher than standards conformance. Personally I think it is a
bunch of BS. Microsoft just wants to maintain their own backwards
compatibility. After all Caves claims this is the VC users opinion, how
many of you developers out there were even asked for your opinions? I
certainly wasn't.

By the way, the VS7 compiler in the .NET SDK download is not much better.
I think it is horrible that YOU have to enable parts of the STANDARD with
compiler switches!

Tom

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to
In article <Cwwm5.22476$N47.2...@quark.idirect.com>,

"Ted Byers" <rtb...@bconnex.net> wrote:
> Hi
>
> All of this code compiles without so much as a warning using
Borland's C++
> Builder 5 Pro, and it works almost as expected. I ran it through
VC++ 6
> Enterprise, though, because of incorrect handling of std::strings,
only to
> find this nonsense.
>
> Clearly, VC++ has trouble distinguishing between initialization of a
static
> const data member and pure function syntax, even though s_size
claerly is
> not a function, yet the code is standard compliant. This error
propagates
> to line 22.

The problem is that VC does not support initialisation of const static
integral data in the class header. You will have to change s_size to:
enum {s_size = 4096};
in order to get it to compile.

>
> The errors it identifies for parsingfunctions.cpp are equally
nonsensical.
> It is claiming, for example, that getline and find are not members of
> namespace std, which, according to Stroustrup ("The C++ Programming
> Language", Special Edition, 2000), and Josuttis ("The C++ Standard
Library",
> 1999), is wrong.

This one's your fault I think. You didn't include <string> which is
where getline is declared. The Dinkumware lib has <xstring> which is
included by the iostream headers and has basic_string itself, and
<string> which includes all the auxilliary string functions, like
getline and operator+.

>
> So what gives? Why does VC++ 6 Enterprise gag on standard compliant
code? I
> bought both VC++ 6 and BCB5 early this year, and since the standard
is a
> couple years old, I would have thought both would be reasonably
standard
> compliant.

You're having a laugh - MSVC6 is getting long in the tooth now, and
didn't ever follow the standard in any case. BCB is somewhat better
from the compiler point of view, but the library is just as bad.

Check out Metroworks CodeWarrior, Comeau C++ and Kai C++ for
compilers/libs that do it better. Also gcc with the Dinkumware stdlib
should be good. Finally, Intel C++ which plugs into the MSVC IDE is
better than VC++ but probably not as good as BCB. Intel has just bought
Kai, so perhaps the next version of Intel C++ will be better.

Finally, check out this compiler compliance chart, and look out for the
paper that Herb Sutter is writing on the current state of play
regarding compiler compliance.

http://animal.ihug.co.nz/c++/compilers.html

Tom

[SNIP]


Sent via Deja.com http://www.deja.com/
Before you buy.

John Keenan

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to

Ted Byers wrote in message ...

>PS: When I first attempted this, I had included the wrong file in the
>project, and I have found no way to remove a file from a project. Is there
>a quick and easy way to do this, or do I have to reconstruct the whole
>project if I make such an error?

I recall searching every menu item, every context menu item, and the
documentation trying to figure out how to remove a file from a project... I
finally found out via word-of-mouth. To remove a file from a project: 1)
Select the file in the "FileView" tab, 2) then hit the delete key. Note,
deleting a file from a project does not delete the file source nor any of
the object code generated from the file... you need to do that manually if
that is your intention... then the next time you build your project you may
get an error... but subsequent builds will not show the error.

John Keenan

Erik Funkenbusch

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to

"Jon Anglin" <jan...@fortres.com> wrote in message
news:OkyT2l4...@cppssbbsa02.microsoft.com...

> In this article, Microsoft's Jon Caves explains that users rank backwards
> compatibility higher than standards conformance. Personally I think it is
a
> bunch of BS. Microsoft just wants to maintain their own backwards
> compatibility. After all Caves claims this is the VC users opinion, how
> many of you developers out there were even asked for your opinions? I
> certainly wasn't.

MS get's feedback from their enterprise customers. Those customers that
they sell the largest number of copies to. Unfortunately (and i've
discussed this with VC development members), there isn't a reliable way to
get feedback to MS about the next version of VC from the little guy.
Hopefully that will change.

> By the way, the VS7 compiler in the .NET SDK download is not much better.
> I think it is horrible that YOU have to enable parts of the STANDARD with
> compiler switches!

Again, backwards compatibility seems to be taking priority here. Most
developers switching to VC7 will probably have most of their code using the
old language syntax at first. As they slowly migrate, they can can switch
on the standard compliance for those modules that use it. This prevents
customers from having to go through all their code and turn off standard
conformance for legacy code.

I think it's actually a good idea for VC7 as a transitionary measure, but I
think that VC8 should have standard conformance as standard.

You should also know that VC7 is significantly better at standard
conformance. I've been assured that Koenig lookup will be in there, though
partial template specialization will not. I've been told that making the
compiler 100% standards compliant would break MS's current object model,
which would make all existing compiled C++ code incompatible (think 3rd
party libraries and .lib files you may have lying around for the last 5
years and can't find the source).

Reginald Blue

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to

If there's one thing that bugs me most about VC 6 and it's non compliance,
it has to be the fact that wchar_t is not an intrinsic type. (IIRC, it's a
#define for unsigned short, so in cases where both is valid the compiler
can't tell the difference...)

I _think_ it should be easy to fix that w/o affecting backwards
compatibility. (But, hey, what do I know...I'm not a compiler writer.)

You wouldn't happen to know if they fixed that, would you?

--
Reginald Blue | Opinions expressed here do not
Natural Language Understanding | necessarily represent those of
Unisys Corporation | my employer.
--------------------------------+-------------------------------
For speech technology solutions,| r...@NOSPAM.trsvr.tr.unisys.com
NL technology,speech application| My email address is wrong, you
development training, see: | need to remove the obvious.
http://www.speechdepot.com/ +-------------------------------


Erik Funkenbusch <er...@visi.com> wrote in message
news:erAJsX6...@cppssbbsa02.microsoft.com...

Dave Sieber

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to
"Erik Funkenbusch" <er...@visi.com> wrote in message
news:erAJsX6...@cppssbbsa02.microsoft.com...

> MS get's feedback from their enterprise customers. Those customers that


> they sell the largest number of copies to. Unfortunately (and i've
> discussed this with VC development members), there isn't a reliable way to
> get feedback to MS about the next version of VC from the little guy.
> Hopefully that will change.

Huh? They have an online registration system, and they could easily ask all
kinds of questions, and since you are registering they "know who you are".
They could even have a place where you could offer your opinion on issues
such as standards, outside of the structured survey, for things where your
opinion doesn't fit into the predefined answers they want to hear.

What's unreliable? (I realize you're passing on the word of the VC
developers, just curious if you have more info on why they claim this is
difficult).

--
dave


Dave Sieber

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to
"John Keenan" <jske...@primustech.com> wrote in message
news:u3i7aI6BAHA.254@cppssbbsa05...

> I recall searching every menu item, every context menu item, and the
> documentation trying to figure out how to remove a file from a project...
I
> finally found out via word-of-mouth. To remove a file from a project: 1)
> Select the file in the "FileView" tab, 2) then hit the delete key. Note,
> deleting a file from a project does not delete the file source nor any of
> the object code generated from the file... you need to do that manually if
> that is your intention... then the next time you build your project you
may
> get an error... but subsequent builds will not show the error.

I usually customize the toolbar and put the "Delete" button up there. Then I
can delete a file from a project by highlighting it and clicking the button.
Same as pressing Delete.

--
dave


Erik Funkenbusch

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to
"Dave Sieber" <dsi...@mediaone.net> wrote in message news:fWAm5.1860

> Huh? They have an online registration system, and they could easily ask
all
> kinds of questions, and since you are registering they "know who you are".
> They could even have a place where you could offer your opinion on issues
> such as standards, outside of the structured survey, for things where your
> opinion doesn't fit into the predefined answers they want to hear.

The registration system is for the MSDN, which I don't think is even in the
same division as the VC++ development teams. From my understanding, it's
often hard enough to get legitimate feedback from technical support, much
less from MSDN.

> What's unreliable? (I realize you're passing on the word of the VC
> developers, just curious if you have more info on why they claim this is
> difficult).

I said "there isn't a reliable way to get feedback". I didn't say it's
impossible, just that there is no reliable mechanism in place right now.
There is a "wish list" mailing address, but I think it's really a black
hole. Often times these mailing addresses go to the wrong places (for
instance, the .NET feedback mailing address was going to the .NET
documenation group, and all non-documentation oriented feedback was being
tossed).

I laugh at those people that think MS is some massively organized company
capable of pulling of major conspiracy after major conspiracy. Sorry folks,
it's just that MS's competition is even more disorganized.

Andy C

unread,
Aug 16, 2000, 3:00:00 AM8/16/00
to

In <erAJsX6...@cppssbbsa02.microsoft.com>, "Erik Funkenbusch"
<er...@visi.com> wrote:

>"Jon Anglin" <jan...@fortres.com> wrote in message
>news:OkyT2l4...@cppssbbsa02.microsoft.com...
>> In this article, Microsoft's Jon Caves explains that users rank backwards
>> compatibility higher than standards conformance. Personally I think it is
>a
>> bunch of BS. Microsoft just wants to maintain their own backwards
>> compatibility. After all Caves claims this is the VC users opinion, how
>> many of you developers out there were even asked for your opinions? I
>> certainly wasn't.
>

>MS get's feedback from their enterprise customers. Those customers that
>they sell the largest number of copies to. Unfortunately (and i've
>discussed this with VC development members), there isn't a reliable way to
>get feedback to MS about the next version of VC from the little guy.
>Hopefully that will change.
>

>> By the way, the VS7 compiler in the .NET SDK download is not much better.
>> I think it is horrible that YOU have to enable parts of the STANDARD with
>> compiler switches!
>
>Again, backwards compatibility seems to be taking priority here. Most
>developers switching to VC7 will probably have most of their code using the
>old language syntax at first. As they slowly migrate, they can can switch
>on the standard compliance for those modules that use it. This prevents
>customers from having to go through all their code and turn off standard
>conformance for legacy code.
>
>I think it's actually a good idea for VC7 as a transitionary measure, but I
>think that VC8 should have standard conformance as standard.
>

>You should also know that VC7 is significantly better at standard
>conformance. I've been assured that Koenig lookup will be in there, though
>partial template specialization will not.

Hi Erik,

Any word on whether they'll provide a switch to enable
standard-compliant for loop scoping for VC++ without breaking its
ability to compile Windows GUI code?

Andy C

Erik Funkenbusch

unread,
Aug 17, 2000, 1:08:49 AM8/17/00
to
"Andy C" <spam...@nospam.invalid> wrote in message
> Hi Erik,

> Any word on whether they'll provide a switch to enable
> standard-compliant for loop scoping for VC++ without breaking its
> ability to compile Windows GUI code?

Yes, if you download the NGWSSDK from the MSDN subscriber downloads, there
is a helpfile that contains all the VC7 command line switches. One of which
is /Zc:forScope, which enables the standard for scope rules when /Ze
(microsoft language extensions) are enabled. Of course the for scope works
as per the standard by default when /Za (disable microsoft language
extensions) is used.

There is also a #pragma conform statement which enables the new scoping in
your source instead of with a command line switch.


Erik Funkenbusch

unread,
Aug 17, 2000, 1:17:41 AM8/17/00
to
"Reginald Blue" <r...@NOSPAM.trsvr.tr.unisys.com> wrote in message
news:#Ela$m6BAHA.254@cppssbbsa05...

> If there's one thing that bugs me most about VC 6 and it's non compliance,
> it has to be the fact that wchar_t is not an intrinsic type. (IIRC, it's
a
> #define for unsigned short, so in cases where both is valid the compiler
> can't tell the difference...)

Yes, I've been told that there is an option /Zc:wchar_t which enables this.

> I _think_ it should be easy to fix that w/o affecting backwards
> compatibility. (But, hey, what do I know...I'm not a compiler writer.)
>
> You wouldn't happen to know if they fixed that, would you?

Oddly enough, it does effect backwards compatibility (mostly with people
that wrote overload code expecting wchar_t to be a short or that use wchar_t
in math functions I would imagine. For instance, serializing wchar_t with
operator<<() or operator>>() would break).


Dave Sieber

unread,
Aug 17, 2000, 2:19:50 AM8/17/00
to
"Erik Funkenbusch" <er...@visi.com> wrote in message
news:u5OkpY$BAHA.253@cppssbbsa05...

> I said "there isn't a reliable way to get feedback". I didn't say it's
> impossible, just that there is no reliable mechanism in place right now.
> There is a "wish list" mailing address, but I think it's really a black
> hole. Often times these mailing addresses go to the wrong places (for
> instance, the .NET feedback mailing address was going to the .NET
> documenation group, and all non-documentation oriented feedback was being
> tossed).

I didn't think you had said any of those things -- weren't you just passing
on what you had gotten from the MS people?

> I laugh at those people that think MS is some massively organized company
> capable of pulling of major conspiracy after major conspiracy. Sorry
folks,
> it's just that MS's competition is even more disorganized.

Opinions are sure to differ on this point :-)

--
dave

Erik Funkenbusch

unread,
Aug 17, 2000, 3:00:00 AM8/17/00
to
"Dave Sieber" <dsi...@mediaone.net> wrote in message
news:auLm5.1521$9o4.2...@typhoon.we.rr.com...

> "Erik Funkenbusch" <er...@visi.com> wrote in message
> news:u5OkpY$BAHA.253@cppssbbsa05...
>
> > I said "there isn't a reliable way to get feedback". I didn't say it's
> > impossible, just that there is no reliable mechanism in place right now.
> > There is a "wish list" mailing address, but I think it's really a black
> > hole. Often times these mailing addresses go to the wrong places (for
> > instance, the .NET feedback mailing address was going to the .NET
> > documenation group, and all non-documentation oriented feedback was
being
> > tossed).
>
> I didn't think you had said any of those things -- weren't you just
passing
> on what you had gotten from the MS people?

Yes. I thought you were asking why email or whatever was unreliable, and my
answer is not that whatever mechanism is in place is unreliable, but rather
that no mechanism is in place, and that getting feedback to the right people
through other channels is unreliable.

> > I laugh at those people that think MS is some massively organized
company
> > capable of pulling of major conspiracy after major conspiracy. Sorry
> folks,
> > it's just that MS's competition is even more disorganized.
>
> Opinions are sure to differ on this point :-)

Of course. But having talked with people from different groups at MS, I
have come to the inescapable conclusion that there are just as many
political issues between departments at MS as there are in any company, and
quite often people just don't talk to each other or make it difficult to
have effective inter-departmental communcation. MSDN seems to have it the
worst, since they have to deal with just about EVERY department, and still
somehow organize it all. Frankly, I have no idea how they get their job
done quarter after quarter.


Dave Sieber

unread,
Aug 17, 2000, 3:00:00 AM8/17/00
to
"Erik Funkenbusch" <er...@visi.com> wrote in message
news:uU2opsBCAHA.243@cppssbbsa05...

> Yes. I thought you were asking why email or whatever was unreliable, and
my
> answer is not that whatever mechanism is in place is unreliable, but
rather
> that no mechanism is in place, and that getting feedback to the right
people
> through other channels is unreliable.

Clarified.

> Of course. But having talked with people from different groups at MS, I
> have come to the inescapable conclusion that there are just as many
> political issues between departments at MS as there are in any company,
and
> quite often people just don't talk to each other or make it difficult to
> have effective inter-departmental communcation. MSDN seems to have it the
> worst, since they have to deal with just about EVERY department, and still
> somehow organize it all. Frankly, I have no idea how they get their job
> done quarter after quarter.

A friend of mine works there, and I've heard some interesting stories about
the politics. But then, I've not worked anywhere that wasn't like that...
all part of humans trying to work together, I guess.

--
dave


0 new messages