- 浏览: 849283 次
- 性别:
- 来自: 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 1113他们已基本失去成为互 ... -
不会编程的程序员
2010-03-06 12:39 918我想这让人难以置信, ... -
让代码更美:10大编程字体
2010-01-21 13:36 1733日复一日的编写代码, ... -
Everything you need to know about Android 2.0
2009-11-07 21:03 1078Android 2.0 (formerly codenamed ... -
Top 10 Programming Fonts
2009-11-01 09:20 1580I’m a typeface geek, and when i ... -
Speed Up and Back Up Your Rooted Android Phone
2009-10-31 15:16 1063If you've rooted your Android p ... -
Five Favorite Web Applications of Designers
2009-10-18 08:36 928Webapps –compared to their des ... -
The Best Programming Language for a Lean Startup
2009-10-18 08:31 1195Think arguments between religio ... -
5 Excuses Bad Programmers Make
2009-10-16 16:51 706It’s a common problem, there’s ... -
How to Create a Twitter Feed on Your Web Site
2009-10-08 08:50 1006Twitter has quickly become one ... -
How NOT to test that mysqld is alive
2009-10-06 09:35 882I had a call from a new custo ... -
CodeThatDocumentsItselfSoWellItDoesNotNeedComments
2009-10-06 07:56 707“When I first met the lead de ... -
The Evolution of a Programmer
2009-10-06 07:54 698High School/Jr.High 10 PRI ... -
将Web入侵消灭在萌芽之中——预防SQL注入
2009-10-05 08:38 1058国家互联网应急中心CN-S ... -
阿里要走102年 阿里的工程师能走多远?
2009-10-04 08:46 670很高兴看到阿里云的 ... -
支持云应用程序服务的PHP API
2009-10-03 08:14 1014自称“PHP公司”的Zend Technologies发起 ... -
Java is dead, but you'll learn to love it
2009-10-02 08:32 1066A favorite hobby-hors ... -
程序员需要知道的97件事
2009-10-02 08:24 1432继架构师需要知道的97件事(参看InfoQ此前的报道)之后,该 ... -
Google Wave: There Will Be Backlash
2009-10-01 08:11 739Have you gotten your Google W ... -
A Letter To The Programmer
2009-09-30 08:25 839This is a letter that I would n ...
相关推荐
《Grokking the Coding Interview - Patterns for Coding Questions》是一份专为北美算法面试准备的压缩包资源,其中包含了多种常见的编程题目模式。这份资源旨在帮助面试者熟练掌握各种算法和数据结构,以便在面试...
《ITU-T H.264:2019 Advanced video coding for generic audiovisual services》是国际电信联盟(ITU-T)制定的一份关于高级视频编码的标准文档,旨在为通用音频视频服务提供高效的数据压缩技术。这份标准是视频...
通信原理英文版教学课件:Chapter 10 Channel Coding and Error Control.ppt
研究生课程:《编码理论》 教材:《Error Control Coding》2rd 作者:林舒(Shu Lin)、D.J.Costello
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信道信息理论方面的经典书籍。
《ISO_IEC_23008-2:2020 Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 2:High efficiency video coding》是国际标准化组织(ISO)和国际电工委员...
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
This is a short document describing the preferred coding style for the linux kernel. Coding style is very personal, and I won't _force_ my views on anybody, but this is what goes for anything that I ...
### Syngress.Coding for Penetration Testers.Building Better Tools.2011 #### 标题解析 本书名为《Coding for Penetration Testers: Building Better Tools》,由Jason Andress和Ryan Linn合著,出版于2011年。...
- **Huffman Coding**:哈夫曼编码,一种基于概率的熵编码方法。 #### 基本概念 连续色调静止图像的数字压缩与编码主要包括以下几个方面: 1. **图像采样**:将连续色调图像转换为数字形式的过程,通常涉及像素化...
本书 , Coding, and Packaging Java™ Applications>>是eclipse官方rcp的推荐教材之一。书中由浅入深地集合rcp框架实现了一个聊天工具的开发。教材是英文版的。 该部分为书中源码