跟我交流较多的朋友们会知道, 我是很早就坚持研发人员要多学会几套编程语言的人, 特别是新的开发语言有段时间, 我甚至都在准备尝试自己设计一个有应用场景的编程语言计算机语言是人设计的, 了解了核心的原理, 真的没那么困难当然, 要做的出色, 有很多用户, 那就是另外一回事了
基于 C/C++ 语言的开发我做了 10 年以上后来我逐渐的把应用需求分解到其它语言中去, PHP/Python/JavaScript(前端 / Node.js), 我都花了不少功夫研究我在开发过程中能做到各种语言随时切换, 得心应手, 没有任何障碍并且, 仰仗着过去在 C/C++ 时代打下的良好基础, 我可以在源码级研究并理解编程语言特别是用 C 写的各种脚本语言, 只要觉得手册没写清楚的, 我就直奔源代码看个明白这是开源时代给多语言开发者带来的巨大优势
最近, 我在研究 Go 语言其它几种感兴趣的编程语言, 我也有计划钻研一下
为什么我对新的计算机语言, 这么乐此不疲? 很简单, 时代变革, 与时俱进参考: 人要与时俱进, 顺应时代潮流
对当今的 IT 领域来说, 单一语言包打天下的时间已经一去不返未来的趋势是, 各种语言站住自己的核心应用地盘, 相互借鉴相互竞争, 不断拓展侵蚀到其它语言的应用领域, 逐渐发现更好的表达模式和方法
新的语言, 代表着对事物更新的理解和更好的阐述方式
语言是人类思维的工具人类之间的语言, 与人类对计算机讲的语言, 实质都是要表达出思想人依靠编程语言来指挥计算机运行不同的语言, 代表了对问题领域对计算机系统不同的理解方式
催生这些语言并促进其发展的, 是背后的环境变革更新的语言, 常常是吸收了上一代语言的优点, 再尝试使用新的思想模型新的方法去解决各种已知未知的问题有时候使用者会发现它很有效, 很方便, 这个语言就容易在一个问题域站稳脚跟了
我们的开发环境应用环境, 一直在变化但是人类往往对缓慢的变革熟视无睹, 习惯的延续原来的假设和出发点, 这就给创新留下了口子, 经常可以从这里获取突破性进展
比如, 单机时代, CPU 性能弱, 存储器速度容量都很低那么在这个条件下, 作出的各种软件开发决策, 都会带上这个默认环境的影响以至于后面的硬件突飞猛进, 原本的假设不成立了, 它的影响可能还在延续原来的计算机网络物理层面不够可靠, 所以网络协议设计了很多校验机制, 但是后面的光纤时代, 这些校验就成了成本和负担, 检验并不是越多越好参考: 重要的技术创新节点容易发生在什么地方?
从单机转向网络应用, 再做移动设备开发, 以及和网络的融合, 以后再有各种智能硬件设备万物互联, 不同的应用发展, 带来了不同的需求和环境而原本的编程语言, 设计者考虑的平衡点可能就不合适了, 需要新语言替代它, 进行革新
所谓的平衡点是说, 设计决策里面对相互冲突的特性, 作出的妥协点在哪里你是要编译式的静态语言, 还是动态语言解释型的? 重点是编程灵活还是运行速度? 考虑多少安全问题? 要不要垃圾回收? 用什么机制? 比如 CPU 从单核进化成多核, 如何在语言设计上充分利用硬件的能力?
如此多的应用需求变化, 对各种不同设计思想的计算机语言的产生必然是催化剂单一语言解决所有问题域, 是不可能的了强行上马, 只能让开发者痛苦, 大幅降低效率和质量水准现在还有谁用 C++ 写 web 应用?
庆幸的是, 在计算机系统架构未得到根本变革之前, 绝大部分编程语言都有很相近的语法结构, 弄懂学会并不难计算机算法也是共通的但是考虑到它创建并依赖的生态环境设计思想开发模式和习惯用法, 应用自如还是需要耗费很多精力的
这里链接几篇关于学习能力培养学习方法的原创文章, 供大家参考:
学得快, 记得牢, 花的少 请尽快开发你的大脑
职场人的学习方法
IT 人永远不老, 老程序员价值何在?
IT 领域, 学无止境, 各位继续努力吧!
来源: http://www.bubuko.com/infodetail-2524856.html