Ruby,Python不能威胁到Java的13个理由

  最近,[url=http://www.dzone.com/links/users/profile/283759.html]danielstoner[/url]发表了一篇题为[url=http://littletutorials.com/2008/05/28/13-reasons-java-die-old-age/]13 reasons why Ruby, Python and the gang will push Java to die… of old age[/url]的文章。文中作者的观点是:[color=orange]目前这些XX语言都不足以威胁到Java,Java真正的危险不是来自外部,而是其本身。[/color]作者通过列举一些数据并进行分析得到了13个理由来支持自己的结论。
  首先,作者从[url=http://www.iteye.com/news/2396]TIOBE上公布的2008年5月语言排行榜[/url]的数据得到一个有趣的事实:
[quote]
What I find significant here is the huge share the “C like syntax” languages have.

C (15.292) + C++ (10.484) + Java (20.176) + C# (3.963) = 49.915%

This means 4 languages get half of all the attention on the web.
If we add PHP (10.637) here (somehow uses a similar syntax) we get 60.552%[/quote]
  可见,“类C”语言占统治地位。由此作者得到第一个理由:
[quote][color=red]Reason number 1[/color]: Syntax is very important because it builds on previous knowledge. Also similar syntax means similar concepts. Programmers have to make less effort to learn the new syntax, can reuse the old concepts and thus they can concentrate on understanding the new concepts.[/quote]
  我们再来看看这些“挑战者”所占的份额:
[quote]Python (4.613) + Ruby (2.851) + Lisp/Scheme (0.449) + Lua (0.393) + SmallTalk (0.138) +
Haskell (0.137) + Groovy (0.131) + Erlang (0.110) + Caml (0.090) + Scala (0.073) = 8.985%[/quote]
  它们被关注度的总和都没有超过Visual Basic所占的百分比:10.782%。作者归纳出第二个原因:
[quote][color=red]Reason number 2[/color]: Too much noise is distracting. Programmers are busy and learning 10 languages to the level where they can evaluate them and make an educated decision is too much effort. The fact that most of these languages have a different syntax and introduce different (sometimes radically different) concepts doesn’t help either.[/quote]
  然后,作者分析了这几年来各种主流语言被关注程度的趋势
[img]http://www.iteye.com/upload/picture/pic/15171/4cac3127-c725-3a1f-8d98-7154a73dcf31.gif?1211982708[/img]
  从图中可以看到,这些变化趋势从整体上看都比较平稳。并没有出现“语言暴发户”,也没有出现“一夜暴亡”的。这就是作者的第三个理由:
[quote][color=red]Reason number 3[/color]: Lack of pressure on the programmers to switch. The market is pretty stable, the existing languages work pretty well and the management doesn’t push programmers to learn new languages.[/quote]

  然后,作者分析了另一个[url=http://www.langpop.com/]关于编程语言流行程度的网站[/url]上给出的一些数据。
  首先,作者从[url=http://freshmeat.net]Freshmeat.net[/url]与[url=http://code.google.com]Google Code[/url]上使用各种语言建立项目数目的得到:
[quote][color=red]Reason number 4[/color]: Challenger languages don’t seem to catch momentum in order to create an avalanche of new projects started with them. This can be again due to the fact that they spread thin when they are evaluated. They are too many.[/quote]

  余下的就不一一说明了,直接列举之:
[quote]
[color=red]Reason number 5[/color]: Challenger languages communities don’t do a good job at attracting programmers from established languages. Telling to somebody why she is wrong will most likely create a counter reaction not interest.

[color=red]Reason number 6[/color]: There is no great incentive to switch to one of the challenger languages since gaining this skill is not likely to translate into income in the near future.

[color=red]Reason number 7[/color]: The new languages don’t introduce an earth shattering improvement in the life of most of the programmers and projects.

[color=red]Reason number 8[/color]: There is no killer application on the horizon. This means new languages compete in old markets with established players.

[color=red]Reason number 9[/color]: None of these new languages has a powerful sponsor with the will and the money to push them on the market. Powerful sponsor translates in investment in the libraries - see Java. All these new languages are born in universities and research institutes or are coming from very specific niche domains.

[color=red]Reason number 10[/color]: Most of these languages lingered around too much without stepping decisively into the big arena.

[color=red]Reason number 11[/color]: “Features” that look and are dangerous for big projects. Since there are not a lot of big projects written in any of these languages it is hard to make an unbiased evaluation. But bias is in the end a real obstacle for their adoption.

[color=red]Reason number 12[/color]: Unnatural concepts (for majority of programmers) raise the entry level. Functional languages make you write code like mathematical equations. But how many people actually love math so much to write everything in it? Object oriented languages provide a great advantage: they let programmers think about the domain they want to model, not about the language or the machine.

[color=red]Reason number 13[/color]: Lack of advanced tools for development and refactoring cripple the programmer and the development teams when faced with big amounts of lines of code.
[/quote]
  作者还对几种以“Java挑战者”姿态出现的语言进行了分析:
[quote]For scripting [color=red]Python[/color] has potential, huge potential. But it has to do something about the indentation fetish to be able penetrate the big project market. Without that the web looks PHPish.

[color=red]Ruby[/color] is elegant but alien. I saw its syntax described like “the bastard son of Perl” (just google it). Its new popularity is based not on the language itself but on a framework (Rails) that can be reproduced in other languages even if with less elegance. Struts 2 attempts just that.

[color=red]Scripting languages (Groovy, Rhino…) on top of Java and the JVM [/color]are interesting but they will never be primadonnas. They cannot compete with Java because they are slower. They can be useful when scripting a Java application is a desirable feature (VBA is an excellent tool for Microsoft products and other Windows products and it pushed Visual Basic up the scale).

[color=red]Scala[/color] has a lot of good cards. Building on the JVM, familiar syntax, huge inherited library, can be as fast as Java on the JVM… But where is the sponsor and where is the killer application in a shifting market?[/quote]
  最后,作者提出:
[quote]The danger for Java doesn’t come from outside. None of these new (actually most of them are pretty old) languages have the potential to displace Java.
The danger for Java comes from inside and it is caused by too many “features” making their way into the language and transforming if from a language that wanted to keep only the essential features of C++ into a trash box for features and concepts from all languages. [/quote]
SipHash算法详解:从哈希洪水攻击防御到C语言实现 哈希表作为计算机科学中的基础数据结构,以其接近O(1)的查找效率支撑着众多高性能服务。其核心原理是通过哈希函数将键映射到存储位置,但传统非加密哈希函数(如早期Java的hashCode)在面对恶意构造的输入时,会因哈希碰撞导致性能从O(1)退化为O(n),引发哈希洪水攻击,造成服务拒绝。为解决此安全漏洞,密码学安全的伪随机函数应运而生,它通过引入密钥依赖性和强抗碰撞性,从根本上免疫此类攻击。SipHash正是这类技术的杰出代表,它专为短消息哈希设计,巧妙平衡安全与性能,尤其适用于分布式系统和Web服务中处理 阅读详情

相关推荐

ruby生成java文件的工具

NULL 博文链接:https://fansofjava.iteye.com/blog/1533691

国际:Ruby、Python不能威胁Java的13个理由

最近,到处可以看到大量的文章:Java将会消失取而代之的是脚本语言或其他汇编语言。不,那种情况是不会发生的。下面是我的论据,我们先看些数据。2008年5月的编程语言受欢迎度情况:虽然有些人并不喜欢Tiobe的基于搜索引擎的编程语言欢迎度调查,但是我认为还是有根据、公平的。从图中的数据发现和“C语法”相似语言占有较大的份额。C (15.292) + C++ (10.484) + Java (

xuejinyoulan的专栏 1430

Ruby、Python不能威胁Java的13个理由

最近,到处可以看到大量的文章:关于Java将会消失取而代之的是脚本语言或其他汇编语言。不,那种情况是不会发生的。本文,作者根据许多数据给出了论证。

10个惊艳的Ruby单行代码

1.数组中的每个元素乘以2 (1..10).map { |n| n * 2 } 2.数组中的元素求和 (1..1000).inject { |sum, n| sum + n } 或使用(内置的)Symbol#to_proc语法,自Ruby 1.8.7之后可用: (1..1000).inject(&:+) 甚至就直接传递一个符号: (1..1000).inject(:+) ...

Java 技术 375

触摸延时灯课程设计

Multisim源文件下载: 实验名称:­­­­­­­­­­­­­­­­­­­ 课程设计1:触摸延时灯仿真设计 设计要求: 利用单稳态触发器设计触控延时灯,要求利用触发波形的边沿模拟触控点实现触发,触发后3秒灯亮,灯可以亮的时间可在5-10秒之间可调。 设计思路: 利用集成单稳态触发器CD4098设计简易的触摸延时灯电路。应用CD4098可以实现脉冲延时,原理图如下。4脚未触发信号输入端,可通过比较器对触摸产生的信号进行比较后再产生触发信号,使触发准确度得以提高。...

m0_54240221的博客 1万+

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 745

C、C++、Java、JavaScript、PHP、Python、Ruby这些语言分别主要用来开发什么?

c语言主要用于底层和驱动,编译器开发 c语言高效底层,主要用于底层的开发,比如一些系统驱动;unix,linux系统和其上相关应用的开发; 有很多语言比如python、php、perl、ruby等都c语言开发的这些语言的核心库,编译器等开发都是c语言。比如鸟哥的php7的开发,就基本上全是c语言了,据说鸟哥在新浪的时候就成功把新浪的php码农都带成了c码农。 还有就是如果某些应用如果对性...

多智时代的博客 1551

飞书应用开发脚手架lark-harness:从零构建企业级机器人

在构建企业级应用时,开发脚手架是提升工程效率和规范性的关键工具。其核心原理在于通过预设的项目模板、最佳实践和通用模块封装,自动化处理项目初始化、配置管理和基础架构搭建。这种技术价值在于将开发者从重复性劳动中解放出来,确保团队技术栈统一,并降低维护成本。在Node.js生态中,脚手架常与Express或Koa等Web框架结合,用于快速构建Web服务、API接口和实时事件处理系统。具体到飞书开放平台开发场景,开发者需要处理OAuth 2.0授权、事件订阅验证、消息加解密等复杂且标准的流程。lark-harnes

weixin_30703911的博客 613

【JAVA程序员必看】Ruby、Python不能威胁Java的13个理由

最近,到处可以看到大量的文章:Java将会消失取而代之的是脚本语言或其他汇编语言。不,那种情况是不会发生的。下面是我的论据,我们先看些数据。 2008年5月的编程语言受欢迎度情况:虽然有些人并不喜欢Tiobe的基于搜索引擎的编程语言欢迎度调查,但是我认为还是有根据、公平的。 从图中的数据发现和“C语法”相似语言占有较大的份额。 C (15.292) + C++ (10.484) + ...

BaiDaiCEO的专栏 262

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)_167

本系统主要由超市环境监测部分和商品管理部分组成。环境监测部分主控芯片采用STM32F103C8T6,主要包括温湿度传感器、烟雾传感器和空调制热开关、空调制冷开关,采集的数据通过ESP8266模块+MQTT协议上传至OneNet云平台,在OneNet云平台设计手机和电脑版本可视化页面,能够在页面上查看超市的环境信息,还能在页面上手动打开空调制热开关和空调制冷开关。商品管理部分主要由RC522-RFID读卡器、上位机组成,实现商品选购、结算、顾客的VIP会员卡注册管理等功能。

6071

某Z节验证码

某Z节验证码、captchaBody、滑块、旋转、空间推理

mamenqi_csdn的博客 773

哈希洪水攻击防御:Python与Rust为何默认选择SipHash算法

哈希表作为现代编程语言的核心数据结构,通过哈希函数将键映射到存储位置实现高效查找。其原理基于将任意长度输入转换为固定长度哈希值,理想情况下实现O(1)时间复杂度操作。然而传统哈希算法的确定性和公开性使其面临哈希洪水攻击风险,攻击者可构造大量哈希碰撞数据导致哈希表性能从O(1)退化为O(n),引发服务拒绝。为平衡性能与安全,SipHash算法引入随机密钥机制,在保持接近非加密哈希速度的同时提供密码学强度抗碰撞性。这种设计使其成为抵御哈希洪水攻击的行业标准,广泛应用于网络服务、数据库等需要处理不可信输入的工程场

weixin_30480075的博客 373

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 475

软考-系统分析师-备考笔记

根据学习视频和一些资料整理的软考系统分析师考试笔记,2025年下半年通关

提子同学是我 1028

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 700

OpenClaw 2026.3.13 踩坑实录:飞书HTTP协议降级Bug与多版本回归问题汇总

摘要:OpenClaw v2026.3.13存在多个严重回归问题,包括飞书API调用协议意外降级为HTTP导致连接失败(#46100)、本地Gateway诊断矛盾(#45504)及设备配对CLI命令失效等。该版本发布流程本身也存在异常,被迫以v2026.3.13-1标签重新发布。建议飞书用户回退至v2026.3.8稳定版,其他用户谨慎升级。本文详细记录了各Bug现象、影响范围及临时解决方案,并梳理了飞书通道的"多版本回归史",指出其根源在于架构变迁和测试覆盖不足。最后提供了包含配置备份、

Maynor的博客 870

全面详解Python与Ruby,到底哪款更优秀

今天,我和大家讨论一下是Python开发语言web好还是Ruby开发语言web好,有需要的小伙伴,可以参考一下。对这方面有自己见解的大神,可以交流一下。希望大家可以认真阅读哦! Python 和 Ruby 都是目前用来开发 websites、web-based apps 和 web services 的流行编程语言之一。   这两种语言在许多方面有相似之处。它们都是高级的面向对象的

zyj66666的博客 6228

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Convert Ruby to Java,Ruby時區字符串到java時區

2The authoritative source for Rails time zone names to standard TZDB/IANA time zone identifiers is the TimeZone.MAPPING constant in the Rails source code here. If you are able to access this mapping i...

weixin_34812649的博客 163

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Convert Ruby to Java,将Ruby代码转换为Java

我从未使用过ruby,但需要将这段代码翻译成java。这是Ruby中的代码。DEFAULT_PRIOR = [2, 2, 2, 2, 2]## input is a five-element array of integers## output is a score between 1.0 and 5.0def score votes, prior=DEFAULT_PRIORposterior =...

weixin_30572265的博客 460

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

专访:Ruby能否成为第二个Java

一直以来Ruby on Rails在中国及至世界开始火爆起来,无论在Java的站点里、搜索引擎中,还是火热的论坛里,你都会看到Ruby和Java叠对出现,而且它们两个好像一对水火不相容的冤家被人们相互地比来比去。甚至Oreilly这位多年来一直支持Java的大师级人物,也开始出版Ruby方面的书籍,带领人们从Java这儿离开。这场讨论的范围越来越大,参与者越来越多,甚至Java之父Gosling也

1933

Convert Ruby to Java_如何知道Ruby中的ffmpeg转换是否成功?

“ffmpeg版本N-74748-gbaeb8f5版权所有(c)2000-2015 FFmpeg开发人员\ n用gcc 4.8构建(Ubuntu 4.8.4-2ubuntu1~14.04)\ n配置: - extra-libs = -ldl --prefix = / opt / ffmpeg --enable-avresample --disable-debug --enable-nonfree...

weixin_35133280的博客 171

ruby转java 需要重点学习的知识点

技术 详细 自评 改进方向 java java基础,设计模式,j2ee,IO、多线程、集合,JVM运行机制、内存管理、web服务器参数调优 基本较为扎实,不过需要提前复习相关知识点 巩固基础 html,JavaScript,css 熟悉

code人生 1937
上一篇: Java:进化的尽头
下一篇: 最科幻的笔:Java Pen
JavaSxy
博客等级 码龄21年 1粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值