程序员请注意:异步编程模式已被注册专利

异步方式在编程中的执行过程是:先将包含有跟流程信息相关的全局变量和全局上下文指针存储到一个上下文结构体中。当异步函数被执行时,全局上下文指针被存储到本地变量中,当函数执行完,全局上下文指针可以从本地变量中恢复。

下面的流程图和组件图可看出这个专利中含盖的编程模式和架构。

 图1

图2

专利是一把双刃剑,它能保护专利发明人的权利、鼓励更多人来发明创造,但也会因此限制其推广和普遍使用、浪费生产力。UNIX和BSD的专利之争就

是最恶劣的一个案例,Java和安卓之争也给业界带来了很多的麻烦。2004年4月,微软公司申请到一个专利,内容是计算机上,在一个特定时间内按下多次

按键来启动应用程序,即微软为双击鼠标启动程序申请了专利。幸好微软没有动用这项专利,否则的话后果实在太恐怖了。苹果公司也申请了很多让人哭笑不得的专
利,其中最奇葩的是“矩形圆角外观设计专利”。

苹果此前获得的诸多关于iPhone和iPad的专利中或多或少都会包含一些实际的功能,譬如Home键、背部轮廓设计或者前面板整体玻璃覆盖设计

等。但此次获得的专利却单单专注于外观,苹果的意图很简单:圆角矩形就是苹果发明的!专利所保护的圆角矩形设计,是一个非常宽泛的概念,宽泛到图中这个边
框的横竖线条的比例都能成为它保护的对象,无论设备是7寸还是20寸。

正因为此专利过于宽泛,所以被应用的价值很小。苹果曾在法院上提出三星抄袭了自己圆角矩形的设计,当时就激起一片哗然的讨论。这项新专利在法律诉讼

中是很容易被判定为过于宽泛而不具实效的,如果苹果想以它作为武器的话,实在是弱爆了。也许苹果只是通过D670286S探索自己究竟都能拿到什么专利,
这个专利应该永远不会出现在法庭上成为攻击对手的证据。

专利可以用来维护原创者的权益,但是专利的尺度宽泛以及漏洞极有可能通过了一些不实用的专利而引起很多不必要的麻烦,甚至对行业的发展造成阻碍.

作者:oschina

来源:51CTO

时间: 2024-10-28 03:05:58

程序员请注意:异步编程模式已被注册专利的相关文章

程序员请注意:异步编程模式已被人注册为专利

不论是服务器端编程还是客户端编程,编程中的同步和异步对程序员来说都应该不陌生,我们经常会用同步编程来解决顺序执行问题.用异步解决并行执行问题.然而,就是这样的常见的编程模式,有人却将其申请为专利.在谷歌专利查询网站上专利公开号为"US 20140282625 A1"的专利内容就是"Asynchronous programming model for concurrent workflow scenarios",在这个专利的内容摘要描述有: 异步方式在编程中的执行过程

Java程序员的日常—— 《编程思想》关于类的使用常识

Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于构造器 在C中,如果要使用变量需要先申请内存.在Java中,如果你需要创建一个对象,也可以直接new出来,JVM会自动帮你管理. 默认的类,会自动有一个无参的构造方法,当然你也可以自己定义有参的构造方法.但是要注意,一旦自己定义了,就不再帮你自动创建无参的构造方法了. 一个类可以有多种构造方法,通过

Java程序员的日常 —— 《编程思想》包和访问权限

包的作用 在C++中有命名空间的概念,这是因为,不同的项目或者人写出来的代码,可能名称是一样的.比如,java.util中有List,java.awt中也有List,那么我们在开发中,怎么会知道使用的是哪一个List呢? 在Java中是使用包来管理的,比如你可以这样使用: import java.util.ArrayList; java.util.List list = new ArrayList(); 既可以像第一行那样,使用import引用包:也可以直接在Java代码中指定包的路径.一般来说

【观点】程序员必须知道的编程格言

导读:本文是从<What are your list of must know programming proverbs ? >这篇文章翻译而来. 内容如下: 继Kevin给了我们10条按他的观点的每个程序员必须知道的编程格言.可以看出,这都是不错的格言,而下面是我自己最喜欢的编程格言. 1.保持简单直白(Keep It Simple Stupid) 2.不要自我复制(Don't Repeat Yourself) 3.能干的人解决问题.智慧的人绕开问题(A clever person solv

程序员:如何成为编程高手并以此创业

此篇文章出自雷军之手,是他为软件开发2.0技术大会准备的演讲稿,但由于某些原因没有派上用场.这里跟大家分享下,对我们程序员来说还是大有裨益的. 每个IT企业,尤其是初创企业,非常苦恼:找不到好的程序员.现在大学.软件学院及各种培训机构,每年培养几十万的程序员,毕业的每个人都有同样困恼:找不到好的工作.问题出在哪里呢?其实,企业需要的是不是刚会写程序的人,需要来了就能干活的人,尤其能把活干好的人.而刚毕业的大学生多半刚学会如何写程序,的确很难企业需求. 企业到底需要什么样的程序员,一个刚入门的程序

黑马程序员 十一、网络编程

Java帮帮-IT资源分享网  十一.黑马程序员-网络编程 第 11 天:网络编程(1)  1.什么是网络编程? 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算 机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后 接受另外一个设备反馈的数据.现在的网络编程基本上都是基于请求/响应方式的,也就是 一个设备发送请求数据给另外一个,然后接收另一个设备的反馈.在网络编程中,发起连接 程序,也就是发送第一次请求的程序,被称作客户端(Client)

JavaScript怎么实现异步编程模式?

  你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推. 这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行.常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,

优秀的程序员是这样选择编程技术书的

评估一本编程书籍最好的地方就是从这本书的目录开始.如果你想要学习的主题没有出现在目录中,那么你就可以假设这本书中的所有内容对你来说帮助会很有限. 下一步,大致浏览几个章节,看看这些章节是如何组织的.一些作者只满足于用一两种方法来解释一个话题,这个的用处不会很大.好的书都会对学习一个主题会提供三到四种方法,包括实践练习.源代码.详细解释和程序作品. 查看章节介绍.冗长和枯燥的章节介绍表明这本书包含了大量你可能不需要的内容.另一方面,当章节介绍内容太短以至于无法介绍全面,你会发现这个介绍内容缺失必要

JavaScript中实现异步编程模式的4种方法_javascript技巧

你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推. 这种模式的好处是实现起来比较简单,执行环境相对单纯:坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行.常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他