作为一个程序员,你为什么不写独立软件(如 OS X 或 iOS)而去为企业打工?

回答请从两方面来谈: 1. 给App Store开发程序的难度; 2. 质疑这条新闻的普适性。 或请分析App Store 相比其他软件分销平台的定价,消费者群体购买意愿和流量等优势(或者劣势) 一个给 Mac OS X 和 iOS 写语言文档搜索和管理软件(Dash)的个人,通过在App Store上卖 app(Mac 版 20 美元,iOS 版 10 美元),税前年薪达到 20 万美元以上: My Year in Review: 2014 既然如此,为什么不是每一个有能力的程序员都去App Store展…
关注者
1,440
被浏览
291,836

116 个回答

为什么不做?

因为一般程序员:
写不来小说*(A Dark Room),弹不来吉他*(Real Guitar);
不通音韵*(Cytus),不懂曲赋*(CiCi),不识五谷杂粮;
没见过明清木家具*(榫卯),没看过《在路上》*(一个 One);
不喜欢科幻和 AVG*(Dysfunctional System),不了解二次元*( iACG,被窝 App,喵特,半次元);
不会化妆,不懂保养,不知道怎么搭配女装*(美丽说);
没约过泡*(陌陌),没抽过LSD*(Steve);

赌 50RMB 知乎程序员除了我没有做过女装模特的。

iOS程序员的本质并不只是程序员,而是PM+Programmer+Marketing+Designer;这种组合是一个start-up团队核心配置。你说的税后多少USD,其实就是一家创业公司的收入,只是一人start-up而已。

<del></del>

别说我不客观,至少UI和iOS端我都能做,市场和PM得靠别人。

我来说下某次去Hackthon的时候配置:我画UI,之后还写了一个地图定位纠偏的东西,然后另一个是iOS,两个人数据库和后端,还有一个专门挑战UI风格兼职debug,然后最后我把文案写了。

你说我要是全部能一个人包我还去个屁大公司。

*

<del></del>


我给你们举一个例子:A Dark Room for iOS


Amir Rajan,我是因为 ADR 翻译要授权认识了他和 Micheal,然后这两人水平很高麽?实话实说:不见得。

比如 Micheal,写 ADR 的时候用了 JavaScript,但是代码风格稀烂,然后把道具名字写在变量名字里面,导致后续 U77 翻译的时候直接快吐血;U77的 CHN 翻译传到我 github 上时候我还重新写了 readme;

之后我邮件问他,翻译怎么办,你准备怎么搞到原版里*(做一个切换语言接口)……然后他直接说他也不知道……还好他代码是 github 开源了,有人用 editPro 这个工具替他重新造了一个轮子。

诸位大神肯定要笑他代码稀烂,连一个预留接口都没写吧?但是人家是能写小说的人;ADR 的抽出来的纯文字版本拥有非常强大的生命力,而且 Micheal 虽然用词简单但是触动人心的力量不输给我读过的很多著名欧美科幻短篇。

然后是 ADR for iOS,我很早就下了,当时没发现 bug,但是后来 Amir 在自己的 log 里写,说第一版就有一个直接 crash 的 bug……卧槽,一个移植游戏(纯文字),开发了半年,第一版有一个 bug,直接 crush!你说这代码水平稀烂吗?而且最后在 log 里写自己伤心哭了*(我能理解)。

这个 bug 是为什么造成的呢?

Nov 8, 2013: One of the Worst Days of My Lifepermalink

It took a full 7 days. But A Dark Room was finally in the App Store. I downloaded the release version of the game on my iPhone 5 and was able to play it. It was an unreal feeling given how much work was put in. I know Michael tweeted about the release. I was hoping that many people would tweet about the iOS version. It was 6 months since the Hacker News post of A Dark Room. Everyone who upvoted the game probably have forgotten about it by now. But maybe it would go viral like the web version did.

The first reply to Michael’s tweet came in. I was sick to my stomach: “The game just crashes, I have an iPhone 5s”. I screamed at the top of my lungs, broke down, literally fell to my knees and cried. No one wants to see that on their release day. No one should ever have that happen to them. I tried my wife’s iPhone 5s and it was crashing there too. I texted my friend Eric Sowell and the game was also crashing for him. At that moment I wished I never spent all that time building it.

I pulled myself together and put a debug build of A Dark Room on my wife’s iPhone. It crashed immediately with a runtime exception (the error itself is a blur now, but I remember it having to do with compilation flags). My assumption at this point was it had something to do with 64 bit architecture of the new iOS devices.

I drove (sped) to the Apple Store in the Parks at Willow Bend Mall, and bought an iPad Air to test out my theory. I sat at the food court, took the iPad out. I loaded up the developer certs and deployed a debug build of the app. It crashed there too. I ended up explicitly setting the compilation flag to armv7 for all libraries I was referencing. This fixed the debug build.

I repackaged the app and via iTunes Connect, requested an emergency release of the app. Apple got back to me and approved the emergency release. I pushed up version 1.1 of the app. Then I just had to wait… nothing really I could do. I was taking part in a NodeJS competition at the time. So that helped keep my mind off of it.


原来是64bit 的 iOS 设备不兼容造成的故障?
我半信半疑,一个是 Apple 官方给的 API 等不会这么 sb,另一个,Amir 用了 NodeJS等,有可能是那个出了问题。

最后看到:
I ended up explicitly setting the compilation flag to armv7 for all libraries I was referencing. This fixed the debug build.

I still have no idea why setting the compilation flag to armv7 worked. But I’m not about to change that now. To this day, it’s still extremely stressful deploying to the App Store. I have no idea if the instant crash will come back. I can’t recreate it using the simulators either.

很多技术大佬可能要开喷了,armv7为啥解决你都不知道?我之前在SOF也看到了很多问题,其实都是有大神写解答的……要是换在知乎,Amir 问一个:我的 iOS 程序 Bug 了,大家看看,估计会被喷滚粗吧?*(Again,Amir 可没 Google first 哦!)

再看看他的其他言论,还有之前邮件给我的时候吐槽微软 sb 的:



Cocoa 傻逼,.NET 傻逼,NodeJS 傻逼……我觉得 Amir 肯定会喜欢 Swift 的,没错吧?


说了这么半天,Micheal 和 Amir 成功了吗?

成功了。Smash On Ur Face



这是限免的时候的,7天,100万份下载!

而且之后 Amir 还在调戏 App Store,不停作死,一会把价格改成3.99刀了。

那么他的第一笔收入是多少?

Jan 1, 2014: First Check From Applepermalink

First check comes in. The grand totals for the month of November:

  • Revenue: $478.27
  • Downloads: 403
  • Reviews: 5 five-star reviews, 1 one-star review
  • RPG Rank: 567th at its low point, 27th at its height
  • Overall Rank: 1479th for two days (metrics below the 1500th placement aren’t kept in AppAnnie)


400刀,很少吧!花了6个月,第一个版本就 crash,尝试了.NET,Ruby,NodeJS,Obj-C,最后说每一个都是 sb,代码能力「稀烂」的两位程序员,第一个月收入是400刀,很开心吧!

是啊,都要哭出来了。

但是看看之后过几个月呢?

DateDownloads (UK)RPG Rank (UK)Overall Rank (UK)

3/30595911

UK 区排名第一,一天光 UK,就,下载6k 份!税后3k 刀一天!

服么?



后面这 sb 玩腻了,收费故意调高*(为了降低排名之类……),这个收入你们服气吗?最高月收入214,000 USD,正好是 U77翻译上线,我把汉化丢到 github 上的时候,Amir 邮件提到 A huge number 的时候我以为这 sb 胡扯蛋,结果他一放出来我直接尿了……


这两个人为什么能成功?是因为代码稀烂不写注释吗?是因为连我都看的出程序里 bug 多成狗麽?

不是啊,是因为他们两个是:

小说家、脚本家、设计师、产品经理、市场推广、独立音乐制作人、旅行爱好者、游戏狂人、喜欢在推特上精分、写 blog 的时候废话巨多。


用一个大家熟知的例子:ZUN


程序员,是他们无数重要的身份之一而已。


doublespeak games
看看 Michael 的新游戏设计:


屌麽?不屌麽?


顺便我之前 hackthon 一小时画了这么多版本 UI,不好枪毙不好枪毙,自己给自己改需求



是,大神们程序是屌,但是 Indie Developer 有可能跟你们走完全不同的道路。我代码是稀烂,而且我也不算是 iOS 程序员,但是我一边画 UI 一边 Debug 一边写文案——在知乎上我似乎从没有提过我 literature 方面的背景?也没有提过我初中高中的时候像 sb 一样写小说写了撕写了改,每天写短篇?

独立开发者,就是一个start-up 团队。程序重要,但程序员只是你无数身份中的一个而已。我非常赞同 swift 是 sb 语言,但是独立开发者已经够忙了,用 sb 语言凑合也行,就像是独立开发者的 UI 设计被专业设计师喷,写的产品需求被 PM 笑,然后自己精神分裂同时运营七八个公众帐号……

你们这些只会写程序的你行你来?


*

最后讲讲为什么是 iOS*(或者 OS X)

  • 因为够简单,并且 Swift 等的出现证明了 Apple 想让编程变成越来越简单的东西
也就是拖图标,有点像以前玩过的慧烁单片机套件。Swift 一定是很弱的语言,但是他足够轻,马上上手马上用,如果是独立开发,你可以不考虑 Obj-C 这种东西。
Apple 一直在做这方面的努力。比如 AppleScript 和 Automaton 这种东西,一直没有去掉,一方面是以前出版业用得很多,另一方面,也是 Apple 的思路体现;
还有一点,我听说最多的是:创业团队急需一个安卓码农,很少听说过「在已有安卓应用的基础上做一个 iOS 版本」。

  • 因为 Apple 是邪恶的而且是反技术
系统层级的技术,比如替 iOS 写驱动,是会被禁止上架的;而 iOS 又没有别的收费分发渠道*(cydia 另说),很少有人做这种吃力不讨好的事情。
比如以前有一个可以通过 USB 将 iPhone 或 iPad 跟外置 USB 键盘连接的 越狱 App,在 Cydia 上收费卖,大概10USD 左右。我想了半天,后来发现产品需求大概是:想用 iOS 做主力办公平台缺不能忍受蓝牙键盘手感一定要接一个机械键盘的人……

如果你的 App 是技术结晶,是通过一些 Hack,或者如何如何巧妙绕过了沙盒机制,那么 Apple 是不会允许你上架的*(或许 MS Office for iOS 除外,我觉得它们用了未公开的 API?)。

OS X的例子有 MPlayerX 永久退出 Mac App Store;Miao 的 MAS 版本没有饭否微博的功能,等等。

如果你的 App 老老实实用了该用的 API,没有 Hack……但是你点子比较奇葩,也是会被赶出 App Store 的。

比如某著名的 Launch 应用——苹果说通知中心不能这么干,就不能这么干。
换句话说,如果有一个牛逼到爆的新 idea,然后好不容易开发出来了*(是你技术牛逼),查阅所有手册发现 Apple 没有禁止这么干,于是终于上架, 结果一周后, Apple 突然告诉你:Your App Triggle it.

你会吐血吗?

所以,Apple 一方面越来越禁止奇巧淫技,一方面把编 iOS 程序搞得越来越简单——对于替大公司开发 iOS 版本 App 的码农来说,这没有什么区别;但对于独立开发者来说,这就意味着——你在做一张高中数学卷,而 Apple 一旦发现你用高等数学的概念就直接判0分;而最后大家都考了 A,消费者把这么多卷子摊开,说,我喜欢字写得好看的那个。






参考资料:

  1. facebook.com/prismaticm
  2. 訪談音樂遊戲《Cytus》作曲家:eye media 呂紹綸 與 Rabpit Studio 高毓澤
  3. interviews with makers
  4. A Dark Room for iOS
  5. Kickstarter >> Dysfunctional Systems by Dischan Media
  6. Dysfunctional Systems
  7. 榫卯:握在掌心的家具世界,_名家访谈
  8. #36: 有「小姑娘情结」的 IOS 开发者刘旸 (词 Ci 作者)
  9. iOS App「词Ci」中的字体是什么? - iOS 应用
貌似有的人没用过Dash,不知道为什么Dash为什么这么赚钱,我放几个截图好了
1.简单检索一下uiview能看到所有和uiview相关的信息,包括Obj-C和Swift版本(读取本地的文档),效率比从Xcode看文档高出很多倍

2.本地文档中满足不了需求?没关系,可以直接把关键字链接到google和stackoverflow上直接寻找答案

3.以为Mac上的App只跟苹果玩?那你就错了

4.已下载到本地的文档

5.支持的插件,我现在用了Xcode,Alfred,PopClip,都支持一件跳转到Dash

6.请大家支持正版:)


PS. AppStore上有类似的 App,但是效果都不如Dash理想,好的App赚钱不愁,愁的是怎么做出一款好的App,不管是什么平台都是一样
PPS. Dash内购应该是20刀/128人民币