热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我看Kotlin

阅读文本大概需要2分钟。前几天,Kotlin官方在旧金山举办了第一届的KotlinConf大会,大会上公布了Kotlin相关的一些进展,其中,宣布了一条重大消息:Kotlin支持i

我看 Kotlin

阅读文本大概需要 2 分钟。

前几天,Kotlin 官方在旧金山举办了第一届的 KotlinConf 大会,大会上公布了 Kotlin 相关的一些进展,其中,宣布了一条重大消息:Kotlin 支持 iOS 和 Web 开发。


一时间,各大 IT 媒体的头条类似「重磅」、「重大消息」等均被 Kotlin 占领,再加上 Kotlin 很早就支持 Android,很多程序员们也大呼,学完 Kotlin 可以直接全栈了,但是,我不得要给这部分人泼盆冷水。


从 JetBrains 的角度,可以理解他们的策略,他们当然希望 Kotlin 可以跨平台发展,这样可以覆盖的面更广,一旦成功之后,将会极大的提升开发效率,减少企业的开发成本,也会让越来越多的领域接受使用 Kotlin。


但是这条路很难走,超级难。要知道以跨平台著称的 Java 直到现在,也没法完全的跨平台,Java 的跨平台也只限于 PC 端,无论你是 Windows、Mac 还是 Linux 都可以直接运行 Java 程序,现在虽然 Java 也可以用来开发 Android,但是涉及到移动端,这不是真正的跨平台,Android 开发只是使用了 Java 语言而已,其内在的底层架构和开发方式跟传统的 Java 程序开发差异很大。


移动互联网时代,其实很多编程语言都在探索跨平台开发,可能有些人不知道,Ruby 领域有个产品叫做 RubyMotion,这个产品可以让你使用 Ruby 语言开发原生 Android、iOS 以及 OSX 应用,而且得到了 Ruby 创始人 Matz 的支持,但是 RubyMotion 自 2012 年创立以来,至今 5 年时间,没有多少人了解使用这款产品,甚至如果我不提,我估计不少人甚至听都没听过,现如今使用 Ruby 编程语言的大部分开发者还都是用 Rails 来进行 Web 开发,因为 Rails 这个框架开发 Web 最大的优势是用你喜欢的 Ruby 语言可以很快速的开发 Web 网站。


前两年,Facebook 推出了 React Native,旨在解决移动端跨平台的问题,一经推出,引起无数开发者的关注与支持,然而即使这种「富二代」的跨平台框架,从项目开源到现在至今也有 2 年多时间,而背后 Facebook 花费的研究时间更是远超 2 年,目前 React Native 依然还不成熟,还存在各种各样的问题,现今的 App 开发主流仍然是原生开发,甚至很长一段时间依然会是这样。


Kotlin 的跨平台梦是挺好的,做成了确实牛逼,但是往往理想终究抵不住现实,一旦 Kotlin 定位跨平台策略,那么所涉及的技术复杂度、工作重心都会发生变化,更何况,想要跨平台到 iOS,是很难得到苹果的支持的,要知道苹果有个「亲儿子」Swift,在对待 Kotlin 的态度上是断不会像 Google 那样的开放,更何况 Swift 也一波三折,连 Swift 创始人都远走他乡,足以说明,一门新的语言让开发者拥抱有多么困难。


所以,从我个人的角度,因为 Google 与 Oracle Java 的版权问题,Google 对 Kotlin 的态度非常支持,在今年的 Google IO 2017 大会上明确宣布 Kotlin 成为 Android 开发的官方语言,最新发布的 Android Studio 3.0 更是内置了对 Kotlin 的支持,Google 的支持加上 Kotlin 本身语法的优势,我很看好 Kotlin 在 Android 领域的发展,我认为 Kotlin 官方应该抓住机会,先从 Android 领域着手,把主要精力放在 Android 开发上,争取让大部分 Android 开发者接受、使用 Kotlin,之后再慢慢的扩散到其他领域,如果一开始精力就放在跨平台上,结果可能会适得其反。


我之前写过一些未来很有潜力的编程语言,很多读者问我怎么没提到 Kotlin?虽然 Kotlin 语言可以做很多事,比如写脚本、开发 Android、与 js 交互等,但我个人觉得 Kotlin 目前的机会还在 Android 上,Google 的支持以及大量的 Android 开发者的基数,如果 Kotlin 能抓住机会,抓住众多 Android 开发者的用户,那么才算是有潜力,在其他领域的应用,目前来看很难让别的开发者接受并使用。


当然了,Kotlin 官方也可能只是拿跨平台造个势而已,但是无论是造势还是真的**在跨平台,这都是一个漫长而艰难的道路,如果是出于兴趣,想多了解下 Kotlin,那么是支持的,而那些抱着学好 Kotlin 就可以变身全栈工程师的开发者们,建议还是洗洗睡吧。



PS:想要学习 Kotlin 的可以回复关键字「kotlin」 获取相关学习资料,觉得写的不错可以点赞、帮转下,谢谢。


推荐阅读:

Google 中国招聘啦

如何选择 Offer?



一个不羁的码农,

我的世界不只有 Coding!


我看 Kotlin


赞助商


Udacity 最近双十一有优惠活动,想要学习一些编程课程的同学,可以扫码为自己的未来投资。


我看 Kotlin


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
qk墨砚轩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有