亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

AI革命證明了:框架從一開始就錯了

经过15年的网页开发,我终于有了一个震惊的发现:现代JavaScript框架其实是不必要的,它们只是绕了数十年的弯路,而AI编码助手终于揭示了这一点。

大框架骗局揭秘

多年来,我们被告知框架被描述为解决现代 Web 应用复杂性的必要工具。但如果我们面对的复杂性其实是我们人为制造出来的呢?我们是否在解决那些仅仅是由于我们自己创造出来的问题?

[编辑:当时我高中毕业后,用IBM的某个系统(可能是IBCADIC)处理MUDD内容,通过一个VT-100终端连接,只用文本编辑器。这并不漂亮,但有效——而且当时没人想到称它为框架。]

我们来看一个简单的例子。还记得这段 React 代码?

const 按钮 = ({ 子元素, 点击, 变体 = "primary" }) => { 
  return ( 
    <button 
      className={`btn btn-${变体}`} 
      onClick={点击} 
    > 
      {子元素} 
    </button> 
  ); 
};
    // 用法
    <Button variant="warning" onClick={handleClick}>  
      点击我  
    </Button>

现在AI被要求用原生JS创建一个可复用的按钮时,给出了这样的建议:

    // 定义一个函数来创建按钮
    function createButton(text, onClick, variant = "primary") {  
      // 创建一个按钮元素
      const button = document.createElement('button');  
      // 设置按钮的文本内容
      button.textContent = text;  
      // 设置按钮的类名
      button.className = `btn btn-${variant}`;  
      // 为按钮添加点击事件处理程序
      button.addEventListener('click', onClick);  
      // 返回创建的按钮元素
      return button;  
    }
// 示例
const button = createButton("点击这里", handleClick, "warning");  
document.body.appendChild(button);

“且慢!”你可能要说,“React版本更直接!”没错,当一切都得手动写的时候,这确实很重要。但是当AI能在毫秒间生成任意版本时,价值主张就会大不一样了。

泰勒·德伦的碱水澡

将AI编程助手想象成泰勒·德诺,先用氢氧化钠(vanilla JS知识)涂上自己,然后被复杂框架覆盖。结果,框架内部爆炸。

泰勒并不是在创造新的东西——他只是利用基础化学(类似于计算科学的基本原理)来揭示这种生物内在的不稳定性质。同样,人工智能也没有创造新的编程范式;它只是揭示了这一点,我们的复杂抽象原来是多么没有必要。

AI并不是取代基础——它是在放大基础。

关于AI编程助手的一个常见误解是,它们不会取代计算机科学知识。实际上,它们只是打字很快,记忆力很好。这些AI编程助手只是非常快的打字员,具有很好的记忆力。

当我让AI用纯JavaScript实现一个平衡二叉树时,它并不会创新新的树结构。它利用的是几十年来一直存在的计算机科学基础知识。但不同之处在于,它可以几秒钟内实现这些结构,而无需框架的额外负担。

AI编程助手就像是编程伙伴,它们可以:

  • 提供代码建议
  • 帮助调试代码
  • 解释编程概念和术语
  1. 永远不要忘记任何API
  2. 能以超快的速度打字
  3. 不需要休息
  4. 看过Stack Overflow上的每一个帖子

它们不是来取代你对计算机科学的理解的——它们是用来增强你的知识的。一旦这些基础知识被增强后,这些框架看起来像是为那些几乎不存在的问题过度设计的解决方案。

尾风事故

那咱们就聊聊 Tailwind 吧——因为如果说人工智能暴露了什么问题,那就是实用性优先的 CSS 变得有多荒唐。

    <div class="flex flex-col items-center justify-between p-4 m-2 bg-blue-500 hover:bg-blue-700 text-white font-bold rounded transition-colors duration-200">  
      你好,世界  
    </div>

即使人工智能也很难理解这些实用类字符串。当我让人工智能解释这代码时,它不得不费劲地将每个实用类翻译回它实际的功能。我们实际上创建了一个只有人脑或AI模型才能解码的CSS压缩算法。

换个说法,比如说:

    .button {  
      display: flex;  /* 显示为弹性项目盒模型 */
      flex-direction: column;  /* 弹性子项目的排列方式为垂直方向 */
      align-items: center;  /* 弹性子项目的对齐方式为水平居中 */
      justify-content: space-between;  /* 内容在垂直方向均匀分布 */
      padding: 1rem;  /* 内边距为1rem */
      margin: 0.5rem;  /* 外边距为0.5rem */
      background: blue;  /* 背景颜色为蓝色 */
      color: white;  /* 文本颜色为白色 */
      font-weight: bold;  /* 字体加粗 */
      border-radius: 0.25rem;  /* 圆角边框半径为0.25rem */
      transition: background-color 0.2s;  /* 背景颜色过渡时间0.2秒 */
    }

我们遇到了一个单行CSS代码的“罪”(如犯罪般糟糕的代码),需要深厚的Tailwind知识才能解读。但AI却能轻松生成任意一个版本,揭示了这种荒谬。如果两者同样容易创建,为何选择那个可读性差的那个?

框架崩塌

随着AI编程助手的改进,我们将见证一场令人着迷的混乱局面。框架将:

  • 增加更多的智能功能。
  • 更好地与AI工具整合,提供更流畅的开发体验。
  1. 添加更多功能(增加复杂度)
  2. 提高性能(解决由此引起的问题)
  3. 集成AI能力(暴露其自身的冗余)

就像异形怪兽吞噬了泰勒·德顿一样,他们也会在不知不觉中吞噬会从内部摧毁他们的东西。

真正的代价

这种复杂性总是带来真正的成本。

  • 更大的包体积
  • 更复杂的构建流程
  • 更高的认知负荷
  • 更多的故障点
  • 新开发人员学习曲线更陡峭
  • 层层依赖的生态

AI 并没有改变这些费用——而是通过提供一个替代选择,让这些费用更加显而易见。

一个实际的建议

这里是我大胆的建议:或许我们不需要用三层组件包裹每一个HTML元素。或许我们不必假装DOM不存在。

也许我们真正需要的并不是更多的框架,而是更好地应用基础计算机科学原理到原生代码的方法。而现在我们有了——这就是所谓的AI助力开发。

不可避免的火焰战

我已经能猜到大家会怎么回答了。

  • “但是状态管理怎么办呢?”
  • “组件的生命周期呢?”
  • “我怎么处理复杂的UI更新呢?”

对此,我的回答是:所有可以用纯 JS 和扎实的计算机科学基础解决的问题。你无法想象没有框架也能解决这些问题,并不是说这些问题没有解决方案——这实际上说明了框架如何限制了你的思维。

总结:

框架其实不错。它们确实解决了当时的一些实际问题。不过那个时代已经过去了。我们现在有了更好的工具,能够根据计算机科学的基本原则生成高效的代码,而不需要额外的框架支持。

AI革命不会使优秀的开发人员过时——它会让冗余的框架过时。最早理解这一变化的开发者在未来几年中将具有显著优势。

碱已经用了,异形也吃下去了,现在我们只需要等着爆炸就行了。

嘿,我那保险代理说这篇文章比上一篇要“火药味”得多。我肯定能引来客气又有节制的回应。

作者简介:一位资深杰出架构师,代码高手,有15年的经验,让DOM元素以各种方式出现在屏幕上。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消