现在做Web开发,用哪个平台哪种语言其实本质上没有太大的区别,因为Web开发框架已经非常成熟,只要符合需求,能按时交付产品就ok了。

要选择哪个平台,是个商业问题,不是技术问题。

选择任何的语言最好深入进去了解其中的框架,不断进行高质量的代码优化才是最重要的。请记住代码的质量比其它一切一切都重要。

目前网站建设中的三大主流语言为Java、.NET(C#)、PHP。可以用一个通俗易懂的方式——超市来比较这三种语言的生态系统的差别。

如果把Web开发比做开一家超市,网站的内容就是超市里面摆放的琳琅满目的商品,数据库就是这个超市的仓库,HTML5就是这个超市的货架,Web服务器就是用来让你去选择购物的一条条道路,而和你互动的JavaScript就是那些穿着卡哇伊短裙的促销小姐或者你们老公吴亦凡。

如果用PHP做超市开发,那么PHP在生活中就如同红旗连锁、舞东风(成都小店)或者你家楼下或者拐角任意的一家便利店。PHP开发有什么优点呢?快捷、高效,你不需要花很多的钱就可以开一家便利店,仅仅在开始阶段使用LAMP(linux+apache+mysql+php)就可以做网站开店运营。学习成本是最为低廉的,如同只要你有点小钱就能在老家开个便利店一样,任何一个有点基础的程序员都能够在一段时间学习之后就能使用LAMP找个笔记本或者五六年前的台式机去搭建个网站,所以相对沃尔玛那种大型超市或者万达广场,你身边的便利店是最多的一样,PHP开发的Web应用也是最多的。

那Java是什么呢?Java就是沃尔玛、家乐福、永辉那种大型卖场,Java有足够多的框架和开源项目让你解决目前你能够解决的一切卖场问题,一个仓库的东西不够,没关系我们采用分布式数据库来解决,一个收银台不够,没问题我们先采用多个Web服务器来增加收银台数量再采用负载均衡服务器把人流平均分到多个收银台中,这样人们就可以很快的付钱回家。如果采用刷支付宝或者微信支付,那服务器是不是要经常调用用户的信息?没问题,采用缓存服务器就行了,把用户的信息直接放到缓存的服务器中,这样每次就不用去数据库调用,数据库的负担就可以大大减少。如果你要问这些技术去哪里学,阿里巴巴已经把很多类似的技术开源了,去网上找呗。因此用Java进行web开发只有你想不到没有你做不到,想想天猫双十一那么大流量人家都搞定了,何况你现在遇到的这些毛毛雨。

最后到了我们.NET的Web开发,也就是ASP.NET,首先请各位同学记住ASP.NET和ASP是完全不同的东西。这里所说的都是ASP.NET,ASP.NET就是最上面所说的万达广场,只不过这个万达广场的老板不是王健林而是微软,微软已经把大厦建好(框架、技术搭建好),这时候你仅仅需要对你租的那个门店稍微装修一下,然后拎包入住就行了。只要你按时付房租,微软就会把你这个大爷伺候好,会给你提供各种羞羞服务(捂脸)。比如你彻底告别了命令行,包括数据库的等等操作都会有图形界面的软件来让你轻松操作,如果你技术够厉害,一个人就可以解决所以余下的问题,因此.NET技术大受各种外包公司或者技术相对较差的企业以及个人开发者欢迎。现在微软的云服务更是为你想的周到,让你从开一家便利店到开沃尔玛那种大卖场所需要的一切问题都给你解决,当然你只需要付钱。当然你也可以趁万达广场人流量多自己推个小车卖烤肠(使用盗版的服务器或者软件),但是微软会派会派保安在你把生意做大后来强行收费的,专门养大了宰是微软最擅长的。

Java
Java是由Sun公司推出的Java程序设计语言和Java平台的总称,是一种可以撰写跨平台应用软件的面向对象的程序设计语言。

Java的应用:网站建设在使用JSP开发时,以Java为基础的JSP网站建设编程语言广泛应用于很多网站,例如一些政府机构的网站、大型平台、网络办公系统等。在企业级网页应用和移动端应用开发中占据主流。

Java Web开发的标配:HTML5+JavaScript+Java+Apache(或Nginx等其他)包括Tomcat+Mysql(或oracle或nosql)+Linux+…(无穷无尽的拓展)

优点分析:
1. 技术上没有上限和瓶颈,越往后积累越多,水平也越高。
2. 模块化开发(基于maven),不用担心以后的扩展,适合大项目开发。
3. 能应用于多平台,平台可移植性强。
4. 核心技术掌握在自己手里面,迁移其它语言很容易。

缺点分析:
1. 入门门槛高,要学很多开源框架再去学习搭建技术架构,学习周期长,开发较复杂。
2. 需要团队开发。

建议:参考成熟的开源项目,借鉴可利用的模块,寻找一个开源架构来做二次开发。

.NET(C#)
C#是由微软公司发布的一款面向对象的、运行于.Net平台中之上的高级程序设计语言,不但继承了C语言家族的贵族血脉(继承关系C->C++ ->C#),还具有开源和跨平台的优势。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。

C#的应用:C#在网站建设中使得企业不必为了扩展程序终端,而必须去雇佣其他编程语言的开发者,大大降低了开发成本。

C# Web开发的标配:C#+SQLServer+IIS。

优点分析:
1. 由于微软把控件都封装好,只管用就行,上手容易,中文资料也很多。
2. 适合快速开发一个项目。

缺点分析:
1. 想深入学习原理困难,入门容易精通难。
2. 所有技术都是微软提供的,缺少核心技术积累,发展大了容易遇到瓶颈,需要等微软提供新技术支持。

PHP
PHP是一种通用开源脚本语言,开源免费、应用轻量、速度较快,语法混合了C、Java、Perl以及PHP自创的语法的特点,主要适用于Web开发领域。

php Web开发的标配:LAMP(linux+apache+mysql+php),完整说起来是HTML5+JavaScript+PHP7+Apache(或Nginx或其它)+MySQL+Linux。

优点分析:
1. 开发快捷、高效,相对容易。
2. 学习成本低,除了服务器外其他都免费。

缺点分析:
1. 后期延伸性相对差,因为Web开发的后期问题都集中在流量和数据库上面,虽然现在php7已经在优越性提高了很多,但是还是不能完全满足需要。

补充介绍:Python
Python是一种面向对象的解释型计算机程序设计语言,以语法简洁清晰,并有强大且丰富的类库而著称。Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。Python被广泛应用于游戏开发、网站开发、科学运算、大数据分析、云计算等,图形开发等领域,这几年越来越受开发者欢迎,特别是在自动化运维方面,入门也很简单,但相对性能差些。感兴趣的可以去了解腾讯蓝鲸。

以上四种编程语言就是要与大家分享的主要内容,前三种是目前网站建设中常用到的三大主流语言,最后一种是近年来兴起的一种编程语言,企业在进行网站建设时可以根据自己的需求和相关的内容进行编程语言的选择。

.NET、JAVA和PHP在Web开发的优缺点的更多相关文章

  1. J1001.Java原生桌面及Web开发浅谈

    自从Java问世以来,在服务端开发方面取得了巨大的发展.但是在桌面/Web开发方面,一直没有得到大的发展.从最初的AWT,到Swing,再到JavaFX,Java从来没有在桌面/Web解决方案中取得重 ...

  2. java web 开发入门

    Java web,是java技术用来解决web互联网领域的技术总和.Java web技术主要包括客户端和服务端,java在客户端的服务有java applet,不过用的非常少,大部分应用在服务端,比如 ...

  3. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  4. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  5. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  6. 【转】 java web开发之安全事项

    从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然.直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库.还好,我还没有用root级的用户连接数据库.不过也没有什么用了,因为我 ...

  7. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

  8. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  9. Java在Web开发语言上败给了PHP

    PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java ...

随机推荐

  1. 同一台windows下配置安装多个mysql实例,实现主从同步

    一.安装多个mysql 参见: https://blog.csdn.net/wrh_csdn/article/details/80198795 https://www.cnblogs.com/qjoa ...

  2. LeetCode 144. Binary Tree Preorder Traversal 二叉树的前序遍历 C++

    Given a binary tree, return the preorder traversal of its nodes' values. Example: Input: [,,] \ / Ou ...

  3. UBNT ex-r +netgear gs105e v2 +ap 设置vlan 步骤记录 及相关知识整理

    设备连接:路由器ex-r的eth0 连接 光猫拨号,eth3连接交换机gs105e,交换机gs105e的eth3连接无线ap 需求:路由器拨号上网,通过不同ssid的无线网络可以连接不同vlan,且交 ...

  4. Python第9天

    迭代器(减少代码量增强可读性)和生成器(只能遍历一次):遵循迭代器协议,就是生成可迭代对象 生产者和消费者模型:可触发生成器运行的方法 直接调用next方法 用系统next+生成器的方法 send y ...

  5. SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

    1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...

  6. springboot 开启事务以及手动提交事务

    添加依赖,sprongboot 会默认开启事务管理 org.springframework.boot spring-boot-starter-jdbc 在需要的服务类里添加注解 @Autowired ...

  7. OrderBy排序和IComparer的使用

    https://www.cnblogs.com/May-day/p/7490334.html 一,OrderBy排序在MDSN中有两种使用方法,如下 1>第一种方法的使用,就是根据某个字段排序, ...

  8. redis 配置文件解释 以及集群部署

    redis是一款开源的.高性能的键-值存储(key-value store),和memcached类似,redis常被称作是一款key-value内存存储系统或者内存数据库,同时由于它支持丰富的数据结 ...

  9. python深拷贝,浅拷贝

    1.浅拷贝, 首先要引用copy包 from copy import copy class A: def __init__(self): self.A=1 self.B=2 a = A() copy( ...

  10. Windows 7升级1月更新汇总后导致SMBv2网络无法正常工作

    在本月的补丁星期二活动日中,微软面向Windows 7.Windows 2008 R2服务器系统推出了KB4480970的月度更新汇总.然而根据部分用户反馈,在安装该更新之后导致系统的网络设置无法正常 ...