Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. I'm starting to really dislike Windows as a development platform

I'm starting to really dislike Windows as a development platform

Scheduled Pinned Locked Moved The Lounge
visual-studiocsharpc++java
51 Posts 25 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

    Real programmers use butterflies

    S R M R C 16 Replies Last reply
    0
    • H honey the codewitch

      First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

      Real programmers use butterflies

      S Offline
      S Offline
      Slacker007
      wrote on last edited by
      #2

      You could give it up all together and take up black magick sorcery...or not. Not sure it will get any better.

      H D 2 Replies Last reply
      0
      • S Slacker007

        You could give it up all together and take up black magick sorcery...or not. Not sure it will get any better.

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #3

        I like to combine that with programming though. it makes maintenance fun.

        Real programmers use butterflies

        OriginalGriffO R 2 Replies Last reply
        0
        • H honey the codewitch

          I like to combine that with programming though. it makes maintenance fun.

          Real programmers use butterflies

          OriginalGriffO Offline
          OriginalGriffO Offline
          OriginalGriff
          wrote on last edited by
          #4

          It's the chicken sacrifice each time I instantiate a class that gets me ... :~

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
          "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

          H B 2 Replies Last reply
          0
          • OriginalGriffO OriginalGriff

            It's the chicken sacrifice each time I instantiate a class that gets me ... :~

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

            H Offline
            H Offline
            honey the codewitch
            wrote on last edited by
            #5

            You know, if you had a horcrux you could just plant it in some cemetery dirt and spare the poultry. It's less messy, but has some nasty side effects, like potential immortality.

            Real programmers use butterflies

            OriginalGriffO 1 Reply Last reply
            0
            • H honey the codewitch

              You know, if you had a horcrux you could just plant it in some cemetery dirt and spare the poultry. It's less messy, but has some nasty side effects, like potential immortality.

              Real programmers use butterflies

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #6

              It also doesn't work with abstract base classes. :sigh:

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              H 1 Reply Last reply
              0
              • H honey the codewitch

                First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

                Real programmers use butterflies

                R Offline
                R Offline
                Ron Anders
                wrote on last edited by
                #7

                Windows Update be gone: At an Elevated cmd prompt: net stop wuauserv (repeat as necessary until it stops) sc delete wuauserv Additionally, you might shift delete c:\windows\software distribution (downloaded update cache)

                D H 2 Replies Last reply
                0
                • R Ron Anders

                  Windows Update be gone: At an Elevated cmd prompt: net stop wuauserv (repeat as necessary until it stops) sc delete wuauserv Additionally, you might shift delete c:\windows\software distribution (downloaded update cache)

                  D Offline
                  D Offline
                  DerekT P
                  wrote on last edited by
                  #8

                  If only. WUAUSERV is stopped + disabled, I set Windows Update to do as little as I can through configuration. Yet today Windows is still telling me it won't let me put off a restart any longer, it is going to restart "out of hours" regardless. I even did a manual restart this morning (after the first notification), but me restarting apparently will not cut the mustard. Half an hour after my reboot, it's telling me again that it's going to restart tonight. :wtf: X| :((

                  T 1 Reply Last reply
                  0
                  • R Ron Anders

                    Windows Update be gone: At an Elevated cmd prompt: net stop wuauserv (repeat as necessary until it stops) sc delete wuauserv Additionally, you might shift delete c:\windows\software distribution (downloaded update cache)

                    H Offline
                    H Offline
                    honey the codewitch
                    wrote on last edited by
                    #9

                    Thanks. That will handle some of it. I haven't done anything about it because it's not actually my most pressing complaint - that would be MS's C++ compiler or maybe the non-posix OS. I'm not sure. Maybe it depends on my mood, or what I'm coding in the moment.

                    Real programmers use butterflies

                    1 Reply Last reply
                    0
                    • OriginalGriffO OriginalGriff

                      It also doesn't work with abstract base classes. :sigh:

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                      H Offline
                      H Offline
                      honey the codewitch
                      wrote on last edited by
                      #10

                      That's not standard. I keep saying MS's compiler is not standard, but then you look at websites like cppreference.com that strongly suggest that it is. And yet... in practice it is awful. Nothing that actually puts the compiler to work will compile with their compiler. Template support is creaky at best, and while I didn't know about the abstract base class limitation it surprises me not at all, although I'm not entirely sure what you mean, because I use pure virtual classes with MS's compiler. I know that works because ATL will compile. Still, yeah.

                      Real programmers use butterflies

                      Greg UtasG 1 Reply Last reply
                      0
                      • H honey the codewitch

                        That's not standard. I keep saying MS's compiler is not standard, but then you look at websites like cppreference.com that strongly suggest that it is. And yet... in practice it is awful. Nothing that actually puts the compiler to work will compile with their compiler. Template support is creaky at best, and while I didn't know about the abstract base class limitation it surprises me not at all, although I'm not entirely sure what you mean, because I use pure virtual classes with MS's compiler. I know that works because ATL will compile. Still, yeah.

                        Real programmers use butterflies

                        Greg UtasG Offline
                        Greg UtasG Offline
                        Greg Utas
                        wrote on last edited by
                        #11

                        I think OG meant that a chicken sacrifice didn't work when trying to instantiate an abstract class. It's that dry British sense of humour thing.

                        Robust Services Core | Software Techniques for Lemmings | Articles
                        The fox knows many things, but the hedgehog knows one big thing.

                        <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
                        <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

                        H 1 Reply Last reply
                        0
                        • H honey the codewitch

                          First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

                          Real programmers use butterflies

                          M Offline
                          M Offline
                          Mike Hankey
                          wrote on last edited by
                          #12

                          Their tools have always been crap, excluding the VS IDEs, that's how Borland and others became popular.

                          The less you need, the more you have. JaxCoder.com

                          1 Reply Last reply
                          0
                          • Greg UtasG Greg Utas

                            I think OG meant that a chicken sacrifice didn't work when trying to instantiate an abstract class. It's that dry British sense of humour thing.

                            Robust Services Core | Software Techniques for Lemmings | Articles
                            The fox knows many things, but the hedgehog knows one big thing.

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #13

                            My fault. I came back to the thread way late and lost the plot. :laugh:

                            Real programmers use butterflies

                            1 Reply Last reply
                            0
                            • S Slacker007

                              You could give it up all together and take up black magick sorcery...or not. Not sure it will get any better.

                              D Offline
                              D Offline
                              Daniel Pfeffer
                              wrote on last edited by
                              #14

                              Did you ever read Harry Turtledove's The Toxic Spell Dump? I'm not sure that magic (however you spell it) would less problems than engineering. :sigh:

                              Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                              S 1 Reply Last reply
                              0
                              • D Daniel Pfeffer

                                Did you ever read Harry Turtledove's The Toxic Spell Dump? I'm not sure that magic (however you spell it) would less problems than engineering. :sigh:

                                Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                S Offline
                                S Offline
                                Slacker007
                                wrote on last edited by
                                #15

                                No, I have not read the book. After reviewing online, I think I might actually get this book and read it. Interesting. :thumbsup:

                                1 Reply Last reply
                                0
                                • H honey the codewitch

                                  First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

                                  Real programmers use butterflies

                                  R Offline
                                  R Offline
                                  raddevus
                                  wrote on last edited by
                                  #16

                                  I agree with you. I moved to Linux at home and do all the development I can via VS Code editor. However, for work I'm still doing Windows Services and Windows Form-based development so I simply remote to work using Linux Remmina program (which is 100x better than MS RDP) and do my work on Windows. I do have a laptop running Windows and I find it is so much slower and I still haven't installed Visual Studio on it because its such a huge monster of a mess.

                                  1 Reply Last reply
                                  0
                                  • H honey the codewitch

                                    First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

                                    Real programmers use butterflies

                                    C Offline
                                    C Offline
                                    Chris Losinger
                                    wrote on last edited by
                                    #17

                                    yep. this is what cross-platform programming is all about - writing for the Least Common Denominator. for extra fun, throw in AIX, HPUX and a couple of versions of Solaris (especially the one that doesn't recognize 'namespace')

                                    H 1 Reply Last reply
                                    0
                                    • C Chris Losinger

                                      yep. this is what cross-platform programming is all about - writing for the Least Common Denominator. for extra fun, throw in AIX, HPUX and a couple of versions of Solaris (especially the one that doesn't recognize 'namespace')

                                      H Offline
                                      H Offline
                                      honey the codewitch
                                      wrote on last edited by
                                      #18

                                      Eww. I have standards. :laugh:

                                      Real programmers use butterflies

                                      pkfoxP 1 Reply Last reply
                                      0
                                      • H honey the codewitch

                                        Eww. I have standards. :laugh:

                                        Real programmers use butterflies

                                        pkfoxP Offline
                                        pkfoxP Offline
                                        pkfox
                                        wrote on last edited by
                                        #19

                                        :thumbsup:

                                        "I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP

                                        1 Reply Last reply
                                        0
                                        • H honey the codewitch

                                          First of all, let me get the standard complaint out of the way about their updates causing me problems way too frequently on everything from my video to my network stack. Second, as I've coded more cross platform things in C++ these days, it has become painfully apparent to me just how proprietary Windows is designed. Apple's OS is POSIX. Unixes are POSIX. Heck, even my little ESP32 IoT devices are kinda POSIX - at least as much as they can be. This means that if I want to use sockets, I can write the same or almost the same code for each platform. Same for memory mapped files, etc. So my code has to fork specifically for Windows and only Windows. This is especially critical in C++ where there isn't a massive framework that encompasses modern OS functionality like there is with say, Java or .NET. Finally, outside of Visual Studio, their development tools are the worst. Thank you Microsoft though, for VS Code, which makes Visual Studio less important. I'm sorry, I know I'll probably get a lot of pushback for this, but on paper, in broad strokes, Microsoft's C++ compiler is a lot more standard in theory than it is in practice. Microsoft's compiler team apparently has never quite understood templates. You can't metaprogram with the thing. It won't resolve complex constexpr statements very well either. Not the way GCC and Clang can. Bottom line is I can write code that will compile on gcc or clang with a -std=C++XX option and get reliable results - the code will also compile on other compilers using that same option. I haven't figured out how to do that with Microsoft's offering. Their compiler barfs on almost everything nontrivial I've ever written using templates. Also GCC is built on the LLVM backend (which can even render to asm.js) which Microsoft has no answer for. I'll take the best compiler over the best IDE any day of the week, if I have to choose. GCC and Clang are it. I use GCC to build windows dlls and exes these days. I have more issues with it I'm sure, but I'll have to wait until the next time Windows reminds me of one. It's getting to the point where I'm looking for an excuse to leave it behind altogether. Flame away. :laugh:

                                          Real programmers use butterflies

                                          M Offline
                                          M Offline
                                          megaadam
                                          wrote on last edited by
                                          #20

                                          TBH I am quite surprised that an über-techy coder like like you has not gone Linux, ages ago. vscode+Linux worx like a charm.

                                          "If we don't change direction, we'll end up where we're going"

                                          H 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups