当前位置: 首页 > 科技观察

所有的编程都是网络编程

时间:2023-03-18 02:24:08 科技观察

MichaelBraude表达了他对网络编程流行的不屑:大多数人想做网络编程的原因是他们不够聪明,无法做其他事情。他们不了解编译器、并发、3D或类继承。他们根本不明白我为什么要使用接口或抽象类。他们不了解虚函数、指针、引用、垃圾收集、终结器、按引用传递和按值传递之间的区别、C++的虚拟析构函数或C#的结构和类之间的区别。他们也对这个过程一无所知。更不用说瀑布,螺旋,敏捷!他们从未阅读过需求文档,也从未编写过设计文档;他们从来没有画过UML图,甚至连“时序图”这样的东西都没听说过。不过,他们确实有一些技巧:他们知道如何组合一个ASP.NET页面,将一些(写得不好的)SQL发送到数据库,填充数据集,并用网格控件显示它。他们也会是这些。而且,他们想通这些东西,估计也用不了多久。所以,请原谅我的冒犯——我不想成为一名网络程序员!我有两个原因。***,这对我来说太没有挑战性了。其次,因为大多数互联网公司的工程师都很糟糕,或者更准确地说,因为你不必考虑深奥的东西就可以成为一名网络开发人员。在我看来,互联网让我们变得越来越聪明。您真的不必那么聪明就可以拼凑出一个网页。我真的希望每个人都错了,一切都不必“上网”。因为如果那样的话,未来的某一天,我要么勉强接受这种无聊的转变,要么就不得不转行。Web开发没有挑战性,所以它会吸引不合格的软件开发人员?这种荒谬的观点暂且不谈。即使在过去是这样,今天的情况也不一样了。我真的不想在迈克尔面前扮演“坏人”,告诉他这个坏消息:对于越来越多的用户来说,桌面应用程序已经死了。在过去的几年中,大多数桌面应用程序已被Web应用程序所取代。随着Web浏览器的发展变得越来越强大和健壮,每天都有更多的桌面应用程序被替换。您希望一切都不必“上网”?醒来!这已经发生了!学过计算机史的人都能告诉你,Web应用的主流化正是《最小功耗原则》(ThePrincipleofLeastPower)所预示的:计算机科学界在过去40年里一直致力于让语言变得如此强大尽可能。尽可能强大。时至今日,我们必须感谢让我们选择的不是最大的解决方案,而是最不强大的解决方案的原因。计算机语言的功能越弱,您可以使用该语言存储的数据做的事情就越多。如果你把它写成一个简单的语句,任何人都可以编写程序来分析它。例如,一个呈现天气信息的网页使用RDF(译者注:ResourceDescriptionFramework,一种描述网络资源的标记语言)来描述数据,用户可以把它放到一个表格中,也许做一些平均,绘制一个图形,然后将其与其他信息结合起来进行某种推断。在另一个极端,天气信息是通过聪明的Java小程序呈现的。虽然这种方法可能会产生一个很酷的用户界面,但它是完全无法分析的。找到此页面的搜索引擎将无法判断这是什么数据或该数据的用途。了解Javaapplet功能的唯一方法是查看它的运行情况。互联网恰恰是做最简单(或最愚蠢)和最可靠的事情的体现。如果这让你害怕(让你不安),那么我会悄悄告诉你,你没有理由去做程序员。所有应用程序都应该是Web应用程序吗?当然不是。总有一些重要的例外,有些软件与互联网无关。但是,这些都是极少数情况和一些特殊应用。它们虽然是重要的小生态环境,但无论如何也只是“小生态环境”。如果您希望尽可能多的用户使用您的软件,没有比将其制作成Web应用程序更好的方法了。Internet是现有软件最有效、最普遍和最直接的分发网络。任何用户只要能连接到Internet并拥有浏览器,无论他在世界的哪个角落,只需轻点两下鼠标,他就可以开始与您编写的软件进行交互。即使是最糟糕的Web应用程序,其受众和传播范围也是惊人的;而且它每天都在扩大……我也因此创造了“阿特伍德定律”:任何可以用JavaScript应用程序编写的东西,最终都将用JavaScript编写。从工程的角度来看,用JavaScript编写Photoshop、Word或Excel没有意义。然而,这是不可避免的。它会发生。事实上,这已经在发生了。环顾四周。作为一名软件开发人员,我最高兴的是编写人们使用的软件。如果您的软件将自己提交给必须购买、许可、运送、下载、安装、维护和更新的二进制EXE文件,那么您的手艺有什么意义呢?鉴于程序员和用户之间的所有这些传统障碍,软件行业能够幸存下来真是一个奇迹!然而,在华丽的Web应用程序新世界中,这些限制已不复存在。没有边界。软件可以无处不在!Web编程远未达到完美的境界。其实有点乱!是的,任何可以编写代码的人都可以通过单击两次来制作糟糕的Web应用程序;99%的Web应用程序都是一堆垃圾,这也是事实。然而,这也意味着相当“聪明”的程序员正在将他们的成果呈现在数百或数千(或数万,甚至数百万)用户面前,这在互联网盛行之前是绝对不可能的。不可能的。在我看来,没有什么比任由代码自生自灭更可悲的了!将软件重组为Web应用程序允许程序员将他们的软件放在某个地方的某人面前,即使软件本身不是很好。如果观众和工艺观点不足以说服您,请从商业角度考虑。马克弗莱彻曾经给出了一套创业规则,其中一条是这样的:你在做一个网络应用,对吧?这已经不是1980年代了!即使您的竞争对手使(桌面)应用程序别致而优雅,您的简陋、破旧的Web应用程序仍将比它更成功。不久之后,所有的编程都将是网络编程。对于普通的工作程序员来说,如果您认为这不值得庆祝,您或许应该转行。原文出处:codinghorror翻译来源:卢启明(@豆巴吴吉明)