一个Windows程序员如何在Mac OS X上提高工作效率?

8
我在家使用 MacBook Pro 已经几个月了,我想知道是否有一本好书或指南可以帮助我成为更好的 Mac 程序员。也许是与 Beginning Linux Programming 相当的 Mac 版本。请注意,我不是在寻找如何编写 Mac 应用程序的资源,而是在寻找更普遍的使用 Mac 作为开发环境的指南。
背景:我是个白天的 Windows 程序员。多年来我还做过一些 Linux 和 BSD 的工作,尤其是在学校里,例如套接字编程、图形和make install之类的内容。在家里,我会在 Mac 上做 Java、Scala、PHP 等工作。
到目前为止,我一直在使用 Eclipse、QuickSilver 和 TextMate。虚拟机软件 VMWare Fusion、XCode 和 NetBeans 都已经安装了,但我没有使用它们。一个 DVI KVM 开关连接着真正的键盘、轨迹球和显示器。最近我通宵战斗着 MacPorts,发现我需要 x86_64。我遇到的最大挑战是配置 PHP。我不知道为什么他们不提供 MySQL 和 GD 库。最终,我通过搜索解决了问题,并从源代码编译了扩展程序。我有一种感觉,我没有得到备忘录,并没有阅读关于如何成为 Mac 程序员的基本指南,比如整个架构是如何工作的。一个 Windows 程序员如何在 Mac OS X 上保持足够的生产力?
相关: 设置 Mac 用于程序员 编辑:在我看来,我想要开发的特定类型的应用程序并不重要。它可以是 Java、Scala、PHP,正如我所提到的,也可以是 Cocoa、C++ 或其他任何语言。
我正在寻找的是一本特定的书籍、资源或建议,以使我成为更有效率的 Mac 程序员,最好是超过 "安装 XYZ" 的内容。

你想要编写什么样的程序呢?是Mac应用程序吗?还是用于自动化任务的脚本? - ghostdog74
我不理解键盘/轨迹球/显示器的重要性... - harto
为什么您认为Mac OS X会预装MySQL和GD库?而Windows不会呢? - Brock Woolf
@harto,在另一个问题中建议您购买一款体验良好的键盘和鼠标,我完全同意这个观点。在我连接了微软自然人体工学键盘4000、轨迹球和使用KVM的第二个显示器之后,我才完全转向Mac。 - Eugene Yokota
@Brock Woolf,不是MySQL或GD本身很难。与在Windows或现代Linux发行版中执行类似操作相比,我发现将它们的PHP扩展安装到Leopard内置的PHP中的过程很痛苦。 - Eugene Yokota
@eed3si9n这是因为你不应该修改内置的Leopard Web服务器。听说过MAMP吗? - Brock Woolf
6个回答

5

我大约五年前从Windows转换到Mac OS X,经常会有这样的想法:我在Windows上无法像在Mac OS X上那样高效地工作。

说实话,Mac OS X和Windows之间有很多细微差别。我认为人们这样想的最大原因(通常只适用于游戏玩家和开发人员)是他们试图像使用Windows机器一样使用Mac。你需要学会接受使用命令键而不是控制键等。

听起来你正在使用Mac,因为你必须使用它而不是你想使用它。一旦你习惯了它,它真的比Windows平台好得多。

我认为很多Windows程序员转到Mac后并没有努力去学习它,因为他们满足于认为自己已经"用了一辈子Windows"而全都懂了。我猜一旦你发现了Spotlight、Expose、Mac OS X Keyboard shortcuts等功能,你会发现自己在Mac上比以前在Windows上更高效,而且它实际上是一个好玩的操作系统。

看看这里可以获取一些最好的Mac应用程序这里这里。您还可以搜索“前100个mac应用程序”。

此外,我注意到您正在尝试在Mac OS X中直接设置某种Web服务器。它确实带有一个,但是如果您要添加MySQL和其他一些扩展,我不会使用MacPorts路线。获取VMWare FusionVirtualBox(开源)并在虚拟机中运行服务器。更加清洁。我有一个subversion/trac FreeBSD VM,用于处理我的本地版本控制。

我想补充一点,如果你现在还没有使用Xcode,你应该尽快学习并使用它。它比Visual Studio更好用,会让你的生活更轻松。
不要忘记,你可能已经花了几年时间在Windows帮助网站上,你可能需要在Mac上做同样的事情。每当你遇到使用Mac的问题时,请在ServerFault上提问。我们都非常乐意帮助你。
祝你好运。

我不得不在我的Mac上交换Command和Control的含义,这样我在处理Mac/Linux/Windows时才能保持理智。 - Nosredna
我发现将命令键放在键盘中央使得我更容易到达其他需要组合按键的键。但现在我可以在Mac和Windows键盘快捷键之间切换,甚至不用考虑它。这对我来说已经变得非常自然了。 - Brock Woolf
1
去年我买了第一台Mac(其中之一是单机身Mac Book Pro),我被“转化”成了Mac OS的用户。我也很快学会了与Windows的所有差异。对我来说,此时此刻已经没有回头路了。 - Ryan Delucchi
@Ryan 我知道作为Mac用户很有趣。即使你试图让我回到Windows,我也不会。这是在我使用它所有的生活后得出的结论 :) - Brock Woolf

2
如果你想要编写跨平台的东西,拥有一个虚拟机进行测试会非常有帮助。在Linux上,我一直使用VirtualBox,它也可以在OS X上运行。
至于选择IDE,很大程度上取决于个人偏好。Eclipse很好用,因为几乎有适用于它的插件。我的TextMate经验有限,但我当地的Ruby用户组对它赞不绝口。
最后,不仅是Mac,而是任何平台都适用的建议。学习你的热键,为你经常做的事情设置新的热键,并经常使用它们。不需要将手从键盘上拿开去通过几个菜单点击鼠标,这真的可以提高生产力。可能需要一点时间才能适应它们,但一旦它们成为第二天性,你会想知道你以前是如何没有它们生活的。

1
虚拟化也可能很慢,我认为作者并不是在询问如何在Mac上使用Windows,而是如何适应他的Mac。 - Michael Aaron Safyan
我并不是说他在虚拟机中编程。我是说,如果他正在编写一些可能在不同平台上使用的东西(在OS X中),那么虚拟机在测试方面是非常有帮助的。 - statenjason
让你的电脑按照你的意愿工作。如果这意味着安装一个带有不同操作系统的虚拟机,请去尝试一下。这样做可以更快地提高你的生产力,而不必重新学习其他随意的方法。 - Brian Knoblauch

2
我有一个和你类似的情况。我用Windows进行开发,大约一年前为了在家里使用(因为我转移到了办公室),购买了一台MBP。我发现很难在我的MBP上进行任何实际工作。不知怎么回事,我习惯了使用双屏幕的Windows环境。但是不要让这个阻止你。以下是我建议你应该得到的几个软件:
  1. Transmit - 好的ftp客户端
  2. MAMP - 几乎可以直接运行web服务器。适合基本开发
  3. Quicksilver - 可以快速找到应用程序
  4. Spaces以及手势(将手势配置为从一个屏幕移动到另一个屏幕,我使用三个手指滑动。太神奇了)
  5. Entourage - 用于电子邮件
  6. Terminal - 用于ssh(putty替代品)(已包含)
  7. Dreamweaver/BBedit/Textmate(全部还不错。但我喜欢Windows上的editplus。不是IDE的粉丝)
我猜你的问题并不是关于学习COCOA,而更多地是关于如何更有效地使用MAC。那么,上述工具可能会帮助你。不幸的是,你的问题并不太清楚,不知道你真正想要什么。

2
您似乎想了解Mac OS X在系统层面上的工作原理,而不是关于工具等方面的建议。如果是这样,我建议您从苹果公司的(非常基础的)Mac OS X系统架构指南开始,然后再转向入门Mac OS X,这应该足够让您有一个概述并开始使用。
从您的问题中不清楚您打算用编程时间做什么,但如果您决定追求Cocoa / OS X开发,我推荐Aaron Hillegass的《Cocoa Programming for Mac OS X》

1

基本上,你可以将你已经掌握的所有 Linux/UNIX 知识应用到 Mac 上。如果你使用终端 (/Applications/Utilities/Terminal.app),你可以运行所有你喜欢的 UNIX 命令。Mac 有一个特殊的命令叫做 "open",它相当于 Windows 的 "start" 命令(用于启动程序和文件)。你也可以使用 "open -a" 按名称打开一个应用程序(例如 "open -a Finder")。

你可能需要重新考虑 Xcode。Xcode 比 Eclipse 更快地打开,并提供非常好的语法高亮、括号匹配、块缩进等功能。Xcode 不必被用作 IDE,你也可以像目前使用 TextMate 一样将其用作代码编辑器。


我建议使用iTerm(http://iterm.sourceforge.net/)而不是内置的Terminal.app,它添加了许多好用的功能,如选项卡终端、透明效果等。 - Nate
是的,我也在我的Tiger机器上使用iTerm。然而,内置终端稍微更加灵敏,并且自Leopard以来支持选项卡。 - Michael Aaron Safyan

1

对于代码编辑(以及其他所有事情),请尝试Aquamacs(http://www.aquamacs.org)。它是Emacs的Cocoa本地版本,非常适合任何编程任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接