`
乱蓬头199303
  • 浏览: 81278 次
文章分类
社区版块
存档分类
最新评论

架构选型之Nodejs与Java

阅读更多

摘要: 前言: 身边越来越多的同事谈论Nodejs,谈其异步IO、事件回调、前后台统一一门语言,创业的朋友的第一个创业项目也选择了Nodejs,期望能够使用一种语言节省成本快速完成需求开发。与其他项目组的同事聊项目选型Java时被他们嘲笑了一把,怎么这么不与时俱进怎么还在用Java。

前言:

 

身边越来越多的同事谈论Nodejs,谈其异步IO、事件回调、前后台统一一门语言,创业的朋友的第一个创业项目也选择了Nodejs,期望能够使用一种语言节省成本快速完成需求开发。与其他项目组的同事聊项目选型Java时被他们嘲笑了一把,怎么这么不与时俱进怎么还在用Java。而且发现,越来越多的前端同事通过Nodejs轻松上手后端功能开发,作为后端开发工程师倍感压力。

借新项目的机会系统了解了下Nodejs的知识体系,本文对了解到的Nodejs技术作了总结,同时将其与Java的相关技术进行了总结对比,为其他考虑两种语言选型的架构师提供选型的决策依据。为了避免争议,本文避免对选型语言的推荐,也不对未来的发展趋势做出预测。

 

语言背景分析:

 

简单对两门语言进行“拼爹”对比,发现有技术深度的事情还是博士比较擅长,计算机专业的技术又未必是计算机专业的人贡献:

Nodejs

 

Java

 

Ryan Dahl,非科班出身,数学系读博士
2006开始学习网站开发,2年后成为高性能Web服务器专家,3年后创建Node

 

2009年的2月开始开发Node,年底发表关于Node.js的演讲

 

2010年由创业公司Joyent赞助开发

 

2013年更新缓慢、活跃度降低,纠结于稳定内核及新特性开发

 

2014年8月几个重要core contributor发起组织(io.js前身),此后高速发展,新功能激进、高速版本迭代、问题反馈快速回复解决,2015年5月Node.js项目和io.js项目都将加入Node.js基金会,io.js继续发展的同时进行合并,Nodejs的下一个版本将跨1.0直接到2.0

 

詹姆斯·高斯林,卡内基·梅隆大学计算机博士,编写了多处理器版本的Unix操作系统,是JAVA的创始人。

 


1995年5月23日,Java语言诞生

 

1996年1月,第一个JDK-JDK1.0诞生

 

1997年9月,JavaDeveloperConnection社区成员超过十万

 

1998年2月,JDK1.1被下载超过2,000,000次

 

2009-04-20甲骨文74亿美元收购Sun。取得Java的版权;

 


2014年3月19日,甲骨文公司发布Java 8.0的正式版。

 


2000年~今,编程语言排行榜一直在第一第二位

 

 

语言及SDK分析:

 

Nodejs选择javascript语法导致了其灵活、面向过程、单进程单线程执行的基本特性。然而得意其语言的灵活性,一些面向对象的特征也可以通过逻辑代码实现,但受阻于ECMAScript的发展速度,整体上Nodejs向企业级应用语法转型还暂时较慢。Nodejs主打的异步IO事件回调使其更适合服务器的编程,其单进程单线程的特质使得开发变得简单。得意与社区的活跃语言处于高速发展、SDK不断地发展稳定丰富。

相比之下,Java是面向对象的具备了面向对象的全部特征,经历了20年的发展沉淀越发的强大、稳健。与Nodejs相比Java是个在各个领域作精作深的技术巨人,然而也正因如此,学习Java的成本要比Nodejs高很大一个台阶,每一个小的技术方面都能找到很厚的一本书来。面对异步IO事件回调的新技术Java也在其新的SDK中提供支持与时俱

​​​​​​​

原文链接

 

分享到:
评论

相关推荐

    nodejs基于微信小程序的校园兼职系统(java毕业设计完整源码+说明文档).zip

    5. **说明文档**: 说明文档通常包含项目介绍、系统架构、技术选型、功能模块、实现细节等内容,对理解和复现项目有极大帮助。 6. **项目目录**: 这个文件可能是项目的所有文件和子目录的清单,帮助用户快速定位和...

    ubuntu编译nodejs所需的软件并安装

    其实我个人比较推崇的是nodejs+ibm loopback架构体系,并在此基础上开发过两个微信服务器。 因此为了更好的进行技术选型及比较,决定花几天时间进行对比及压力测试! 今天,加班重装了一个4核服务器,安装ubuntu ...

    基于协同过滤算法的旅游推荐系统+eclipse+mysql+系统说明.rar

    四、系统架构与流程 1. 用户注册与登录:用户可以通过注册账号并登录系统,系统会保存用户的个人信息和偏好。 2. 数据收集与处理:系统通过收集用户的浏览、评价、收藏等行为数据,形成用户的历史行为记录。 3. ...

    java版商城源码下载-gitNote:git学习笔记

    在此架构中起到的是与其他系统 API 连接的作用,所以从前端架构角度来看,它是其中一个部分。这样一来,后端开发者(例如 Java 应用开发者)只用专注在业务逻辑和数据API。 相关文档链接: 官网 开源中国社区 淘宝...

    基于JSP+Struts的学籍管理系统源码.zip

    一、系统架构与技术选型 1. 技术选型:系统采用经典的MVC(Model-View-Controller)设计模式,利用Struts作为控制器,JSP作为视图层,实现了业务逻辑与显示逻辑的分离。同时,由于Java语言的跨平台特性,使得该系统...

    基于JSP的就业信息管理系统源码.zip

    这个系统采用JSP(JavaServer Pages)作为前端展示技术,结合Java后端处理业务逻辑,实现了数据的动态展示与交互。 【描述】该系统源码的实现主要围绕以下几个方面: 1. **系统架构**:系统采用经典的B/S(Browser...

    基于SSM的加油站微信小程序的设计与实现.zip

    - "加油站微信小程序的设计与实现 论文0.docx":这很可能是项目的详细设计报告,包含了系统架构、功能模块、数据库设计、开发过程和技术难点等内容。 - "截图":这部分可能包含了微信小程序的界面截图,展示了实际的...

    博客:写文章的地方

    前端开发的技术选型与介绍 实战 快速完善规范的前端项目骨架 实战 继续打磨前端架构 实战 添砖加瓦-快速布局 实战 性能优化与上线 弹性搜索 项目 语言 文章 总结 Java :hot_beverage: Java 项目 语言 文章 分析...

    金三银四程序员求职 通用模板

    - **架构师**:强调系统设计、架构优化和关键技术选型的能力,包括微服务、容器化、云平台等。 最后,提供一个通用的程序员简历模板下载链接(https://github.com/geekcompany/ResumeSample),可以帮助求职者快速...

    基于SkyWalking的监控系统安装与使用教程

    2. 支持多语言的自动探针,如 Java、.Net Core、PHP、NodeJS、Golang 和 LUA。 3. 系统轻量高效,无需依赖大数据基础设施。 4. 模块化设计,允许选择不同的 UI、存储和集群管理机制。 5. 内置告警功能。 6. 强大的...

    基于SSM的快递柜管理系统微信小程序的设计与实现.zip

    - 论文详细阐述了项目的背景、设计目标、技术选型、系统架构、实现过程及效果评估,提供了深入的技术分析和理论依据。 6. **截图**: - 展示了微信小程序的界面设计,包括首页、个人中心、快递柜列表、订单详情等...

    springboot2+elasticsearch7+可视化es-head+cerebro整合搜索

    或者String使用Map方式,会自动转换成与之等价的JSON使用第三方库来生成序列化beans,如JackJSON、FastJSON等使用内置的帮助类XContentFactory.jsonBuilder()前端技术 :ElasticSearch-head插件(NodeJs版本)课程

Global site tag (gtag.js) - Google Analytics