java - 为什么 Java 小程序已过时?
问题描述
众所周知,java.applet 包现已过时,浏览器将不再支持 Java 小程序。有很多关于使用 HTML5 和 JavaScript 代替 Applets 的建议,我认为 HtmlCanvas 元素、输入控件和使用 DOM 的可访问性足以构建类似的功能。
除此之外,我真的很想对这些问题有满意的答案:
1 - 删除小程序支持的真正原因是什么?它与Java反射有关吗?(因为有可能通过在运行时访问对象来更改安全特权和其他内容)
2 - 是否有任何 Applet 病毒使用了 1 中提到的一种漏洞?是否有可公开获得的 Applet 病毒源代码?
3 - 如果根本原因是漏洞,我们是否可以认为Java的演变不受控制或缺乏成功的设计?如果在 Java Applet 被认为易受攻击之前 Java 是开源的,会发生什么?(在 Applet 支持结束后,Oracle 宣布他们将继续使用 Java Web Start 技术而不是 Applet 提供类似的功能,但是在 Java 9 之后,他们宣布将再次取消对 Java Web Start 的支持。
4 - 嵌入外部对象,如 Flash 和 Java Applet 是移动平台中的另一个问题。这是取消支持的理由吗?
我们大多数人都喜欢 Applet,并且发现它们在包括教育在内的许多情况下都很有用,也许我们可以在设计时小心(如果这是当然的设计问题),以防止将来在编程语言中出现问题。
先感谢您。
编辑:我知道,在这个 stackoverflow条目中,项目 1、2 和 4 中给出了类似的问题和答案;但是我想就设计问题扩展这个问题,以不受控制的方式扩展语言,打开代码和更改许可证的重要性,为什么软件测试对于一个好的软件来说是不够的,尤其是在编程语言设计方面,什么样的需要流程来在没有副作用(如漏洞等)的编程语言中添加新功能等。
解决方案
推荐阅读
- java - 如何使用opencv去除图片中的定界颜色
- bash - 入口点中的 Docker 运行脚本
- python-3.x - 识别列表中的空间数字
- amazon-ec2 - 将安装在 AWS EC2 实例上的 MySQL 与 AWS Glue 连接
- c# - Unity 和 Firebase 事务线程被捕获
- javascript - 是不是应该在调用函数之前声明函数表达式?那么为什么这段代码有效呢?
- javascript - Vue HOC 设置问题(使用 vue-compose)
- python - 使用 Python,如何将整个 xlsx 文件附加到 docx 文件中
- c# - 从不同 API 使用 IndetityServer4 中的 ConfigurationDbContext
- javascript - 避免 lodash 导入整个库并避免 _ 导致整个库加载