我们站在巨人肩膀上


[原文发表时间] :2014-05-28

middle我的新项目在三个大洲已经有了数据中心,利用全球负载均衡,能够自如的遍历网络,同时拥有iPhone和Windows应用程序,它写在一个简单的高级语言里,并允许一些令人惊喜的场景来帮助人们快速完成更多工作。

然而真实的故事这样- 真正令我失落的- 并非我和我的搭档编写的无数个软件,而是年复一年我们没能编写的那些软件。

我们通过欧洲,亚洲和美国的多个服务器来实现全球负载均衡网站和服务。 Windows Azure流量管理器会处理这些。

我们把我们的通信协议设置在SignalR的顶端,这是一个使用ASP.NET避免了实时网络的复杂性的开源类库,来为我们处理的NAT 遍历,它基本上为我们去除了网络问题。 SignalR处于HTTP和Web Sockets的顶端, 而这些又处于TCP/IP协议之上。

我们使用RayGun.io来进行错误管理,并在发生故障时在我们的应用程序中获取完整的堆栈转储,这使我们能够经常快速升级,并且给我们的用户一个很好的体验。

我们用InnoSetup安装我们的应用程序,它绝对是一个我曾经使用过的最令人吃惊的应用程序,在这里付费使用

我们使用ZXing QRCode开源库,来进行QR码的创建。我们丝毫不必担心图像的详情。

我们使用MahApps.Metro UI来使我们的Windows应用程序看起来美观。增加了一些很好用的控件。

而这一切都是使用C#和Xamarin工具集整合到一起的。 iPhone应用程序,Windows应用程序,以及云服务都是C#完成的。

我在软件行业到现在已有20年了,我记得当时写的C语言已经被认为是一个相当高层次的语言。我大致理解了从汇编直至托管代码和延伸到云计算的过程的全部堆栈。今天我们考虑管理虚拟机集群和我们考虑管理字节的时间一样多,这是多么神奇啊。

回想那些我们的应用程序所站立的巨人的肩膀。回想那些你们的应用程序所站立的肩膀。计算机软件的抽象化使我们能够做的如此之多。

我们可以惊叹于谷歌的抽象层。对于许多人来说,那就是互联网。你在文本框中输入一个问题,按下一个按钮,整个世界为你打开,而这仅仅只是这个星球的一小部分,你会真诚感谢让这一切发生的历史进程。

我说的有道理吗?大概没有。这只是我今天突然想到的。听我和计算机科学界的传奇Len Bass在本周的播客上的聊天, 你会对我们每天利用的历史和力量有一种新的感觉。

花一点时间思考你的应用程序在深度和广度堆栈里的值。请感谢和支持你的应用程序用到的工程,无论它是不是开源的。陶醉在其他人创建的抽象层中,并且感谢您所创建的抽象层。他们让所有你使用的LEGO刚刚好是正确的大小,它们在一起会很有趣。

成为一个程序员是一个伟大的时刻。这篇博文是出自myEcho应用程序


Comments (0)

Skip to main content