> One of the things I miss most about working for Microsoft was all the great internal tooling
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?
Windows Performance Explorer is an example of something public. It’s like dtrace on steroids. Page Heap is really helpful for finding buffer overflows. I’ve never used a debugger with a better UI than the VS one. WinDbg’s reverse debugging is super powerful and fast enough to be useable.
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.
- 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.
This wasn't the case until they bought SysInternals. I think Microsoft has very good dev tools overall, but the utilities created by Mark Russinovich put everything Microsoft had to shame, so they hired him and bought his code.
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?