2006 Java Technology Winners and Losers 2006年java技术的胜者和输者<转>

本文回顾了2006年的Java技术生态,总结了当年最具影响力的Java技术及其工具,包括NetBeans IDE、Spring Framework、Hibernate、Groovy/Grails等,并指出了Apache Geronimo等项目的不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文[url]http://www.oreillynet.com/onjava/blog/2006/12/2006_java_technology_winners_a.html[/url]
Steve Anglin
Updated: 2006 Java Technology Winners and Losers

* listen Speech Icon

Thursday December 21, 2006 2:47PM
by Steve Anglin in Opinion

Here are my winners and, yes, even losers for the most and least innovative and/or impacting Java technologies in 2006…

First, the winners for 2006:

Java IDE Platform/general Java Framework
* NetBeans IDE

NetBeans wins over Eclipse this year, because NetBeans has made significant progress and growth relative to Eclipse. A year or so ago, NetBeans seemed dead and buried. Eclipse is still the market share leader, but has lost momentum to NetBeans and perhaps other IDEs out there, imo.

Enterprise Java/Java EE Framework (front-to-back)
* Spring Framework 2
* JBoss Seam 1.x

Persistence/ORM Engine/Framework
* Hibernate

Java EE app server
* GlassFish Java EE 5 app server

Some might argue for JBoss, but it’s not yet Java EE 5 certified. SAP Java EE 5 app server could be hon mention, though.

Java Web Framework/API
* JavaServer Faces (JSF) and Ajax
* Hon mention: RIFE and Wicket

Much of the market metrics show JSF has grown significantly in the last year and a half or so, most of which relative to Struts 1.2.x. Next year, it may be the forthcoming Struts Action Framework 2. We’ll see.

Dynamic Java Scripting Language/Framework
(Web tier alternative to Java Web Frameworks)
* Groovy/Grails Framework
* JRuby (on Rails)
* Hon Mention: Rhino (JavaScript)

I think these are leading in innovation, interest, etc.

Java Web app server
* Apache Tomcat

Yes, Jetty is intesting, but nearly every significant Java player like JBoss, Apache Geronimo/IBM WebSphere, and much more have adopted Tomcat as part of their stack or app server strategy. Tomcat is the de-facto standard.

Build Tool
* Apache Ant

Yes, Maven is interesting, but Ant is still de-facto standard, at least for 2006, imo.

Logging
* Apache Log4j

Testing Framework/tool
* TestNG

Mobile/Wireless Java app dev IDE/framework
* J2ME Polish

Most Potential
* JBoss Seam
* JRuby (on Rails)
* Java ME/Java Card/embedded Java (in general)

These round out my winners.

And finally, the losers or at least disappointments for 2006:

Java IDE Platform/general Java Framework
* Vendor Java IDEs like Oracle JDeveloper and Borland JBuilder

Enterprise Java/Java EE Framework
* Eclipse Dali-JSF
* Eclipse WTP (JST-WST)

The Web Tools Project (WTP) does have some renewed support led by BEA Systems, but it’s too early to tell. Also, WTP Java plug-ins are based on J2EE 1.4 and not Java EE 5 to the best of my knowledge. And Eclipse Dali-JSF (to be based on Java EE 5) is not getting the contributions necessary to keep up with JBoss Seam which seems to be “sucking all the oxygen out of the room.”

Java EE app server
* Apache Geronimo

A big disappointment despite integration as part of IBM WebSphere Community Edition and as it’s IoC compliant for Spring deployment, and it’s not yet Java EE 5 certified. Geronimo may still yet rebound in 2007, though.

Java Web Framework/API
* Struts 1.2.x (out with the old)

JSF may pass Struts in 2007 as largest adopted Web framework. But the good news for Struts… Struts Action Framework 2. We’ll see.

Dynamic Java Scripting Language/Framework
(Web tier alternative to Java Web Frameworks)
* Jython

Jython seems to be the one that gets lost the most among all this innovation and interest in dynamic Java scripting languages, imo.

Java Web app server
* Jetty

These are my awards as an editor who looks at the aggregrate market metrics/research as well as developer chatter, etc. However, I understand these may likely differ from actual practicing developers’ views. But keep in mind, these are awards for only 2006. It’s easy to get caught up in… “this is my favorite tool; so, it must be a winner.” What do you think?
以下是一个 Java 实现的胜者组败者组赛制: ```java import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 输入参赛人数 System.out.print("请输入参赛人数:"); int n = scanner.nextInt(); // 计算比赛轮次 int rounds = (int) (Math.log(n) / Math.log(2)); // 初始化参赛选手 List<String> players = new ArrayList<>(); for (int i = 1; i <= n; i++) { players.add("选手" + i); } // 开始比赛 for (int i = 1; i <= rounds; i++) { // 输出当前比赛轮次 System.out.println("第" + i + "轮比赛:"); // 胜者组比赛 List<String> winners = new ArrayList<>(); for (int j = 0; j < players.size(); j += 2) { String player1 = players.get(j); String player2 = players.get(j+1); System.out.println(player1 + " VS " + player2); System.out.print("请输入胜者:"); String winner = scanner.next(); winners.add(winner); } // 输者组比赛 List<String> losers = new ArrayList<>(); for (int j = 1; j < players.size(); j += 2) { String player1 = players.get(j-1); String player2 = players.get(j); // 如果选手已经在胜者组晋级,则跳过输者组比赛 if (winners.contains(player1) || winners.contains(player2)) { continue; } System.out.println(player1 + " VS " + player2); System.out.print("请输入胜者:"); String winner = scanner.next(); losers.add(winner); } // 更新参赛选手 players.clear(); players.addAll(winners); players.addAll(losers); } // 输出冠亚季军 System.out.println("冠军:" + players.get(0)); System.out.println("亚军:" + players.get(1)); System.out.println("季军:" + players.get(2)); } } ``` 使用该程序,用户需要输入参赛人数,程序会自动计算比赛轮次,并进行胜者组败者组比赛。最后输出冠亚季军。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值