Microsoft abandons the C language

Discussion in 'C Programming' started by jacob navia, Aug 23, 2012.

  1. jacob navia

    jacob navia Guest

    This is a long story. It starts years ago since windows 3.1 and it ends
    now, with "Metro".

    SO, I downloaded windows 8, and installed it. That went fairly smoothly
    but I forgot that windows doesn't come with the remote desktop
    connection. I tried by all means to allow it, but couldn't. There is a
    client app that lets you connect to OTHER machines, but no server. A few
    hours wasted but well, that's OK.

    Then, I tried installing the compiler. This small and fast software
    takes only 5GB when installed, and the installation process is quite
    fast, it took me just half a day.

    The problem is that it kept crashing when installing, but (eventually) I
    discover the right procedure: When it crashes do as you always have done
    under windows:

    REBOOT.

    That solves many things. I discover that if you try to restart the
    installer without rebooting it will crash in a few seconds. I tried for
    hours until I discovered that you have just to reboot and when you do
    that, the installer goes on automatically, skipping the problem
    apparently.

    Great! after hours of waiting I started Visual studio 2012. The
    interface is great. It has a very similar flat look like in the old days
    of windows 3.0. Everything is flat, the "buttons" the window borders,
    everything, even lcc-win...

    I remember all those interface guidelines that recommended us to use the
    3D controls, avoid a "flat" look, whatever, fad is fad and the current
    fad is the best, of course.

    Then, I started looking at the documentation of the SDK. And then I
    noticed that C is no longer mentioned ANYWHERE. The only reference is to
    "managed C++" That is the Microsoft version of C++ stock full with
    __gc_class, ref class etc.

    In the reference to C++ I found this:

    ) The concept of a current working directory doesn't apply to Metro
    style apps and there is no current drive.

    Also, corresponding APIs such as GetCurrentDirectory and
    SetCurrentDirectory are not available in the MSDK.

    Say goodbye to:
    chdir chdir chdrive wchdir getcwd getcwd getdcwd getdcwd_nolock
    wgetcwd _wgetdcwd wgetdcwd_nolock

    2) Say goodbye to the console. Metro style apps are GUI only; they don't
    support console. Goodbye stdin, stderr, stdout.

    3) Pipe functionality is not available to Metro style apps.

    4) Environment variables are not available to Metro style apps. Goodbye
    to getenv, putenv, etc.

    5) A Metro style app cannot invoke another Metro style app or a
    desktop app. Goodbye to system, spawnxxx execxxx etc.

    6) C strings are out. Goodbye strcpy strlwr strlen, etc.

    7) Low level I/O functions: fopen fwrite etc. These functions are
    synchronous, which is not recommended for Metro style apps. In your
    Metro style apps, use asynchronous APIs to open, read from, and
    write to files to prevent locking of the UI thread. Examples of such
    APIs are the ones in the Windows::Storage::FileIO class.

    Great. Welcome to the future. This means that lcc-win will never be able
    to generate any "Metro" applications 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.

    The controls we are used to since windows 3.0 have disappeared (the
    famous group box, for instance)... Many others are different, anyway
    you have to rewrite absolutely EVERYTHING AGAIN, as well as you have to
    learn windows again. The famous "start" button has disappeared, the
    interface is completely different, all the reflexes are now WRONG,
    you have to look for a few minutes after you find how to TURN OFF windows


    But I eventually find that button.

    Phew!
     
    jacob navia, Aug 23, 2012
    #1
    1. Advertising

  2. jacob navia

    Jens Gustedt Guest

    Am 23.08.2012 20:05, schrieb jacob navia:
    > This is a long story. It starts years ago since windows 3.1 and it ends
    > now, with "Metro".


    [snip]

    They never supported any of the newer versions of the C standard with
    their own compilers. So this only makes things official so to say.

    Hopefully this will free the C language from this burden that the
    non-support from MS has been all the years.

    Jens
     
    Jens Gustedt, Aug 23, 2012
    #2
    1. Advertising

  3. בת×ריך ×™×•× ×—×ž×™×©×™, 23 ב×וגוסט 2012 19:05:20 UTC+1, מ×ת jacob navia:
    > This is a long story. It starts years ago since windows 3.1 and it ends
    > now, with "Metro".
    >

    Yes, I've been with Microsoft since my first DOS machine, which also
    ran Windows, slowly and unsatisfactorily. Any serious program ran under DOS..
    I played with PCs before then, but I never had one of my own.
    If you go onto my website you'll find some brand new DOS console style
    routines, in the Binary Image Processing library. A rasterising font is still
    a very quick way of building up an image.
    >
    >
    > SO, I downloaded windows 8, and installed it.
    > Then, I started looking at the documentation of the SDK. And then I
    > noticed that C is no longer mentioned ANYWHERE. The only reference is to
    > "managed C++" That is the Microsoft version of C++ stock full with
    > __gc_class, ref class etc.
    >
    >

    Evil evil evil. My Visual Stdio insists on trying to add #include "stdafx.h"
    to perfectly innocuous, portable files.
    >
    > 2) Say goodbye to the console. Metro style apps are GUI only; they don't
    > support console. Goodbye stdin, stderr, stdout.
    >

    I can't debug easily without a printf.
    >
    > 6) C strings are out. Goodbye strcpy strlwr strlen, etc.
    >

    Everyone always attacks the C standard library. You can implement more
    efficient strings by storing the length, but actually most strings are short
    and the added complexity isn't worth it, except maybe for a few very
    intensive text processing applications. You can support Unicode. But you can't
    enter foreign glyphs at the keyboard, and you can't easily display them. You
    can't understand what they mean unless you happen to speak that language. So
    really Unicode is an end-user character set. The great thign about a C string
    is that you can just type it into your soruce file, and you have it.
    >
    > 7) Low level I/O functions: fopen fwrite etc. These functions are
    > synchronous, which is not recommended for Metro style apps. In your
    > Metro style apps, use asynchronous APIs to open, read from, and
    > write to files to prevent locking of the UI thread. Examples of such
    > APIs are the ones in the Windows::Storage::FileIO class.
    >

    I've got some sympathy here. If you're writing massive files, that will
    lock up the application. But the synchronicity vs events problem needs to be
    sorted, not hacked.

    I've got huge sympathy with you. All this change destroys past investments,
    and the benfits are dubious. But historically Microsoft has never made things
    easyt for developers. All the APIs are fiddly to use, and the obvious ways
    of doingthigns are quickly deprecated.

    --
    Download the old PC font and play with it
    http://www.malcolmmclean.site11.com/www
     
    Malcolm McLean, Aug 23, 2012
    #3
  4. jacob navia

    Rui Maciel Guest

    Jens Gustedt wrote:

    > They never supported any of the newer versions of the C standard with
    > their own compilers. So this only makes things official so to say.


    Wasn't it due to Microsoft that pthreads weren't added to the C11 standard,
    instead replacing it with a kluge of a wrapper?


    Rui Maciel
     
    Rui Maciel, Aug 23, 2012
    #4
  5. jacob navia

    Melzzzzz Guest

    On Thu, 23 Aug 2012 20:05:20 +0200
    jacob navia <> wrote:

    >
    > The controls we are used to since windows 3.0 have disappeared (the
    > famous group box, for instance)... Many others are different, anyway
    > you have to rewrite absolutely EVERYTHING AGAIN, as well as you have
    > to learn windows again. The famous "start" button has disappeared,
    > the interface is completely different, all the reflexes are now WRONG,
    > you have to look for a few minutes after you find how to TURN OFF
    > windows
    >
    >
    > But I eventually find that button.
    >
    > Phew!
    >

    Perhaps that's a good thing. Windows is getting better and better ;)


    >
    >
    >
     
    Melzzzzz, Aug 23, 2012
    #5
  6. jacob navia

    jacob navia Guest

    Le 23/08/12 21:44, Malcolm McLean a écrit :
    > If you're writing massive files, that will
    > lock up the application. But the synchronicity vs events problem needs to be
    > sorted, not hacked.


    But everyone solved that years ago by starting a new thread that did the
    lenghty operations!

    Wedit starts a thread periodically to recompile the file you are
    editing. Any syntax errors are flagged with underscore red.

    All that without slowing down the UI since it is done in a separate
    thread!

    There is no need to suppress stdio!
     
    jacob navia, Aug 23, 2012
    #6
  7. jacob navia

    Paul Guest

    jacob navia wrote:

    <<snip>>
    > The famous "start" button has disappeared, the
    > interface is completely different, all the reflexes are now WRONG,
    > you have to look for a few minutes after you find how to TURN OFF windows


    If you install Windows 8, like Release Preview, you can
    try this as an add-on. You'll find it makes things
    look a little more familiar.

    http://classicshell.sourceforge.net/features.html

    Conventional applications still run under Windows 8 desktop.
    I tried Firefox and Thunderbird in there, and a four
    year old game, and all installed properly and run OK.

    Where the interface likely goes awry, is on Win8 RT,
    the ARM version for portable devices. That's likely
    to be entirely different. X86 apps won't run there
    (although if Microsoft had wanted, they could have
    found a way - they're not Apple after all).

    http://en.wikipedia.org/wiki/Windows_RT

    Paul
     
    Paul, Aug 23, 2012
    #7
  8. jacob navia

    jacob navia Guest

    Le 23/08/12 22:20, Paul a écrit :
    > Conventional applications still run under Windows 8 desktop.
    > I tried Firefox and Thunderbird in there, and a four
    > year old game, and all installed properly and run OK.


    Of course. But the new interface is no longer available, and the C
    interface is no longer maintained so in a few years those application
    will be as obsolete as MSDOS is today since all NEW features will not be
    ported to the C interface you see?
     
    jacob navia, Aug 23, 2012
    #8
  9. jacob navia

    James Kuyper Guest

    On 08/23/2012 05:57 PM, CRNG wrote:
    ....
    > Next step: Uninstall Win 8 and stick with WinXP until something
    > reasonable comes along.


    If you don't consider any of your currently available alternatives
    reasonable, you could be waiting a very long time - probably the entire
    rest of your life.
     
    James Kuyper, Aug 23, 2012
    #9
  10. בת×ריך ×™×•× ×—×ž×™×©×™, 23 ב×וגוסט 2012 23:01:28 UTC+1, מ×ת James Kuyper:
    > On 08/23/2012 05:57 PM, CRNG wrote:
    >
    >
    > If you don't consider any of your currently available alternatives
    > reasonable, you could be waiting a very long time - probably the entire
    > rest of your life.
    >

    The Microsoft monopoly is no more. The mobile phone ate it away, together
    with allied devices such as e-readers and tablet computers. Apple's desktop
    computer business and Linux were also irritants, and have been growing.

    Though everyone moaned about the Microsoft offering, having one standard had
    some huge advantages. Now the industry is fragmented.
     
    Malcolm McLean, Aug 23, 2012
    #10
  11. jacob navia

    James Kuyper Guest

    On 08/23/2012 06:21 PM, Malcolm McLean wrote:
    > בת×ריך ×™×•× ×—×ž×™×©×™, 23 ב×וגוסט 2012 23:01:28 UTC+1, מ×ת James Kuyper:
    >> On 08/23/2012 05:57 PM, CRNG wrote:
    >>
    >>
    >> If you don't consider any of your currently available alternatives
    >> reasonable, you could be waiting a very long time - probably the entire
    >> rest of your life.
    >>

    > The Microsoft monopoly is no more. The mobile phone ate it away, together
    > with allied devices such as e-readers and tablet computers. Apple's desktop
    > computer business and Linux were also irritants, and have been growing.


    Those are the alternatives I was referring to. It's a fairly good
    selection. If someone doesn't consider any of them acceptable, it may be
    a very long time before an alternative that they would consider
    acceptable shows up.
     
    James Kuyper, Aug 24, 2012
    #11
  12. > SO, I downloaded windows 8, and installed it. That went fairly smoothly
    > but I forgot that windows doesn't come with the remote desktop connection.


    Remote desktop is included from W8 pro and up (I'm using W8 enterprise,
    since i'm on a domain).
    Google "windows 8 editions" for comparsion.

    <snip a lot about VS2012 and metro>

    It seems that you downloaded VS2012 express for metro.
    What you want is VS2012 expess for desktop, which will be released later.
    Any of the VS2012 paid versions include both, and also the corresponding
    docs.

    Leo Havmøller.
     
    Leo Havmøller, Aug 24, 2012
    #12
  13. jacob navia

    Ansel Guest

    What is your confusion? A console app, a desktop app, a metro app, services,
    are separate paradigms. They are all available on Windows 8. Pick your
    poison. You seem to be flailing wildly for no apparent reason. Every
    whiz-bang UI paradigm is not obligated to support the C programming model.
    Separate UI code from application (reuseable) code. The serious stuff gets
    done in modules separate from the UI (in any significant, well-designed
    application program).

    jacob navia wrote:
    > ) The concept of a current working directory doesn't apply to Metro
    > style apps and there is no current drive.
    >
    > Also, corresponding APIs such as GetCurrentDirectory and
    > SetCurrentDirectory are not available in the MSDK.
    >
    > Say goodbye to:
    > chdir chdir chdrive wchdir getcwd getcwd getdcwd getdcwd_nolock
    > wgetcwd _wgetdcwd wgetdcwd_nolock
    >
    > 2) Say goodbye to the console. Metro style apps are GUI only; they
    > don't support console. Goodbye stdin, stderr, stdout.
    >
    > 3) Pipe functionality is not available to Metro style apps.
    >
    > 4) Environment variables are not available to Metro style apps.
    > Goodbye to getenv, putenv, etc.
    >
    > 5) A Metro style app cannot invoke another Metro style app or a
    > desktop app. Goodbye to system, spawnxxx execxxx etc.
    >
    > 6) C strings are out. Goodbye strcpy strlwr strlen, etc.
    >
    > 7) Low level I/O functions: fopen fwrite etc. These functions are
    > synchronous, which is not recommended for Metro style apps. In your
    > Metro style apps, use asynchronous APIs to open, read from, and
    > write to files to prevent locking of the UI thread. Examples of
    > such APIs are the ones in the Windows::Storage::FileIO class.
    >
    > Great. Welcome to the future. This means that lcc-win will never be
    > able to generate any "Metro" applications 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.
    >
    > The controls we are used to since windows 3.0 have disappeared (the
    > famous group box, for instance)... Many others are different, anyway
    > you have to rewrite absolutely EVERYTHING AGAIN, as well as you have
    > to learn windows again. The famous "start" button has disappeared, the
    > interface is completely different, all the reflexes are now WRONG,
    > you have to look for a few minutes after you find how to TURN OFF
    > windows
    >
    > But I eventually find that button.
    >
    > Phew!
     
    Ansel, Aug 24, 2012
    #13
  14. jacob navia

    Ansel Guest

    CRNG wrote:

    > Next step: Uninstall Win 8 and stick with WinXP until something
    > reasonable comes along.


    Win 7 (with Aero turned off). I've been using virtually the same desktop
    style since Win 95, so I don't see any value in major GUI changes on the
    desktop. I do admit that I hate the Win 7 Explorer (file manager) and search
    integration. I think they really f'd up with the emphasis on search over
    organization. Overall though, I find Win 7 a worthwhile improvement over Win
    XP for reasons other than the GUI.
     
    Ansel, Aug 24, 2012
    #14
  15. jacob navia

    jacob navia Guest

    Le 24/08/12 06:52, Leo Havmøller a écrit :
    >> SO, I downloaded windows 8, and installed it. That went fairly smoothly
    >> but I forgot that windows doesn't come with the remote desktop
    >> connection.

    >
    > Remote desktop is included from W8 pro and up (I'm using W8 enterprise,
    > since i'm on a domain).
    > Google "windows 8 editions" for comparsion.
    >


    I know but when I downloaded it, I got my product key ( I have bought an
    expensive MSDN subscription) it would not be recognized.

    No way out. MSDN France didn't know what to do either.

    > <snip a lot about VS2012 and metro>
    >
    > It seems that you downloaded VS2012 express for metro.


    No, I downloaded VS Professional.

    > What you want is VS2012 expess for desktop, which will be released later.
    > Any of the VS2012 paid versions include both, and also the corresponding
    > docs.
    >
    > Leo Havmøller.


    Visual Studio 2012 does allow to compile applications for C with the
    same limitations as for VS 2010.
     
    jacob navia, Aug 24, 2012
    #15
  16. jacob navia

    jacob navia Guest

    Le 24/08/12 09:06, Don't make my brown eyes China Blue a écrit :

    > (MacOSX unfortunately distinguishes loginwindow descended from launchd descended
    > and blocks the GPU and some other MacOSX functionality from daemons. That's one
    > advantage of Linux.)
    >


    Look, I develop in a Mac (0S X 10.8) and you can OF COURSE develop GUI
    applications that use the full Unix/Mac libraries. Of course you have to
    sandbox them to be able to put them into an iPhone but for the Mac
    Desktop there are no such restrictions.

    That is the problem here. Microsoft doesn't make the distinction between
    a sandboxed application and a desktop application apparently and the
    whole Metro sdk is designed for a subset of languages all
    exclusively running in a Microsoft platform: Managed C++, C#, Java
    script, and all .net languages.

    C doesn't fit there.

    This is the end of a development that was announced with the refusal to
    support C99 at all, the marking of the whole C library as obsolete by
    Visual Studio, and other developments: the last SDK released was several
    years ago, all develoment of the C interfaces stopped, etc.
     
    jacob navia, Aug 24, 2012
    #16
  17. > That is the problem here. Microsoft doesn't make the distinction between a
    > sandboxed application and a desktop application apparently and the whole
    > Metro sdk is designed for a subset of languages all
    > exclusively running in a Microsoft platform: Managed C++, C#, Java script,
    > and all .net languages.
    > C doesn't fit there.


    The real question is: Why would you want to develop a metro style
    application at all?

    Leo Havmøller.
     
    Leo Havmøller, Aug 24, 2012
    #17
  18. jacob navia

    Daniel Weber Guest

    Am 23.08.2012 22:51, schrieb jacob navia:
    > Of course. But the new interface is no longer available, and the C
    > interface is no longer maintained


    Of course it is available and still maintained. The server editions of
    windows require those features, the business customers require those
    features, ...

    Maybe you just downloaded the wrong Visual Studio Express Edition?

    Bye,
    Daniel
     
    Daniel Weber, Aug 24, 2012
    #18
  19. On Aug 23, 7:05 pm, jacob navia <> wrote:

    > This is a long story. It starts years ago since windows 3.1 and it ends
    > now, with "Metro".


    <snip>

    > Then, I started looking at the documentation of the SDK. And then I
    > noticed that C is no longer mentioned ANYWHERE. The only reference is to
    > "managed C++" That is the Microsoft version of C++ stock full with
    > __gc_class, ref class etc.


    :-(

    [to be honest i could live without C (my C usuallly goes through a C++
    compiler without much hassle). But no C++ either!]

    > In the reference to C++ I found this:
    >
    > ) The concept of a current working directory doesn't apply to Metro
    >     style apps and there is no current drive.
    >
    >     Also, corresponding APIs such as GetCurrentDirectory and
    >     SetCurrentDirectory are not available in the MSDK.
    >
    >     Say goodbye to:
    >     chdir chdir chdrive wchdir getcwd getcwd getdcwd getdcwd_nolock
    >     wgetcwd _wgetdcwd wgetdcwd_nolock
    >
    > 2) Say goodbye to the console. Metro style apps are GUI only; they don't
    >     support console. Goodbye stdin, stderr, stdout.


    ;-( :-(

    I write console applications all the time to try things out! Little
    utilities launched from the desktop etc.

    > 3) Pipe functionality is not available to Metro style apps.
    >
    > 4) Environment variables are not available to Metro style apps. Goodbye
    >     to getenv, putenv, etc.
    >
    > 5)  A Metro style app cannot invoke another Metro style app or a
    >     desktop app. Goodbye to system, spawnxxx execxxx etc.
    >
    > 6) C strings are out. Goodbye strcpy strlwr strlen, etc.
    >
    > 7) Low level I/O  functions: fopen fwrite etc. These functions are
    >     synchronous, which is not recommended for Metro style apps. In your
    >     Metro style apps, use asynchronous APIs to open, read from, and
    >     write to files to prevent locking of the UI thread. Examples of such
    >     APIs are the ones in the Windows::Storage::FileIO class.
    >
    > Great. Welcome to the future. This means that lcc-win will never be able
    > to generate any "Metro" applications 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.
    >
    > The controls we are used to since windows 3.0 have disappeared (the
    > famous group box, for instance)... Many others are different, anyway
    > you have to rewrite absolutely EVERYTHING AGAIN, as well as you have to
    > learn windows again. The famous "start" button has disappeared, the
    > interface is completely different, all the reflexes are now WRONG,
    > you have to look for a few minutes after you find how to TURN OFF windows
    >
    > But I eventually find that button.
    >
    > Phew!


    no Win32 interface at all? Maybe I will have to switch to Linux after
    all.
     
    Nick Keighley, Aug 24, 2012
    #19
  20. jacob navia

    jacob navia Guest

    Le 24/08/12 09:33, Daniel Weber a écrit :
    > Am 23.08.2012 22:51, schrieb jacob navia:
    >> Of course. But the new interface is no longer available, and the C
    >> interface is no longer maintained

    >
    > Of course it is available and still maintained. The server editions of
    > windows require those features, the business customers require those
    > features, ...
    >
    > Maybe you just downloaded the wrong Visual Studio Express Edition?
    >
    > Bye,
    > Daniel


    1) I downloaded Visual studio Pro, (not express), and visual studio
    has nothing to do with the new SDK as you (may) know. I am quoting
    from the official SDK DOCUMENTATION, not from any visual studio
    documentation.

    2) The business customers will program in Java/Visual Basic, or managed
    C++, and they will be able to use the system apparently. Since there
    is no C interface you can't use C for any task interfacing with the
    OS.
     
    jacob navia, Aug 24, 2012
    #20
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Charles A. Lackman
    Replies:
    1
    Views:
    1,389
    smith
    Dec 8, 2004
  2. SpamProof
    Replies:
    0
    Views:
    592
    SpamProof
    Oct 21, 2003
  3. =?Utf-8?B?ZGF2aWQ=?=

    Microsoft TreeView: Microsoft.Web.UI.WebControls.dll

    =?Utf-8?B?ZGF2aWQ=?=, Apr 11, 2005, in forum: ASP .Net
    Replies:
    1
    Views:
    3,610
    Patrick Olurotimi Ige
    Apr 11, 2005
  4. Replies:
    0
    Views:
    3,581
  5. Nomen Nescio

    Re: Microsoft abandons the C language

    Nomen Nescio, Aug 31, 2012, in forum: C Programming
    Replies:
    0
    Views:
    358
    Nomen Nescio
    Aug 31, 2012
Loading...

Share This Page