DEV Community

Ting
Ting

Posted on • Updated on

为什么我选择了苹果开发

2010年、2013年、甚至2017年的我,一定不会想到,自己参加工作后的第一种工作内容,是苹果平台软件开发。

在决定自己将要至少从事几年程序员的职业后,摆在我面前的一个重要问题:做哪个方向?

当时,受到移动互联网浪潮的影响,大部分“转码”的同学都在学习后端开发。无论是传统的J2EE、PHP、RoR,还是新兴的Golang、NodeJS、Python等后台开发语言和框架,大家都走在一条“狂刷LeetCode、猛做项目”的康庄大道上。而余下的同学,则五花八门:前端、机器学习、网络安全、硬件驱动、测试等等。一时间方向众多,让我这个初入编程大门的人挑花了眼。

我的编程历史可以追溯到文曲星上的“GVBASIC”时代。中学阶段的编程则从初中的VB6.0和Macromedia Flash,到高中的Visual C++ 6.0,实际上只学了个皮毛,根本连当年那些牛人搞的NOI之类的活动边儿都没沾到。大学本科阶段的编程完全等于MATLAB和Verilog——完全的面向过程编程,几乎不涉及任何设计模式、代码结构、模块化等等软件工程的知识。

因此,来到将要选择编程方向的路口,摆在我面前最可行的两条路:更偏向用户界面的编程,和/或更偏向通过编程解决一个实际问题。

我在2018年下半年接触到iOS应用程序开发与Swift这门编程语言。简而言之,Swift是我所接触过的面向对象的编程语言里,设计模式最为合理、语法最清晰简洁的语言。它吸取了过去20年里主流语言的诸多优点:优化后的值类型、编译器约束的强类型检查、自动引用计数、异步关键词;也引领了许多潮流,促使其他语言进化:富枚举类型、协议设计模式、合理的可选类型和错误处理。在Swift面世之前,这些语法特性大多只是零星分布于各个不同的语言当中;Swift横空出世后,许多主流编程语言都跟进补足了这些好用的语法功能。Rust、TypeScript、Kotlin、Dart等等新兴语言,更是像素级借鉴Swift的优秀设计模式,某种程度上使Swift成为了“学习一次,融会贯通”的最佳切入点。苹果公司站在微软C#“巨人的肩膀”上,将编程语言的易用性,提升到一个新的高度。

而iOS上的两大官方UI组件库:UIKit/SwiftUI,则是我从开始编程以来,见过的最优秀的原生库。在此之前,为了写用户界面我尝试过许多方案:MFC、GTK、前端三件套、PyQt、甚至MATLAB自带的GUI工具。这些工具配置复杂,使用起来不流畅,想设计出简洁自适应的现代化UI难如登天。iOS的UI极大地减轻了“开发者兼职界面设计”这件事带来的心理负担。写功能的同时捎带手就能把UI搞定,开发的体验非常好。

回到标题中的问题,我为什么选择了苹果开发?

  1. 我希望自己写出的程序是“高可读”的,即使完全不懂编程的人,也能像阅读常规文本一样理解程序语句的含义。
  2. 我希望自己写出的程序运行在任何时代当下最好的平台上,拥有最先进的性能与功能,充分发挥硬件的优势。我不希望自己的程序因为需要满足兼容性的要求,而变得冗长、需要取舍、运行缓慢、充满跨平台配置。
  3. 我希望自己写出的程序拥有谁都可以理解、上手即用、简洁易懂的用户界面。就像谷歌首页的搜索框、苹果设备的面容解锁、谷歌地球一样。
  4. 我希望自己写的程序和现实世界存在直接联系。反例是完全和机器打交道的程序,例如硬件驱动、服务器分布式调度程序、测试集成发布脚本等等。

简言之,如果从事编程,那我希望自己做出的贡献是熵减的,能够让人们的生活和工作更轻松,而非反之。

苹果平台软件开发,在我转码的时间点,是这些问题最好的答案。🍎

Top comments (0)