java – 写一次到处运行 – 但是多久了?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 写一次到处运行 – 但是多久了?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2010字,纯文字阅读大概需要3分钟。
内容图文
![java – 写一次到处运行 – 但是多久了?](/upload/InfoBanner/zyjiaocheng/798/6958b80b853d4a389591efbc2dcafb0e.jpg)
Java想出了“在任何地方都可以运行”.
从长远来看如何使用所有框架?
几年前我用JSF和richfaces编写了一个应用程序.浏览器已经发展并引入了新功能,当然还有新的错误.现在应用程序仍在运行,有时它会显示底层库的javascript错误.
由于技术上的“改进”,我们是否真的必须重新实现一个finsihed应用程序(没有用例添加)?
编辑:我提到的应用程序只是一个例子.如果供应商更改许可证,也很容易发生(Oracle可能会收取vm,而open vm与您的应用程序堆栈不兼容等)
解决方法:
即使我们相信“一次编写,随处运行”,它与永恒的向后兼容性并不完全相同.实际上,您必须期望未来版本的框架能够改变一些东西.有时这将删除过去保证的行为(最糟糕的变化),其他时候代码中的错误将被忽视,直到库的某个未来版本显示您依赖于非实现细节保证.更少见的是,您的旧代码将在最新版本中显示一个新的错误.
在一个理想的世界中,我们编写的代码只依赖于保证的行为,并且保证永远不会被删除,因此有效的代码将永远继续工作.与此相反,很难证明您的程序是完全正确的,并且语言/框架/库开发人员决定是否可以添加他们想要的改进,同时保持完美的兼容性.
为了赢得争论的兼容性,原始API必须足够强大且足够稳定,能够在没有破坏性更改的情况下生存.如果不是,则将进行不兼容的更改,否则将完全放弃API.无论哪种方式,你的程序将不再运行,除非你有一个旧版本隐藏在某个地方运行它.
你问如何做到这一点 – 它首先需要真正好的和有点幸运的界面设计,以允许你以后提出的所有扩展,或者是坚定的承诺和“商业案例”(或非商业动机) )无限期地支持“旧”版本.例如,Python 3与Python 2不兼容,但Python 2仍然受到更新的支持,因此旧的Python代码仍在运行. C99只删除了C89的一些功能,如果所有其他功能都失败,C89编译器仍然会被主动维护.浏览器支持一千零一个旧版本和HTML的非标准怪癖.我不知道JSF和richfaces如何与那些相比,或者他们输出多少依赖于支持来自客户端的“旧”(或古怪)HTML / CSS / Javascript行为的页面.
所以它可能发生,至少有一段时间.但是IE6的功能在任何可以安全发布的浏览器中都不再可用(我想你可以在沙盒虚拟机中或在你不关心的机器上运行IE6),所以这是一个问题你首先依赖的是什么.是否可以预测专有的浏览器扩展将在未来的版本中像石头一样被丢弃?可能,但那些IE6应用程序编写者是否已经实现了他们想要使用当时可用的适当标准?不总是.即使对于那些没有参与IE6的人来说,如果你的应用陷入了类似的陷阱,那你就不走运了.
内容总结
以上是互联网集市为您收集整理的java – 写一次到处运行 – 但是多久了?全部内容,希望文章能够帮你解决java – 写一次到处运行 – 但是多久了?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。