这篇短文是我最近一些想法的总合与扩展,这几天看到 Copilot X 感觉非常的惊艳,所以想和大家讨论关于 Ai 对未来编程的一些改变。许多观点只是一个大概的逻辑,希望能和大家一起讨论。
我前几天在写 Flutter ,其中把数据类转换成 json 。我抄了一段
factory HistoryPomodoro.fromJson(Map<String, dynamic> json) => HistoryPomodoro(
DateTime.parse(json["startTime"]),
DateTime.parse(json["endTime"]),
json["time"],
json["note"],
json["status"],
);
// a function toJson covert itself all the data to json
Map<String, dynamic> toJson() => {
"startTime": startTime.toIso8601String(),
"endTime": endTime.toIso8601String(),
"time": time,
"note": note,
"status": status,
};
这种写法确实让我觉得太奇怪了,居然要把属性成员名与 json 字段名一一对应。这也太累了吧。我之前在写其它语言中从来没有这种体验。但是我想或者是因为 Dart 中没有 Java 的反射机制这样导致的。
这是 Dart 语言的缺陷,但是在 Ai 的帮助下,我可以快速的生成这些代码,其实写起来并不累。也就是 AI 弥补了语言本身的缺陷。 过去程序员写 C++时需要进行内存管理会有很重的心智负担。所以人们创造像 Java 之类的语言来降低人们的心智担负。但是随着未来 AI 的发展,由 AI 来生产安全的代码。会不会让 C++这种效率更高的语言渐渐被使用的更多。甚至汇编语言。
Flutter 、Electron 给大家带来许多生产力的提升,只要编写一次代码就能在不同平台上运行。但是用起来并没有 Native 应用舒服。随着 AI 的发展,编写代码的更加的容易,编写应用的成本更低。写不同平台的 Native 应用的成本也会降低,那么 Native 应用是否有可能更也会有更多起来。
平时我们常常要求代码的可读性、就算降低一点性能也是可以接受了。像最近的 Copilot X 甚至可以帮人们重构现有代码。我认为未来会有一些代码是完全由 AI 编写的,维护也是由 AI 维护。比如假设一个函数做了 xxx 功能,然后公司要求加个 yyy 功能。程序员可以直接让 AI 进行重写这个函数。这些代码可能可读性很低,但是 AI 能看的懂也能继续在上面加功能。这些代码没有什么设计模式、也没有什么开闭原则,但是因为没有这些抽象反而运行效率更高。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.