都2022年了,JS为啥还是那么火;现在学后端应该选择java还是golang;非计算机系学 Vue 有什么建议|极客观点

简介: 都2022年了,JS为啥还是那么火;现在学后端应该选择java还是golang;非计算机系学 Vue 有什么建议|极客观点

image.png


#极客观点 聚焦于技术方向、程序员职业发展、个人成长等主题,致力于发起有价值的讨论,输出有价值的观点。

在本栏目中,我们将为大家推荐在 #极客观点 版块被热烈讨论的话题,甄选出有趣的观点为你呈现。期待我们一起成长和进步呀 🥰🥰

今日关键词:#JS #Vue# #Java

都2022年了,JS为啥还是那么火?

话题发起人:海洋之蓝

都快2022年了,都快进入AI时代了。为嘛JAVASCRIPT还是经久不衰?相反还出现了TS,VUE等等基于JS的衍生品,推陈出新而没有被时代抛弃?

之前一直在做PHP后端,没有怎么研究过JS,只会做一些简单的。前端时间深入接触了下JS,发现PHP中很多知识,其实在JS中也存在,而且JS感觉更加的规范。在搞PHP前,用ASP,不过差不多2010年后基本就不用了。

有趣的观点:

实际上,从Javascript诞生的第一天起,就有计划要成为后端开发语言,而并不是到了2009年才有人一拍脑袋说:对呀,为什么不用Javascript来开发服务端应用呢?

但是既然早有计划,又为什么要拖到14年之后(Javascript是1995年诞生的)才有了真正意义上可用的服务端应用呢?

因为Javascript刚诞生不久就成了孤儿,无爹无娘,无依无靠,全靠好心人收养,很多和它一样的孤儿死掉了,但侥幸不死的孤儿日后必将爆发出超级强大的生命力(参见15岁父母双亡的孤儿朱元璋的发家史)。

1995年12月4日,Javascript诞生于一个新富之家Netscape,从诞生的第一天起,父母便对它寄予厚望,不但可以在浏览器中运行,并且可以在服务器端运行。但父母毕竟是小户人家,迅速的崛起引来了恶霸邻居Microsoft仇恨的目光,在浏览器端他们用预装IE的方式强占Netscape地盘,在服务器端他们故意推出一个名叫JScript的东西混淆视听。就在Javascript三岁的时候,Netscape终于经受不住这样的打击,撒手人寰,整体卖给了AOL。

好在就在Javascript一岁的时候,大约是Netscape已经预感到自己来日无多,于是把Javascript寄养给了叔叔ECMA(欧洲计算机制造商协会),这也为以后Javascript改姓留下了伏笔。

Netscape死后,恶霸Microsoft终于独占了所有浏览器的市场份额,Netscape留下的孤儿Javascript能幸存在前端已属不易,自然也不可能再在后端有任何的发展。

即便如此,Microsoft还要隔三岔五去收养Javascript的ECMA家里大闹一场,一会儿是声称JScript也是浏览器标准,一会儿是声称IE浏览器里的Javascript才是真正的Javascript,总之是不让Javascript健康成长,并且仗着自己财大气粗,一定要把敢于收留Javascript的这帮穷亲戚全部干掉才算完。

光阴荏苒,日月如梭,转眼就是10年。2008年9月2日,村里新来的土豪Google发布了Chrome的第一个版本,他们为Javascript打造了超级跑车V8引擎,从此,Javascript这个孤儿终于看到了一线曙光。

在Google的感召下,村里的穷苦人民纷纷揭竿而起,不到一年,2009年5月27日,就诞生了Node.js,Javascript从此正式进军后端开发!

在浏览器方面也是捷报频传,Microsoft IE丧师失地,节节溃退,市场份额从最高时的96.6%一路跌到现在的7.7%,并且还将持续下滑,连Microsoft为了挽救颓势而推出的Edge浏览器也已被迫采用了Chrome内核。

其实语言不过是逻辑的载体,什么语言不能开发后端呢?王侯将相,宁有种乎?小尼姑的头,Java和Php都摸得,Javascript就摸不得?连Perl这样的从批处理命令演变来的语言都敢号称是后端语言,Javascript凭什么就不能?

回到历史的长河中,其实Java为什么能成为后端语言,是因为它背靠的爹娘太强大了,先是有Sun这样的父母,后来又过继给Oracle,无一不是有钱有势,就连Php这样被后端都看不起的语言都有Zend这样的爹娘扶持,而年幼失怙的Javascript在夹缝中苟且偷生,遭人白眼,不是很正常的事情吗?如果没有Google的V8,能有Javascript的今天?

现在V8引擎已经开发到了7.8版本,2015年起加入了Turbofan优化器,直接借鉴了Java编译器的Hotspot机制,如果不想干后端的事情,为什么要搞Sea of node IR?

有人说Typescript不是Javascript,但其实Typescript就是Javascript加上了强类型的变体而已,本质上还是Javascript,这都不重要,我们更应该关注的是Node.js的底层,实际上在现代编译器的扶持下,Javascript早已脱离了早期的编译型语言和解释型语言之争,无论什么语言,只要有大公司扶持,只要用的人足够多,就会不断投入资金进行优化,性能不断提升。

Javascript已经度过了童年的黯淡时光,如果不出意外,它必将彻底统治前后端,这是从它诞生第一天起它的亲生父母Netscape对它寄予的厚望,也是它现在的养父母Google的期望。因为,用一种语言解决所有问题,受益的将是全人类,这个梦想从来就没有变过。

——社区用户:张京

现在学后端应该选择java还是golang

话题发起人:八方名动

看起来java的使用范围更广一些,各种学习资料找起来也很容易,就业也比较有保障。但是都说golang是未来,现在国内用go做后端的公司也越来越多,薪资水平还都不错,不知道大家怎么看这个问题?

有趣的观点:

Java编译言语,速度适中(2.67s),现在的大型网站都是拿java写的,比如淘宝、京东等。首要特点是安稳,开源性好,具有自己的一套编写规范,开发功率适中,现在最干流的言语。作为编程言语中的大腕。具有最大的知名度和用户群。不论如火如荼,我自巍峨不动。他强任他强,清风拂山岗;他横由他横,明月照大江。

Java可以做什么:安卓和IOS的运用开发、视频游戏开发、桌面GUI、软件开发等等;Java的利益:Java开发人员需求量大:这个是依据核算得出的。JAVA在许多言语傍边,是需求量最大的;

进化言语:首要C++是依据C言语优化的,Java是被优化过来的。而且在这人途径是增加了许多的功用,lambda等功用;安卓运用开发:谷歌的安卓移动途径是世界第一的移动途径,编写安卓运用开发者运用的首要言语是Java。

Java的缺点:运用许多的内存:Java和C++相比运用更多的内存所以占用的内存就更大;学习曲线:这边指的是Java虽然不是最简略的入门言语,可是也不是最难;建议时间慢:用java写过安卓的运用的人应该都知道。相同的代码在模拟器中建议是非常缓慢的作业。

Go编程界的小鲜肉。

高并发才调无人能及。即具有像Python相同的简练代码、开发速度,又具有C言语相同的施行功率,优势超卓。

Go言语的难度,相对来说,Go言语不难的。可是Go言语的学习材料相对其他的言语来说很少,所以学习起来没有其他的言语那么便利。许多人说Go言语在国内更火,依照数据来说,是的。由于我国人多,基数大。其实Go在国外更火。关于现在来说,Go实践上也现已站稳脚跟了。不论是Google自带光环也好,实践运用也好。

Go算是找到了归于自己的空间。Go言语的利益:编译时间快:Go言语编写最大的微服务的时间大约需求6秒,相对Java和C++呆板的编译速度来说,Go言语快速编译是首要的功率优势。并发性和通道:Go言语的logo我们可以了解一下,它就是致力于作业简略化,也就是快。其实并没有引进许多的新的概念。就是打造一门简略的言语,运用起来很快。在goroutine上作业一个函数最小的样板代码,我们只需求运用关键词Go增加函数调用。

生态系统也是很健旺的:面向Redis、RabbitMQ、Template等等许多安稳的库。有很健旺的东西支撑。GO言语的缺点:短少结构:Go是没有一个首要的结构。可是许多人以为不应该从结构的运用开始。也可以从社区的议论了解一下这个问题。过失处理:在过失处理办法,很简略丢掉过失发生规划,所以在编程过程中很难向用户供应出有意义的过失信息。软件包处理:在默许的情况下,没有办法拟定特定版其他依托库。

也没有办法创立可以复写的builds。毕竟留心的是:没必要纠结言语,它仅仅东西,而且不同的言语针对的场景也不同。相同假定是体量较大的老到运用,关于不同的业务层,会有多个言语。

——社区用户:hevily

有趣的观点:

如果是现在要做一个选择的话,我个人更推荐学习Golang,相对而言,市场还没有到Java这样的饱和,竞争没有这么这么大。

并且就像你自己讲到的一样,现在越来越多的公司开始实用Golang了,证明Golang的发展前景还是有的。如果希望稳妥的话,选择Java会更好一些,学习资料相等而言更多,前辈们也更多。

——社区用户:宁在春

非计算机系学 Vue 有什么建议

话题发起人:Alexis0201

刚入门极少的 Vue,想了解需不需要刷题,有什么渠道,如何刷题?

有趣的观点:

扎实的 JavaScript / HTML / CSS 基本功。这是前置条件。

通读官方教程 (guide) 的基础篇。不要用任何构建工具,就只用最简单的 <script>,把教程里的例子模仿一遍,理解用法。不推荐上来就直接用 vue-cli 构建项目,尤其是如果没有 Node/Webpack 基础。

照着官网上的示例,自己想一些类似的例子,模仿着实现来练手,加深理解。

阅读官方教程进阶篇的前半部分,到『自定义指令 (Custom Directive) 』为止。着重理解 Vue 的响应式机制和组件生命周期。『渲染函数(Render Function)』如果理解吃力可以先跳过。

阅读教程里关于路由和状态管理的章节,然后根据需要学习 vue-router 和 vuex。同样的,先不要管构建工具,以跟着文档里的例子理解用法为主。

走完基础文档后,如果你对于基于 Node 的前端工程化不熟悉,就需要补课了。下面这些严格来说并不是 Vue 本身的内容,也不涵盖所有的前端工程化知识,但对于大型的 Vue 工程是前置条件,也是合格的『前端工程师』应当具备的知识。

前端生态/工程化

了解 JavaScript 背后的规范,ECMAScript 的历史和目前的规范制定方式。学习 ES2015/16 的新特性,理解 ES2015 modules,适当关注还未成为标准的提案。

学习命令行的使用。建议用 Mac。

学习 Node.js 基础。建议使用 nvm 这样的工具来管理机器上的 Node 版本,并且将 npm 的 registry 注册表配置为淘宝的镜像源。至少要了解 npm 的常用命令,npm scripts 如何使用,语义化版本号规则,CommonJS 模块规范(了解它和 ES2015 Modules 的异同),Node 包的解析规则,以及 Node 的常用 API。应当做到可以自己写一些基本的命令行程序。注意最新版本的 Node (6+) 已经支持绝大部分 ES2015 的特性,可以借此巩固 ES2015。

了解如何使用 / 配置 Babel 来将 ES2015 编译到 ES5 用于浏览器环境。

学习 Webpack。Webpack 是一个极其强大同时也复杂的工具,作为起步,理解它的『一切皆模块』的思想,并基本了解其常用配置选项和 loader 的概念/使用方法即可,比如如何搭配 Webpack 使用 Babel。学习 Webpack 的一个挑战在于其本身文档的混乱,建议多搜索搜索,应该还是有质量不错的第三方教程的。英文好的建议阅读 Webpack 2.0 的文档,比起 1.0 有极大的改善,但需要注意和 1.0 的不兼容之处。

Vue 进阶

有了 Node 和 Webpack 的基础,可以通过 vue-cli 来搭建基于 Webpack ,并且支持单文件组件的项目了。建议用 webpack-simple 这个模板开始,并阅读官方教程进阶篇剩余的内容以及 vue-loader 的文档,了解一些进阶配置。有兴趣的可以自己亲手从零开始搭一个项目加深理解。

根据例子尝试在 Webpack 模板基础上整合 vue-router 和 vuex

深入理解 Virtual DOM 和『渲染函数 (Render Functions)』这一章节(可选择性使用 JSX),理解模板和渲染函数之间的对应关系,了解其使用方法和适用场景。

(可选)根据需求,了解服务端渲染的使用(需要配合 Node 服务器开发的知识)。其实更重要的是理解它所解决的问题并搞清楚你是否需要它。

阅读开源的 Vue 应用、组件、插件源码,自己尝试编写开源的 Vue 组件、插件。

参考 贡献指南 阅读 Vue 的源码,理解内部实现细节。

相关文章
|
9月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
895 1
|
10月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
601 70
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
469 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
595 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
532 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
625 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
11月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
12月前
|
监控 前端开发 Java
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
586 9
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
3596 12
|
11月前
|
JavaScript Java Docker
干货含源码!如何用Java后端操作Docker(命令行篇)
只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章

推荐镜像

更多