论坛首页 Java企业应用论坛

为什么软件必须编译

浏览 25830 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-06-09  
为什么只有Java class file才能JIT,而Java Source 不能JIT,
为什么只有IL能JIT,而C# Source 不能JIT.
正如Alan Cooper一样,我对软件易用性的问题开始感到愤怒了。

ps:关于产生这个愤怒的原因:传统的软件代码必然分为两部分,
一部分是Java Code,一部分是外部配置文件.因为Deploy的时候,
Java class没法改,而某些参数又必须动态修改,所以只好人为的
划出一块到配置文件中.(包括透明前一段提到的Rule Engine,
也无非是这种情况的一个延伸,除了数据需要动态配置外,还有
一些行为需要动态配置).如果Java Code从一开始就能动态,那么就什么事也没有了.
可现在的情况,造成了这种人为的,不正常的划分.当开始思考到这个问题的
时候,我发现这个问题极不正常,完全是做Compiler的人的懒惰造成的,
正如Alan Cooper会对软件必须安装产生愤怒一样,我对软件必须编译
也产生了愤怒
   发表时间:2004-06-09  
为什么要编译?
编译必须要有足够的时间分析代码来进行优化,而实际执行进行优化可能会引起长时间的等待,这样你会选择哪个?

另:推荐一个执行java文件就不用编译的东西
beanshell
0 请登录后投票
   发表时间:2004-06-09  
其实很简单
jsp就是即时编译的
0 请登录后投票
   发表时间:2004-06-09  
jsp还是要在服务器端编译,所以第一次访问速度会很慢。
0 请登录后投票
   发表时间:2004-06-09  
source 文件和class文件功效不同.
source文件是设计文档,是给人看的.class文件是给机器执行的.所以在source到class之间需要转换,
就好象建筑设计图与能居住的房子是两码事情一样.
那建筑工人呢?建筑工人就是编译器.
0 请登录后投票
   发表时间:2004-06-09  
有点faint了,看来你们没有明白我的意思。
我的意思是,完全可以用JIT或者PreCompile之类
其他的技术,来达到在deploy之后代码也可以
动态修改的目的。这样就不需要像传统的
程序那样 人为的割裂Java 程序块和动态配置块了。
(否则都是必须预先设计好动态配置文件,格式,
然后要有相应的Java读取程序,然后再给Main
Logic的Java Code使用)
0 请登录后投票
   发表时间:2004-06-09  
就像Alan Cooper在<软件创新之路>中对软件必须安装所作的批评一样:
   大规模的Web歇斯底里症
   万维网(World Wide Web) 已经向每个人打开Internet 令人敬畏的资源,人们只要有一台电脑和一个调制解调器就行。Web真是一个了不起的工具,他提供了奇妙的价值。令人惊讶的是,Web造成的最重要的变化是展示了它能如何容易的使用软件。许多从前的辩护者发现,Web的使用相当简单,而他们费力地使用的所有
软件也应该如此容易。特别是,他们喜欢浏览器的工作方式,它不会把人们领向讨厌的安装过程
  软件经理人员,特别是公司的IT供应商,总是热心的跳到流行的彩车上。他们也喜爱并着迷基于浏览器的软件,因为他们不必让用户承受可恶的安装过程就能使其产品登场在web之前,所有软件产品都需要复杂的安装过程,而在浏览其中运行的产品则不必。对于大多数软件主管人员来说,这是胡是一个超越发明拉练的
技术飞跃。
  但这仅仅是一个骗局!没有理由证明,任何一个非Web程序不能有完全不可见的安装过程,姑且不论其技术细节如何.如果你的电脑需要软件安装,它就需要带浏览器或不带浏览器安装。非浏览器程序为何需要进行安装的唯一理由是程序员经常以这样的方式来完成他们的工作。把一连串问题放在安装程序中,可以使他们的编程工作更加容易。早期浏览器没有设施询问这些问题,所以程序员只好耸耸肩膀,不再问他们。如果进一步证明有这个需要,程序员几乎不会注意到这个退步,然而对许多
用户来说[b]这使Web成为他们使用过的最容易的平台
0 请登录后投票
   发表时间:2004-06-09  
就算不用动态技术,也能达到配置动态改变.
这些和JIT风牛马不相及

ps:
   在几个人都误解的情况下,你会认为是别人没理解,还是自己重点表达不清楚?
0 请登录后投票
   发表时间:2004-06-09  
加入精华的理由:软件开发存在很多视而不见的盲区,这个主题非常好,期待进一步深入的讨论。
0 请登录后投票
   发表时间:2004-06-09  
我认为引起争论的原因在于价值观的冲突,有时并无错对之分。倾向于哪种价值观,就会支持相应的方式。而其他与你持相同价值观的人会从你的坚持中获益,这才是根本。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics