One Dev Question with Raymond Chen - Decoding Windows Build Numbers

Play One Dev Question with Raymond Chen - Decoding Windows Build Numbers
Sign in to queue


The 'One Dev Question with Raymond Chen' video series is part of the One Dev Minute channel.  In this series, longtime Microsoft developer and semi-official Windows historian Raymond Chen covers a series of questions about Microsoft Windows development, team culture, and/or history.  If you have additional questions for Raymond, please add your questions in the comments section below.  You can also find out more development details about Windows and its history on Raymond's blog.



Right click to download this episode

The Discussion

  • User profile image

    I just wondered why is there a MAX_PATH in Windows?

  • User profile image

    And also, why is it said that C++ and C are lower level languages than C# and VB.NET? What kinds of things can you do differently? 

  • User profile image

    @James_Urry: C/C++ are lower level because they do not depend on a virtual machine to work, the code you write is compiled into native code and runs on the bare metal. C#/VB.NET, on the other hand, are more like Java, the code you write is first translated into an intermediate language representation (MSIL) at compile time, and just-in-time compiled to native code at runtime. This requires the presence of a language runtime (the CLR) that also provides higher-level services like array bounds checking, automatic memory management (garbage collection in case of C#/VB.NET), and more, which C/C++ don't have. There is a C/C++ runtime as well, but that's more like a thin layer that represents the OS-specific implementation of standard APIs.

  • User profile image

    @James_Urry: MAX_PATH came from a time when there was a severe limit on things like system RAM and processor speed. Since the main programming language for Windows and DOS back in the day was C, then strings were hard to use. The interesting thing is that C doesn't have a string type, instead character arrays were used.

    So MAX_PATH came into being to allow programmers to easily define a character array to use as a string for the functions that use paths.

    char my_path[MAX_PATH];

    Interestingly, back then, the 260 limit wasn't that bad due to file names and directory names only having a maximum of 11 characters (8 for the name, 3 for the extension). The paths could nest really deep before you even ran into any problems. The limit only really started becoming a problem when long file names started coming into use.



  • User profile image

    I was trying to retrieve messages on my fb account but I was surprised that I wasn't able to retrieve all the deleted messages that I did since last year. Can you help me with this. thank you

  • User profile image

    I'd like to know also

Add Your 2 Cents