Tag Archives: java

中文编程语言?

大四的时候跟方圆和强子在阳台抽烟的时候突发奇想,想搞一个中文的编程语言,再仔细一琢磨,词法分析,语法分析上一点问题都没有,只是把标识符换成中文字符而已,但是真要写出来的话会比较诡异,恐怕广大灰领们短时间内接受不了(高亮为关键字): 包 包一; 导入 爪哇.语言.系统.所有;   公有 类 类一 继承 类二 实现 接口三 {     公有 静态 无返回值 主(字符串 数组 数组一) 会抛 异常一 {          对于 (整型 啊 等于 0;啊 小于 100;啊 连加) {              若(数组一.长 恒等 1) {               read more »

我是谁?(一)

本命年了,大学毕业了,工作了半年多了,在北京混了4年多了,天南海北的交了一帮朋友了。不知道他们是怎么看我,可能很多人其实并不了解我。这样吧,从今天开始自我审视一下,看一下或者说向各位展示一下我到底是个什么样的人。诸位看官,有空的评论一下,让我大概了解一下我在别人眼里的形象。大家是愿意评啊,是愿意评啊,是愿意评啊? 初中开始受韩寒的影响(他应该算是我的同龄人吧,当时只知道哥们儿挺牛逼,门门挂红灯却把当时半拉上海市尤其是所谓的“教育界”折腾得鸡犬不宁,天天研究“韩寒现象”),文章比较愤,看不惯的就开骂。当然了,当时骂得算是相当文明的,一是年纪太小,而且光在上海待着,粗口知道得不多,二是作文都是要交的,我还没到韩寒这么不要命的地步,不太敢得罪老师。如果照现在的情况,再写文章恐怕是粗口满篇,而且还都是京片子,搞不好生殖器都得扯上几个。后来到了大学发现这个性格并不是传说中的“青春期叛逆心理”,并没有随着青春期的结束而终止(或者说我现在还在发育期?),反而似乎有愈演愈烈之势。记忆中印象较深的在大学四年当面骂过三个人,其中两个老师,还有一个是老八。 第一个是张茂林(既然老师当到这个份上就不用留面子了),大一上的时候教计算机导论。因为那是大一唯一一门专业课,而且教材是全英文,所以预习得比较认真,天天在宿舍抱着字典啃。顺便插一句,在宿舍看书的时候发现其它省市的计算机普及教育做得太次了。虽然也是第一次看英文得计算机教材,但是很多词一查字典就能和脑子里的中文概念对起来,比如stack和list,buble sort和quick sort。而那帮哥们儿则查了字典只能知道字面意思。于是后来在宿舍里我开始给他们讲一些“计算机概论”。上课前原以为那门课应该很有趣,因为书里涵盖的范围相当广,从硬件到数据结构到算法到操作系统,心里想着就算用中文讲也应该获益匪浅。结果那门课让那个姓张的活活的给教成了英文课,每堂课的内容都是从书里摘出几段,然后翻译成中文讲一遍。于是再上课我都是带着walkman去的(大一年纪太轻,还不知道翘课)。有一节课我带着耳机在看书,在两首歌的间歇听见了那孙子在讲编程语言类型,有一种是“declarative language”,生生让丫译成了“宣告型语言”,于是我当时就骂了一句“我操,什么叫宣告型语言啊”。可能大家都有经验,一般听歌的时候说话会比较大声,结果整个班的同学顺着声音朝我投来了景仰的目光。当然了,大家景仰的是我当堂“我操”,而不是我指出了他的错误。我抬头看了丫一眼,结果孙子什么反应都没有,继续讲课…… 第二个是刘超,现在好像是北航软件所的所长。他讲的是OO,大家可以在我的博客上找一下,2005年3月份我应该专门写过一篇博客,全文如下(http://scjp.spaces.live.com/blog/cns!8B55061AA378FE77!193.entry): 程序员的信仰……不要误人子弟 这个学期大三(下),终于到了“熬出头”日子,因为全部是专业课,不用再上什么大物啊、数电啊、模电啊这些我一看了课表就想吐的课程,而且还有很多专业选修课可以上,再有就是我们学院的开课老师都挺有名气,像上操作系统的任爱华,上个人软件过程的吴超英……。 一拿到专业选修课的课表,我立马把“面向对象技术”列在选择范围之内,道理很简单,因为Java。第一节课,那老师看上去有快50的年纪,上得还算中规中矩,介绍了一下面向对象技术的历史。但从第二节课开始,他介绍Java基本知识,我的恶梦也开始了…… 首先是类型介绍,他赫然把String和int、double一起作为Java的类型来介绍。然后,他竟然自做主张地把System类划分到了java.io包下,范例程序中每次从标准输出打印时都要import一下io包。在讲布尔类型时他的幻灯片里还出现了“<boolean>!”(非操作)这样的语法。今天的课上,他把override译成了“重构”,还在Java的collention框架里添加了一个“dictionary”,结果听他一讲原来是map!还有其它的一些错误比如混用“boolean”和“Boolean”、“String”和“string”、“=”和“==”,真不知道他是不是科班出身。 前些天和同学聊天,我说程序员是有信仰的,对语言的执着、对技术的追求,那就是一种信仰。然而这个老师竟公然亵渎我的信仰,还将这么多的错误知识从讲台上传授下来,真的害人不浅。中国的计算机教育或者说大学计算机教育忽视教学质量,是不是滞后中国软件业发展的一个因素呢? 结果那哥们儿果真在他的期末考试卷里出了这么一道题“请阐述一下重载和重构的区别”。我当时压着火气写下的答案是先分析了一下重构的含义,再比较了一下重载和覆盖的区别,然后善意地提醒他题目出错了。要不是不想在毕业的时候因为没有毕业证去跳如心楼,我早把他妈捎上了。 下一个就是老八了。骂他主要是因为丫大四前太没出息,整天无所事事,看电视,玩游戏,就是不干正经事。每次跟我要Java书看,说要学,结果每次都坚持不了三天。于是大三过完寒假有一天我实在忍不住了,在宿舍(好像当时就我们两个人)劈头盖脸把丫臭骂了一顿,具体内容就不贴了,脏字较多,属于限制级。自那以后丫稍微好一点,有点上进心了,结果大四顺利考上了6系的公费。但现在有时还是来问我一些Java的东西,每次问我都先骂一句“孙子你早干嘛去了?” 好了,先写这么多吧,最后以高中发在榕树下的一篇文章(应该算Blog的雏形了)结尾,让大家看一下当时我的笔风(发于2002年8月,可惜的是,5年过去了,中国的动漫一点气色都没有,倒有另一帮孙子做出了《蓝猫》这么一个不伦不类的怪胎): 国产动画,给我一个看你的理由 如今的上海荧幕,可谓灿烂,好片云集,佳作不断。而对我来说,大概只能用八个字来形容:“风起云涌,暗自心痛”,因为里面少了我爱看的动画片。有人可能会惊奇——如今动画片已经不少了,像前一阵子大红大紫而今又在重播的《我为歌狂》,还有《封神榜》,都是动辄几十集的国产大片,为何还如此不知足呢?而我想说的是,如果这种东西也可以称作是动画片的话,那可以说,我对中国的动画界彻底地丧失了信心。 先让我们回到1999年。《宝莲灯》,号称“耗时五年,精心打造的第一部国产巨片”,就像炫耀了五千年的中国悠久的历史一样,这一次,国人又凭这“五年”为老本大肆卖弄了一番。这部电影是我自己掏钱去看的,也是本人自懂事以来第二次自己掏钱上电影院,为了就是给这部中国动画界的“圣婴”捧个场。客观地讲,这部电影还过得去,画面应该可以和八十年代的日本货一较高下了,再加上不少明星担任配音以及滚石公司鼎力制作的主题曲和插曲,更是增加了可看性。然而一想到那些铺天盖地的广告,我就一阵心酸——一个孕育了五年的生命竟然还是如此地平庸?“历时五年精心打造”?五年就打造出这么一个马戏团里只能用来赚钱,供大家娱乐的,严重发育不良的——侏儒?我是《名侦探柯南》的忠实观众。就我掌握的资料,《柯南》一共出了252集30分钟的电视版以及5部120分钟的剧场版。而照中国这种120分钟/5年的速度得340年才能赶上别人一部动画片的量,而质则比别人整整落后了二十年。 再看电视荧屏。 《封神榜》以其极差的画面以及零内涵给我留下了很深的——坏印象。它那种背景与前景分开处理的手法以及能够在人物脸部的向光处打出阴影的技巧,着实让我叹为观止。其次它把最根本的内容置之度外,这种洒脱也让我折服。《封神演义》之所以能被列为中国古典名著之一,主要是因为其丰富的内涵以及对众多人物的刻画。照理来说,将这部文学巨作搬上荧幕,这些特色理应秉承。而这部动画片只是平淡地白描,对人物的刻画也粗糙至极,只是让观众分出起码的善恶。可能是因为它的观众群只是定格在儿童这一低年龄段而怕太深奥了小朋友们看不懂吧?如果真是这样,那我终于从它身上找到了一个优点——平易近人,体贴的人性化设计。然而这是不可能的。如今说许多大人长不大,二十岁的人了还在看动画片。我就属于这些“长不大”之辈,但我看的决不是国产动画。因为中国的动画片已经丧失了内涵,这本是国人最引以为傲的,如今连这个也没了,还凭什么吸引我去看?那样做只会降低我的身份。 还有《我为歌狂》,也是不堪入目。其画面只是重复的几张静止的幻灯片的播放穿插一些同样重复的诸如人物面部表情变化的GIF图片以及一些背景音乐。这种东西一台电脑加一个PowerPoint就能搞定。而它的内容也只是《灌篮高手》的翻版,只是将篮球队的故事搬到了乐队罢了。而我认为,一味地模仿,只能失去本属于自己的东西,更何况自己本来就没有多少东西。 没有灵魂的躯壳、蹩脚的克隆技术,除了这些,还有其它原因致使国产动画离我越来越远吗?我认为还有。 有人说,阻碍国产动画发展的,是因为盗版的泛滥,就像过去国产软件在市场上的大萧条一样。胡扯!自己不争气却怪外界环境,就好像葡萄长不成西瓜却怪光照不充分一样。你凭什么拉我们去买你的正版VCD?凭什么让我们去受你的视觉污染?还有人说国产动画的不成熟是因为没有经费上的支持。无稽之谈!《宝莲灯》上映以后从市场上赚了多少钱?光从我身上就榨走了35块钱。现在都已经3年了,怎么一点动静都没有,难道又难产了? 此外,就是主旨。国外动画片是以娱乐为主,而在轻松当中融入自己本民族的特色和作者自己的人生哲理。他们画出来的是娱乐,是智慧,而他们自己是学者,是大家,受人尊敬。比如《柯南》的作者青山冈昌,就在日本享有很高的知名度。而中国的动画片一开始就定下了“寓教于乐”的大方向,使动画片在娱乐性上的发挥受到了很大的限制。因此,国产动画只能成为教材,而且是幼稚园的教材,而他们的作者顶多只是个画家,只能得到小小孩们的一时的崇拜,而不是长久的社会的认可,就好像我到现在还不知道《宝莲灯》是哪一个画的。 还有,就是老掉牙的题材。中国人太讲究传统以至于那些“中华美德”、“中华成语”、“自古英雄出少年”天天挂在嘴边教育下一代的不够,还要一咕脑儿往银幕上搬,形成听觉、视觉双方面的攻势。而画这些东西的都是些不开化的中年人,这样能有什么创新?什么改革?如此下去,国产动画恐怕前途渺茫。 最后,就是优秀作品的选拔问题。日本有一个叫“小学馆漫画奖”已经举办了50多届,从中选拔出了许多诸如《柯南》、《浪客剑心》等优秀作品。而国内的漫画大奖赛去年好像只是第一届,这样就导致许多优秀的动漫作品不能与广大观众见面,只能作者与周遭的朋友分享。这不也是一种影响国产动画发展的障碍吗? 大家一定还记得那个老掉牙的笑话,说中国与韩国国家男足主教练在世界杯预选赛之前去向上帝预测球队的未来。结果上帝给车范根的回答只是让他老泪纵横地走出了教堂,而面对戚务生时,上帝自己却泣不成声。中国何时才能做出让我们这些大孩子抱着不放的动画片?我不打算去问上帝,因为,我不想天上下雨!

Taste of Life

一个宁静的下午,刚用钟爱的爪哇解决了一个需求。现在坐在一家广式茶餐厅临街的窗口,点一份午餐。虽然三点半才吃午饭有些对不起胃,但至少时间是由我自由分配的。看着窗外匆匆的行人,突然发现这种生活是我向往的,不规律但很自由,经常有成就感,不用遵守规章制度,忙的时候可以连干几个通宵,闲的时候可以整天整天地发呆,不富但有心情小资一把看来我不适合上班,我应该去做SOHO。Sigh,我不是一个挣大钱的人…… [手机记于2006年5月15日下午3点半 北航东南门金隆信]

Java 销魂落魄散 [zz]

引用 java 销魂落魄散 今天和徐某(一个学弟)一起coding,co着co着,徐某看起动漫来,还不停自言自语,说什么“姆斯唐”(mustang,java 6 的开发代号),然后非常热情地把笔记本转向我,然后说:“看,这就是姆斯唐”。原来是一个主角叫“姆斯唐”…当场晕倒… 平时就知道这人甚爱“爪哇”,可是也不至于因为某个主角的名称有点YY而对这部动画片狂热不已吧…唉 遂有了“徐某已身中巨毒,此毒乃java销魂落魄散也”; 可是又回头想想自己对mustang如此的的sensitive… 哈,可能原本就是我自己中了“java 销魂落魄散”了吧…哀哉乎?不悲矣,乐在其中:)

Meet god father

今天是Java China 2005的最后一天,下午没有去各个分会场,而是去了长富宫饭店的“Java认证群英欢庆会”,目的只有一个:和Java之父James Gosling合影。 …… 由于明天要交实习手册,拍照过程当中使用的个中手段先按下不表,总之合影是成功的,效果是令人满意的

新学期,新气象

明天就回北京了,大四的学习生活马上就开始了。由于不想加入浩浩荡荡的考研大军,再加上我们系大四上一共才三节课,因此我可以说是闲得发慌,可以静下心来好好看看书,搞搞研究了。 在这里列两个list,好有个目标。 study list 研究一下eclipse的plugin机制,结合实验室现在的mipv6项目,继续实习时的工作 和师兄讨论一下,尽快定下毕设方向 争取一下保研的事 得花些时间在高老板那边,开始用户端的编码(突然发现struts是个好东东) 今天刚接了一个活儿,市场前景不错,得好好设计一下,还得找点人(毕竟几个以前得力的好搭档正准备考研),可能得先一个人扛一段时间 reading list 《Java与模式》看了大半了,这学期看完,然后总结一下 《The Object Primer》,系统整理一下oo知识 《UML参考手册》,UML 2.0推出了,得好好琢磨一下 《Expert One-on-One J2EE Development without EJB》 有时间的话看一下密码学

使用策略模式(Strategy)实现多关键字排序

「策略模式」的出现,是为了提供一套相互之间可灵活替换的算法,在不影响上层接口的情况下,用户可以自由选择不同的算法完成逻辑。策略模式的UML示意图如下: 其中算法的模型接口在「抽象策略」中定义,各具象策略实现不同的策略。「消费API」就是调用不同算法的类,在其内部根据不同需要选择不同的算法。有时需要将具象策略实例化后再传给其它类,这时可以使用「简单工厂」(Simple Factory)或「工厂方法」(Factory Method)生成所需的具象策略。下面就以我正在做的一个项目,简化一下后说明一下策略模式的使用。 该项目是一个小型的商业网站,逻辑层由Servlet实现。用户有一个需求,需要从数据库调出商品信息后能够对记录按名称(name)、规格(standard)、价格(price)和注册日期(register date)进行排序。虽然可以考虑按不同的排序关键字使用不同的sql语句(即不同的order by)查询数据库。但这样做的网络数据流量太大,每次需要从数据库完整地取回一个数据集(ResultSet),所以我选择了将数据集一次取到客户端的一个List中,然后在客户端按不同的关键字对List进行排序。 java.util.Collections类中有一个public static void sort(List list, Comparator comparator)的方法,可以按照不同的Comparator对象对list进行排序,它使用的是快速排序,所以效率非常高。而java.util.Comparator是一个接口: package java.util;   public abstract interface Comparator {     boolean equals(Object object);       int compare(Object object, Object object1); } package java.util; public abstract interface Comparator { boolean equals(Object object); int compare(Object object, Object object1); } 其中和排序有关的是compare方法,它返回一个整数,若第一个参数比第二个参数「大」,则返回一个正数,若「小」则返回一个负数,若「相等」则返回0,这里的「大」、「小」、「相等」是由compare方法具体实现定义的一种比较标准。由这个方法不禁想到C语言中qsort函数中使用的函数指针int *compare(*,*),JAVA中之所以没有函数指针,就是用接口取代了(更详细的介绍见《Effective Java》中第22条「用类和接口来代替函数指针」)。 read more »

IDEA,破解成功

今天在TSS上看到IntelliJ的IDEA 5.0终于release了,于是马上当了一个,还申请了一个30天的评估号。要知道IDEA可是个人程序员非常钟爱的IDE,界面很漂亮,使用 Alloy的Look and Feel,而且功能也相当强大,个人认为在中国这片没有license概念的土地上可以和JBuilder抗衡。但是上网站一看价格,竟然要$499!看来自己花钱买license是不可能的了。于是又找出Java反编译利器DJ,打算破解IDEA。 由于有了alloy的破解经验,这一次很快找到了关键代码,稍做修改后,评估版30天的限制被我破掉了,以后可以在一个“舒适”的IDE上开发了 Develop with pleasure

Java生日快乐

Java今年10岁了,虽然我接触他只有短短的5年,但是这5年我“矢志不渝”地扛着Java的大旗,包括到处鼓吹“Compile once, run anywhere”;包括“怂恿”同学学习Java;包括和.net阵营的fans面红耳赤地争论;包括对CPP的鄙视 ;包括对《Thinking in Java》的作者Bruce Eckel的顶礼膜拜(虽然他先写了《Thinking in C++》,但我“不记前嫌” );包括对GoF的抱怨,只因为他们的《Design Patterns》用CPP写示例(那时还没有Java);包括床头不下20本Java相关书籍;包括写blog指责学院一位资深的教授,只因为他教“面向对象技术”时讲授的Java知识错误百出;包括因为Java去看《Java与模式》(16开,1024页)、《Object-Oriented Software Construction》(1254页,E文);包括这次花250大洋参加Java 10周年大会………… 一直关注Java的成长,一直关注Java技术的发展。10年对人类来说可能很短暂,但对于一门计算机技术来说,10年兴盛的发展本身就是一个奇迹。我是幸运的,因为我亲眼目睹并且亲身经历了Sun创造的这个奇迹。再过20年,我会很自豪地对我儿子说“小子,这就是Java,老爸是看着他长大的”

二探Web service

复习了一天体系结构,打开JB玩玩Web service消遣消遣。发现WSDL的描述文件支持用户自定义类,但不支持JDK中的类库,应该是因为C#中没有相应的类与之对应,好像比较麻烦。如果要真正做到Java与.net无障碍协作的话得把JDK中所有的类在.net端映射一下。但如果是小范围应用的话可以考虑适配器模式(Adapter)

无觅相关文章插件,快速提升流量