我个人感觉这个圈子里面貌似蛮多大神的,但是真正出来的东西在哪里?之前还看到某“大牛"评价jQuery 是大便,大家都在用大便。我个人比较难理解这种思维,求解惑,真的很牛为啥没做出angularjs 之类风靡的东西。
回复内容:
一个框架能不能火,最关键的不是技术实现上多 nb,而是在于这个框架是否代表了一种(在其所处的时代)先进的开发理念。举例来说,在大部分开发者都在为浏览器兼容性和设计糟糕的原生 DOM API 叫苦连天的时候,jQuery 的横空出世自然显得光彩夺目。那个年代,大家根本不把前端当应用来写,能爽快的操作 DOM 就已经足够成为王道了。jQuery 简洁的语法,华丽的链式 API,同时掩盖了各种兼容问题,能不火吗?
慢慢地,大家发现前端要做应用,光有华丽的 DOM 操作也不够,还得有应用结构。所以 Backbone 出现了,把 MVX 的概念引入了前端,让大家发现原来前端也是可以有架构的。
再接着,大家发现 Backbone 的视图层依然需要手动侦听 model 的变化做各种 DOM 操作,数据到视图的映射依然繁琐。于是大家开始推崇 MVVM 数据绑定,(其实 Knockout 是和 Backbone 差不多时间出现的,只不过由于其实现不如 Backbone 来得简明易懂,所以不如 Backbone 火),于是 Angular 火了。
不得不承认,即使是放眼全球,前端开发理念相比软件开发的其他领域,也基本上是属于一个跟随的状态。比如最近函数式编程就在对前端开发产生着巨大的冲击 - 首当其冲的就是以幂等渲染函数为核心概念的 React。由于 React 本身的函数式血脉,以它作为渲染层引入其他函数式理念变得触手可及,于是我们看见现在国外前端在研究的都是 immutability, FRP, uni-directional data flow, stateless stores, isomorphic application 之类看上去高大上的话题。
如果你现在去基于一个已经普及的理念新写一个框架,即使实现得再好,也不过是造了一个轮子。当然,造一个同类理念中最好的轮子,还是会有很多人来用,但这毕竟只是一个改进的轮子,大家不会把你当做一个划时代的东西去推崇。只有当你把一个从没在这个领域出现过的理念实现了,才能够达到 jQuery, Backbone, Angular, React 这些里程碑式的框架所达到的地位。(顺便广告下,在前后端数据通信这块,Meteor 可以算是一个里程碑式的存在,Relay 可能是下一个)
所以说到底,能不能搞出风靡的东西,一部分是眼界,一部分是时势。首先只有把眼界开拓到当前领域的边界之外,才可能做出开拓这个领域的东西。国内的前端界目前基本是处于跟随国外前端界的状况(就像国外前端界跟随整个软件开发领域一样),从眼界上来说就差了一个身位,又如何奢求能够做出划时代的东西?
另一部分的时势,就是你所实现的理念是否正好顺应了当前业界的普遍需求。太超前或是太落后,都火不了。
需要说明的是,眼界和工程实力是两个东西。单就工程实力而言,我相信国内的工程师们完全不比国外的差,差距就在眼界上。首先如贺老所说,英语水平是一个整体上限制了眼界的障碍;其次,如今国外的前端工程师受过正统 CS 理论训练的比例估计也远远高于国内;最后,国内的公司加班严重,能完成工作任务就不错了,哪里还有力气搞开源(除非把开源弄成 KPI)。所以说到底是个大环境问题。还有一个原因,就是英语足够好的就肉身翻墙了,你懂的。 我一再说的是,成功是偶然的,无人问津才是正常的。
GitHub上几百万个repo,据说一半以上是从第一次发布后就无人问津的0关注项目,90%是没有几个fork的。真正有点人用的项目据说也就几万个。
而jQuery、Angular这种“风靡”级别的,全世界也就那么几个。
如果不是总45度角仰望,放低下脑袋,那还是可以看到一些的,比如百度的echarts(你可以看到star数,fork数,issue数,PR数都很高,说明这个项目有很高的活跃度)。个人为主的项目我也随手拿一个做例子: @sofish 的sofish/pen · GitHub,在github上已有3000+ star。
至于最风靡的框架/库为什么不出在中国,有很多原因。比如说英语能力(不要小看这个的影响)。请参考在前端领域,国内和国外的的互联网公司有差距吗? - 贺师俊的回答
PS. 说jQuery是大便,我是不同意的。但是你听别人说什么,需要考虑语境,也可能只是讲话者要表达观点时用了一个略激烈的修辞,不代表他的观点就是不对的,就是没有价值的。
---- 以下是与主题无关的内容 ----
jQuery是历史上最成功的前端框架/库,但毋庸讳言,第一jQuery早期代码是很挫的(所以很多老的前端高手看不上他),第二现在看jQuery已经过时了(所以今天真正明白前端未来大势的人不会再来给你讲jQuery如何好blablabla)。
当然,这些并不能掩盖jQuery的光辉。
如何看待jQuery,我认为有两种错误,一种是认为jQuery的成功纯属偶然,或者认为jQuery只是满足了小白。另一种是认为jQuery就是好,认为所有其他的框架/库都没必要。
这两种错误的原因其实是一样的,就是不明白jQuery到底好在哪里。不明白这个,也就不明白为什么jQuery的时代已经过去了(尽管我们还会继续使用它好长时间)。
有空我会好好写一下这个话题,这里先打住。 框架要流行只需要做一点:解决大多数人当前的问题。
有些框架技术上很厉害但不解决大多数人的问题,那再厉害也没有。有些框架解决大多数人过去的问题,例如很多人说自己能写个 jQuery,但现在谁还需要?还有些框架解决大多数人未来的问题,例如我 2009 年就写过等价于 Promise 的 Async, @赵劼 写过等价于 async generator 的 Wind.js,但在 callback hell 还不是大多数人的问题时这没有价值。还有些框架,明明问题是能解决的,但就是清高,不愿意帮助小白用户上手,一样死路一条。用 jQuery 作者 John Resig 的话说,如果一门技术的社区,老人总叫新人 RTFM,这门技术两年内完蛋。
总而言之就是,写一个framework是需要经过特殊的训练的,这并不是任何一个领域的专业知识所能搞定的事情。
并不是你前端写的熟练就可以搞出jquery
并不是你C++用得熟练就可以自己发明stl
并不是你make敲得多就懂得怎么写build system
很多朋友说国内程序员浮躁,我这是完全不赞同的。首先 你拿jQuery比较是不合适的,这就好比你为什么不再造一个J2EE的道理是一样的
其次你认为那些牛逼的开源项目都是一帮人义务劳动吗?显然不是。那些知名的牛逼的开源前端项目,都是出自知名公司的,Angular,React,包括再偏ui一点的bootstrap。去看看他们背后的公司是谁。都是知名公司在做。这个是行业现象。
包括现在很多开源社区的名人,身后都是有公司支持的,Linux,webkit,webrtc,crosswalk,openstack等等等等。。。许多外企公司都有开源项目部(Intel就有 SSG OTC),专门来做开源项目以提高行业话语权。
所以,不是国内前端工程师浮躁,也不是国内工程师水平的问题,而是国内公司大环境的问题,目前来看,提高开源社区话语权显然不是国内it公司当下要做的事情,虽然也有一些小的开源项目在做,但都不是专门设置一个开源部门来做。 国内的环境造就了一大批伪专家,只会用别人的代码,用熟了就开始批判以显示自己牛逼,比这个牛逼一些的会参考别人的代码自己造些轮子,声称自己的轮子强过jQuery,angular多少云云,实际上水平的差距还是比较大的。总体来说就是我们现在的实力只能够做到跟随而不能做到首创,加上国内环境让大批伪专家横行,在前端这行搞个几年你不敢声称自己是专家你都不好意思和同行交流。 表面上看是:懒累穷抄
实际上,jquery 等是实际项目和需求+优秀程序员+高质量社区的结果。
要有鱼首先要有水。
某些“大牛”分不清楚,“做出好东西需要掌握的技术我都会” vs "我会用掌握的技术做出好东西" 之间的巨大差别。 牛逼哄哄的中国码农做不出来的(或者做出来不便公开的),岂止前端框架,岂止 AngularJS、jQuery?现在大家日常用的主流开源框架、程序库、平台、开发工具,有几个是中国的编程高手创造的?几乎都是拿来的。软件工程上的这种差距不是 1-2 年,而是 8-10 年,甚至更长。
这是一种市场现象,也是一种文化现象。
导致这一现象的原因很多,我分析几个主要的原因:
原因 1、落后的软件工程教育和浮躁的大环境导致缺乏大量优秀、经验丰富、有创造力的职业软件设计师
像研发 AngularJS、jQuery、Spring、Struts、RoR 等等之类的优秀框架,背后是需要强大的技术实力、编程思想支撑的。没有独到的顶尖专家型思维、成熟的编程方法论(如 OOAD)、扎实的软件科学基础(如算法与数据结构)、领先的软件架构设计知识与能力(如架构模式与设计模式)、良好的编码素质与习惯、娴熟的软件工程与团队管理水平。。。,能开发出优秀的框架?所有这些编写专家级、优秀框架代码的要素,都需要一个创新者起码拥有 10 年以上的积累。
关于积累,@张盟 的评论很到位,我引过来:
我觉得最主要的是国内35+到50岁以上的前端er太少了,或说老一辈的技术转前端的寥寥,大多都转管理或自己创业做产品了。根本原因是顶尖层次的前端coder少,3-5年经验的水平大家55开,到10年这个分水岭,国外领先太多。
同感!国外 30-50 岁是出成果的黄金年龄段,而国内大多是 30 岁以下廉价使用的娃娃劳动力。缺乏深厚的技术经验积累与沉淀,确是一个主因。我们这个社会太浮躁了,人人都想着捞快钱。没有那种耐得住寂寞、精益求精、持续打磨的工匠精神,要想做到世界一流,堪比登天。
OOAD 方法论的兴起、争论与繁荣是在上世纪 90 年代,2000 年后已趋于成熟,成为国外职业软件工程师的核心基础技能,而伴随这一时期的正是 C++、Java 等 OO 语言和大量开源框架的兴起与强盛。
反观国内,OOAD 进入国内大学课程主要是在 2005 年以后吧,一直存在着时间差。至今,江湖上的许多人连一个 Object Model、Design Pattern 还整不明白,还在忽视、贬低 OOAD,鼓吹“裸编”、伪敏捷,以为“设计就是代码”。。。在这样的一个大环境、烂江湖里,能培育出世界一流的框架设计?
这道理其实与糟糕的中国足球很类似,没有扎实、强大的足球基础教育,与崇尚专业精神的文化和环境,何谈冲出亚洲?中国有几个世界级的球星?光知道砸钱(中国人不差钱),搞人海战术(中国人多),给高薪(重赏之下必有勇夫),加班文化(中国人勤奋、耐力好,擅长加班)。。。有 P 用?做梦吧。
关于浮躁,楼上某匿名用户的评论很精彩,我引过来:
国内的环境造就了一大批伪专家,只会用别人的代码,用熟了就开始批判以显示自己牛逼,比这个牛逼一些的会参考别人的代码自己造些轮子,声称自己的轮子强过jQuery,angular多少云云,实际上水平的差距还是比较大的。总体来说就是我们现在的实力只能够做到跟随而不能做到首创,加上国内环境让大批伪专家横行,在前端这行搞个几年你不敢声称自己是专家你都不好意思和同行交流。
浮躁的、盛产牛逼哄哄的伪专家的大环境能产生出世界级的编程大师,尤其是敢于秀代码的开源大师么?很难。
原因 2、与国内的开源市场大环境还不成熟有关
原因 3、国内的真正高手、大牛肯定是有的,只是他们在忙其他更有价值的事情,精力还顾不及开源。
这可能不是一个能力问题,而是一个值不值,以及时机和切入点的问题。所以我看好下个十年。
待续。。。 1. 有价值的轮子已经被造了无数遍,值得造的轮子并不多了。
2. 写框架和调接口(应用层)需要完全不同的mindset,是两个不同的工种。大部分职业程序员是调接口的。
3. 任何一个产品包括开源项目,都需要推广宣传才能流行起来。大部分理工科的人有个单纯的执念:If I build it, they will come,并不懂distribution.
4. 国内大部分程序员,写代码只是混口饭吃,工作以外的,实在有心无力;对于大部分企业,写一个框架并不能直接转化成效益、流量。内外都缺乏驱动力。
5. 语言引起的交流障碍。开源项目都需要一个国际性的社区,成员可以用英文顺畅交流,中国人不占优势。 1、理念落后一些,总是跟着别人走
2、为了kpi和沽名钓誉造轮子,怎么能造出最好的轮子?

H5 개발에서 마스터 해야하는 도구 및 프레임 워크에는 vue.js, React 및 Webpack이 포함됩니다. 1.vue.js는 사용자 인터페이스를 구축하고 구성 요소 개발을 지원하는 데 적합합니다. 2. 복잡한 응용 프로그램에 적합한 가상 DOM을 통해 페이지 렌더링을 최적화합니다. 3. Webpack은 모듈 포장에 사용되며 리소스로드를 최적화합니다.

html5hassignificallytransformedwebdevelopmentbyintranticalticlementements, 향상 Multimediasupport 및 Improvingperformance.1) itmadewebsitessmoreaccessibleadseo 친환경적 인 요소, 및 .2) Html5intagnatee

H5는 시맨틱 요소 및 ARIA 속성을 통해 웹 페이지 접근성 및 SEO 효과를 향상시킵니다. 1. 컨텐츠 구조를 구성하고 SEO를 개선하기 위해 사용합니다. 2. Aria-Label과 같은 ARIA 속성은 접근성을 향상시키고 보조 기술 사용자는 웹 페이지를 원활하게 사용할 수 있습니다.

"H5"와 "HTML5"는 대부분의 경우 동일하지만 특정 시나리오에서는 다른 의미를 가질 수 있습니다. "HTML5"는 새로운 태그와 API를 포함하는 W3C 정의 표준입니다. "H5"는 일반적으로 HTML5의 약어이지만 모바일 개발에서는 HTML5를 기반으로 한 프레임 워크를 참조 할 수 있습니다. 이러한 차이를 이해하면 프로젝트 에서이 용어를 정확하게 사용하는 데 도움이됩니다.

H5 또는 HTML5는 HTML의 다섯 번째 버전입니다. 개발자에게 더 강력한 도구 세트를 제공하여 복잡한 웹 애플리케이션을보다 쉽게 만들 수 있습니다. H5의 핵심 기능에는 다음이 포함됩니다. 1) 웹 페이지에 그래픽 및 애니메이션을 그리는 요소; 2) 웹 페이지 구조를 SEO 최적화에 명확하고 도움이되는 시맨틱 태그 등; 3) GeolocationApi 지원 위치 기반 서비스와 같은 새로운 API; 4) 호환성 테스트 및 폴리 필 라이브러리를 통해 크로스 브라우저 호환성을 보장해야합니다.

H5 링크를 만드는 방법? 링크 대상 결정 : H5 페이지 또는 응용 프로그램의 URL을 가져옵니다. HTML 앵커 작성 : & lt; a & gt; 태그 앵커를 만들고 링크 대상 URL을 지정합니다. 링크 속성 설정 (선택 사항) : 필요에 따라 대상, 제목 및 on 클릭 속성을 설정하십시오. 웹 페이지에 추가 : 링크가 나타나려는 웹 페이지에 HTML 앵커 코드를 추가하십시오.

H5 호환성 문제에 대한 솔루션에는 다음이 포함됩니다. 웹 페이지가 화면 크기에 따라 레이아웃을 조정할 수있는 반응 형 디자인을 사용합니다. 릴리스 전에 호환성을 테스트하기 위해 브라우저 크로스 브라우저 테스트 도구를 사용하십시오. PolyFill을 사용하여 이전 브라우저의 새로운 API를 지원합니다. 웹 표준을 따르고 효과적인 코드 및 모범 사례를 사용하십시오. CSS 프리 프로세서를 사용하여 CSS 코드를 단순화하고 가독성을 향상시킵니다. 이미지를 최적화하고 웹 페이지 크기를 줄이며로드 속도를 높이십시오. HTTPS를 통해 웹 사이트의 보안을 보장하십시오.

H5 페이지는 링크를 수동으로 만들거나 짧은 링크 서비스를 사용하는 두 가지 방식으로 링크를 생성 할 수 있습니다. 수동으로 생성하면 H5 페이지의 URL을 복사하면됩니다. 짧은 링크 서비스를 통해 URL을 서비스에 붙여 넣은 다음 단축 된 URL을 가져와야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
