java

位置:IT落伍者 >> java >> 浏览文章

Java与.NET之外的语言视界详谈


发布日期:2019年06月21日
 
Java与.NET之外的语言视界详谈

去年的这个时候我写了一篇文章来总结C++的题目是《波澜不惊》其实当时我预料C++的波澜不惊不仅会是的主题恐怕也是之后很多年的主题不过这个预料在仅仅一年之内就被打破今年微软推出的C++/CLI着实翻起了一些波澜给本已平静的C++世界涂抹了一缕亮色按照Stan Lippman的说法C++/CLI是一座桥梁将原本属于静态世界的C++与动态的CLI联系起来动静结合自然不同凡响C++/CLI大致将于年推出第一个正式版而大约要到年才能够完全成熟

目前的C++/CLI语言从设计上来讲可为是毁誉参半赞誉之词不必多说至于社群里的反对意见大致是来自两种情绪其一是觉得C++/CLI对C++进行了专属的改造使得自己熟悉的C++代码面目全非其二是觉得C++/CLI将C++的复杂性与CLI的复杂性统统暴露出来令人望而生畏依我看来第一种责难其实出于一种不必要的宗教虔诚并不足以为据倒是第二种看法颇值得我们担忧如果得不到很好的解决模型我们也可以认定C++/CLI只是一小撮专家们手中的屠龙术而很难产生更广泛的影响

如果把C++/CLI的喧嚣拨开看看传统的C++那么年就不仅仅是波澜不惊甚至可以说是水波不兴我甚至要颇费一番思索才能够列出一两件事情来代表C++社群这一年的所作所为还要担心读者怪罪我小题大做

Boost库在年改进了两版加入了一些很棒的组件比如序列化库等等标准委员会也开会接纳了几个小玩意进入C++ X标准C++社群自年以来倾心于基础库的建设这对于C++来说的确是必须但是对于这个迅速变化的世界究竟能起到多大的影响现在还很难说其实一直以来Boost库的精致程度就已经非常高但是对外界的影响力还不够我当然乐于看到三年不鸣一鸣惊人的局面但是对此并不乐观总的来说C++社群要加油

与之相对应的在实际工程中C++的应用还是非常稳定地发展着只不过人们固执地使用着传统的基于对象或者面向对象的风格至多掺入少许的STL年以来C++领袖们一直号召使用者转向新风格现在看来这么多年过去了效果并不很理想其中主要的原因固然是因为通往新风格之路的艰辛也一定程度上是因为新兴动态语言的替代作用动静兼济之美未必要通过C++自身的涅磐来达成事实上类似Python和Ruby这样的动态语言一方面提供了远远超越Java和C#的动态能力另一方面又能够方便地与C/C++交互用它们与C/C++混合开发毫无疑问是开发应用系统的极佳组合方案

Python升级到从语言本身来说的差别很小对一般开发的影响几乎可忽略不计但是就在日当天ActivePythonPyWin等主要Python实现包均同步升级到此后数日各主要Python软件包均升级兼容动作之整齐划一有如一家纪律严明的公司充分体现了Python社群的成熟令人震撼

然而对于Python来说本年度最令人振奋的消息是IronPython的横空出世IronPython不仅向Python社群证明了NET平台也向NET证明了Python其开发者Jim Hugunin已经被微软招入麾下专职研究NET平台上动态语言的实现技术Python等动态语言有望将软件的开发效率在Java和C#的基础上进一步提升所以毫无疑问的我们当然希望Python能够进入NET成为一等公民不过一般来说年恐怕还不可能微软还是非常热衷于推销自己发明的语言而对于开源社群的贡献保持着一种官方的矜持也许Java社群在这方面反而要更积极一些

日本人Yukihiro Matsumoto发明的Ruby语言以其更纯粹的面向对象支持更一致的类型系统和为人津津乐道的block/iterator结构而迅速崛起逐渐呈现与Python分庭抗礼之势对于熟练的Python开发者来说Ruby的吸引力并不是很大但是对于刚刚踏入动态语言世界的C++/Java程序员来说Ruby似乎比Python有更大的魅力Ruby发布了这是一个比较大的升级Ruby再接再厉连续推出同时Ruby社群成立了RubyForge网站实现了力量的大整合其发展势头更加迅猛

脚本语言老将Perl今年把精力投入到了Perl 虽然距离Perl 的成形还很有一段路要走但是Perl 已经成为热门话题OReilly甚至已经出版了一本书而源于巴西的动态语言新丁Lua发布了以其独特而小巧的设计出奇的高效令世人惊讶

总的来说在动态语言领域里老将的优势是支持库丰富新丁的特长则是语言设计优美新老各有优势让人难以取捨如果能新老结合岂不是很美好?这就是Parrot项目的初衷——为动态语言提供最优化的基础运行平台其版本号升级到我们已经可以憧憬一个这样的未来即PythonPerl和Ruby自由协同互相无拘束地调用因此可以说Parrot VM是比任何单个动态语言发展都更为意义深远的事件如果动态语言家族实现大统一整个编程世界将被非常深刻地影响今天任何一个执迷于Java或NET世界而无暇四顾的人在不久的未来都将为此而深感震撼

事实上动态语言本身的能力是有局限的一般而言其效率也是较差但是与C/C++的相互结合使得程序员在开发时得以动静兼济取长补短很多人都相信动态语言是编程技术发展的新方向纵观展望这种预测是很有希望成为现实的

日 Boost 发布

日 C++标准委员会在悉尼召开第次会议

日 Lua work 发布

日 微软发布Visual C++ Toolkit

日 GCC 发布

日 Python 发布

月 Linux Standard Base 加入一个C++ ABI标准

月 微软发布Visual C++ Express Beta展示新的C++/CLI

日 Ruby语言的权威着作《Programming Ruby》第二版问世

月 C++标准委员会在微软总部雷蒙德召开第次会议

日 Ruby preview 发布

日 Boost 发布

日 Parrot 发布

日 Python 发布

上一篇:Java图像传输方法

下一篇:基础学习教程:Java Annotation入门