标题其实还是不准确的,我觉得题主你明说研发出属于华为的编程语言比较好,毕竟华为不是国企,华为目前也并没有承诺把它捐献给国家,甚至都没有把它公开出来。
不过话说正题,新编程语言这种东西是真的可以独立搞的,而不像操作系统依托于软件生态,搞出来独立的操作系统若没软件生态也没有太大意义。目前技术体系下新语言直接编译进虚拟机基本就可以保证性能以及大量的第三方库,直接能够进入市场,比早期编程语言需要全部从零做起要好很多,也少走很多弯路。
所以我个人期待以华为的实力应该能做出个不错的东西出来。
有的人认为这会是在搞中文编程,我认为大概率不是,毕竟华为还是比较讲求实用性的,将库函数全部中文化的工作量太高,华为应该不会把精力耗费在这个上边,吃力不讨好。
至于它要解决什么问题,其实目前还不清楚,不过,等公布了再说吧。就目前状态,它应该是一个类似 C# 形态的,在专有的商业平台内的专有语言。而不太像是一个开源的多平台语言。鉴于有很大一部分程序员并不喜欢被平台绑定,所以其实可想而知目前的态度是会遭到一部分人的反感,但是,当然,最终还是要看具体功能香不香吧。
利益相关:仓颉内测成员
保密条款限制,目前只允许辟谣。
首先,并非“中文编程”;
第二,从我们掌握的代码来看,不存在所说的“套壳”,至于不理智人员或网络攻击、网络暴力群体的胡乱推测和刻意抹黑...挣钱嘛不寒颤;(更新:原本是写的“再次套壳”,是因为部分营销号炒作的原文是“再次套壳”,为消除歧义已修改)
第三,内测的原因归根结底还是正在改进,一个编程语言没有小范围测试就直接推出这得招多少骂(更新:你不知道不等于没有,别杠,杠就是你对);
第四,我们不能泄露任何跟文档、代码风格、内测群聊等等相关的任何消息,这是保密条款的限制。如果在网上看到任何和这个相关的东西,要么是恶意行为,要么是作死行为;
第五,内测成员也在十分努力的找bug和写教程,包括我,正式上线之后我应该也是第一批写零基础仓颉教程的人员之一,我会发布在CSDN(更新:发布到CSDN是情怀原因,CSDN的一位工作人员对我有知遇之恩,而且我还未必会不会鸽)。
第六(更新),仓颉的英文名是直译Cangjie,不是被顶到第一位的回答的所谓char。
最后,请保持好奇心和耐心,静待发布之日,一切真相大白。
更新:大家不要再问我了,我会遵守我亲笔签的保密协议,除了辟谣之外不会再回复了
再次更新:都被踩成这样了,是我关了私信没法网曝我了吧,某乎真有必要显示IP地址
最后一次更新:热度成这样是我没想到的,大家的鼓励我转发给了项目组对接人,他们表示很感动,也会加油。评论里有一个大哥说“我是做硬件的,看不懂你们在搞什么,但是我支持”,这句话让我们都很感动。至于其他的质疑,我也有自己的生活,没有必要一直回应撕逼,请耐心等待。对于CSDN相关,如果有时间我仍然会在那里写,这是我自己的事情,对平台的赞美或贬低不应该转嫁到我个人身上,起码看到在知乎随便说个事就有这么多人骂我您就知道这里的氛围怎么样了。华为不会允许亮出截图等证据,我也是先前提出“知乎很多人在恶意揣测”得到“可以帮忙辟谣”的回复,你可以在评论找到和我一起在内测群的好朋友来支持我。我不喜欢被关注,所以接下来这个账号会停用很长时间,等到我没有热度了再出来用。
还是那句话作为最后的结尾:请保持您的耐心和好奇心,等真正发布之日一切真相大白。
别的不说,就说Char这个名字吧。
众所周知,Char在计算机里是字符的意思,几乎所有编程语言里都有Char的概念。
如果一个新语言名字和一个计算机通用术语重名,在内容搜索方面已经先天处于不利地位。
开发者想查找仓颉的资料,一定会充斥着大量的无关信息。按照权重排名,很可能前五页都没有仓颉语言的结果。
真要想好好推广,求求你们换个名字吧。
不管是叫Cangjie,还是叫Lidang,都比叫Char要强。
仓颉发布了我一定第一时间成为开发者,也请项目领导发布之前高抬贵手改个名字,可以给我们这些支持华为的程序员省下数以万计的时间。
作者:苏远
链接:https://www.zhihu.com/question/418762759/answer/1458729514
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
盲猜跟kotlin差不多的东西,最终还是要编译成JAVA字节码。
如果能编译成二进制码,那就牛逼。不过我觉得不可能。
如果只是编译成java字节码,我觉得没啥意思。
一门程序语言的出现,是开发者需要更方便的解决某一类问题.
仓颉 是为了解决哪一类问题的?
怎么看,当然欢迎啦
目前中国企业大体还处于做应用框架阶段,比如阿里巴巴,字节等,能拿出手的也就是各种开源框架,说实话,做的还行,但也有很多KPI性质的水作。
国外早已经是在做生态了,微软、谷歌、苹果这三家,都拥有自己的编程语言,操作系统,编译器等,都做的非常成功,为自己家的生态做支撑
两相对比,这差距。。。。最起码有10年
国人做的最有国际知名度的开源程序类产品,可能就是Vue了
所以对于华为愿意投入去搞编程语言,操作系统,方舟编译器,我都鼎力支持,希望能成功构建起鸿蒙生态圈
而且还希望更多有条件的企业去投入,去创造更多自己的生态圈
-----------分割线-------------------------
看了很多评论,说实话,透露出一股小夹子气
可见国内大众对开源的认知是贫瘠的,甚至程序员群体其实也好不到哪里去,前者脑袋里不是汉芯就是套壳,后者大多不仅傲慢而且也喜欢喷,这就是国内大众IT文化现状,谈不上包容,只能说略显畸形
谈谈华为,很多评论都希望我谈是吧
我的评论就是:华为的一些事儿虽有争议,但大体走在正确的道路上
尤其是程序员,不能一边苛责国内企业,一边又毫无心理负担的用着谷歌微软和苹果的东西,这太双标了。
如果Groovy诞生的中国,可能永远不会有用武之地,如果C++诞生在中国,可能作者每天都要承受人肉,门口都要被人送花圈。开放和包容,是中国IT文化最缺乏的
看到回答邀请,刚才特意满网搜了一下,发现目前连一个Hello World都没有,所以目前最好的回答是:我没法看,我等等看。
有个别自媒体贴出了中文源代码的截图。华为目前还只是接受开发者报名、等待安排试用,所以自媒体的截图哪儿来的?要不说十个自媒体九个半不可信呢。
话说,仓颉将来若真是中文编程,那么我很可能反而会失望,至少会担心。我当然深爱我的母语,但我不认为外文是阻碍中国开发者的瓶颈,因此强调中文编程就像是“过早优化”一样事倍功半。但是,万一将来它真的是中文关键字,甚至采用某种中式思维,我也很有兴趣了解!只要它能在道理上说服我。
不过我暂时不太理解,华为为什么要如此扭捏?不是应该大力推广吗?干嘛还要报名等待?我猜最大的可能性是仓颉确实还没完工,还存在很多问题,麻烦的报名试用策略能够筛选出真正感兴趣的开发者,这批人对尚不完美的产品容忍度很高。
最后,不出意外,我又看到了冷嘲热讽。什么“可笑至极”之类的。
唉………………………………………………………………………
苹果可以搞Swift,微软可以搞C#,谷歌可以搞Dart,连小小捷克的“喷气脑”公司也可以搞个Kotlin,还有Julia呢,它是谁弄的?……怎么华为搞个鸿蒙就是恶心的骗子,搞个仓颉就是可笑至极。有时,唉……,我对于生我养我的这个民族,感到十分困惑。
不过让我最后补充一句:目前说什么都为时尚早。我自认为理智,所以暂不排除它最终不太成功的可能性。我没法看,我想先等等看。
利益相关:仓颉内测组成员
首先需要说明的是,由于签了保密协议,不方便透露在内测组了解的内容,还请见谅。我说的都是不涉及保密的公开内容。请不要在私信和评论里问啦。
1、不是中文编程语言
或许要让很多沸腾的人失望了,但首先需要说明的是,仓颉不是中文编程语言。华为官方号微博菊厂影业(不是之前那个,是华为官方的号哈)已经发了辟谣。最近发布该消息的新华社每日电讯也已经删除相关内容了
2、解决了什么问题
关于 @cause Be 的问题“一门程序语言的出现,是开发者需要更方便的解决某一类问题。仓颉 是为了解决哪一类问题的?”
这个问题绝大部分只能在新语言发布之后说明,但也能从很多公开的资料了解事情的一小部分。
华为编程语言实验室的冯新宇教授在B站的视频:编程语言Lab活动回顾:与华为冯新宇教授漫谈编程语言的设计和实现(BV15V41177vF)谈到了这张图。
关注易用性的动态脚本语言,性能相对较差,而且类型系统更加的灵活(且不安全)。关注性能的语言易用性又差了一些,也不一定适合大中型app的开发。目前对于大中型APP开发,基本上所有常用的语言受到大公司掌控。虽然这些语言都是开源的,但是因为软件生态和技术壁垒,这些语言被大公司掌控,所以控制了语言的发展方向。
所以说华为可能会推出的是一个自己平台的专用大中型APP开发语言,能够将大量实验室技术投入产业应用,尽量能够自己主导语言的策略和演进方向。
当然,新出一种语言不可能只有战略上的考虑,如果没有技术上的优势而只是重复之前的语言,那就没什么意思了。这部分就只有了解到具体内容之后才能知道了。
(以上内容均为个人在签署保密协议前基于公开内容的个人总结,从和朋友的微信聊天记录里照搬过来的)
冯教授的演讲里还设计到了很多内容,欢迎感兴趣的大家前去B站观看。
用了蛮久了,和鸿蒙早期基于 AOSP 不同,真独立自主,大家可以小小期待一下。
这个问题的提问人可能自己都没有搞清楚,什么叫“编程语言”。不管是黑华为的,还是粉华为的,围绕着是不是原创,是不是套壳争论,都没法让人评价了。
编程语言的第一层含义是语言
语言的基础是逻辑学、语言学和数学,这方面的理论在一百多年前基本上就已经很完善了,应用到编程语言方面也有接近一百年的历史。
比如表达循环逻辑,不管是用for while loop还是别的什么关键字,哪怕换成“循环”这样的中文,其实都是一回事。比如关键字、变量、函数、过程这些逻辑概念,还有char string float double array这样的数据类型体系,在大几十年的进化中已经很完善了,无非是把精度放大或者缩小,在变量体系之上进行封装或者拆解,总的来说任何一个新花样,总能在最古老的编程语言里面做好到祖宗。
理论上任何一个国家都可以找一个现成的编程语言,进行关键字替换,但是这样毫无意义,只能给自己的用户找麻烦,所以这方面谁也不会吃饱了撑的去原创一套新的东西,
编程语言的第二层含义是编译器和操作系统
编译器和操作系统是密不可分的,同样一个编程语言,放在Windows和Unixs上,从编译器的角度差不多就是两回事了。毕竟编译出来的可执行程序,是要被操作系统调用的,不可能越过操作系统直接去和硬件打交道(少数极其特殊除外)。所以要想做一个编程语言,就需要和操作系统公司密切合作,或者干脆自己掌握一个操作系统。这也是华为在有了鸿蒙之后,做个编译器是个顺水推舟的事情,不值得大惊小怪。
那么中国以前有没有自己的编程语言?有,还不少。
最近二十年我不了解情况,但是上世纪90年代,为了军工的需要,中国在Unix的基础上搞过自己的军用操作系统和编程语言,而且还不止一个,只不过水平比较低。一些军事院校,或者军工背景的大学,很多学生都学过,这些操作系统和语言是否使用到了今天,我不得而知。另外,一些国有IT公司也宣称搞过自己的编程语言,依稀记得有太极和曙光,如果没有用到超算这些国家重点工程里面,那就是已经死翘翘了。
编程语言的第三层含义是生态环境
生态环境这个词被互联网行业喷了十来年,应该大家都不陌生,没人用的编程语言不可能好用,这玩意就需要海量的用户给他测试,不断地提意见和修改。当年那些军用编程语言,十有八九都是死在这个方面,毕竟用户类型单一,数量也严重不足,作为研发者自然也很难有动力去持续更新。
华为做一个编程语言,真不算什么惊天动地的事,压根没必要去争什么是不是全国产,在这个领域前有古人后有来者。
只要不是硬件层级的编程语言,只说“做出来”其实难度并不算太大,学过《编译原理》和《操作系统》的大学生,理论上都可以设计一个编程语言出来。如果只考虑一些最简单的功能,基本数据结构加上分支跳转循环等逻辑,代码量不算太吓人。但是这样的东西也就是自娱自乐,进入商用一点可能性都没有。
1997-1998年我参加过一个商业项目,其实是一个简化的编程语言(其实叫开发工具更合适),架构基础是C++语言,在其之上自定义了UI、控件和逻辑语言,用这个工具可以做可视化开发,部署在服务器上后,可以在客户端上用专用软件看到开发出来的UI和功能,有点类似于今天的H5。当年我的工作是用C++写这个语言的集成开发工具,就这部分来说代码量也就是40万行,也不算特别大吧。这个编程语言还活了好几年,最后死在了Web时代,被HTML彻底打败了。
除了那些不知道死活的军用语言,其他死在半路上的国产编程语言,大多数都是因为操作系统和生态掌握不住,今天华为有了一个属于自己的鸿蒙,算是解决了一半的困难,后一半还是衷心祝他们好运。