web方向编程语言最全对比
web方向编程语言最全对比
目前一般公司的后台用的开发语言大概有以下几种:java,python,php,asp.net,c++,node.js,ruby on rails 等。
java
优点:性能好,适合大中项目,跨平台,安全性高,稳定可靠,运行效率高(尤其是JIT的出现之后差距更大了),不容易犯错(强类型、预编译、必须拦截异常等等),能有效的提高复用度,提升性能和吞吐能力,能规避安全问题。
缺点:开发复杂,开发和发布的效率相对较低,维护成本高,开发人员费用高
php:
优点:灵活,上手快,易修改,发布快捷,环境好部署
缺点:容易犯错,行效率不高,缺乏全局缓存
python
优点:简单易学,开发快,语言简洁,易于维护,开源,可移植,可扩展
缺点: 速度慢,性能差,格式强制,容易犯错
ruby on rails
优点:快速开发,使用者多,开发控件非常丰富
缺点:性能差(比python强),第三方包少
asp.net
优点:跨语言, 中小型项目上性能好,开发快,适合windows平台,维护成本低
缺点: 代码逻辑混乱,难于管理,代码的可重用性差
对于大型网站服务来说:业务规模、架构、整体性能 比你用什么语言来得重要.
对于小型网站首选ruby,因为快速开发是ruby的强项,也有像豆瓣知乎用python开发的,所以编程语言几乎都是应需而生,各有千秋,要说完美的编程语言,也许有,如果现在用的是lisp机的话那么lisp可以成为剩余的唯一一门编程语言.
不同公司用不同后台开发语言也有各自的原因。比如,要看需求是重展现还是重业务逻辑,重展现就用php等,重业务逻辑就用python等,也有原因是由于技术积累,比如腾讯一直用c++。所以,我们应该根据自己的兴趣爱好,结合行业发展,选择一门语言认真学习,这样才能在业界立足。
个人认为,对于大部分的 web 开发应用场景来说,Ruby 是最佳的解决方案。原因:
- 优美的语言特征;
- 极快的开发速度;
- 成熟的社区支持;
其他语言在 web 开发领域:
- Java 语法繁琐,很多东西实现得太复杂,过于繁杂,开发效率太低,一直都不是 web 开发的主流,但是靠java找工作的大学生很多;
- Python 比较分裂,语言上有2和3版本,就导致历史遗留问题了,因为python没有结束标志,web框架很多,且语言特征和框架都不如ruby;
- Scala 非常强大,如果学习过common lisp的人,就会感觉很不一样,但是多用于大数据的方面;
- JavaScript 后端一般是Nodejs,适合高并发实时应用,比如聊天,但是易读性和成熟度要输给Ruby,作增删改查(CRUD)没有ruby有优势,而且Ruby也有很好的高并发框架;
- Go 性能好,但是还不够成熟,第三方库较少,语法特性和开发效率不如Ruby;
- PHP 号称最好的编程语言,应用最广,入门简单,开发快捷,部署方便,对于一般的web小项目一般都是首选,但是其缺点也是最明显的,项目大了就会维护困难,语法远不如Ruby优雅,而且Ruby开发速度也不输 PHP;
Web 开发,最重要的就是快速迭代。架构设计与代码优化做的好,一般不会出现性能问题。Ruby优雅的语法,支持元编程,rails让你有不一样的体验,飞一般的开发速度,美妙的开发体验,绝对是 Web 开发的不二之选!精通rails就可以说成全栈工程师.而javascript不仅可以函数式编程还可以面向对象.但是我还是不太喜欢Ruby的原因是因为这门语言的功能冗余不紧凑,语法又很浮夸。
最后,我认为只有javascript是web领域最保值的编程语言.我个人认为,Javascript的语法很少,但是你要深入的了解她,你就会发现她深不可测。
Javascript是在我看来,就是一位长的朴素,但是很有内涵的女人。
女人心,海底针。你如果能像了解自己的女人一样去了解她,那回报一定是毕生的。因为前端不是代码是艺术,艺术是无价的.
优秀的前端工程师真的是code & art 兼备,所以优秀的前端工程师很难得,因为前端知识很散,不断出现新知识,经常被人鄙视,在很多人看来前端就是一个copy的过程,所以javascript的地位都懂了吧!以前我以为我喜欢编程,但是现在我几乎学过所有的编程语言,也就lisp能引起我的兴趣吧!有些事情总以为自己喜欢,做过了就发现不喜欢了,对一个事物由表面到成熟的过程,想法有所改变是必然的.
web方向编程语言最全对比的更多相关文章
- Python Web 方向(一)
Python Web 方向(一) --------Django站点创建 文章地址:http://www.cnblogs.com/likeli/p/5821744.html Python版本:2.7 推 ...
- vue,react,angular三大web前端流行框架简单对比
常用的到的网站 vue学习库: https://github.com/vuejs/awesome-vue#carousel (json数据的格式化,提高本地测试的效率) json在线编辑: http: ...
- 序-WEB方向指南
WEB 这个方向其实是目前从业人员最多的方向,也是学习安全门槛最低的方向,当然也是最容易恰饭的方向. 我从入行到现在也依旧没有脱离它,毕竟在我这个小城市.小圈子里,不干这个好像就要没饭吃了,但是你说它 ...
- C# ASP .NET WEB方向和WPF方向,我该如何去选择
一个2012年南航毕业学软件的学生,该如何去选择我的职业方向? 2011年11分月份,我被老师介绍在南京珠江路华丽国际大厦工作,开发一个大型国际物流平台,公司的开发人员比较少,设计网站的是高校的老师, ...
- Web/app端自动化测试对比
Web/app端自动化测试 做了一段时间的Android自动化测试,对比个人之前做的web端自动化测试,有一些感想.(由于个人接触的时间也不是太久,很多东西理解也并不深刻,先写下菜鸟时期的感想.) 区 ...
- Java与Web前端发展前景及薪资对比
Web前端和Java谁的薪资待遇高?关于这个问题,是很多网友都感兴趣的,在各大论坛贴吧上也看到了不少类似的问题. 现在的互联网行业飞速发展,因此有很多小伙伴想要进入IT行业分一杯羹,但是关于学习什么技 ...
- web网站——apache和nginx对比02
nginx介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理 ...
- 01-静态web服务器(Python)-面向对象的对比
普通写法,静态web服务器: 先创建TCP服务器套接字,然后等待客户端(这里是浏览器)请求连接. 客户端发起请求,用线程来处理连接的建立,这样可以实现多任务(也就是并发) 连接后根据请求发送指定页面 ...
- vitamio videoView 用隐藏除videoview的控件,并旋转屏幕方向实现的全屏功能,出现的画面不能填充满videoview(画面不完整)
使用vitamio 封装的播放器 当切换到全屏模式,有时候会出现播放的画面不是全屏的情况, 全屏时,画面只占左半部分并出现拉伸效果,还显示不全,等等其他情况 阅读分析源代码发现是getHolder() ...
随机推荐
- 安装selenium,驱动geckodriver,及出现的问题
cmd输入安装selenium指令: pip install selenium 1.报错 Could not find a version that satisfies the requirement ...
- ES6常用方法总结
1.声明变量用let,声明常量用const(定义唯一的值),都没有预解释,也不存在变量提升: 2.箭头函数:有如下两种写法 1).表达式(函数体只有一行代码) a).let fn = p => ...
- hdu1011(树形背包)(提供一个特殊样例)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 Starship Troopers Time Limit: 10000/5000 MS (Jav ...
- Annotation(注解)介绍
Annotation(注解)是什么: Annotation(注解) 官方的定义: An annotation is a form of metadata, that can be added t ...
- 第九章:Servlet工作原理解析
9.1 从Servlet容器说起 Servlet和Servlet容器的关系,就像枪和子弹的关系,彼此依存又互相独立发展,这一切都是为了适应工业化生产.从技术角度来说,是为了解耦,通过标准化接口来互相协 ...
- Qt终结者之粒子系统
前言 粒子系统用于模拟一些特定的模糊效果,如爆炸.烟火.雪花.水流等.使用传统的渲染技术实现粒子效果比较困难,但是使用QML粒子系统能十分方便的实现各种粒子效果,使你的界面更加炫酷,动感. QML中的 ...
- redis初始化服务器
从启动 Redis 服务器, 到服务器可以接受外来客户端的网络连接这段时间, Redis 需要执行一系列初始化操作. 整个初始化过程可以分为以下六个步骤: 初始化服务器全局状态. 载入配置文件. 创建 ...
- 运维yum语法
软件管理 目前流行的软件包格式: 可直接执行的RPM与DEB.源代码形式的gzip与bzip2压缩包 RPM软件包管理 rpm rpm [选项] *.rpm -i --install instal ...
- 使用cookie时出现“未将对象引用设置到对象实例”
单步调试时发现,行“176”的cookie的值是null,也就是原先新建的cookie在这里没有成功request,解决的办法就是在后面添加respose.add: HttpContext.Curre ...
- 易语言Dns缓存
一些与DNS解析有关的命令: ipconfig/displaydns -查看被缓存的域名解析 ipconfig/flushdns -清空DNS缓存 .版本 .DLL命令 DnsFlushR ...