Like what? I am not trying to be snarky here. I honestly would like your feedback. From my perspective Linux is way better than Microsoft in this regard, but maybe I am just looking at/using the wrong MS tools?
Not public: the best instrumented profiler I’ve ever used. Smaller things like Assert tags so you can uniquely ID them. A massive distributed test system (love hate with that one). Profiling and optimization tools to answer pretty much any question about how your product behaves.
I always thought MSVC’s dialect of C++ was a little more programmer friendly. E.g. you can construct an object inline and pass it by reference. The compiler doesn’t do ridiculous things once it finds out you sign overflowed - it’s designed to support applications not meet synthetic benchmarks. PDBs make a lot more sense to me than packing debug info directly in the binary.
For this use case on Linux, there's rr: https://github.com/mozilla/rr/
- Most of the tools by Sysinternals, eg. ProcessExplorer, ProcessMonitor
- Tools by Nirsoft, eg. TCPView, GDIView, HeapMemView etc.
- Microsoft's own tools eg. WinDbg, System Profiler, all the snap-ins for MMC
- Tools for looking at system components related to COM/OLE
That's just guessing, but I find I respect Windows more and more the more I learn about it.
I recommend reading the Windows Internals books because it shows the amount of work that has gone into things that are overlooked often eg. NTFS (which is miles better than Apple's new APFS, which seems to get a lot of praise for unknown reasons).
You can find out a lot of what is happening under the hood with Sysinternal's tools, including IPC which would be far harder to trace under Linux I believe.
I wish I was working in such an ecosystem. :(
Bazel, Google's build tool is a good example of this. Google actually open-sourced most of Bazel a few years ago, but as far as I know, it hasn't gotten much uptake. It requires doing a bunch of boring configuration work to use it. But as someone who used it internally I definitely prefer it to all the alternatives, due to its speed and reliability.
Although Bazel is still in beta, more and more companies are using it (e.g. Dropbox, Huawei, SpaceX, Pinterest, Stripe - see https://github.com/bazelbuild/bazel/wiki/Bazel-Users) or interested enough to attend the recent Bazel conference (see https://conf.bazel.build/about).
I can imagine there is some fear of espionage or sabotage but I'm just asking the boring stuff about deploying a (web) front end system.
My impression is that for local stuff their tooling is not much better than public. They have a lot more reliance on logging.
I’ve never worked there so this is just all second hand info.