- 浏览: 830200 次
- 性别:
- 来自: lanzhou
文章分类
最新评论
-
liu346435400:
楼主讲了实话啊,中国程序员的现状,也是只见中国程序员拼死拼活的 ...
中国的程序员为什么这么辛苦 -
qw8226718:
国内ASP.NET下功能比较完善,优化比较好的Spacebui ...
国内外开源sns源码大全 -
dotjar:
敢问兰州的大哥,Prism 现在在12.04LTS上可用么?我 ...
最佳 Ubuntu 下 WebQQ 聊天体验 -
coralsea:
兄弟,卫星通信不是这么简单的,单向接收卫星广播信号不需要太大的 ...
Google 上网 -
txin0814:
我成功安装chrome frame后 在IE地址栏前加上cf: ...
IE中使用Google Chrome Frame运行HTML 5
Something like one year ago I switched from Linux to Mac OS X. It was
not an easy switch if you think that my desktop on Linux used to be this one
, that is, just fvmw2 with a minimal configuration, super fast virtual desktop, border-less windows.
Why I switched after more than 12 years of Linux? Actually I didn't
decided to switch, just I got a macbook because I wanted to hack a bit
with the iPhone SDK and with Mac OS X itself. I installed Linux and Mac
OS X in multi boot, and for a few weeks the user interface of Mac OS X
was impossible to use for me. But after a few more weeks I was using only Mac OS X for everything.
For the first time I had a system that was working out of the box
in all of its parts, it was a good desktop experience with consistent
behavior. Screen sharing was cool when working with remote people, no
need to hack configuration files or to check why my webcam was not
working. To try new programs was as simple as downloading the disk
image, opening it, and click on the icon
. And.. as optional,
the system still usable and responsive while it was performing a lot of
I/O! Not something Linux users are used to see.
Note that I'm not the kind of guy that don't want to hack with the system he is using. I even wrote
, my drivers
, in the past
.
But it was years ago and I was still willing to trust that Linux after
all was young and that it was improving in the desktop side. Now enough
is enough, with my computer I want just to focus on what I'm doing
without spending hours trying to fix unrelated desktop stuff.
The strength of Linux, or why Mac OS X is weak as development environment
When I say environment
I don't think about an IDE or
something like this. I used to program with a terminal and vim, and I
still code this way on Mac OS X, so in this respect nothing changed.
What I'm missing are a number of important tools that made the Linux
experience so much comfortable. So here is my list of what's wrong with
Mac OS X, or if you want to read it the other way around, of what is
cool with Linux.
Valgrind
. If you are serious about writing C code you can't live without valgrind
.
Valgrind turns you into a better programmer. The code you produce is
times more reliable after you discover this tool. It is invaluable, and
guess what... it started to be usable for Mac OS X only lately, then
Snow Leopard came and broken everything already. There are patches that
make it barely working with issues (AFAIK things will get better when
the new source code of Darwin will be relased), but, this is one of the
most important tools of a C developer together with the compiler, it
must be rock solid.
Apt-get
. Homegrow, Fink, and alike, are great tools, but
seriously, they are no way as cool as the apt-get in a good
distribution like Debian or Ubuntu. You can find tons of libraries,
full systems, with perfect dependencies, fully managed by people that
are serious users of this projects, that will tell you that something
changed in this new release when you upgrade, "do you want to
automatically fix your old config file?" or things like this.
And... the coverage
of tools is impressive. From
the mainstream to the almost unknown library, there is almost
everything. Want the GD lib for Tcl? There is. Want an old release of a
lib? Sure. Documentation, full application servers, everything. I can
turn a freshly installed Debian system into a production server with
everything inside to run a web application in one hour or less (every
system administrator can). It's wonderful. And guess what? Developers
need to simulate the systems they are developing for, in short time and
without too much efforts in order to be productive.
API stability
. Mac OS X API, excluding the POSIX calls, change
simply too often for my tastes, and there is nowhere the same amount of
information you can find about Linux. For instance I compiled nmap
yesterday for snow leopard, and guess what, it was not working, unable
to open the interfaces. The compiled binary I downloaded from
insecure.org worked against the loopback interface but not against the
wifi one. The interface to capture raw frames from the airport extreme
changed again with snow leopard, breaking valuable programs like Kismac
. It's not an open platform so this changes are even worse.
/proc filesystem
I know Mac OS X exposes similar informations in other ways, but I
sincerely miss the proc filesystem, it was a quick way to explore what
was going behind the scenes without having to remember hard-to-remember
names to grep.
Compiler
. Don't know why but gprof does not work with the
standard GCC (the one installed by the official Apple SDK). Tried to
compile applications with --arch i386 too, still not working. I bet
there is a trivial way to fix it, didn't googled, but it's not OK
profiling does not work out of the box with the official compiler.
This are the things that I'm remembering just now, but there
are more, little problems that I encounter in my everyday programming
experience with Mac OS X that I didn't had with Linux. I still continue
to use Mac OS X as my first development platform because while I code I
also want a good desktop to surf the web, tweet, chat, and so on, but
in order to do my paywork (that's about web development mostly) and my
open source development with Redis I've to use a Linux box constantly
in order to be more productive.
发表评论
-
为什么中国出不了扎克伯格
2010-03-12 08:01 1082他们已基本失去成为互 ... -
不会编程的程序员
2010-03-06 12:39 887我想这让人难以置信, ... -
让代码更美:10大编程字体
2010-01-21 13:36 1713日复一日的编写代码, ... -
Everything you need to know about Android 2.0
2009-11-07 21:03 1050Android 2.0 (formerly codenamed ... -
Top 10 Programming Fonts
2009-11-01 09:20 1537I’m a typeface geek, and when i ... -
Speed Up and Back Up Your Rooted Android Phone
2009-10-31 15:16 1033If you've rooted your Android p ... -
Five Favorite Web Applications of Designers
2009-10-18 08:36 897Webapps –compared to their des ... -
The Best Programming Language for a Lean Startup
2009-10-18 08:31 1166Think arguments between religio ... -
5 Excuses Bad Programmers Make
2009-10-16 16:51 670It’s a common problem, there’s ... -
How to Create a Twitter Feed on Your Web Site
2009-10-08 08:50 975Twitter has quickly become one ... -
How NOT to test that mysqld is alive
2009-10-06 09:35 859I had a call from a new custo ... -
CodeThatDocumentsItselfSoWellItDoesNotNeedComments
2009-10-06 07:56 678“When I first met the lead de ... -
The Evolution of a Programmer
2009-10-06 07:54 666High School/Jr.High 10 PRI ... -
将Web入侵消灭在萌芽之中——预防SQL注入
2009-10-05 08:38 1029国家互联网应急中心CN-S ... -
阿里要走102年 阿里的工程师能走多远?
2009-10-04 08:46 633很高兴看到阿里云的 ... -
支持云应用程序服务的PHP API
2009-10-03 08:14 984自称“PHP公司”的Zend Technologies发起 ... -
Java is dead, but you'll learn to love it
2009-10-02 08:32 1039A favorite hobby-hors ... -
程序员需要知道的97件事
2009-10-02 08:24 1407继架构师需要知道的97件事(参看InfoQ此前的报道)之后,该 ... -
Google Wave: There Will Be Backlash
2009-10-01 08:11 705Have you gotten your Google W ... -
A Letter To The Programmer
2009-09-30 08:25 795This is a letter that I would n ...
相关推荐
Abstract—This paper proposes COPE, a new architecture for wireless mesh networks. In addition to forwarding packets, routers mix (i.e., code) packets from different sources to increase the ...
ITU-T H.264:2019 Advanced video coding for generic audiovisual s
北美算法题。用于应对面试的算法题。
for the “High Efficiency Video Coding (HEVC)”. At the April VCEG/MPEG meeting, 27 proposals were evaluated and the results seem to be promising. Consequently, a “new” video standard may be defined...
通信原理英文版教学课件:Chapter 10 Channel Coding and Error Control.ppt
ITU-T H.264:2019 Advanced video coding for generic audiovisual services - 完整英文电子版(836页).pdf
ISO_IEC_23008-2:2020 Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 2:High efficiency video coding - 完整英文电子版(901页).pdf
Workable coding guidelines and extensive coding examples Quick lists of need-to-know information about Exceptions, Assertions, and Standard Template Library components A technique for ...
Distributed source coding is one of the key enablers for efficient cooperative communication. The potential applications range from wireless sensor networks, ad-hoc networks, and surveillance networks...
Korner Csiszar 1979年 关于传统的DMC信道信息理论方面的经典书籍。
NCCloud: Applying Network Coding for the Storage Repair in a Cloud-of-Clouds. 论文PDF格式。
Linux for Developers shows you how to start writing great code for Linux, whether you’re a Linux user with little or no coding experience, or an experienced Windows programmer. Leading IT trainer/...
《Error Control Coding》(第2版)在第一版的基础上进行了彻底的修订和更新.包括了过去20年间该领域所有的重要新发展。增加了线性分组码的网格、基于可靠性的线性分组码软判决译码算法。基于网格的软判决译码算法,...
Java™ Coding Guidelines: 75 Recommendations for Reliable and Secure Programs new book accomanpy to "the CERT JAVA secure coding standard
Dynamic Programming for Coding Interviews A Bottom-Up approach to problem solving.pdf
NCCloud: Applying Network Coding for the Storage Repair in a Cloud-of-Clouds. 这个真心好累,翻译了好久。给大家做个参考吧。
Arbiter好资料!提高硬件效率!很有用的资料!
Contents 1 Introduction 1 1.1 Division Algebra Based ...6.1 Coding for Wireless Networks 85 6.2 Trellis/Block Coded Modulations 87 6.3 Other Issues 88 6.4 Conclusion 89 Acknowledgments 91 References 93