当前位置: 首页 > 科技观察

为什么要学习更多的编程语言?也认为Go是最好的

时间:2023-03-12 07:55:06 科技观察

pagehead我与编程语言的开放关系我已经编程四年了。从基于C#的游戏开发开始,然后使用Python处理机器学习。学习使用Javascript和Typescript进行前端工作。后来想做手机应用,于是学了Ionic、React、ReactNaive。为了更好的后端性能,Go是最好的选择。随着Flutter的诞生,让我学习了Dart来编写更多的移动应用程序。我在Facebook工作时从一些大学课程和PHP中学习了Java。我不会说我是这些语言中任何一种的专家,但我在语言和框架方面的经验比任何人都丰富。为什么我热衷于学习编程语言?因为我很容易被诱惑,当我看到一些语言的一些优秀特性时,我就忍不住去学习。pagemiddle那么为什么我要你做同样的事情呢?因为在不知道有哪些工具可用以及这些工具的作用之前,您无法选择正确的工具。选择正确的工具和武器可以帮助您赢得大部分战斗。我个人觉得这在生活中非常有用。选择正确的语言可以大大减少解决问题所需的工作量。解决现实世界的问题让我举一个真实的例子,使用正确的语言可以节省大量时间并专注于问题的主要部分。几个月前,我购买了一对蓝牙耳机AirPods。可以说是苹果发布的最好的技术。我试过很多蓝牙耳机,但没有一个像这个一样方便。然而,主要问题是我个人使用Windows笔记本电脑和Android手机。AirPods会自动连接到我的手机,但不会连接到我的笔记本电脑。我每次都必须手动设置和连接,这是一个痛苦的过程。因为我总是想在手机和笔记本电脑之间切换。我需要一个快速按钮,只需轻轻一按即可将我的AirPods连接到我的笔记本电脑。我的第一个想法是使用python,因为我确定我可以在我的计算机上找到一个用于控制蓝牙的库。但是不,没有一个维护良好的图书馆可以完成这项工作。下一个选项是Node.js。然后我找到了一个可以控制蓝牙的Javascript库。通过运行下面的脚本,我可以立即将AirPods连接到我的电脑。//App.jsconstdevice=newbluetooth.DeviceINQ();constairpodsAddress="18:81:0E:B2:6B:A6"constairpodsName="Akshat'sAirpods";device.findSerialPortChannel(airpodsAddress,function(channel){//makebluetoothconnecttoremotedevicebluetooth.connect(airpodsAddress,channel,function(err,connection){if(err)returnconsole.error(err);console.log('YAY!AirpodsConnected');//Don'tneedacommunicationsstreambetweenthetwo//solet'sjustexitthestream.setTimeout(()=>process.exit(0),5000);});});现在我需要一个运行这个脚本的快捷方式。我以为我可以将脚本直接放在任务栏上,但是Windows不允许在工具栏上放置任何不可执行的文件。我写了一个批处理文件,希望能挂载到任务栏上,但是失败了。那么什么语言可以创建可执行文件呢?Golang是一个不错的选择,我写了一个脚本来运行Node.js脚本。//main.gopackagemainimport("fmt""os/exec")funcmain(){output,err:=exec.Command("npm","start").CombinedOutput()iferr!=nil{fmt.Println(err.Error())}fmt.Println(string(output))}将可执行文件的快捷方式放在任务栏上,并设置图标。奇妙!一个易于访问的按钮,让我可以立即连接到我的AirPods。我知道通过使用C#也可以获得相同的结果。但是我不想在我的笔记本电脑上安装像VisualStudio这样奇怪的IDE。我还可以使用nexe等其他工具将我的Nodejs应用程序打包成一个exe,但那只是不必要的工作。这只是了解不同工具如何帮助您轻松解决问题的一个简单示例。如果我只知道Python或Java或Go,那将是非常困难的。我有更多的例子,知道使用正确的语言会大大减少解决问题所需的时间和精力。KeyPoints学习不同的语言真的很有趣。此外,它还能扩大您的视野,带您走出舒适区。学习更多语言的另一个原因是训练自己跳出一种语言或范式进行思考。面向对象编程很棒,但也需要函数式或过程式编程的知识。一旦你能训练自己在特定语言之外思考编程,你将不再受其限制。你学的第一门语言会很困难,第二门语言会更难,但之后就很方便了。这只是语法更改和一些需要避免的陷阱。然后,您可以了解该语言的特定库和框架。我能想到的学习更多语言的另一个令人信服的理由是WASM。WebAssembly将允许您在浏览器上运行任何您想要的语言。这意味着,如果您学习一种速度更快的语言,例如C++,您就可以利用浏览器的速度优势,创建很棒的内容,例如https://squoosh.app/。最后的想法您是Javascript或Python开发人员。我强烈建议学习低级语言。你可以直接学习C或C++,但我更推荐Golang。您可以轻松获得类似C++的速度,而不会遇到C系列的挫败感。对于所有低级语言开发人员,请尝试使用python或Javascript。如果您还没有尝试过这些语言中的任何一种,那您就错过了。Python就像伪代码,现在Javascript无处不在。两种语言都让你使用低级语言。您可以为Node.js和Python编写C++模块。相信我,它会改变你的生活。我希望我已经说服您与您的主要语言建立开放的关系并获得一些新的和令人兴奋的体验。如果您知道两种截然不同的语言,到目前为止您的经验是什么?你认为它对你的职业生涯有何帮助?请在评论中让我知道。