찾다
웹 프론트엔드H5 튜토리얼在国内前端领域里优秀的人很多,为什么没人做出 angularjs 、jQuery 之类优秀的框架?

我个人感觉这个圈子里面貌似蛮多大神的,但是真正出来的东西在哪里?之前还看到某“大牛"评价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和沽名钓誉造轮子,怎么能造出最好的轮子?
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
기본 이외 : H5 코드의 고급 기술기본 이외 : H5 코드의 고급 기술May 02, 2025 am 12:03 AM

H5에 대한 고급 팁에는 다음이 포함됩니다. 1. 복잡한 그래픽 사용, 2. 웹 워크를 사용하여 성능 향상, 3. WebStorage, 4. 응답 디자인 구현, 5. WebRTC를 사용하여 실시간 커뮤니케이션을 달성하기 위해, 6. 성능 최적화 및 모범 사례를 수행하십시오. 이 팁은 개발자가보다 역동적이고 대화식 및 효율적인 웹 응용 프로그램을 구축 할 수 있도록 도와줍니다.

H5 : 웹 컨텐츠 및 디자인의 미래H5 : 웹 컨텐츠 및 디자인의 미래May 01, 2025 am 12:12 AM

H5 (HTML5)는 새로운 요소와 API를 통해 웹 컨텐츠와 디자인을 개선합니다. 1) H5는 시맨틱 태깅 및 멀티미디어 지원을 향상시킵니다. 2) 웹 디자인을 풍부하게하는 캔버스 및 SVG를 소개합니다. 3) H5는 새로운 태그와 API를 통해 HTML 기능을 확장하여 작동합니다. 4) 기본 사용에는이를 사용하여 그래픽 생성이 포함되며, 고급 사용량은 WebStorageapi와 관련이 있습니다. 5) 개발자는 브라우저 호환성 및 성능 최적화에주의를 기울여야합니다.

H5 : 웹 개발을위한 새로운 기능 및 기능H5 : 웹 개발을위한 새로운 기능 및 기능Apr 29, 2025 am 12:07 AM

H5는 여러 가지 새로운 기능과 기능을 제공하여 웹 페이지의 상호 작용 및 개발 효율성을 크게 향상시킵니다. 1. Enhance SEO와 같은 시맨틱 태그. 2. 멀티미디어 지원은 오디오 및 비디오 재생 및 태그를 단순화합니다. 3. 캔버스 드로잉은 역동적 인 그래픽 드로잉 도구를 제공합니다. 4. 로컬 스토리지는 LocalStorage 및 SessionStorage를 통해 데이터 스토리지를 단순화합니다. 5. Geolocation API는 위치 기반 서비스의 개발을 용이하게합니다.

H5 : HTML5의 주요 개선H5 : HTML5의 주요 개선Apr 28, 2025 am 12:26 AM

HTML5는 5 가지 주요 개선 사항을 제공합니다. 1. 시맨틱 태그는 코드 선명도 및 SEO 효과를 향상시킵니다. 2. 멀티미디어 지원은 비디오 및 오디오 임베딩을 단순화합니다. 3. 형태 향상은 검증을 단순화한다. 4. 오프라인 및 로컬 스토리지는 사용자 경험을 향상시킵니다. 5. 캔버스 및 그래픽 기능은 웹 페이지의 시각화를 향상시킵니다.

HTML5 : 표준과 웹 개발에 미치는 영향HTML5 : 표준과 웹 개발에 미치는 영향Apr 27, 2025 am 12:12 AM

HTML5의 핵심 기능에는 시맨틱 태그, 멀티미디어 지원, 오프라인 저장 및 로컬 스토리지 및 형태 향상이 포함됩니다. 1. 코드 가독성 및 SEO 효과를 향상시키는 시맨틱 태그 등. 2. 레이블로 멀티미디어 임베딩을 단순화하십시오. 3. ApplicationCache 및 LocalStorage와 같은 오프라인 스토리지 및 로컬 스토리지는 네트워크없는 작동 및 데이터 저장을 지원합니다. 4. 양식 향상은 처리 및 검증을 단순화하기 위해 새로운 입력 유형 및 검증 속성을 도입합니다.

H5 코드 예제 : 실제 응용 프로그램 및 튜토리얼H5 코드 예제 : 실제 응용 프로그램 및 튜토리얼Apr 25, 2025 am 12:10 AM

H5는 다양한 새로운 기능과 기능을 제공하여 프론트 엔드 개발 기능을 크게 향상시킵니다. 1. 멀티미디어 지원 : 미디어를 포함하고 요소를 포함하여 플러그인이 필요하지 않습니다. 2. 캔버스 : 요소를 사용하여 2D 그래픽 및 애니메이션을 동적으로 렌더링합니다. 3. 로컬 스토리지 : LocalStorage 및 SessionStorage를 통해 지속적인 데이터 저장을 구현하여 사용자 경험을 향상시킵니다.

H5와 HTML5 사이의 연결 : 유사성과 차이H5와 HTML5 사이의 연결 : 유사성과 차이Apr 24, 2025 am 12:01 AM

H5 및 HTML5는 다른 개념입니다. HTML5는 새로운 요소 및 API를 포함하는 HTML의 버전입니다. H5는 HTML5를 기반으로 한 모바일 애플리케이션 개발 프레임 워크입니다. HTML5는 브라우저를 통해 코드를 구문 분석하고 렌더링하는 반면 H5 응용 프로그램은 컨테이너를 실행하고 JavaScript를 통해 기본 코드와 상호 작용해야합니다.

H5 코드의 빌딩 블록 : 주요 요소 및 그 목적H5 코드의 빌딩 블록 : 주요 요소 및 그 목적Apr 23, 2025 am 12:09 AM

HTML5의 주요 요소에는 최신 웹 페이지를 작성하는 데 사용되는 ,,,,, 등이 포함됩니다. 1. 헤드 컨텐츠 정의, 2. 링크를 탐색하는 데 사용됩니다. 3. 독립 기사의 내용을 나타내고, 4. 페이지 내용을 구성하고, 5. 사이드 바 컨텐츠 표시, 6. 바닥 글을 정의하면, 이러한 요소는 웹 페이지의 구조와 기능을 향상시킵니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!