阅读更多

13顶
0踩

编程语言

原创新闻 让Java来的更容易些吧

2008-05-19 14:14 by 见习记者 jonathan_zz 评论(10) 有6777人浏览

回顾
       最近发表在TSS上的几篇文章讨论了Java和JEE最棘手的问题之一:复杂性和由此给初学者带来的陡峭的学习曲线。Chris Keene最近描述了几个步骤,能够让他所谓的“低端”开发者体会到Java的实用性和相关性:要使Java更容易入门,更优美,更有趣--主要的还是要提供一个简易的平台,使得任何一个15岁大的儿童能够很容易开发和运行web应用程序。Java语言本身不是问题,JSP的语法或者说JRE的API包也不是问题。问题在于这门语言给入门这一环节增加了太多的困难。这篇文章将试图提出一些正确的改变方式,将Java转变成如上提到的一个简易的开发平台。


简易开发模型
       Java最给人带来挫败感的特性之一就是用来部署web应用程序的EAR/WAR/JAR/web.xml这一体系结构。当然,这个结构方便专业的开发人员管理大型的项目,但如果我想要的只是一个小规模的交互网站呢?为什么我不能只写一个Servlet或者JSP程序,甚至只是写一个简单的Java类,把它拷贝到服务器端然后就能执行它?
       JEE应当有能力部署一个单独的类而不需要任何WAR和JAR包装,就像PHP那样。

 
动态的重新加载类
       这一问题的一部分已经被像JavaRebel这样的产品所解决,但现在是时候把这一特性添加到JVM和JEE的规范中了。改变一个单独的Java类并且不需要服务器重启就可以立刻看到结果。虽然在有些情况下和部分服务器中这一特性已经能够实现,但是最低的要求仍然是需要重新部署整个应用程序。在很多情况下服务器重启可能需要花费5分钟左右的时间。


一个简易的网络服务器控制台
       不同的服务器有不同的管理平台,其中大部分都是基于web的。新用户期望找到类似于微软IIS控制台的工具,能够浏览服务器端的文件夹,观察已经配置好的应用程序,深入到应用程序的各个类和各页中,删除,更新或者上传应用程序的任一部分。除此之外,控制台还必须提供对数据源的简单配置,JRE参数,用户管理,JNDI对象,EJBs以及很多我没有提及到的资源对象。这样的控制台只存在在像WebLogic和WebSphere这样的专业服务器中,而Tomcat, Jetty甚至JBoss所提供的控制台又都不够强大。


一个可视化集成卡发环境GUI设计器
       SUN花了很大的力气推广它的NetBeans5.1web开发包和NetBeans6系列。这个IDE为可视化web设计提供了强大的解决方案,并且提供一个可以和微软的Visual Studio IDE相媲美的基于Swing的可视化设计器。但不幸的是,大部分的java社区还是偏好使用Eclipse。NetBeans的web开发包的另一个问题是它在非GlassFish的服务器上配置应用程序。我曾经尝试在WebLogic, Tomcat和JBoss上配置一个可视化web应用程序。我做了很多尝试,使用了我曾经在一个特殊版本的JBoss上运行过的JARs,但是在其他所有的服务器只显示了一个恼人的异常页面。事实是如果你不是Java专家,将一个在NetBeans中设计好的web表单,部署到Tomcat或者Jetty server几乎是一个不可能的任务。
        除此之外还有其他的问题,也许就是最流行的windows(SWT)UI,或者说能使用到它只是少数初学者的好运气,而事实是大部分Java初学者在开始的时候需要从数目繁多的Eclipse版本中挑选一个下载。而现在还没有基于eclipse的免费的可视化IDE设计器。这意味着15岁的小孩,如果想为他的项目写一些web表单,就会倾向于下载免费的MS Visual Studio Express 版本而不是Eclipse。如果SUN能够将它出色的可视化解决方案整合到Eclipse中,可能会把整个平台向前推进一大步。


结论
       在不同的开源项目和框架中,大多数的技术都是公开的。我们需要做的只是给它们包裹一个简单易用的外壳。一个IDE->Deployment->Server的简单组合就可以把java从一个专家专用的平台转变成能广泛被人们所使用的技术。Ubuntu是一个类似的例子,它把linux桌面系统带给了普通人而不是那些linux专家。在这方面,微软从发布了Visual Basic和.NET平台开始就一直做的很好。Java将如何去竞争呢?

13
0
评论 共 10 条 请登录后发表评论
10 楼 achun 2008-05-24 14:49
问JAVA一句:
自从你生下来,从你嘴里蹦出那么多名词,概念.
到今天,回头自己盘点一下,有多少还有意义,有多少是紧紧是披上了一个新衣.
9 楼 Eastsun 2008-05-21 18:12
huaizhigong 写道
之前有个人曾经告诉我:SUN公司早晚会害死中国的程序员,因为java过于简单,导致现在很多的程序员对底层的东西基本上都不懂。这样长期发展下去对中国的IT发展不利。简单确实有简单的好处。其实往深层次去考虑也会带来很多弊病。


这话就太扯了。
难道搞Web开发的要成为汇编语言专家嘛?

这让我想起那个愚人节的笑话了:C++之父访谈
这个访谈里面C++之父说:之所以把C++搞的这么复杂,就是为了让它难学,提高程序员的待遇。
8 楼 chenzengpeng 2008-05-21 16:31
.net还是J2EE这是个选择。许多学生在弥漫中度过的!!
在选择了之后 ,请不要放弃的为它努力~!!!!!
7 楼 aninfeel 2008-05-21 13:46
引用
之前有个人曾经告诉我:SUN公司早晚会害死中国的程序员,因为java过于简单,导致现在很多的程序员对底层的东西基本上都不懂。这样长期发展下去对中国的IT发展不利。简单确实有简单的好处。其实往深层次去考虑也会带来很多弊病。

比起php、python和ruby,java算好的了
6 楼 huaizhigong 2008-05-21 11:48
之前有个人曾经告诉我:SUN公司早晚会害死中国的程序员,因为java过于简单,导致现在很多的程序员对底层的东西基本上都不懂。这样长期发展下去对中国的IT发展不利。简单确实有简单的好处。其实往深层次去考虑也会带来很多弊病。

但总体来讲,整个社会的发展都在趋于简单化,机械化。这种发展趋势是不可阻挡的。但我想真正说的就是:不论以后IT技术如何简单,关键技术能掌握在我们国人手里这才是最重要的,也是当务之急。
5 楼 elice 2008-05-21 11:18
Java and Java++(JavaExt???)
4 楼 elice 2008-05-21 11:14
应该把Java的核心和扩展区分一下
3 楼 abcx 2008-05-21 10:22
15岁的学生不应该用Java,也不应该编程,应该多学有意义的东西,15岁就编程太可怜了。
2 楼 fangzhouxing 2008-05-21 08:14
正在从Java转向Python。在Web2.0时代,开发Web应用,Java可能很难赶得上动态类型的脚本语言。
1 楼 Eastsun 2008-05-20 14:28
但JAVA语言本身正趋于复杂化。
可以预见Java7将增加一些新的语言元素
而且由于向后兼容性,新增的语法实现不会太优雅。
这里有一篇针对Java7的帖子:
Java语言复杂度在恣意增长?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • WebXone : 快捷强劲的C/S向B/S转换工具

    采用WebXone技术,可以用Delphi /CBuilder /VC /VB /PB /易语言 /VFP /VC#等常用桌面应用程序工具快速开发出适用于网络的应用程序系统。

  • C/S、B/S架构,Tomcat实现简单web应用方法

    系统结构分析,C/S架构、B/S架构,Tomcat实现web应用方法,B/S系统的角色和协议,引出Servlet规范

  • 你真的了解“手机端的 C/S架构 向 B/S架构 迁移”吗

    首先我们需要了解下C/S架构和B/S架构的概念及优缺点QWQ C/S架构 概念:优点:缺点: B/S架构 概念:优点:缺点: 实例1:QQ是B/S还是C/S 实例2:微信小程序(手机端的C/S—>B/S迁移) C/S(Client/Server)架构是一种典型的两层架构,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种...

  • C/S架构WEB化:应用软件架构困局的新出路

     目前主流的应用软件产品包括ERP大部分是基于C/S架构开发的,所以软件的技术框架都是以满足局域网内的应用为主。基于C/S架构的应用因为响应速度快、操作界面的个性化、对复杂流程的适应快,在面世之初受到企业热捧。 随着互联网的发展,这种传统的架构应用开始受到冲击。企业集团化的加强,分支机构的设立,使得围绕C/S架构应用的接入问题接踵而来。 C/S架构应用陷入沼泽 C/S结构,即Cli

  • 网络编程大全(基于c++语言)

    基于C_S结构的Socket程序设计 滑动窗口协议模拟程序 Web Server程序 无线局域网802.11协议CSMACA算法模拟程序 路由器基本功能实现程序等等。。。很全的

  • Java Web项目移植

    问题描述:本机开发JavaWeb项目,通过reference的类库不能随移植而移动,到新机上运行时,必须人工手动重新部署导入类库。 解决方案:JavaWeb项目下有目录WebRoot/WEB-INF/lib,开发时,只需将所用到的全部jar复制至该目录下即可解决上述问题。 转载于:https://www.cnblogs.com/qx-zhong/archive/2012/...

  • appweb移植

    appweb移植(转)2007-06-11 09:54 前几天鼓捣了一个统计网络流量的软件,叫Bandwidthd。用起来之后发现这个软件很好,界面比较友好。就想把这个东西弄到开发板上玩玩,如果移植成 功的话,那开发板不就变成一个网络流量统计器了么。不过这个软件的分析报告是通过Web方式给出的。那么就必须

  • 【C/S架构与B/S架构简介、常见web服务器、idea集成tomcat、Http协议(请求与响应报文)、Servlet简介-编写方式-配置方式】

    C/S架构与B/S架构简介、常见web服务器、idea集成tomcat、Http协议(请求与响应报文)、Servlet简介-编写方式-配置方式

  • 嵌入式web boa移植总结

    嵌入式web移植linux arm总结

  • appweb的移植

    appweb 编译、测试、移植

  • 移植appweb-3.3.2

    嵌入式移植步骤: 1.下载压缩包 2.修改编译环境的环境变量 3.解压压缩包 4.配置 5.编译 6.安装(以上六步都在宿主机上完成) 7.将宿主机上交叉编译好的目标文件放置到目标机相应的文件下(该步在目标机上完成)     一.修改环境变量: 在终端输入以下命令: Export CC=arm-linux-gcc、Export AR=arm-linux-ar、Export

  • Appweb-6.1.1 移植到ARM

    Appweb-6.1.1 移植到ARM编译环境:ubuntu-12.04 x64开发平台:Hi3535 arm版编译版本:appweb-6.1.1.zipESP下载地址=> ESP web site: https://www.embedthis.com/esp/download.html                   => ESP GitHub repository: https...

  • web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来

    一、c/s:client/server 两层的c/s 特点:使用数据库服务器充当服务器(在数据库编写业务处理逻辑,比如Oracle数据库,可以使用pl/sql来写业务处理逻辑),客户端一般使用vb,vc,dephi这样的语言来开发(客户端主要负责提供操作界面和少量的业务处理逻辑)。 缺点: a.可移植性差:因为业务逻辑基本上是写在数据库里,当数据库发生了改变,业务处理逻辑基本上要重新写

  • C++可移植性和跨平台初探

    概述   今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。   C++的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很多内容。鉴于本人能力、精力都有限,只能介绍每一个方面最容易碰到的问题,供大伙儿参考。 ...

Global site tag (gtag.js) - Google Analytics