5 ms·
Too many people believe in the superiority of Linux as an OS for software development that they would consider it beneath them to even notice Windows toolchains
by HexDecOctBin 4y ago
Too many people believe in the superiority of Linux as an OS for software development that they would consider it beneath them to even notice Windows toolchains, and would then be flabbergasted by the idea of project templates.
- rightbyte 4y agoIn my experience "IDE lockin" is terrible to work with in the long run. After 5+ years trying to compile old Visual Studio or Eclipse projects is a horrible experience.
- HexDecOctBin 4y agoSure, I agree, though not anymore horrible than dealing with Autotools. Shitty developer tooling is a different question (and a very important one that I trying to solve), but I am simply talking about being unaware of the simplest features because of one's ideological blinders.
- AshamedCaptain 4y agoAnd I have quite the feeling it will be identical to compiling one of these "package managed" projects whose dependencies are expressed as Github URLs.
- jiggawatts 4y agoMine is the opposite. Visual Studio makes it a breeze to pick up some random person’s work, often after decades of time if the projects can be upgraded. Even if not… I recently installed Visual Studio 2015 in a VM to build an old project and it was perfectly fine. Can it show smiley emoji in string literals? No, but it does a lot more for me as a programmer than a text editor!
- josephg 4y agoThis isn’t my experience of running old VC++ projects. They usually end up with some weird linker errors because they embed a hardcoded DLL or something which was compiled with an old version of visual studio or something. You get a lot better at fixing these errors with experience, but I’ve lost count of the number of hours I’ve lost noodling with this stuff to compile some old code. Speaking of progress, I adore this improvement in modern languages. C#, Swift, Rust and nodejs all have officially defined project configuration alongside the source code. I expect to be able to “cargo run” any of my rust programs in 50 years from now just as easily as I can today.
- HexDecOctBin 4y ago50 years from now, "Swift, Rust and nodejs" might not exist. For that sort of time period, you either need a language whose compiler & runtime is easy to write (C, Forth, Scheme, etc.) or a language that compiles to standardised bytecode (C#, Java, etc.).
- josephg 4y agoWhy wouldn’t they exist?
- HexDecOctBin 4y agoBecause things die.
- jiggawatts 4y agoThat's not an issue with "Visual Studio as an IDE", but "Microsoft's C++ build toolchain" combined with specific issues with C++ the language itself, such as: not having a stable ABI, no truly common stdlib, no package manager, and weird linker conflicts due to the way headers interact with static values. This is the primary reason I've abandoned C++ programming in general, and I'm never going back. From what I can see, the alternative C++ toolchains from other vendors (and open source) aren't fundamentally better. They might paper over one or two issues, but rarely solve the core problem in a permanent way. These days I do only C# and Rust for the same reason you mentioned -- sane project, dependency, and build management.
- chaosite 4y agoBut the whole argument is toolchain integrated with an IDE (the I, remember?)
- jiggawatts 4y agoC++ toolchains in general are broken with or without IDEs. It doesn't matter if you're compiling from the command-line or a GUI, it's a trash fire either way. This problem is sometimes temporarily "fixed" by some approach, but the problem is fundamentally with C++ itself, making many basic things night impossible to solve. Eventually the new "simple" toolchain is adapted to support every possible scenario, and then madness creeps back in and we're back to square one. For example, I recently had to compile Chromium from scratch. It has a custom build system (of course), that is more complex by itself than all of the code that I have written in my entire life put together. It was written to "simplify" its builds. That's... crazy. I vividly remember the day I snapped and gave up C++. I was trying to compile previously working code and it was complaining that "__malloc" was undefined. This was a linker error with no further information. It didn't identify the source of the problem, and provided no clue on how to fix it. After hours of effort I simply gave up, switched over to C#, and never looked back. PS: A part of the reason C/C++ developers don't "get" why IDEs are so popular is precisely because C and C++ are so hard to write IDEs for! A single header file can mean different things in the same project depending on where and how it is included. Simply providing tab-complete and inline help is a monumental task. So most C++ IDEs are bare bones compared to Java or C#. They do basically nothing for the developer except the basics. PPS: The Rust team are all ex-C++ programmers and made the same mistakes in their language design, making IDEs very challenging to write for Rust. Don't agree? Remind me, how many IDEs are available that can do something as trivial as "extract method" in Rust?
- anonymoushn 4y agoRecently I followed someone's instructions to build a small C++ project on Windows and spent like 5 hours trying to get the right clang and the right cmake and the right ninja to invoke each other. The worst issue involved seemed to be that if you install "MSVC build tools" then cmake will auto-detect that somehow and call the ninja installed by that instead of the one in your PATH, which will pass windows-style flags to the clang in your path which does not know what those are. "Install MSVC to get required dependences but do not install MSVC build tools to avoid anti-required anti-dependencies" was not in the instructions, of course.
- oblio 4y agoYou're going outside the beaten path with cmake and ninja. Op is probably talking about Microsoft compilers and build tools.
- anonymoushn 4y agoWhat is the Microsoft-approved way of configuring a project to be able to build on Linux and Windows?
- oblio 4y agoIt's Microsoft. There is no one "Microsoft-approved" way of building GUI applications for Windows (or anything else for that matter), and you're asking for cross platform stuff :-)) The grandparent's comment was pointing out that if you take the default VS setup, which is usually MSBuild, it's quite self contained. As long as you have the corresponding VS redist, you can pretty much pick up an old VS project (one created with VS) and build it. I'm taking even about stuff from 20 years ago. Cross platform projects use cross platform stuff, which are obviously not developed by Microsoft, so caveat emptor. By your logic because VS integrates with npm, the issues setting up npm projects are their problem :-p
- Wohlf 4y agoFor all its warts Visual Studio is hands down the best IDE, the only thing even close is JetBrains.
- atomicnumber3 4y agoSince when are project templates windows only? I spent a year in college using KDevelop like 10 years ago and it had project templates, as did netbeans.
- HexDecOctBin 4y agoWell, most of the people who fetishise Linux/UNIX would also not use KDevelop because of their deep devotion to the UNIX philosophy. I'm sure neither KDevelop does only one thing, nor does it does what it does well ("well" as defined by UNIX enthusiasts wielding pipes and shells).
- ffhhj 4y agoMoved to Linux due to Win11 fiasco, and the command tools are actually much better, was able to run whatever .exe with Wine, and still use VSCode.
- atwood22 4y agoI’ve tried developing on Windows and found it to be terrible. Even at the most fundamental basic level, like how files get locked when opened and cannot be removed unless the file handle is closed. And deploying on Windows is even worse. How do you run something when the server starts? Modify some random registry settings to log in a user and then setup some startup items (all via a GUI) to trigger your software. And of course there is no good way to get your software onto the host. There is no ssh equivalent and ssh sucks on windows because of the aforementioned file lock issue. Windows devs I talked to built new machine images (because no Docker) for each deployment, a process that takes like 30 minutes to an hour. Oh, and there was that one time I accidentally let Unity install Visual Studio instead of VS Code. What a terrible IDE. By modern standards it’s so slow and heavyweight.
- oblio 4y agoYou don't seem to be having a ton of Windows experience and it shows. It's like someone who used Linux for a few weeks complaining, the entire community would pile on and send you to RTFM :-) Task Scheduler has a CLI. It's even usable from PowerShell. There are tons of remoting options, etc, etc.
- majkinetor 4y agoShameful how people come from one OS to completelly different one and expect the same things. All mentioned things are easy once you know where you came to and know how to behave properly.
- oblio 4y agoThis happens super frequently. Someone with a ton of POSIX experience, gained through blood, sweat and tears over years and years, moves over to the "easy" Windows world. Then they complain about not being able to do the exact same things on day 1, with 0 effort. They'd be laughed at for ages the other way round, and justifiably so.
- 4y ago