admin管理员组

文章数量:1612836

商业模式

第一种、软件企业的传统商业模式:
微软为首的软件商业模式成功引领了近20年的辉煌,即使现在看来都有点像一本万利:首先要有一批高素质的人来开发软件,开始时成本很高,但是当软件开发出来后,每个使用这种软件的计算机都需要付费,如果软件的价格为一千元,一万台计算机使用软件,营业额是一千万,十万台计算机使用,营业额扩大十倍,但是开发成本并没有增加,而微软的软件每天都有几亿人在使用。这种商业模式最精彩的是,成本并没有随着营业额扩大而线性增加,只要你的软件产品好,利润似乎是无止境的。而我们熟识的ThinkPad笔记本,SONY电视机,IBM服务器,奔驰汽车能不需要投入就复制出另外一个吗?肯定不行,而软件可以!所以它缔造出了最强几个软件公司—微软、甲骨文、IBM。当然这种商业模式的成功有两个最基本的条件:
第一、是产品要足够的好
第二、用户要足够多,而且要培养这些用户只熟悉自己的产品
绝大多数的通用型软件公司不是不想采用这种盈利方式,而是还没有达到任何一个条件之前就支撑不住了。更何况几大软件公司比如微软,拥有上游下游大量的软件公司和硬件公司的支持,而且他培育了众多的只习惯自己产品的用户。如果Linux用微软的模式在微软的圈子内跟微软的产品竞争,没戏!即使Linux变得跟Windows一样易用,但是只要“魔兽世界”等游戏不能运行,网吧肯定是不会安装的。其实不只是Linux了,2009年1月20日,IBM和SAP宣布,他们计划在今年3月推出他们首次联合开发的软件-Alloy,两个如此大的软件巨头,在Oracle的竞争压力下联合推出软件,由此可见传统软件竞争之激烈。

第二种、软件企业的开源商业模式:
金融危机后比尔盖茨反对美国政府救助三大汽车巨头,他的理由是“政府为什么要用纳税人的钱挽救落后的商业模式?”我们可以感受到他对新型商业模式的推崇。以微软代表的这种80年代的创新型软件商业模式对商家来说无疑是非常成功的,很显然对于消费者来说会有种被榨干的感觉,尤其是中国的消费者。举个例子,我们花钱一万元左右可以购买一个入门级服务器,那可是实打实的“硬家伙”,我们认了,但是买个Windows 2003 Server许可要再花一万元左右,这东西可是摸不着的,内心中的不认可是中国的盗版率高的原因之一。

其实不只是在中国,在美国的一些软件先驱也认为软件这样收费是不合理的,他们认为软件应该把代码开放给所有人,不应该靠软件使用许可挣钱,软件公司应该靠对软件的服务挣钱,比如你可以免费使用我们的软件,当你需要自动升级服务的时候,需要向我们付费。这就是Linux等开源软件所遵循的另外一种软件商业模式。在这种商业模式下,软件通常可以免费使用,当足够多的用户使用后,开发商通过额外的服务来赚钱。很显然,这种商业模式的挣钱速度绝对赶不上第一种,所以成功的软件公司屈指可数。全世界专门制作Linux发布版的公司有几个能盈利?用这种模式生存下来的都是某个领域的头牌,也就是占有用户数量最多的。开发PHP的Zend是典型的开源软件公司,PHP本身使用不需要钱,但是如果你需要PHP的开发工具,或者加密工具,加速工具,那么你可以购买Zend公司的产品。假如一开始PHP就是收费的,那么Zend恐怕根本无法生存到现在。目前PHP已经是众多网站的高效中间件平台了。

第三种、软件企业的SaaS商业模式:
IBM、Oracle等公司推广的SaaS(软件即服务)已经有几年时间了,SaaS跟第二种开源软件商业模式是不同的,SaaS并不一定开放源代码,SaaS可以简单理解为对软件的租用和定制,对软件不是一次性付费,有些软件开始甚至可以免费使用,之后按照使用这种软件的时间和定制程度多次付费,本质上讲SaaS其实跟第一种商业模式是相同的,只是一开始不用付全部费用。其实这样的方式对客户,对企业都不错。产品好,就不怕你不用,长久下来,比一次性付费赚钱更多,而且客户也很舒服,买了软件可以定制它,可以按照使用时间来付钱。Red Hat提供的Linux也是依靠服务赚钱,如果使用Red Hat企业版Linux,你要付费,这些费用可以让软件升级,可以有电话技术支持。由于Red Hat Linux使用开源软件模式,所以他要进一步把源代码公开。但是Red Hat也有不公开源代码的产品,Red Hat Satellite Server就是不开源的,那么这款软件就成为了传统软件模式或者SaaS模式。SaaS可以说是更加务实的软件商业模式。

第四种、商业模式的革命,软件的网络化更具优势:
新闻网站、搜索引擎、SNS、网游、实时消息、网络视频、云计算……这些东西似乎跟软件稍微远一点,怎么也拿出来在这里说?大家有没有发现软件人才的流向发生了变化,聚集大量软件人才的公司不再只是微软、IBM、金山、中软这样类型的软件公司?Google、百度、盛大、巨人等企业大量招聘开发人才,他们其实是真正的软件公司,只是以互联网形式体现出来,这种商业模式的优势在于,分发软件的成本非常低,有些甚至不需要安装软件就可以使用,想用Google的软件,我们只需通过浏览器访问一个站点。Google的软件实际上运行在服务器端,收集数据,放入GoogleFS的虚拟存储中,当我们访问时,为我们索引并且展示结果。那么Google不是搜索引擎吗?大家可以访问一下docs.google,你会发现类似微软Office的一些功能在网页上可以直接使用,比如表格,文档,PPT等。如果他们能实现主要的微软Office功能,谁还会花钱买微软Office呢?目前Google将Google Docs,Gmail,Gtalk,及Web服务程序接口打包成Google Apps买给企业,这些企业中的员工只需要一个可以上网的手机就可以办公,交流,打开文档……,微软的客户端软件平台的优势是不是可以被直接跳过了呢?巨型公司制定在网络化中的战略,但是这是一个全新的世界,有太多的机会。

作者郄晓烨

C语言

C语言是一种较早的、广泛应用的程序设计语言,诞生于1972年的贝尔实验室,由Dennis Ritchie设计。以下是对C语言的详细介绍:

一、基本特性

高效性:C语言是一种用于系统编程的低级语言,因此它非常高效。C语言编写的程序经过优化后可以实现很高的运行效率,通常只比汇编语言代码生成的目标程序效率低10%-20%。
可移植性:C语言的标准库是高度可移植的,因此可以轻松地在不同的操作系统上编译和运行。以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
结构化编程:C语言支持函数、指针、结构体等结构化编程,使得程序更加易于理解和维护。
静态类型:C语言是一种静态类型语言,在编译期间进行类型检查,可以避免一些潜在的类型错误。
底层访问:C语言允许直接访问内存、硬件和底层系统资源,这使得它非常适合嵌入式系统和操作系统开发。
指针:C语言具有强大的指针功能,可以从多个角度处理数据,提高程序效率。
二、应用领域

C语言的应用范围十分广泛,包括但不限于:

系统软件开发:C语言的高性能和底层访问能力使其成为编写操作系统、驱动程序以及嵌入式系统的首选语言。
嵌入式系统开发:C语言在嵌入式系统领域得到广泛应用,如微控制器、传感器等设备的编程。
游戏开发:虽然现代游戏开发更多使用C++、C#等语言,但C语言在早期游戏开发中扮演了重要角色。
图形界面开发:C语言可以结合图形库(如GTK+)进行图形界面开发。
三、发展历程

C语言的发展经历了多个阶段,从最初的版本到最新的C23标准,C语言不断得到完善和发展。其中,第一个完备的C标准“C89”(也称为“ANSI C”)在1989年诞生,为C语言的发展奠定了基础。

四、与其他编程语言的比较

C语言与其他编程语言相比,具有一些独特的优势。例如,C语言注重底层的编程概念和细节,使得程序员能够更深入地理解计算机底层的工作原理。此外,C语言在性能方面具有较高的优势,尤其适用于需要直接操作硬件和底层资源的场景。然而,C语言的学习曲线较陡峭,需要更多的时间和精力去理解和掌握。

总之,C语言是一种功能强大、应用广泛的编程语言,具有许多独特的特性和优势。无论是在系统软件开发、嵌入式系统开发还是其他领域,C语言都发挥着重要的作用。

应用场景

C语言的应用场景非常广泛,以下是一些主要的应用场景:

  1. 系统编程:
    C语言在系统级编程中得到广泛应用,用于开发操作系统、驱动程序和嵌入式系统。由于C语言的效率和对硬件的直接访问能力,它被广泛用于编写底层的系统软件。例如,Linux内核和Windows操作系统的底层组件就广泛采用C语言编写。
  2. 嵌入式系统:
    C语言在嵌入式系统开发中非常常见。嵌入式系统包括各种嵌入式设备,如智能手机、家电、汽车电子等。C语言能够直接访问底层硬件,并提供对设备的控制和操作。比如,家电(空调、自动洗衣机、遥控器)、汽车(ECU发动机控制单元、BCU车身控制单元、车辆信息检测)以及医疗(心电图仪、血压仪、血糖仪、监护设备)等领域都大量使用C语言进行嵌入式开发。
  3. 网络编程:
    C语言在网络编程中也很常用。它提供了丰富的网络库和函数,使开发人员能够创建网络应用程序、服务器和客户端。C语言可以用于开发网络协议、网络通信和数据传输等方面。
  4. 数据库系统:
    许多数据库系统,如MySQL和PostgreSQL,使用C语言进行开发。C语言提供了对底层数据库操作的支持,以及对数据库连接、查询和事务处理的控制。
  5. 科学计算:
    C语言在科学计算领域中也有广泛应用。由于C语言的高效性和强大的数值计算能力,它在数学建模、仿真和科学计算软件开发中被广泛使用。
  6. 游戏开发:
    虽然现代游戏开发更多使用如Unity或Unreal这样的高级游戏引擎,但C语言在游戏开发的基础部分和引擎中仍然占有重要位置。C语言提供了对图形渲染、物理模拟和游戏逻辑的控制,使开发人员能够创建高性能的游戏应用程序。
  7. 底层开发:
    基础组件、核心算法、硬件驱动、通信协议的实现,都离不开C语言。例如,文件系统、进程管理、用户界面(CLI+GUI)、加密/安全算法、调度算法、硬件驱动以及TCP/IP协议族等,都可以使用C语言进行开发。
  8. 开发其他编程语言:
    有些编程语言的编译器(解释器)和标准库就使用C语言开发,比如Python、PHP、Rust、Perl等。此外,有些编程语言是在C语言的基础上进行的扩展,比如C++、Objective-C、Swift、D语言等。
  9. 金融领域:
    C语言在金融领域也有应用,尤其是在需要高性能和低延迟的交易系统中。C语言可以确保交易系统的高效性和实时性。

总的来说,C语言由于其高效性、可移植性和广泛的支持,在计算机科学和软件工程领域中一直是一种重要的编程语言。无论是底层系统开发、嵌入式编程、网络编程还是游戏开发等领域,C语言都发挥着不可替代的作用。

C和C++区别

C语言和C++是两种不同的编程语言,尽管C++在设计和实现上受到了C语言的强烈影响,但两者之间存在一些显著的区别。以下是C语言和C++之间的一些主要不同点:

面向对象编程(OOP):
C++是一种面向对象的编程语言,它支持类、对象、继承、多态等OOP概念。
C语言是一种面向过程的编程语言,不支持OOP特性。
内存管理:
C++引入了析构函数、RAII(资源获取即初始化)等概念,使得内存管理更加安全。
C语言中的内存管理需要程序员手动进行,包括使用malloc、calloc、realloc和free等函数。
函数重载:
C++支持函数重载,即可以使用相同的函数名但参数列表不同的函数。
C语言不支持函数重载。
引用和指针:
C++引入了引用的概念,引用是变量的别名,可以看作是对变量的一个常量指针。
C语言只有指针的概念,没有引用。
异常处理:
C++提供了try/catch/throw异常处理机制,使得错误处理更加灵活和方便。
C语言没有内置的异常处理机制,通常使用错误码或全局变量进行错误处理。
模板和泛型:
C++支持模板和泛型编程,使得可以编写可重用的代码。
C语言不支持模板和泛型。
标准库:
C++的标准库比C语言的更加丰富和强大,包括STL(Standard Template Library)等。
C语言的标准库相对简单,但提供了基本的输入输出、字符串处理、内存管理等功能。
运算符重载:
C++允许程序员重载大部分运算符,以便对自定义类型进行类似内置类型的操作。
C语言不支持运算符重载。
命名空间(Namespace):
C++引入了命名空间的概念,用于解决命名冲突问题。
C语言没有命名空间的概念。
初始化列表:
C++中的类构造函数可以使用初始化列表来初始化成员变量。
C语言没有类,因此没有初始化列表的概念。
编译时检查:
C++在编译时会进行更严格的类型检查,有助于减少运行时错误。
C语言的类型检查相对宽松,有时可能导致运行时错误。
请注意,虽然C++在功能和安全性方面相对于C语言有所改进,但由于C++的复杂性,它也可能导致一些新的问题,如编译时间增加、代码难以维护等。因此,在选择使用哪种语言时,需要根据具体的应用场景和需求进行权衡。

本文标签: 商业模式