草庐IT

QT背后故事之Qt创始人Eirik Chambe-Eng

闫有尽意无琼 2023-04-12 原文

Eirik Chambe-Eng是一名挪威程序员。1990 年,他与 Haavard Nord 一起在特隆赫姆的一家超声设备软件开发部门工作。他们不满足于跨平台软件开发工具,创建了 Qt。1994 年,他们创立了 Trolltech 公司。

2004年aKademy采访了Eirik Chambe-Eng,以下为翻译:

您为什么在1994年开发Qt并将其作为贵公司的唯一产品进行分销?

1990年,Trolltech Haavard Nord的联合创始人和我一起在挪威特隆赫姆的地区医院从事超声设备的软件开发。我们意识到,用外交术语来说,当时可用于跨平台开发的工具非常糟糕。我们看到使用这些工具的开发人员花费了多达一半的时间来了解如何使用这些工具和编写胶水代码。这种类型的编程似乎没有乐趣。

如果这是标准,我们认为我们可以做得更好,并创建世界上最好的跨平台C++开发工具。因此,在1994年,我们创建了Trolltech,以便能够做到这一点。我们的使命是恢复编程的激情和乐趣。我们创建了Trolltech,这样我们就可以把Qt变成一个专业的产品。

由于没有其他员工,开发Qt一开始是Haavard和我自己的全职工作。我们获得了咨询合同,使我们能够在商业环境中使用和测试Qt,同时为产品和公司的进一步发展提供资金。收入来源逐渐从咨询合同转向许可证销售。我们花了 5 年的时间才能够仅靠许可证销售生活。

Trolltech目前有多少员工,其中有多少是软件开发人员?

如今,Trolltech在全球拥有92名员工,其中包括30名Qt支持/开发团队和12名Qtopia开发人员。我们已经有十年不间断的增长,无论是财务还是员工人数,我们计划继续雇用开发人员和非技术职能部门。

实际上,我们一直在寻找非常优秀的软件开发人员。当我们招聘时,我们总是问“向我们展示你的代码”。其他一切都是次要的。我们一些最优秀的开发人员没有学位,也没有Trolltech以外的相关专业经验,其他人则拥有博士学位。他们的共同点是他们非常擅长编写C++工具包代码。实际上,我认为我今天没有资格担任我们的开发人员职位之一。

为什么你免费赠送Qt给开源项目(例如KDEdevelopers)?你有足够的付费客户吗?

Trolltech是最早使用双重许可模式的公司之一(我相信我们是第二名,我们不知道其他人使用的
模式)。

当我们开始Trolltech时,我们对Linux和自由软件的想法着迷。与此同时,我们既没有专业知识也没有资金来进行销售和营销。对我们来说,为自由软件项目免费赠送Qt确实是一件非常自然和合乎逻辑的事情(当时开源作为一个术语还不存在)。

我们的理由是,大多数开源开发人员不会/不能为他们的项目购买软件。那么,如果我们把Qt赠送给他们,这样他们就可以爱上它并传播这个词,对各方来说不是最好的吗?事实上,软件的生产
(即复制)成本不高,这改变了所有传统的业务和生产规则。

开源社区在确保我们产品的稳定性和质量方面发挥着重要作用。我们已经收到并将继续收到来自社区的宝贵意见,这使我们能够改进超出内部资源能力的产品。作为回报,开源社区可以完全访问商业级跨平台开发工具。它有效,我认为这是一个美丽的模型。这一过程也使我们的商业客户受益,并且人们越来越意识到双重许可的价值。除了数以万计的开源开发人员外,Trolltech还拥有近4400名商业客户,为公司收入的稳定增长做出了贡献。

如果我们有足够的客户?我们有足够的资金来确保非常健康的财务状况并维持一家盈利的公司。但我们当然想要更多。所有在MFC和其他API挑战工具包中苦苦挣扎的程序员都应该得到更好的。

你用Qtopia做了一个非常用户友好的图形环境。您如何判断Linux在移动设备上的未来?

谢谢。Qtopia对于Trolltech来说是一个非常令人兴奋的项目,我们毫不怀疑移动设备上的Linux将变得越来越重要,特别是在亚洲市场。Linux在手持设备上提供了Symbian和Windows无法比拟的灵活性和功能,通过Qtopia,我们的目标是为基于Linux的消费电子产品提供简单,直观和用户友好的界面。

移动设备将成为Linux的下一个重大突破。越来越多的人使用带有Aqua的Mac。因此,Qt如何支持原生开发?

Qt在Mac OS X上使用Aqua,所以Qt应用程序是原生的。

除了KDE,Qt最成功的项目是什么?

KDE 当然是我们最喜欢的展示柜,因为它的规模、质量和受欢迎程度。从字面上看,有成千上万的应用程序是用Qt制作的。我可以提到其中的 3 个可能为大多数人所熟知的。Adobe使用Qt开发了他们的Adobe Photoshop Album,这是一个独立的Windows应用程序。流行的互联网电话软件Skype使用Qt从Windows移植到Linux。

感谢您抽出时间回答我们的问题。

有关QT背后故事之Qt创始人Eirik Chambe-Eng的更多相关文章

  1. Qt Designer的简单使用 - 2

    在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用C++代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用C++代码编写图形界面的问题就是不直观,因此Qt项目开发了专门的可视化图形界面编辑器——QtDesigner(Qt设计师)。通过QtDesigner就可以很方便地创建图形界面文件*.ui,然后将ui文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。本节就演示一下QtDesigner的简单使用,学习拖拽控件和设置控件属性,并将ui文件应用到Qt程序代码里。使用QtDesigner设计界面在开始菜单中找到「Q

  2. 关于Qt程序打包后运行库依赖的常见问题分析及解决方法 - 2

    目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'

  3. ruby-on-rails - rspec 用户故事功能 vs cucumber - 2

    提前说明一下,尽管标题看起来与线程RSpecvsCucumber(RSpecstories)相似,但是我的问题根本不同。我理解测试用户故事和单独测试对象行为之间的区别。我的问题是,为什么Cucumber通常与RSpec结合使用来编写用户故事,而RSpec从1.1开始就具有用户故事功能?是不是因为RSpec的重点仍然是单个对象测试,而Cucumber自那以后一直在大力开发,重点放在用户故事上?上下文切换是一件痛苦的事情,而我们开发人员需要处理足够多的工具。我宁愿只使用RSpec,但如果Cucumber与RSpec有一些重要区别,请告诉我。 最佳答案

  4. Qt样式表之 QSS 语法介绍;QLineEdit、 - 2

     内容来自Qt样式表之QSS语法介绍-3YL的博客Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件。Qt样式表的概念、术语和语法都受到了HTML的层叠样式表(CascadingStyleSheets, CSS教程)的启发,不过与CSS不同的是,Qt样式表应用于部件的世界。类型选择器QPushButton匹配QPushButton及其子类的实例ID选择器QPushButton#okButton匹配所有objectName为okButton的QPushButton实例。 CSS常用样式1CSS文字属性注:px:相对长度单位,像素(Pixel)。pt:绝对长度单位,点(Point

  5. QT 设计一个串口调试工具,用一个工程就能轻松解决,外加虚拟串口工具模拟调试,在日常工作中可类比模块间通信,非常详细建议收藏 - 2

    QT串口调试工具第一节虚拟串口工具安装第二节QT创建一个基于QWidget的项目第三节UI界面设计第三节项目头文件widget.h第四节项目实现文件widget.cpp第五节main函数第六节编译结果重点第七节使用QT打包程序,不安装QT的电脑可使用第一节虚拟串口工具安装-----------------------------------------下载所需工具---------------------------------------------------------------------链接:https://pan.baidu.com/s/1QkT36S4EnH2HEAhZ1TZ8

  6. ruby - Ruby 中的 "and"、 "or"运算符背后有什么智慧吗? - 2

    我想知道为什么ruby​​给and、or的优先级低于&&、||和赋值运算符?有什么理由吗? 最佳答案 我猜这是Perl的直接继承。运算符or和and是后来在Perl5中添加的,用于需要较低优先级的特定情况。例如,在Perl中,我们希望||具有较低的优先级,这样我们就可以这样写:trytoperformbiglonghairycomplicatedaction||die;并确保||不会吞噬部分操作。Perl5引入了or,这是||的一个新版本,它具有低优先级,正是为了这个目的。Ruby中可以使用或但不能使用||的示例:value=pos

  7. ruby-on-rails - RSpec 故事和规范 : When to use what? - 2

    所以我想开始使用RSpec故事,但我不确定编写Controller、模型和View规范的位置。例如,您有“登录”故事和“用户提供错误的密码”场景,难道您最终测试的不是与Controller/模型规范相同的东西(response.shouldrender...,user.shouldbe_nil等)所以我的问题是:对于那些习惯于使用RoR进行bdd(或故事dd)的人,您是否仍然编写模型/Controller规范?如果是这样,您遵循的工作流程如何(“第一个故事,然后缩小到特定规范”)? 最佳答案 如果您现在开始使用故事(而不是拥有大量遗

  8. 嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面) - 2

    1、创建一个QT工程newproject—>Application—>QtWidgetsApplication—>choose…(注意不要有中文路径)填写名称(我写的名称为class2)和创建路径(D:\qt\qt_demo\class2)—>填写类名,这里基类要选择“QWidget”,这样一个QT工程就创建好啦。qt的移植性非常强,一套代码我们不用修改太多,直接通用所有的平台。说明:QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口。QWidget:它是所有具有可视界面的基类,选择QWidget创建的界面对各种界面组件都可以支持。QDialog

  9. ruby - QtRuby 可以与 Qt 5 一起使用吗? - 2

    我可以在网上找到关于QtRuby的所有信息使用Qt4,但Qt的当前版本是5。这仅仅是文档跟不上现实的问题,而Qt5可以与QtRuby一起正常工作吗?如果您断言情况确实如此(Qt5不受支持),那么请用证据支持您的断言。 最佳答案 QtRubyQtruby和korundum已经多年没有维护了。要获得qtruby的维护版本,请将qtbindings安装为ruby​​gem。Qtbindings主页:https://github.com/ryanmelt/qtbindings/另见https://github.com/ryanmelt/qt

  10. ruby - 如何让 Qt4 在 Windows 7 上运行 ruby​​ 1.9.2? - 2

    总结我正在编写一个使用Qt4作为其GUI的Ruby1.9.2应用程序,我想在Linux、OSX和Windows上分发它。我的应用程序在除Windows764位机器外的所有设备上运行良好。有Win7+Qt4+1.8.7的工作示例,但显然不是Win7+Qt4+1.9.2。Ruby-Qt绑定(bind)有两个gem,qtbindings和qtruby4(有时称为qt4-qtruby),但我还没有看到它们都在Win7上运行Ruby1.9.2。qtruby4的问题ThisarticlefromOctober2008及其updatedversionfromJune2011作为一个很好的起点,但我与

随机推荐