Slashdot Mirror


Interview with IE Lead Program Manager

crackman writes "Matasano Security is running an excellent interview with Christopher Vaughan, a lead PM on the IE team. Christopher has worked on every release of Internet Explorer since version 2. He discusses IE7, security lessons learned from IE6, the future of .NET managed code in IE, and more."

3 of 289 comments (clear)

  1. Re:Why not start a "marklar project?" by $RANDOMLUSER · · Score: 4, Informative

    Because they don't want to suddenly have a broken codebase and have to re-write the entire app when the next version of .NET and its development tools come out?

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  2. default action is Open by gbjbaanb · · Score: 4, Informative

    defintitely the same reason - when you right click, you get a list of commands you can perform on the document. If Open wasn't one of them, then you couldn't open it :-)

    You can change the default action to something else instead of open.
    Left-click is just a shorthand way of right-clicking and selecting the default.

    The reason its done this way is that's much better (a more OO way) of associating commands with a file type. You can add a new command, change the default to that, and then left-click the file performs the new command! I do this for .reg files - leftclick them and I get notepad with the text inside it. Also, for dlls, leftclick and I get dependancy walker. Similarly, when I click a cpp file, it loads in Visual Studio. If left-click was hard-coded to open, none of these things would work.

    If you want to know more, read about Shell Extensions in MSDN.

  3. Re:Why not start a "marklar project?" by omicronish · · Score: 4, Informative

    Stop making up stuff. The full list of .NET 2.0 breaking changes is available here; at least cite examples from those if you're going to make claims that .NET 2.0 is completely incompatible with 1.0/1.1.

    1) "We added 200 new keywords to the language which will nameclash with your code".

    C# 2.0 maintains full source compatibility regarding keywords. The new keywords (where, yield, partial) work only under certain contexts, and can still be used as variable names. For example, where and partial work only in class definitions, i.e. public partial class Blah where T : class, and yield can only exist as yield return 4. There is no legal 1.0/1.1 code like that.

    2) "We added 400 new classes to the library which will nameclash with your code".

    Types you define in your assembly take precedence over those in other assemblies, so there's no compilation issue. If you want to use new classes that clash with yours, you can add a using SubstituteClassName = ClashingClassName and use the new substitute name.

    3) "That function/class no longer does what it used to do". 7) "That function/class now takes a different number of parameters". 8) "That function/class is no longer compatible with that other function/class". 9) "We changed that parameter datatype to X".

    Look at the breaking changes page and tell me which one of those impacts you severely. All the changes I see are to fix bugs or security issues, or remove extraneous functionality. New signatures are simply added as overloads and the old signature made obsolete where necessary. See next for why obsolete doesn't mean a break change.

    4) "That function/class is no longer available". 5) "That function/class has been replaced by X". 6) "That function/class has been renamed to X".

    You can find a list of obsolete APIs here. And before you respond with "see!!! all those obsolete APIs break my code!!!", they're all either obscure or unsafe parts of the API, or have been updated to take advantage of new .NET 2.0 constructs. Furthermore, they're merely marked obsolete and will only generate a warning; you can still use them if you choose.

    10) "The new tool won't import your projects properly, so you have to recreate them from scratch (with absolute pathnames) (tied to the user login who created them) (and cryptically stored in the registry) (and you can't run the old tool to see what it looked like)".

    That is likely a failing on your part. Visual Studio 2002/2003/2005 all generate solutions that reference projects with relative paths. None of that is stored in the registry; hell, I've been uploading my projects to a Subversion repository and working on them from a variety of locations for years without any path problems.

    11) "You can only do that with our new brain-dead wizard". 12) "The tool is smarter than you are, do it the tools way".

    All the wizards/tools generate .NET code; you can code everything manually if you'd like, including Winforms and ASP.NET. Even the project files are XML, and in .NET 2.0, you can compile everything without even the IDE installed. What examples do you have of stuff that requires a wizard to work?