# Using an IDE on the Mac for Linux development?

**URL:** <https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650>\
**Category:** Factual Questions\
**Created:** [May 23, 2018, 2:42am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650 "2018-05-23T02:42:39Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![markn\_1](https://avatars.discourse-cdn.com/v4/letter/m/f9ae1b/32.png) [@markn\_1](https://boards.straightdope.com/u/markn_1)\
**Post date:** [May 27, 2018, 1:16am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/21 "2018-05-27T01:16:18Z")

</div>

> [@edwardcoast](#):
>
> Bring this back to my “cool kids” comments, is that what the cool kids are doing? They do Python development on their Mac OS with an IDE, and when they feel the code is ready they send it on over to the Linux server via GIT?

I think the cool kids are doing their development solely on a Linux system. Why would a Mac need to be involved? If I’m understanding your situation correctly, the only reason you’re using a Mac is because you already have it and don’t have physical space for a Linux workstation.

---

<div class="post-metadata">

**Author:** ![zwede](https://avatars.discourse-cdn.com/v4/letter/z/ac91a4/32.png) [@zwede](https://boards.straightdope.com/u/zwede)\
**Post date:** [May 27, 2018, 5:02pm UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/22 "2018-05-27T17:02:01Z")

</div>

The way we have it set up is that the entire dev environment is on a virtualized Linux box in a data center. This Linux box has the source code, GIT, runs the IDE (Eclipse) and a test server that the IDE can debug. We connect to the Linux box using either NX or XENDesktop. VNC can do the same thing but really only works on a local LAN, otherwise it gets sluggish.

Using NX or XENDesktop is surprisingly responsive. Very usable even when the client is on a different continent than the server (which is the case for me personally).

Further advantage is there’s no risk of losing a laptop with sensitive source code on it and if you manage to mess up the Linux box beyond repair a new one can be spun up from image in minutes.

---

<div class="post-metadata">

**Author:** ![edwardcoast](https://avatars.discourse-cdn.com/v4/letter/e/cab0a1/32.png) [@edwardcoast](https://boards.straightdope.com/u/edwardcoast)\
**Post date:** [May 28, 2018, 3:44am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/23 "2018-05-28T03:44:57Z")

</div>

> [@markn\_1](#):
>
> I think the cool kids are doing their development solely on a Linux system. Why would a Mac need to be involved? If I’m understanding your situation correctly, the only reason you’re using a Mac is because you already have it and don’t have physical space for a Linux workstation.

Yes, that’s correct. There are things I need to do on the Mac that don’t run on other platforms and I like the Mac OS too. But I wanted to see if that was not the popular platform of choice for doing Python development with an IDE.

---

<div class="post-metadata">

**Author:** ![edwardcoast](https://avatars.discourse-cdn.com/v4/letter/e/cab0a1/32.png) [@edwardcoast](https://boards.straightdope.com/u/edwardcoast)\
**Post date:** [May 28, 2018, 3:51am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/24 "2018-05-28T03:51:57Z")

</div>

> [@zwede](#):
>
> The way we have it set up is that the entire dev environment is on a virtualized Linux box in a data center. This Linux box has the source code, GIT, runs the IDE (Eclipse) and a test server that the IDE can debug. We connect to the Linux box using either NX or XENDesktop. VNC can do the same thing but really only works on a local LAN, otherwise it gets sluggish.
> 
> Using NX or XENDesktop is surprisingly responsive. Very usable even when the client is on a different continent than the server (which is the case for me personally).
> 
> Further advantage is there’s no risk of losing a laptop with sensitive source code on it and if you manage to mess up the Linux box beyond repair a new one can be spun up from image in minutes.

So just to clarify, you have an instance of Linux such as CentOS, Red Hat or Ubuntu Server running remotely and use a VNC-like application like NX or XENDesktop running on a what? Windows, Mac or a Linux Desktop version?

---

<div class="post-metadata">

**Author:** ![edwardcoast](https://avatars.discourse-cdn.com/v4/letter/e/cab0a1/32.png) [@edwardcoast](https://boards.straightdope.com/u/edwardcoast)\
**Post date:** [May 28, 2018, 3:56am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/25 "2018-05-28T03:56:03Z")

</div>

> [@Balthisar](#):
>
> Git during development is awesome, even from the first line of code. It’s like having a history of everything you do, and gives you great spots to revert to if needed. Creating a new branch to experiment with means you can just code and forget trying to track your changes. If it doesn’t work out, kill that branch, and you’re back at your last commit point. Git is like have super powers.

Super powers are good.

You don’t find it a burden to have to document your changes along with way in GIT? You prefer GIT over SVN?

---

<div class="post-metadata">

**Author:** ![edwardcoast](https://avatars.discourse-cdn.com/v4/letter/e/cab0a1/32.png) [@edwardcoast](https://boards.straightdope.com/u/edwardcoast)\
**Post date:** [May 28, 2018, 4:04am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/26 "2018-05-28T04:04:47Z")

</div>

> [@Francis\_Vaughan](#):
>
> Versioning in development is a significantly different beat to version control in deployed product. They are related, often intimately, but nobody in a modern development cycle should be delaying control until release. You are buying into a world of hurt if (when) things go awry. This buys you into an entire discussion of code development models and paradigms, bu even if you are a sole coder with a simple waterfall development cycle, There wil be days when you are thankful you put your first ever line of code under version control.
> 
> I agree needing to use brew or fink to build up the environment can get a little tiresome, but once done it isn’t a big overhead.
> 
> Access to the data files could be presented over NFS. I do assume this isn’t a live system you are developing against.  
> No idea about the cool kids, but I have certainly worked this way. Using Git is a big help as I could develop on any machine, and I spent time developing on my home Mac, and just pushed the work up to the repo, and deployed as needed from there. You can build a Python application installer that lives on a Git repo - even GitHub, and install the application anywhere with a single command line, not much different to using apt-get. This gets powerful and valuable quickly. You can link this to testing via services like Jenkins, and build a powerful continuous development environment. Once you try it you will never go back.

Yes, this is a local Linux box on the LAN, not a live production server.

Are there any security concerns with using GITHUB?

---

<div class="post-metadata">

**Author:** ![Francis\_Vaughan](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/francis_vaughan/32/3093_2.png) [@Francis\_Vaughan](https://boards.straightdope.com/u/Francis_Vaughan)\
**Post date:** [May 28, 2018, 9:31am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/27 "2018-05-28T09:31:14Z")

</div>

> [@edwardcoast](#):
>
> You don’t find it a burden to have to document your changes along with way in GIT? You prefer GIT over SVN?

Most people seem to have moved to Git. The local/remote repo paradigm is good, and Git provides a more consistent view of how you work, that once you get used to is very nice. Annoyingly Git and SVN share some commands that mean different things - different enough that you can get confused. I still find myself forgetting.

> [@](#):
>
> like NX or XENDesktop running on a what? Windows, Mac or a Linux Desktop version?

NX has clients for most platforms, I used to develop a day a week at home on a remote Linux box running NX on my Mac.Even over a pedestrian ADSL line it was silky smooth. You did need to ensure the remote desktop didn’t do any stupid graphics intensive things.

> [@](#):
>
> Are there any security concerns with using GITHUB?

Depends what you consider a security issue. Access is with ssh. So long as you have secure credentials it is no less secure than most similarly secured services. If you were doing classified or ITAR restricted work you would go to goal. Most commercial stuff should be fine. You can of course set up your own local Git repo very easily. People mostly find Github good for shared access, where sharing has as wide a set of semantics as you like.

Nowadays the cool kids will be doing stuff with a mix of Git, Jenkins and Atlassian tools. YMMV.

---

<div class="post-metadata">

**Author:** ![zwede](https://avatars.discourse-cdn.com/v4/letter/z/ac91a4/32.png) [@zwede](https://boards.straightdope.com/u/zwede)\
**Post date:** [May 28, 2018, 1:20pm UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/28 "2018-05-28T13:20:37Z")

</div>

> [@edwardcoast](#):
>
> So just to clarify, you have an instance of Linux such as CentOS, Red Hat or Ubuntu Server running remotely and use a VNC-like application like NX or XENDesktop running on a what? Windows, Mac or a Linux Desktop version?

Yeah, the dev machines are RedHat but any Linux distro works.

The clients can be anything. Most coworkers are on the corporate Win7 laptop. My machines are all Linux because I’m too cool for windows. There are some scattered Macs here and there. Both NX and XENDesktop have clients for all 3 major OS. XENDesktop also has a HTML5 receiver so the remote desktop runs in the browser. I mostly use that as it’s pretty neat. The remote desktop is just a tab in chrome.

---

<div class="post-metadata">

**Author:** ![Reply](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/reply/32/15952_2.png) [@Reply](https://boards.straightdope.com/u/Reply)\
**Post date:** [May 29, 2018, 1:17am UTC](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650/29 "2018-05-29T01:17:08Z")

</div>

Git is typically used for versioning and collaboration, but in this case, it can also just serve as a good file transfer system (better than FTP, similar to rsync).

If you really don’t want to develop on a local copy of the files and would rather just work directly off the server’s files, then you don’t need any of those – just open and edit the server’s files directly. This is easy in an IDE or text editor that can natively speak SFTP, but hellish otherwise (you’d have to download the files, edit them, save them, reupload them to the same place).

If all your files are on the server and you want to install the IDE on the server and develop exclusively on the server just using VNC from your Mac laptop, yeah, you can do that… it’s just not really a common workflow (because network latency is usually annoying, people don’t usually edit files on a live server that could affect their users, you might not want extra software like bloated IDEs or Java VMs running on your server, etc.). But if you want to, you can, yeah. At that point your server is also doubling as your workstation, so the risks of downtime increases with the complexity of your workflow. If that’s not a big deal to you, go ahead. Most people typically separate the two just so they can have an unstable development machine and a stable server where code isn’t deployed to until it’s already well-tested and relatively safe.

[Previous page](https://boards.straightdope.com/t/using-an-ide-on-the-mac-for-linux-development/814650.md?page=1)
