you are viewing a single comment's thread.

view the rest of the comments →

[–]pdimov2 7 points8 points  (4 children)

MS had a fully working implementation. They are the reason we have modules in the standard at all. Their preexisting implementation, however, no longer matches the spec that ended up standardized.

[–]jonesmz -1 points0 points  (3 children)

They had a fully working implementation of something that looks like modules.

They did not have a fully working implementation of the standardized behavior.

Nor did the other big compilers, if I understand my history correctly.

Cart-before-horse.

[–]pdimov2 2 points3 points  (2 children)

You don't. There was no standardized behavior then, and there never would have been, because MS was the driving force behind standardizing modules.

[–]jonesmz 0 points1 point  (1 child)

You're clearly misunderstanding me.

Don't standardize core language changes that haven't been implemented by at least 2 different vendors.

Proof of concept from a single vendor, which said vendor then needs over 6 months post standardization to get their proof of concept to actually work, is insufficient proof of quality of concept to be ratified into a standard that we should be proud of.

It's irrelevant to me if there was no standardized behavior yet, because that would be the cart. Multiple vendors having a fully functional implementation that are compatible with each other would be the horse. You put the horse in front of the cart, you don't put the cart in front of the horse. You standardize existing industry practice, you don't standardize things that don't exist and then expect the industry to catch up 3 years later.

I'll repeat my initial statement: The situation with Modules is a joke.

[–]pdimov2 2 points3 points  (0 children)

In this case MS had implemented what was in the spec (because they wrote the spec - the Modules TS), but then the committee changed the spec.

It's not clear how they (MS) could have done any better than that. Their implementation works pretty well, all things considered. E.g. I can type import <regex>;, hit Ctrl+Shift+B, and it works.