有时分,写TypeScript写多了,写Java的时分就老容易出错。而当堕入某个项目一段时间之后,自我觉得老熟习的Python和Golang,会变得十分的生疏。而某段时间写起来行云流水的Bash脚本,每次重新拿起,都会进入看文档写代码的境地。
由于任务和团体兴味的缘由,需求在多种言语中停止切换,这种觉得尤为剧烈。团体精神有限,不能够每天都照顾到这些刁钻的,五花八门的言语,所以最后干脆保持了挣扎,让言语的圈子渐渐的将开发人员隔分开来。
为什么不能一致成一种开发言语呢?下面这张图或容许以阐明一下。
每种言语在出现的时分,都觉得本人吊的不行,尤其是golang,觉得本人是个另类,是终极目的。而理想上,它也是开展路途上的一枚棋子罢了。
别的不说,就连函数声明,各门言语都TM一致不起来。在这下面做文章,不是闲的蛋疼么?
我们来看一下。
golang的函数声明关键字是func。
func test(x int,y int) int{
}
java的函数声明,没有关键字。
public int test(int x,int y){
}
typescript的函数声明。
function test(x: number,y: number):int{
}
python的函数声明。
def test(x,y):
kotlin函数声明。
fun test(x: Int,y:Int): Int{
}
rust函数声明。
fn test(x: i32,y:i32){
}
...
如此种种,仅仅定义函数的关键字就有多种。func,function,fun,fn,def...,且不说参数的声明方式和定义方式。
我时常在想,发明这门言语的这些人,脑子是不是有病?关键字是一门言语的基本竞争优势吗?
没办法,有时分只能按照开发言语将开发人员停止区分。比如招聘golang顺序员,招聘java顺序员。
虽然说言语在软件开发中,只是占了很小一部分,但在实践落地的时分,却往往又影响严重。不同的言语,细节差异多,编码标准不同,对顺序的影响就比较大。这些差异,往往需求开发人员在日积月累之间,不断的积聚阅历。在言语之上,树立的类库和生态,更是庞大。这些差异是无法消弭的,只能隔离。
我是常年搞Java的,看待Java自然是亲切而熟习,也早曾经可以忍受它的冗长和复杂。但在其他言语眼里,Java是个不折不扣的魔鬼。
就拿常见的lambda语法来说,在其他言语中,都是e=>{}运用=>这种语法。只要Java另类,运用->来表示。我就常常在写完TypeScript之后,回到Java中会脑子抽筋。
Java的泛型也是普通,一个int[]数组,并不能直接运用Arrays.sort()停止自定义的排序,还得把它转成Integer[]才行。
这些成绩有,但都是有限的。成绩是,别人觉得有成绩,就会推倒重来,比如groovy,scala,比如kotlin,代码可以更繁复,但你TM别改关键字啊。
目前,曾经有700多种编程言语,它们作风悬殊,标称着可以处置特定行业的成绩,但大少数都是同质化的万能言语。
在Tiobe排行榜上,C、Python、Java、JavaScript、Php、SQL等,常年存在于排行榜前10。
可以说,言语的格式曾经大体构成,剩下的就是你争我夺的争夺战。比如Java和C#,在一定水平下去说,就是一个东西,但如今它们的生态却完全不同。言语有什么复杂的?复杂的是逻辑还有代码组织方式,不是言语。
它们的开展,就像是中国的互联网,虽然标榜着本人哪里哪里不一样,到最后还是一样的同质化,该牛x的中央一样牛x,该渣滓的中央一样少不了。
言语也是,你参考我的,我参考你的,只需道理上说的通,那就可以放置上。比如Java的record关键字,真正的Javaer真的不在乎多一点getset办法的。
未来,有哪个言语标称一致了一切的言语,你就笑一笑看看罢了,它不过是第n+1种言语而已。另外,透叩的通知你,运用f关键字停止函数定义的言语,到如今还没有出现,假设你想造一个的话,思索一下啊。
【编辑引荐】
2021年可用于人工智能开发的言语有哪些?
嵌入式开发入门(知识体系+开发进程)视频课程
嵌入式Linux开发基础视频课程
清点儿童智力开发的首选编程言语—Scratch
C言语最大难点揭秘:编程的祸根!
(责任编辑:admin)