Hacker News new | past | comments | ask | show | jobs | submit login

Because Visual Studio isn't on every platform yet? The answer to your question is yes, btw. I spend most of my time in Ubuntu and I've also been forced to get my own projects to compile on my MacBook. It sucks, if that's what you were getting at. At least make a point.



It's taken Visual Studio quite some time to get up to feature parity for things like C++11/14/17. A year or two ago was a super frustrating time to be writing modern C++ that supported Windows. Oh, I can't use that feature here. Oh, this networking API call is slightly different from every other platform. Oh, this same function exists but the Windows team changed the name to be camel case instead of using underscores.

And if you're working on a cross-platform project, it's probably using CMake or something similar. The development cycle of `cmake .. && make` is simple and easy. As far as I could tell, Windows builds were not as straightforward. It's been awhile so maybe they've improved it, but I would hardly call their developer tools "unequaled"

I just want to install Clang in a straightforward manner, call the above-mentioned `cmake .. && make`, and have an exe waiting for me. Is that possible now? It wasn't in the past which is why I'm highly suspicious of your "hands down developer friendly" comment. Windows always seems to be the platform that has to do things slightly different, and has offered the most friction when developing projects that run on OS X, Linux, and Windows.

EDIT: I would also like to add that most CI services offer at least G++ or Clang++. AppVeyor seems to support Windows builds with MSVC but isn't free. This is yet another hindrance to smooth cross-platform development.


I laugh when you bring up compatibility issues because man have I grappled with them, too. You won't hear me say they're on the bleeding edge of c++ standards. It's their IDE that compels me to speak on their behalf. I do get what you're driving at, though.


That's fair. I first used Visual Studio with C# and loved the debugger and code refactoring tools. And I use it occasionally when logging statements just aren't enough in C++.

So in that regard, yes their IDE is one of the best, but their platform sort of diminishes the developer-friendliness of the whole experience when developing on Windows.

I need to check out CLion again, haven't tried it since they released one of the first versions.


Visual Studio is the commercial compiler with the best support for things like C++11/14/17.

Have you ever used other ones? Some of them on the embedded space don't even support C++11!

Ever you ever tried cmake besides BSD, GNU/Linux, Windows?

There are lots of other platforms out there, have you evaluated the experience on those platforms against Windows?


Is it now? Then I need to try it again. Some of my claims are probably outdated at this point if VS has improved a lot. 1-2 years ago their C++11 support was behind G++ and Clang.

I'm speaking mostly from a gamedev perspective, I don't write embedded C++. Same story with CMake, only used it on platforms where someone would/could play a game.

Does Windows offer a superior development platform when doing embedded work compared to BSD/Linux/OS X?

I prefer to work in a general text editor alongside simple command line build tools, which probably explains my dislike of most Windows dev tools.


> VS has improved a lot. 1-2 years ago their C++11 support was behind G++ and Clang.

Except there are quite a few commercial compilers to choose from, not only those three.

> I'm speaking mostly from a gamedev perspective, I don't write embedded C++. Same story with CMake, only used it on platforms where someone would/could play a game.

Sony and Nintendo SDKs are Windows based.

> Does Windows offer a superior development platform when doing embedded work compared to BSD/Linux/OS X?

The majority of the embedded vendors SDKs are Windows based and they have their own compilers. Not everyone is doing gcc and clang forks.


VS/MSVC has improved a lot. There are details here: https://blogs.msdn.microsoft.com/vcblog/2016/06/07/compiler-... but the long and short of it is that we are working on achieving complete C++98/11/14 compliance by (hopefully) the end of this year. And we have a number of C++ draft standard features implemented already, in both the compiler and the libraries.

Additionally, we're shipping a number of versions of Clang in VS (targeting Windows, targeting Linux/IOT, targeting Android/iOS) and contributing to the community. We're looking seriously into CMake support and contributing back to the community. And the VS Code editor runs on Unix-based OS with IntelliSense, debugging, etc.

So yes, VS has improved a lot, but we still have work to do.

I'd love to chat with you if you have questions. My email is firstname.lastname@microsoft.com. My full name is on the blog that I linked to but I'm really not that hard to find online.

And I've got questions for you if you use Clang and have any interest in Windows. Send me mail and we can maybe set up time for a phone/Skype call.


You guys are doing awesome work on Visual C++, I keep playing around with it, although nowadays I spend my time between .NET and JVM stacks.

However, C++ is one of my favourite languages (minus C parts), that I still reach for private projects and when I need to step out of .NET and JVM.

Not sure if I am the one you want to talk to, as I do find Visual C++ has actually one of the best supports for C++98/11/14 among commercial C++ compilers.

I do spend most of my developer time on Windows actually.


RE `cmake .. && make`:

cmake .. && cmake --build . --config RelWithDebInfo works for me.


Thank you, I'll give that a try next time. Wasn't aware cmake could handle running the build system like that.


Also, install a copy of Ninja and try

cmake -G Ninja

It'll speed up your build by a lot in most cases.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: