我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!

编程之家收集整理的这篇文章主要介绍了我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

世界上使用最广泛的软件是哪个?Windows ? Android? Office ?都不对!答案是 SQLite !你可能没听说过它,但是它就在你身边的:每一台智能手机中(Android...,下方主要介绍关于我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!的全文内容,希望对你有所帮助。

世界上使用最广泛的软件是哪个?

windows ? AndroID?  Office ?

都不对!

答案是 sqlite !


你可能没听说过它,但是它就在你身边的:

每一台智能手机中(AndroID 和iOS)

每一台Mac电脑中

每一台windows 10 电脑中

一个主要浏览器中(Chrome,firefox,Safari)

大部分的机顶盒当中

每个PHP和Python安装目录

很多流行的桌面应用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)

......

不信的话可以在电脑中搜索一下 “*.db”,看看能发现多少个。

这个流行的软件,就是我, Richard Hipp开发的。

每个流行的软件都是为了解决一个痛点问题sqlite也不例外。

故事要从2000年说起,当时我在为美国海军的一个驱逐舰开发软件这个软件要对船上所有的阀门进行管理和操作。

当时,美国海军使用的是IBM的Informix数据库,我写的软件需要通过网络访问它来读取数据。

但是有时候Informix所在的服务器会挂掉,阀门管理软件就会报错:不能连接到服务器

海军对我的冤枉不算什么,但是驱逐舰是要上战场的,打仗时如果受到损害网络不通怎么办?难道我的软件就不能用了吗?

当时纽特·金里奇和比尔·克林顿正在“打架”,所以所有政府合同都暂停执行,所以我失业了几个月。

没事可干, 我决定把这个嵌入式数据引擎给写出来。

市面上的数据库基本上都是ClIEnt-Server架构的, 它的特点是这样:

但是我想写的嵌入式数据库则是进程内通信,直接从本地硬盘中读取文件非常

换句话说,每个程序都可以拥有一个本地数据库

可是我并不是一个数据库专家, 只是在大学中学过一个数据库课程而已。

没办法,我只好去图书馆中借书,学习。

开发软件肯定要选一门编程语言,我选择伟大的C语言

确定了语言,我开始做一些重要的系统设计,首先是如何存储数据。

其次是应用程序如何访问sqlite

当我在实现sql层的时候,需要阅读sql标准,我发现sql标准太繁杂了。

万般无奈之下,我只好去看PostGres的文档,作为处理SQL语句参考

最终的结果是, sqlite和Postgres的命令行有点像 

sqlite 第一版本很快写出来了,但是具有讽刺意味是,造船厂居然不用,他们还坚持使用Informix!

那就开源吧!我把它放到一个网站上,满心期望引起世界的关注。

一年过去了,事情的发展往往不能如愿。

平心而论,sqlite第一个版本并不是真正的关系型数据库,而是一个Hashing-based 数据库

我决定重写,实现B+ Tree存储引擎

2001年,911事件发生不久, sqlite v2 问世了。

很快,我接到了手机巨头摩托罗拉的电话

我没有想到,开源也能赚钱,这一单生意, 我赚了8万美元。

随后, 巨无霸Aol也抛来了橄榄枝。

2005年,当时的手机老大诺基亚也来了, 他们也想为手机找个数据库

他们很谨慎,找了10个数据库做横向对比测评,最后sqlite轻松胜出。

sqlite被用的越来越多,发展势头越来越好。

只不过sqlite的开发者主要是我,这让客户有点担心

而我的sqlite,Bus Factor 等于1 ,怪不得客户着急了。

为了保证sqlite能长期的发展下去,需要更多业界人士参与sqlite开发, 客户希望我建立一个sqlite联盟。

在Mozilla 基金会的负责人米切尔·贝克的帮助下,Mozilla , Symbian ,Adobe成为了联盟的初始成员

sqlite 重新进入了发展的快车道,2005年,一个叫AndroID的东西向我抛来了橄榄枝。

这玩意儿可编程性、可调试性非常强,并且操作系统很容易更新,每天都可以更新几次。

AndroID最早期的原型机是这样的。

我意识到这是个爆炸性的东西, 但是出于保密协议,我没法通知诺基亚和摩托罗拉它们。

它们将被智能手机无情地碾压。

这时候我的sqlite数据库已经很火爆了,我的软件咨询公司不得不雇佣了几个人来做技术支持

我对自己的代码非常自信, 天真地四处吹嘘sqlite没有任何严重BUG,但是当它发布到海量的移动设备上时,潜藏的BUG出现了。

这对我的自尊心造成了很大的伤害,我决心把sqlite的质量提上去。达到航空电子设备的质量!

而航空电子设备的质量至少要实现MC/DC这个苛刻的标准 !

我开始编写测试,达到100%的MC/DC , 这花了我一年的时间,每周60个小时!这真是非常非常非常艰难的工作

实际上,想达到95%的覆盖率并不是特别难,但是剩下的5%实在是太难了。

艰苦的付出获得了极为丰厚的回报, 从那以后,AndroID再也不找我麻烦了。

我付出了艰苦的努力,让sqlite成了世界上最流行的数据库

这一切都很难,但是和说服Ginger G. Wyrick 嫁给我相比,sqlite不算什么。

Ginger 是一个音乐家和作家,美丽又才华横溢。

我很爱她,一结婚就把公司名称变成了 Hipp,Wyrick & Company, 并且把公司所有的股份送给了她。

这个公司只有两个人,她是CEO 和COO, 而我,则是唯一的程序员。

最后,总结一下sqlite为什么能成功吧。

首先,它是一个可靠的、稳定的数据库,对事务的支持,让它在应用崩溃时也不会丢失任何数据。这比你自己操作XML,JsON等文件要可靠得多。

其次,它可以轻松地嵌入到任何语言写的系统中。

最后,它开箱即用,非常简单!

点击下方图片,查看更多文章吧 !

总结

以上是编程之家为你收集整理的我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!全部内容,希望文章能够帮你解决我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Sqlite文章

世界上使用最广泛的软件是哪个?Windows ? Android? Office ?都不对!答案是 SQLite !你可能没听说过它,但是它就在你身边的:每一台智能手机中(Android...
本文只针对sqlite3 c++ API调用。1、基础知识sqlite3只是一个嵌入式数据库引擎,占用资源非常底,可以适用于Windows和Linux,而且sqlite3只是一个文件,不需要服务器进程。sqlite3 c++ api接口只需要引用sqlite3.h头文件就行。常用术语:表(table)、字段(column,列,属性)、记录(row,record)。存储类型:integer(整型)、real(浮点型)、text(文本字符串)、blob(二进制数据)。关键字:select
SQLite是一个轻量级、跨平台的关系型数据库,在小型项目中,方便,易用,同时支持多种开发语言,下面是我用C#语言对SQLite 的一个封装。Winfrom界面如下:2.UsingLock.cs采用多线程方式,在这里,如果不是频繁的使用,其实可以不用3.Form1.cs窗体部分,界面如下代码:上面就是所有的源码,代码比较长,你忍一下,其实也没有很复杂的部分,下面是项目的源码,有兴趣的可以支持一下我了,嘿嘿~项目源码:点击下载上面的代码我不觉得是完美的,由于时间关系,读者可以自己去实
C# SQLite 教程展示了如何在 C# 中编写 SQLite 数据库。SQLiteSQLite 是一个嵌入式关系数据库引擎。它是一个自包含、无服务器、零配置和事务性 SQL 数据库引擎。SQLite 实现了 SQL 的大部分 SQL-92 标准。SQLite 引擎不是一个独立的进程。相反,它是静态或动态链接到应用程序中的。SQLite 数据库是单个普通磁盘文件,可以位于目录层次结构中的任何位置。ADO.NETADO.NET是.NET 框架的重要组成部分。它是一种统一对关系数据
这里介绍的是Windows的SQLite数据库的下载安装一、下载先去SQLite官网下载(官网下载地址:https://www.sqlite.org/download.html)从Windows区找到预编译的二进制文件,如下图所示:把sqlite-dll-win32-x86-3380200.zip和sqlite-tools-win32-x86-3380200.zip这两个文件下载并解压二、安装1. 在C盘下面新建文件夹,命名为sqlite,将解压好的文件放进去,得到下图:.
第一步 授权在 AndroidManifest.xml 中加上位置信息权限按需要添加 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 如果需要精确定位的话请加上此权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!
基于.net实现的m3u8.sqlite文件转视频工具。 虽然已有另一个python开源版本,但是对python不熟悉的朋友操作不是很友好。 所以开发这个客户端的版本,让其操作更为便捷。 转换后的视频是.ts的文件,需要转mp4或其他格式的可以下载格式工厂,或者自行选择其他转换工具就ok了。......
SQLite在架构性和计算能力上取得了较好的平衡,是应用较广的Java嵌入数据引擎。而esProc SPL是JVM下开源的嵌入数据引擎,架构简单,可直接加载数据源,可以通过JDBC接口被Java集成调用,并方便地进行后续计算。...
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注