谈谈.NET,Java,php
开通博客后,一直都是转点别的朋友写的有意思的博文,今天我来写我在博客园的第一篇文章,说的不对的地方请你指正。希望本文能为一些准备学习编程的朋友有一点帮助。
开发桌面程序一直都是c语言,c++的天下,因为他们直接编译为机器码,直接在进程中加载运行,速度会很快,c++既有面向过程,也有面向对象,功能强大,但是很臃肿,很杂乱,了解java的朋友看了c++的代码可能会觉得恶心,c语言是面向过程最优秀的语言,简洁,高效,紧凑,比较适合开发底层的东西。
说说.net吧,其实执行效率和java几乎是没有区别的,本来希望c#是一个面向对象的c语言,可是他不是,他也像c++一样的庞大和臃肿,新的特性在不断增加,有些特性像玩具一样,这也是我为c#担心的一点,很多人说Java比c#难,c#门槛低,说这些话的人,我觉得他不仅不了解c#,他连java都不了解,稍微有点开发经验的人,请告诉我,一个软件项目可能通过拖拽的方式开发出来吗,就算一个最小的企业网站,也是美工设计,写html,客户端js交互,服务端的代码也得一行一行的写,其实根据我的经验,.net其实要比java难学一点儿,因为.NET的架构相当庞大,java相对来说更紧凑,当然语法上的区别是很小的,因为c#的设计参照了java。如果你要学.NET的话,我分享点儿我的经验,在asp.net这一块儿不要陷的太深,对一些像玩具一样的登录控件,AJAX控件,数据源等等这些东西你可以不理他,对于迭代控件的话掌握Repeater就好,然后对他的执行原理有个基本的掌握,因为你可能会遇到一个变态的非得使用ASP.NET的上司,或者需要维护一个ASP.NET的项目,要是新开发一个项目的话,一定要使用ASP.NET MVC。他拥有web最纯正的血统,而且开发效率很高。你会发现MVC方式比那些所谓的为了提高开发效率的控件效率更高。这就是微软做什么事都把排场,大,牛x看的比较重导致的。
再说说java,在j2me方面已经死掉了,在j2se桌面应用方面从速度,性能来考虑的话也不是c++的对手,其实java和.NET的原理是一样的,都是编译为中间语言,然后在虚拟机上即时编译执行,在速度方面是没有区别的,在ui方面因为.NET有windows,所以要优于java,但是两位还是慢。java是面向对象里边最优秀的语言,并不是说他比c#好,而是他是全世界第一个创造出来这么优雅的语言,当然语言再优雅,思想上的错误也会导致他的失败,比如web方面,java在web方面其实最底层的东西很简单,很紧凑,很好。但是j2ee的思想不是很好,还有ejb的失败,导致出了很多用java程序员来说很优秀的框架,框架很多,我承认,但是是否优秀,我觉得得打个问号了。很多框架臃肿,庞杂,我不知道这是为了让java显得更加复杂,更加高深莫测呢,还是这些人比较脑残,希望你用四根筷子吃饭。比如淘宝为什么没用任何开源框架,因为太臃肿,比较死,难于扩展和维护,所以他们选择了自己开发,java的复杂其实是人为造成的。我最讨厌java中经常提到的企业级这三个字,我到现在都不明白这三个字的意思。当然j2ee新的架构进步了很多。Android的出现迎来了java语言一个新的高潮。虽然说他只是使用了java语言,但是对我们来说,他还是java。
最后是php,php是一种简单高效的解释型脚本语言,语法功能相对简单,高并发安全性方面相对比较弱,主要用于开发web项目,当然你说他也可以开发桌面,不好意思,我还没见过,你要非得开发一个,那么我祝福你。
总结一下吧,.net,java,php大多用来开发web项目,当然.net和java也可开发桌面程序,尤其.net的wpf的出现,让.net在桌面方面增色不少。语言只是一个工具而已,主要还是看你自己的喜好,和适应的场景,说白了,不管是.net,java,php,无非就是运行那么一霎那,然后输出一段html,你要是希望开发效率比较高,开发环境比较舒服,语法上更先进,那么你选择.NET,比如定义一个线程,你可以在当前的类中添加一个方法,方法中是线程要执行的代码,用java的话你要写一个类,实现个借口或继承个父类才能完成,如果你比较喜欢原始一点儿的方式,淳朴一点的编码方式,而且你也乐意多写点儿代码,愿意使用那种相比vs来说相对简陋的开发环境,那你选择java吧,还是那句话,语言只是个工具,主要看你自己的喜好,最主要的区别是windows是收费的,sqlserver是收费的,java可以使用免费的linux和免费的jboss和免费的mysql,但是你需要的是一个相对高性能的数据存储环境的话,那么oracle的价格所谓天价,而且那些收费的java容器价格也很高。php的话,只要你开发的不是一个对数据处理的安全有很高要求的比如银行或金融系统的项目,那么php是个很好的选择,他可以用完全免费的工具跑起来。
谈谈.NET,Java,php的更多相关文章
- 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路
		
引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...
 - 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
		
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
 - 转:面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
		
转自:http://jeromecen1021.blog.163.com/blog/static/18851527120117274624888/ 面试题目: 地球人都知道,Java有个东西叫垃圾收集 ...
 - 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
		
面试题目:地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete.free掉,你能不能谈谈: GC是在什么时候,对什么东西,做了什么事情? 以上算是三个问题,下面 ...
 - 顺便谈谈对于Java程序猿学习当中各个阶段的建议
		
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
 - 《Java核心技术36讲》阅读笔记:谈谈对Java平台的理解笔记
		
1. 谈谈你对Java平台的理解. Java是一种面向对象的语言,最显著的特性有两个方面: 一个就是一次编译,到处运行(Write once, run anywhere),能够非常容易的获得跨平台能力 ...
 - 面试——谈谈对JAVA的理解
		
谈谈你对Java平台的理解.答:Java首先是一种面向对象的语言,语言特性有封装,继承,多态,泛型,Lamda表达式等; 第二个特性:支持跨平台,一次书写导出运行(write once,run any ...
 - 1.谈谈对Java平台的理解
		
1.谈谈你对Java平台的理解 Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一次编译,到处运行”(Compile once,run anywhere),能够非常容易地获取跨 ...
 - 谈谈对Java平台的理解
		
从我第一次接触Java的时候,老师就说"Write once,run anywhere",这句话虽然听起来有一点太过于形式主义,但是也突出了它的特点.那么,现在的我们应该总结一下和 ...
 - 谈谈对Java中Unicode、编码的理解
		
我们经常会遇到编码问题.Java号称国际化的语言,是因为它的class文件采用UTF-8,而JVM运行时使用UTF-16(至于为什么JVM中要采用UTF-16,我没看过 相关的资料,但我猜可能是因为J ...
 
随机推荐
- Linux下 两台机器文件/文件夹 相互拷贝
			
Linux下 两台机器文件/文件夹 相互拷贝 设有两台机器 :A:*.101及 B:*.102. 把A下的.temp/var/a.txt拷贝到B机器的/text/目录下: 进入B机器:scp root ...
 - Java高并发如何解决
			
Java高并发如何解决 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧 ...
 - Shopex如何清理缓存
			
一.进入后台,点击 右上角 的"关于" 二.点击:缓存系统: 三.点击"清空缓存" 四.清除成功!
 - PocScan的搭建与使用
			
安装Docker, 然后下载镜像 $ sudo curl -sSL https://get.daocloud.io/docker | sh $ sudo systemctl start docker ...
 - 转载的log4cplus使用指南
			
以下转载的log4cplus使用指南的版本可能不是最新,仅作参考了解.应以最新安装包中的示例代码为准. 目 录1 Log4cplus简介 52 安装方法 53 主要类说明 64 ...
 - layer弹出层传值到父页面
			
目前做的项目中用到layer弹层传值,弹层输入框输入文本,点击确定按钮,父页面的树结构,会自动添加分组. 在此粘贴下代码,以后遇到,方便回忆,如有疑问请留言,或许会为您解答 $(document).r ...
 - IPython+:一个交互式计算和开发环境
			
一. IPython基础 代码自动补全:Tab键 可补全内容包括:变量名.函数名.成员变量函数.目录文件 内省(Itrospection) 在变量名之前或之后加上问号(?),这样可以显示这个对象的相关 ...
 - python_正则表达式
			
re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. 函数语法: \[re.match(pattern, strin ...
 - Linux下MySQL安装和配置
			
--Linux下MySQL安装和配置 ---------------------------2014/05/18 Linux下MySQL的配置和安装 本文的安装采用 rpm 包安装 1.首先在官网下载 ...
 - oracle-使用数据泵对不同用户和不同表空间的数据迁移
			
oracle-使用数据泵对不同用户和不同表空间的数据迁移 ---------------------------------------------------2013/11/13 expdp和imp ...