只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 软件开发 >  前端开发这么简单,为什么很多人还认为难,JS 应该是所有编程语言最简单的了吧?


前端开发这么简单,为什么很多人还认为难,JS 应该是所有编程语言最简单的了吧?

发布时间:2019-09-03 12:14:06  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
我觉得吧,你这个问题有两个逻辑问题。第一个是工程难题和语言的关系。其实任何开发领域的“难”到最后和语言是没关系的,后端“难”不是因为后端用的 Java/C#/C++ 之类的语言难,而是因为后端要解决的
前端开发这么简单,为什么很多人还认为难,JS 应该是所有编程语言最简单的了吧?

我觉得吧,你这个问题有两个逻辑问题。

第一个是工程难题和语言的关系。

其实任何开发领域的“难”到最后和语言是没关系的,后端“难”不是因为后端用的 Java/C#/C++ 之类的语言难,而是因为后端要解决的工程问题难:不管是巨大的访问量、巨大的吞吐量、苛刻的部署环境还是艰深的数学建模,这些东西才是开发领域最“难”的部分。语言可以给处理这些工程难题的过程提供便利或阻碍,但语言本身不是一个决定性的因素。

前端也是一样的。前端的“难”不在于 JavaScript 本身有多难,而是在于要解决的工程问题有难度。不管是老生常谈的浏览器兼容性、各种各样的设备兼容(从屏幕大小到处理能力强弱),到客服 HTML5 今天依旧羸弱的功能实现开发工程化和视图层模型,所有这些东西都是前端开发的挑战。而在所有这些困难里,JavaScript 自身的缺陷不是决定性因素。

第二个是 JavaScript 这个语言并不“容易”。

原因很简单,JavaScript 和几乎所有强类型静态语言比,都是有巨大的缺陷的。这个缺陷不是体现在语言本身的表述能力,而是体现在动态弱类型语言在大规模工程里天生的不足。JavaScript 的设计初衷是快速灵活 —— 估计这也是为什么你觉得它“简单”,然而这种“表述的灵活和强大”必然导致了其缺少硬性约束,而这一点严重影响了它在大规模多人项目里的表现。JavaScript 有很长时间的大型项目灾难史,这就是为什么微软先后搞了 CoffeeScript 和 TypeScript,正是因为 JS 自身在大规模项目里的缺陷已经到了不搞一个超集强类型语言不行的地步了。

所以,正是因为 JS 简单灵活,它在大型项目里反而更不好掌握。写个 JS 太简单了,写出够质量的、团队相性良好的 JS,比你用 C#/Java 写,反而要难太多了。

大型软件工程的难和语言的难不能直接比较。

提出这种问题说明你根本就不懂

大部分在中国从事商法工作的人,中文母语并懂英语。对他们来说,中文比英文简单多了。然而,写出一份完整又复杂的商业合约,用英文却比用中文要简单和顺手的多。

难度不在于语言的掌握能力,而是这个语言本身的工程化难度,以及有多少历史经验范例。

比如,市面上买的设计模式的书,有多少本是用JS实现的呢。

请分清楚 simple 和 easy 的区别

所有编程语言的打印,条件,循环都挺简单的

上升到工程角度就会觉得难,特别是语言给予你足够大的自由度时。工程上且不说js要面对的宿主系统,光是子系统、架构、并行开发和项目管理就够喝一壶。近些年js发展也是有目共睹的,从不成熟的架构和框架甚至加载方案,都是陆续发展来的。这部分的复杂度是一直在增加的。而前端们不去跟进就会觉得被抛弃。

js虽然看起来简单,想要用好,是需要一定的积累的。从前人们还寻思着怎么抄一段轮播或者灯箱效果。现在则拿着现有的包直接用,但是让新手写一个他也是满头问号。js规范也在发展,从前很多特性都是靠原型和函数式特性模拟的,这一点上就让很多程序员不习惯,他们写出来的仅仅是c模式的js而已。

要是说js简单,那lisp更简单,两句话就让你明白语法,但是可能写本书你可能都不会明白lambda演算和可计算性。

现在的很多培训班出身的萌新,从头到尾就只学过一门编程语言就是js

他们的脑袋里,没有类的概念,没有名称空间的概念,没有类型的概念,没有用文件夹组织代码的概念。

只知道用方法修改字段。。

至于怎么组织代码,一概不知。。

项目一大,,就,,尴尬了。

叫他去学学java,还担心万一记忆混乱了怎么办。。

前端开发这么简单

Gmail 和 Excel online 表示有话想说

首先,

JS语言难不难 !== 前端开发难不难,

然后,

JS也没你想的那么简单

最后,

你问出的这个问题,说明你的水平挺low的。

前端开发和js有啥关系。。

干嘛非要这么说?- -!我觉得你也不太行;

觉得前端的javascript简单的人大多对前端的理解也只是前端入门水平,其实前端的高阶水平还是特有一定难度的。像原型链,作用域链,还有canvas的高阶应用,哪一个不是需要程序员经过5年以上的开发经验才能达到一个处理复杂逻辑的水平。而且前端的架构师水平也是很多程序员多年最求的目标,架构师的工作不只是要对Vue、React、Angular、jQuery、小程序、等一些主流框架搭建熟练外、还学要对Element-UI、Lay-UI、Bootstrap、等一些展示型UI框架熟练使用。更高级的前端工程师对这些框架的原理了解清晰,甚至可以参与框架的封装开发,想这些工程师都要有10以上的开发经验了,听了这些你还觉得前端简单吗,准确的说前端是“易上手,难精通”

JavaScript是传统前端开发不可替代的技术之一,但是目前JavaScript并不仅仅用在前端开发,也应用在后端(Nodejs)和嵌入式开发的领域。

以在线教育的项目为例:

  • 项目介绍:在线教育平台,用户可以在线选择课程,购买课程,在线交流等功能。整体基于React技术架构,学习完该项目基本能掌握React核心技术架构体系。
  • 实现功能:主要包含用户注册登陆推出、第三方登陆、在线流媒体视频播放、课程模块、购物车、订单支付、用户中心等;
  • 项目架构:基于AJAX的前后端分离,前端基于React.js技术栈独立开发单页面应用程序+服务端SSR
  • 技术点:React.js、create-react-ap、Ant Design、React Router、Redux、Axios、Ajax、Immutable、RESTFul API
  • 关键词:在线教育平台、购物车、邮件发送、在线支付、React、React Router、短信验证码、界面特效

举例只是想说,不管是前端还是后端,从一个项目的想法到功能到后面的技术支撑,远不是我们以为的那么简单。很多东西都是这样,照着你所知道你其实什么都不知道。

前端课程:

  • WEB前端视频教程(其中包含html/css/js)
  • JavaScript & jQuery精品教程
  • 10天玩转Web前端视频
  • 一天教你打造企业级微信小程序

每一个课程后面都有配套的课件、笔记和源码,有需要的大家可以私信我。

js 不是所有语言里最简单的,比如说语法只有 7 张 A4 纸的 lisp。

当然,最简单的还是图灵机了,程序就是无限长的纸带,一共就左移,右移,读写这几个操作。那么请用图灵机写一个软光栅呗。

写不粗来,给你一把锤子和铁皮,兴许你能敲一个盆出来,叫你造一个高铁试试。就是这个理。

js 因为简单甚至说简陋放大了工程上的难度,而不是缩小了。于是这几年的前端发展过程中,最主要的还是补齐软件工程中缺少的那部分。补到现在,无论 js 还是前端开发都不能算简单的东西了。

简单?错了,语法简单不代表用起来做工程简单。JavaScript语言本身“缺陷”太多。弱类型和乱七八糟的面向对象就不说了,直接看下图:

这话说的太外行了,首先语言简单了,你要解决的问题不会简单啊,越复杂的语言反而有越多的办法去解决问题,而现在的各种语言本身就不算难。

另外一个就是大家需要解决的问题其实方向上并不同,其他语言要面对的是算法数据上的问题较多,这个其实相对有大量的例子可供参考,并且你从科班起就会受到系统的常用算法的教育,例如你看排序算法都有N多并且已经直接写到教科书里面了,毕业出来,你起码已经是一个入门选手了。

前端要解决的问题要杂一些,而且很多偏实际应用而没有太多现成的解答方案,我前端要解决个鸡儿的排序啊,现成的库一堆堆甚至要后端排好了发给我。

但是这个浏览器兼容怎么解决,那个动画库在微信里怎么效果出不来我看看源代码要怎么修等等,妈的谁有一份统一且唯一的教科书给你?你需要的是大量的经验和学习能力。就算有你也至少要回Google,上Stackoverflow和英文阅读能力(百度的话,那真的就GG了啊),甚至上Github找别人以前提的问题和解决方案,甚至直接操练原作者的代码,而且有时候就算找到了甚至可能也是过时的,各种情况已经发生变化了,原来的解决方案已经没用也不是不可能。

更别提还有更考量经验的html和css合理高效简洁的做出设计图设计的页面了。而且前端知识更新速度那真是啧啧。

虽然现在确实是一个框架的时代,各种语言都是,会语言本身已经不够了,必须会各种主流的框架才能干活这是没错的。但是现在各种学习班故意把前端抽象的扭曲成react、vue之类的绝对是用心险恶,因为他们根本没法教你解决大量前端会面临的客观问题(甚至很多连程序员的基本思维都没有),就像只教你用笔能写字一样,你能写出优美的文章吗?你会用HTML+CSS+JS写出合格的前端页面吗?这样出来的学生只会做几种框架下高速量产低可维护性程序的工蜂,很多每种框架的思路是不同的(但是这一代三大框架大体类似),但奈何前端变化非常快,无论是工具还是浏览器这个大环境本身都在飞速变化,别看现在是Angular、React、Vue三大主流,可能过两年浏览器环境变了这些就都落后了,大部分没学习能力的这类新入行前端都会被残酷淘汰,而他们用这些框架写的东西也会变成难以维护的屎山。

认真答题,不杠...

js大概确实是目前就行的编程语言里面最简单的语言之一,前端搭页面确实也很直观,可以说简单的一塌糊涂。不过,把js拎出来说,单单一个奇葩的原型链就能干倒一大片;如果你敢说这门语言简单,那你必然是了解了js的各种奇淫技巧,以最基本的String基本类型为例,就有很多其他语言中没有的奇葩方法。

当然,在理解了JS的一些重要思想之后,学起来确实简单,再次只是要提醒各位,在学的时候"不要忽视语言的一些细节".bold() <-.-

前端的难在于现在的前端工作已经不仅仅是根据UI图搭建静态页面这么简单了。首先前端的运行环境碎片化严重,要考虑不同的运行环境的兼容性,适配工作就让人觉得非常恶心了;前端的三大框架之后,又衍生出了rn,小程序,flutter,electron等,node方面能够承担不错的后端作用,在exprss的基础上也是衍生出了一堆后端框架。

框架之下的前端开发,需要掌握各种不同的工具以及规范,拎打包工具出来做例子,webpackGlupParcelRollup...他们有什么不同,各自优势是什么,虽说工具专精一个就行,但是对应的其他技术如果不了解就会失去很多发言权,这是在开发上面的难。说前端难,很大一部分是js不是es,js太自由,衍生的东西太多,有太多的东西要学,很多人学着学着就学不动了。

另外,前端开发你不可能不了解各种通讯协议什么axiossocketiotpc都得了解吧,可能还要学一下d3echarts3.js或者原生的GL,如果不跟你说前端有一个叫audiocontext的东西,你可能不知道在浏览器还能做简单的混音;任何一个大的领域都会有各种小的方向,想成为全方位的专家感觉更重要的是相关领域的基础知识的支持;综上,你说js简单我是认可的,但是如果说前端开发简单,只能说你走多高就才能看得多远吧。

这行有句老话:难的不会,会的不难。意思就是说,你要是觉得某样工作难,是因为不会一些东西,相反,只要你会了关键知识,没有难的事。

要说JS是不是最简单的编程语言,我觉得不是,我个人觉得最简单的是Scratch,就是那个教小孩子编程思维用的图形编程“语言”,判断标准也很简单,小孩一两天就能用Scratch写游戏,其他语言不行吧:-)

很多人在说“前端开发简单”的时候,首先就默认了若干前置条件,例如说前端开发=web前端开发=web前端“页面”开发。

这个其实是眼界的问题,如今的前端不论是广度还是深度,都有很大的延伸空间,例如说包含了跨平台开发,包含了中大型web“应用”开发,包含了web端极致性能的探索,包含了人机交互体验的探索等等等等,在这些衍生话题上,javascript的“简单”甚至带来了非常多的负面效果,因为归根结底它在设计之初就不是为了解决这些问题而生的。

所以建议题主不要随意否定别人,不要做“半桶水”。

首页js≠前端开发,其次你以为的js可能只是es的某一版本,大概率es5小概率es6,DOM和BOM可能没被你包含进去,然后你可能没有加上HTML和CSS。最后做前端很多人其实觉得学好CSS比JS难,很羡慕那些在codepen上写出华丽丽demo的某些大触们。而那群人可能正从事你所谓的简单工作。

这个题目想表达什么?

疑惑?自我优越?或者鄙夷?

想请问题主:写字简不简单?书法家多不多?吃东西容不容易,为何大胃王不常有?

每一行做好都不简单,没有岁月的积累和功勋衬托,妄加评论,是容易招人diss的。

js入门门槛低是它能够流行起来的重要因素,倒没成想,反而有人踩这一点,比较费解。

知易行难,切莫纸上谈兵。

就算题主所说的前端不是大前端,单单js弱类型带来的那些问题,js怎么都不可能算是简单那种把。

而由js简单推导出前端简单的这个逻辑,更是让人摸不着头脑。

责任编辑:
热门阅读排行
© 16货源网 1064879863