时空变幻有感

  玩游戏的时候,魔兽世界,用得猎人。在70的时候,兽王比较好。后来的版本,有生存比较好,各项收益兽王输出没法比。再后来版本射击猎人比较好,也是由于游戏平衡趋向的原因,不得不用。

  想起来生存的时候,各项操作比较吃力,还有些技能需要自己卡准时间释放,精确一点要考虑网络延迟。在这个版本之前,根本没有愿意去看生存相关的东西,当然觉得之前会生存的人都很牛。后来从一直用兽王切换到生存。也没有感觉出来太多的不适。想过继续用兽王,可是很多技能没有伤害,狂按了半天按得手不舒服也在团队里没有作用。再后来射击好的时候也想去用兽王,可实际上真的没办法比。

  有一些固定的输出计算公式,告诉着等装备达到怎样的等级,用哪种天赋好。没想到玩个游戏也只能随着时空变换,不能说感觉某样是好的,喜欢某个 样式就去用那个样式。大概是自己玩的不够利索。

  有时候想编程语言的事也是差不多,可能需要换一种编程语言。根据“装备等级”,在不同的时代用不同的语言。

  比较喜欢java,虽然没怎么用它来开发过。最开始用的php,因为速度确实快,项目小根本没瓶颈问题。再后来用c#,感觉开启了另一扇大门。

  java需要配置好多框架,包括maven的使用都比较别扭,SSH/M,需要自己手动配置。还有各方面的原理在学习的时候也要理清,加上中间语言的解释执行还有垃圾回收机制,有太多内容需要明白才可以开发。感觉是这样。C#的话这些全部被语言包了,连IED都不用选,全部被包办,免费使用。创建个项目直接能运行,web项目连啥是web容器根部不需要过多理解,用就可以了。没有说需要下载,需要配置什么文件。C#有一套自己的框架,而且直接拿来用,也有很多别人开发的包,直接下载,并且不需要考虑下载速度 是否要提前下载后台下载设置那些。不清楚java现在是否好些,刚学maven下载国外的包会很慢。C#的包基本上秒安装好。

  接着是配置文件,框架之间的交互最原始的有XML配置。这些在C#中都用最简便的方式自动配置好。C#有很多便捷的方法和工具,这些工具像是经过很多人长时间堆积出来的,然后合并到C#语言的功能本身。在JAVA里要自行处理的很多步骤,在C#中可以便捷完成,并且效率普遍比JAVA高。基本上想用什么功能,那个功能就在手边。C#和java或许相互学习,不过C#对Java一些繁琐步骤的简化出现在很多地方。

  C#相对java来说,面向对象并不强。一些功能的实现实际上是面向过程。方便好用的同时这些功能并没有明确的分类。更多只是为了有这个功能,于是做了这种处理。像string.IsNullOrEmpty()这种方法,初次看到的时候感觉很诧异。如果在Java中不会出现这种思考,因为它(个人观察)更多思考业务过程需要什么,而不是编码过程需要什么。

  经常在引用C#访问http的时候直接抛出异常,系统包不给为什么会出现异常,出现了怎样的异常,直接给了个访问出错。可其实访问出错是个正常流程,比如没有找到服务器或者传入参数不正确对方给了一个错误state标识。居然把异常设计进用来处理正常的业务流程。Java中所有的异常都不会是业务流程的一部分,异常只负责处理出现代码错误的情况,个人自己写的除外。

  还是比较期望能用java,虽然处理速度慢了一些,编程也不方便了一些。它的市场可能在于安全性或者已经有的生态。最近没有用过java,不过java的框架知识过于庞大,一直没能用起来过。C#用便捷换取对功能的明确分类,实现功能就可以了,并没有很去理功能的划分。有许多编程功能背后的思想都是面向过程,并没有全部面向对象的氛围中编程的舒适感。可是系统功能并不是那么容易划分到相应的篮子里,特别当出现新的语言功能需求的时候。C#可以快速实现这个语言功能,并且根据用户反馈及时做一些小的补丁来方便使用。更多地直接面对了 计算机能做什么。有很大的灵活性的同时,需要记忆很多零碎的内容。在JAVA编程的时候,所有对当前有用的元素都在附近,设计的思考和封装都在手边。C#就快速完成功能,并不那么在乎这个功能在面向对象的划分上需要放到哪个地方。

  java需要知道的东西太多了,并且没有什么灵活性。想像C一样操控机器功能,需要了解的知识和各种封装太多,以及为什么要那么封装。C#很多时候可以直接做到那些,并且想去比较规范得面向对象的话,自己的代码也可以那样写。

  java中的功能经过一层层包装,通过包装使得这个功能有了更清晰的划分,同时也加深了这个功能的理解难度,实现过程经过层层包装之后很难简单透明。毕竟包装的过程是一种面向对象的思考,每个人对这种思考的处理能力参差不齐。C#没有那么多对包装的思考,只有对机器实现的简单处理。这种处理方式更多是纯粹的算法知识,很容易让编程人员看明白。或者直接装进一个黑箱子里让人用就行,语言本来来维护这个黑箱子的安全和健壮性。

  使用java需要熟悉包装规则,并且信任开发包的人能做好包装。使用C#需要了解一些试用工具的处理,一些编译器的处理,并且相信编译器能把自己负责的那一块在任何压力下处理好。当设计到很特殊的业务逻辑时候,c#作为一个常用功能大集合,可用性降低。当设计到常用业务处理的时候,C#能有很快的速度把这些功能实现并确保稳定性。

 在常用业务的区域,java的代码显得每一步都平等的艰难,c#却可以很快实现并稳定。在不常规的业务区域,java的代码同样显得每一步都平等的艰难,C#就已经不可信。不能确定这个语言已经对相应的底层做了及时的更新,如编译器等,因为它是遇到什么再去做什么,可能需要一个优化稳定的过程。

  当前业务平铺的环境,大多是常用业务。于是小规模的php或者中大规模的c#开发起来就很有益,用少量的代码就能做出高效的输出(大部分实现都被语言本身给完成了)。用java的话,就需要更多的付出实现同样的功能,同时制造出或许用不到的稳定性和扩展性。可是在安全性要求比较高的领域,还是只能用java,知识庞大,却最大程度可控。底层实现过程可控。

  在现在大部分团队里,或许用C#就很好。有些即使没有那么多安全要求的也在用java,因为他的积累的拓展包带来的相对便捷和跨平台。或许C#已经缩小了这个差距。

  我想用java ,却也觉得在现有装等和团队环境下,没有必要 “狂按还没有输出”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章