有没有可能从零开始学习苹果的新语言Swift?
一、这种语言属于非主流如果你以它为主要语言,你很难靠它找到工作。换句话说,你将很少有机会参与实际项目。自然很难成为一个合格的开发者。
第二,语言不具备真正的跨平台能力。不能跨平台的语言不会有未来。目前“活着”的语言中,只有swift和Object-C是苹果的奇葩。。其他不能跨平台的语言都“死”了。依托苹果,虽然不会消失,但似乎很难对其未来有太多期待。
第三,语言本身太新,可供参考的案例不多。完善的教程不多,不利于初学者。
其实前两个问题可以合并成一个问题。因为目前主流的开发方式是“一次开发,处处部署”。每种语言可部署的平台数量不同,但开发成本几乎相同。所以,如果一次能部署更多的平台,就意味着语言更有竞争力。Swift,开发后只能部署到苹果自己的系统上。当部署在MAC OS和IOS之间时,差异很大,很难互操作。等于增加了开发成本。
如果你不太明白上面的说法,我给你举个例子。拿苹果的swift和微软的C#做比较。
比如你用swift做了一个小游戏,比如Snake。。这个项目当然可以在MAC OS系统上运行。之后你想在IOS上运行这个游戏。你会发现根本打不开。我得重新写一遍。所以这相当于两次开发,称为“N次开发”。而有一天你想在Android上运行它,你会发现你根本做不到,那就是“它没有可靠的跨平台。”
而如果用C#开发一个小游戏呢?当然可以在windows上运行。然后你想把它部署在MAC上?没问题,复制粘贴代码发布到MAC上就行了。Linux呢?同样可以做到,这就是所谓的“跨平台”。
什么是“一次性开发”?比如有一天,我想在Android上运行这个小游戏。当然,还是要依托“多平台”特性,发布为安卓版本(可以在windows系统上发布,需要安装JDK和安卓SDK)。。但是你会发现,虽然游戏可以打开,但是安卓设备上没有鼠标。之前写在windows上的代码都是用鼠标操作的,不可能控制蛇转弯。其实不用担心,用一个叫Unity3D的引擎把鼠标相关的操作改成触控操作就行了。不仅如此,有了Unity3D,你还可以把这个小游戏部署到PS4、Xbox等游戏平台上,用手柄进行操作。或者在VR设备上,使用VR眼镜上的控制器进行操作,只需要修改少量代码。。。。游戏内容是一样的,只是操控方式不同。不需要重新开发,只需更改与操作相关的代码,即“一次性开发”。
跨平台主流语言如下。随便选一个学。都是主流,有大量教程,只是学习难度不同。你可以根据自己的接受程度来选择:
JAVA (WINDOWS、MAC、LINUX、Android)
C++(几乎所有平台)
C#(几乎所有平台)
Python(WINDOWS、MAC、LINUX)
从学习难度来说,C++是最难的,也是非常难的。。。。JAVA一般比较难,C#和JAVA差不多。有些大神有足够的精力同时学习JAVA和C#,因为两种语言的语法几乎一样,类似于英语和美式英语的关系。。Python入门非常简单。据说有些国家编了小学生用的教材,但是只有语法容易,实际开发起来也很难。。而且项目越大难度越大,做大型项目会比JAVA和C#更难。总之,程序,没有方向就是无脑,而且难度相当大。