45
回答
10多年前关于java语言的一个争论

10多年前, java在软件行业正在掀起一场革命.

当时oracle也在8i的产品中采用java作为安装程序,并且把java虚拟机无缝集成到数据库产品当中.那个时候,java在web上的运用还没有普及开

有预言基于java的芯片也将出现...... 

整个软件行业为之感到兴奋, 认为java代表未来. 很少人公开质疑这个观点.

当时我正在linux机器上安装oracle 软件,遇到一些问题,就在国外一个有名的网站上寻找答案, 无意间发现一个争论非常激烈的关于java的讨论. 

有个人,我可以把他称为 Mr. Anti Java, 公开宣称java不能代表未来, 理由非常简单:

他看到, java在除了在java开发工具领域(jbuilder等)的开发上, 没有看到过成功的案例.

--- 这个在当时确实是实际情况.尽管大家对java有很高的期望,但是只见过基于java的开发工具.所有的人都举出各种java语言优势的解释,但是无法反驳他这个论据.都说未来.......

现在回想这个讨论就非常有意思,看看java的现状:

web: Java在这个领域还是非常强势. 角色基本上就是数据库访问语言.

Tools: java在这个领域里面基本上所有的产品就是java开发工具或者数据库开发工具. 简而言之,就是用java开发java开发工具给java开发者用于java开发.

Mobile: j2me在彩屏时代有一定市场,并在安卓时代有进一步发展. 基本上在移动领域,java以UI开发工具的形式出现.

其他领域: java基本上被消灭掉了.

时间过去10多年了, 证明:

 Mr. Anti Java 是对的,大多数人是错的.

 PS: 我是反对Mr. Anti Java的,否则我就不会学习java了.

举报
宏哥
发帖于6年前 45回/1K+阅
共有45个评论 最后回答: 6年前

Java 芯片最终没有出现的原因是什么呢。

有没有胜者为王,败者为寇的 可能性呢?       要是java芯片真的出现了, 是不是该说 C码农, C++ 码农些, 不与时俱进, 哈哈 ,  开玩笑哈。

@中山野鬼

php 的开发效率和asp.net 相比, 哪个高些呢?

 

当然asp.net 有一个硬伤,无法run在linux, unix上。

在windows上缺少大型的应用案例(电信?金融?)。核心的系统都还在Unix-like系统上?

ms收购hotmail后, 想把hotmail从Unix-like系统(好像是FreeBSD)  迁移到windows上, 费了老大劲了, 最后还是有少数机器依旧使用Unix-like系统。  见 吴军博士的《浪潮之巅》。

--- 共有 2 条评论 ---
mark35当时hotmail换成NT之后曾经大面积当过一次机。后来逐步解决才全换成win系了 6年前 回复
宏哥如果都是弱类型,应该差不多. 我觉得熟练的话. 强类型和弱类型有些区别,其他区别不大. 6年前 回复

JAVA只是一种语言。 java虚拟机方式运行只是一种方式。

我认同java虚拟机方式。但仅java语言来说。并不觉得会有多大变革。不会独霸一方。

javascript 在web前端应用可以说目前是独霸的。其他脚本语言似乎还没有可以替代他位置的。

还有对于语言的争论, 我的理解是php, python 比java高阶,没有过分设计, 代码量更少, 开发效率更高。

但是如果仅仅开发效率高一个优点, 还不足以作为语言选型的最终依据。

java的优势就是: 强类型语言, 生态链广泛, 社区, 大厂商的支持, 码农多。

像 python, 都没有厂商来支持。

--- 共有 1 条评论 ---
宏哥开发效率高 的确不是唯一的指标. 特别是很多家伙,有钱,不在乎. 6年前 回复

前段时间做项目的性能测试和调优, 确实同意宏哥的说法:

java定位为平台, 很多问题都是java作为平台自己搞出来的。 比如: 最大内存限制, 占用太多的资源。

这些东西在其他语言, 可能都不是一个问题了。

引用来自“一千年前的人”的答案

还有对于语言的争论, 我的理解是php, python 比java高阶,没有过分设计, 代码量更少, 开发效率更高。

但是如果仅仅开发效率高一个优点, 还不足以作为语言选型的最终依据。

java的优势就是: 强类型语言, 生态链广泛, 社区, 大厂商的支持, 码农多。

像 python, 都没有厂商来支持。

我到觉得Java还是有条件提升开发效率,类似 @Jfinal , 我没有用过. 有几个路径:

1: 简化类型转换

2: 简化URI到逻辑段(action)的映射

3: 简化模板

4: 简化SQL 构造.

这里面仍然有几个坑必须避开:

1: 任何涉及到"实体化", 也就是写入磁盘数据 以及事务操作. 必须委托给第三方,不能依赖任何容器. 不要做任何抽象. 不同的第三方,管理数据以及事务的能力千差万别. Java整体体系,没有能力管理"实体化"数据.

2: 任何的数据库访问, 不要做任何假定, 比如数据抽象的假定,特别是不能要求数据库之间进行兼容. 世面上有很多框架,都围绕mysql做样本进行设计,会产生很多"糟糕"的如last insert_id的设计. 必须围绕SQL构造来做. SQL之灵活,无法用对象来表达.

大多框架死在这两个上面.

我还是相信 @Jfinal 能达到这个目标, 上面的目标不仅是可能的,应该也是可行的.  @Jfinal@一千年前的人 , 你们应该有能力自行评估了.

引用来自“一千年前的人”的答案

Java 芯片最终没有出现的原因是什么呢。

有没有胜者为王,败者为寇的 可能性呢?       要是java芯片真的出现了, 是不是该说 C码农, C++ 码农些, 不与时俱进, 哈哈 ,  开玩笑哈。

@中山野鬼

我来回答你把, 这个就是  工程 和 理论的区别.

一个API的实现, 需要两个层面,一个是芯片级别,另外一个是软件. 

java的bycode不是根据芯片特点设计的, 这意味着,必须需要一个虚拟机, 要么在芯片里面放一个,要么在软件上放一个. 不管放哪里, 都有很大的代价. 这个代价我们可以用trouble来表达, 就是说, 麻烦从来不会消失,不是在这里,就是在那里.

这里可以有另外一个反例, directx, 这个就是将芯片实现的算法,用api形式在操作系统层面完美表达的一个例子. 这种东西,必须 合服 芯片以及软件两方面的工程设计,才能达到. 而java的bycode,是完全脱离芯片的工程设计来做,就意味着, java芯片必定失败. 芯片不会向java妥协,不是因为强势,而是因为工程上无法实现. 这也同时是directx可以比opengl更成功的一个例子.

反观C的指针,就可以在任何芯片上游刃有余啊, 编译后, 可以无缝和芯片逻辑连接.

引用来自“一千年前的人”的答案

php 的开发效率和asp.net 相比, 哪个高些呢?

 

当然asp.net 有一个硬伤,无法run在linux, unix上。

在windows上缺少大型的应用案例(电信?金融?)。核心的系统都还在Unix-like系统上?

ms收购hotmail后, 想把hotmail从Unix-like系统(好像是FreeBSD)  迁移到windows上, 费了老大劲了, 最后还是有少数机器依旧使用Unix-like系统。  见 吴军博士的《浪潮之巅》。

@宏哥

1.  宏哥玩过asp.net吗? 他不是弱类型语言, 开发语言是C#或者VB.NET。 他的开发模式和vb是一样, 拖控件, 双击控件, 生成事件, 页面上控件的值自动和C#代码绑定的.......  这样是不是比php高些呢?

2. windows上缺少大型的应用案例(电信?金融?)  你的见解....


引用来自“一千年前的人”的答案

引用来自“一千年前的人”的答案

php 的开发效率和asp.net 相比, 哪个高些呢?

 

当然asp.net 有一个硬伤,无法run在linux, unix上。

在windows上缺少大型的应用案例(电信?金融?)。核心的系统都还在Unix-like系统上?

ms收购hotmail后, 想把hotmail从Unix-like系统(好像是FreeBSD)  迁移到windows上, 费了老大劲了, 最后还是有少数机器依旧使用Unix-like系统。  见 吴军博士的《浪潮之巅》。

@宏哥

1.  宏哥玩过asp.net吗? 他不是弱类型语言, 开发语言是C#或者VB.NET。 他的开发模式和vb是一样, 拖控件, 双击控件, 生成事件, 页面上控件的值自动和C#代码绑定的.......  这样是不是比php高些呢?

2. windows上缺少大型的应用案例(电信?金融?)  你的见解....


1: 没有玩过,无法回答啊. 感觉上,非常适合快速开发.

2: 这个是市场和时机问题. win2000之前的NT, 实在不是unix对手. 另外一个,那些unix上的供应商,很多东西都捆绑销售. 举个例子, sco unix和sybase都是对银行无限制license 一次搞定. 这个更多是时机和市场的问题. 早期sql server也不给力. 

--- 共有 2 条评论 ---
宏哥回复 @一千年前的人 : 如果从企业内部来说. 我认为有很多案例.比如IMS, Cxgnizant. 都广泛的部属win在核心应用以及大规模管理上.如果说win有什么不足, 就是那个sqlserver还真不是oracle的对手. 上oracle的机器, win好像比较少. 6年前 回复
一千年前的人那现在windows具备和unix叫板的能力了吗? 宏哥知道类似的案例吗? 6年前 回复
顶部