Switching to Linux for Windows development is a bad idea?

I was thinking about switching to Linux for C ++ development based on the Windows environment. It is a bad idea? My workplace uses Windows and Visual Studio for our projects (some C # and java too, but now I am only developing in C ++). If they decide to put me on a C # project, is development possible (mono?)? What are the difficulties of this kind of transition?

Will I have a problem with working on their projects and vice versa? I read somewhere that there will be problems with precompiled headers and such (we use them) and encodings (tabs / spaces, line endings, etc.).

If it's not too hard to do for this switch, how do I get started? IDE? Vim + do?

Thanks.

By the way, we are doing PERMANENT Windows software.


EDIT: Thanks guys, I think it makes sense.

+6
c ++ linux windows cross-platform development-environment
source share
9 answers

It is a bad idea. I see at least two reasons:

  • Development on the same OS you write software for
  • Visual Studio Stones
+25
source share

Stick to Windows if you are developing for C ++ and C #. The Visual Studio debugger is absolutely brilliant, and it seems that most Linux IDEs are not comparable (except for Eclipse for Java stuff). In addition, it is likely that you will use a different compiler if you are running Linux, and this can cause very strange errors.

+8
source share

I'm a Mac user (ex-FreeBSD guy), so I understand your gut feeling. In short: you will want to use Visual Studio. This is the best tool for your C # projects, period. It is also the best tool for your Windows-based C ++ programming. Even if it is not, your testing will suffer if you do not run the OS on which it will run.

On the bright side, always do your development in a virtual machine. Especially on Windows. Use a control source and often take snapshots of your virtual machine. When you do this, it does not matter if you are running Linux or OS X on your host.

Greetings

Nick

+4
source share

Not a good idea, since support for Windows Forms in mono is not yet complete. Linux C # developers typically use GtkSharp for the GUI, which will add a different dependency to your application and is very different from Windows Forms. But GtkSharp is not bad either. I especially like the GTK packing box feature because it makes my controls (err, widgets) much easier to resize and automatically fixes all DPI resolution issues.

But there is the likelihood that your existing code may have other dependencies that Linux does not have, especially unmanaged code called using P / Invoke. If this happens, development work on Linux may not be possible.

+2
source share

I am currently developing on both Windows and Linux. It is very useful for me to compile the same code under these two (or perhaps more) platforms, as you may find some coding errors thanks to vC ++ and some others thanks to gcc. Of course, the most important platform is the one for which you are developing. If your application will run on Windows, develop it on the same platform and only if you can allocate more resources, try connecting it to Linux or another. In any case, a good habit of thinking about portability during development, this implies the use of standard solutions as much as possible

+2
source share

I switched to creating web development on Linux, here is what I personally found

To do everything right, which does not cause problems at the end (using special software), I must have a virtual machine. The wine is not far enough to be stable for the software I need

Also, for my specific needs, just the whole “system font”, which is different from the others, caused a lot of problems with b / w windows and unix / linux scripts

I am going to return to victory. I LOVE LINUX, but in a specialized area where most of my clients use windows and IE .... I need to work with what they have ... I think this is the smartest performance

(personal opinion, not a mandate from God)

Tim

+1
source share

I suggest sticking with windows. Windows is great for developing Windows. Linux is where you can write cross-platform stuff / a specific Linux file (if you want). I tried Mono to learn C #, it worked on toy examples, but not for some parts of .NET. I switched to the windows. I can’t imagine that it’s a good idea to switch to Linux. I do not intend to be offended, this is just my opinion.

+1
source share

If you are missing a lot of Linux - and you need to stay in the Windows box to interact with your team and your working application - install Cygwin and the GNU Win32 tools .

+1
source share

If you absolutely sell Linux, VMWare is very good for starting a virtual machine, and if you compile your Linux / cross-platform programs using the mingw toolchain, adding one dependency that may be static, you should not get any Windows errors.

0
source share

All Articles