7 ms·
> their development environments and APIs look like a bad joke I agree, cmd.exe is bad. Everything that doesn't require the command line is better in Windows l
by pikzen 11y ago
> their development environments and APIs look like a bad joke
I agree, cmd.exe is bad. Everything that doesn't require the command line is better in Windows land though. Visual Studio has nothing coming even close to it (CLion is getting there for C/C++ though), .NET has an amazing set of APIs and I wouldn't trade them for any other language's, Direct3D is actually a good API compared to the pile of crap that is OpenGL. Win32 is actually not that bad compared to the crap you have to deal with on Linux.
For certain things, Windows is the superior alternative. However, if your job requires you to do JS/ruby/python/etc. then by all means, go with Linux/OSX, it is clearly better.
But the integration of some tools and languages on Windows beats any other OS.
- anon4 11y agoHave you tried QtCreator? It is somewhat Qt-centric, but other than that it's an excellent IDE.
- melted 11y agoHuh? For the past several years I've been doing C++ development in Vim, with YouCompleteMe providing excellent code completion. Eclipse works pretty great for C++ too, especially for browsing code. Seems to me you haven't seriously worked in Linux. The only thing that's lacking is the debugger. Everything else is either the same (for eg Java) or an order of magnitude better. All non-ms programming languages are UNIX-first. They feel bolted-on when ported. And let us also not forget the complete freedom you have on UNIX systems. Want to spin up a VM or a dozen? Go right ahead, for free. Want your server to serve five hundred people? Go ahead, no need for extra licensing. Want dev setup for nearly any language under the sun? It's a one liner. And so on and so forth. Another benefit is, the lower level APIs are the same they were two decades ago, some are even older. And that API surface is much smaller. You basically learn them once, and they're good for life. Same with much of the tooling such as text editors, build systems, command line tools, and so on. Once you grok all this, there's _really_ no going back to ball and chain that is Windows.
- vvanders 11y agoYou lost me at saying eclipse is pretty great...
- melted 11y agoHow recent is your experience?
- wolfgke 11y ago> All non-ms programming languages are UNIX-first. They feel bolted-on when ported. This is not an argument against Windows, but against these programming languages and their maintainers. > And let us also not forget the complete freedom you have on UNIX systems. There are lots of commercial UNIX systems that have much more restrictive licensing terms than Windows. > Another benefit is, the lower level APIs are the same they were two decades ago, some are even older. And that API surface is much smaller. You basically learn them once, and they're good for life. The same holds for WinAPI etc.
- melted 11y ago1. Be that as it may, no one is idiot enough to create their life's work on a proprietary platform. 2. Which is why commercial unixes are being supplanted by FOSS. And it far easier to do than, eg porting anything from Windows to anything else. 3. WinAPI is a verbose, poorly designed turd, so that doesn't really help your argument any.
- latkin 11y agocmd.exe and batch script are horrible, no argument there. Powershell is a huge improvement, though, and in many ways far surpasses the unix command line environments. You have real objects at the prompt, with fields and methods, you aren't just wrangling plain text all over the place. Naming and parameter sets are consistent and non-cryptic. Everything is tab-completable (command names, parameter names, [some] parameter values, types, registry keys, paths, history, etc, etc). Writing new shell commands is super simple. Parameter sets for scripts and shell commands are completely declarative, no more manual argument parsing. Not to say there aren't weak spots: performance and the error-handling model come to mind. Disabling execution of scripts by default, in a scripting environment, also a massive facepalm. There's also the separate-but-related matter of the terminal host environment itself, which has been historically terrible on Windows. At least with Win10 that's finally moving in the right direction. Anyways, it's a shame people still think "Windows CLI" == "cmd.exe" because most of us moved past that 6 years ago when Win7 included Powershell by default.
- melted 11y agoOne thing I don't get is why does powershell have to be so shitty as a programming language? It literally doesn't look like anything else on Windows. Also, the handling of _interactive_ command line in powershell is atrocious.
- ygra 11y agoHow do you think should it look to be more in line with everything else on Windows? Like VBScript? Batch files? C#? And what bothers you about the interactive command line?
- melted 11y ago>> And what bothers you about the interactive command line? Try zsh with a decent dotfile setup, and you'll undersstand. Until then it's like explaining colors to a color blind person.
- 11y ago
- krylon 11y ago> Win32 is actually not that bad Having written code for Win32 for a while, I kind of have to disagree. Compared to Gtk+ (I admit, I only used it from Python/Perl/Ruby) or Qt, building GUIs in C/Win32 is a huge pain. I only had very brief contact with Win32's threading API, but it looked like that was indeed more fun to use than pthreads.
- wolfgke 11y ago> Having written code for Win32 for a while, I kind of have to disagree. Compared to Gtk+ (I admit, I only used it from Python/Perl/Ruby) or Qt, building GUIs in C/Win32 is a huge pain. On the other hand: WinAPI stays (even binary-)compatible with new versions of Windows. Gtk+ on the other hand is replaced by newer incompatible versions all the time.
- AgentME 11y agoApplications can depend on old versions of libraries. Keeping compatibility forever isn't a goal of libraries like it is for operating systems.
- wolfgke 11y agoBut if one wants to use GNU/Linux on a desktop (in opposite to the server) the desktop libraries are a part of the operating system - thus keeping compatibility for desktop libraries is keeping compatibility for the operating system.
- krylon 11y agoYes. For better or worse, Microsoft does a really impressive job at maintaining backwards compatibility. (Although I feel for the poor programmers that have to make sure twenty year-old applications that grossly abuse the documented API keep running.)
- catnaroek 11y agoThe WinAPI's closest analog in Unix-land is POSIX, which is just as horrifying. Gtk+ vs. WinAPI is apples to oranges. IMO, even WinForms and Visual Studio's form designer are infinitely better than the mess that is Gtk+ and Glade. I haven't tried Qt too seriously, but my impression of it is that its object model combines the disadvantages of C# (less than adequate support for generic programming) with those of C++ (manual memory management, not even aided by smart pointers).