开源有什么优势吗?

加盾男爵 2018-08-20 11:06:59
面试的时候,公司有个项目(PC端的界面程序),原来是公司一个人用MFC写的,然后那个人忙不过来,公司招一个会写界面的人,我擅长Qt所以去面试,然后面试的人恰好不懂界面编程,他问我,Qt是个开源库,那这种开源的库对一个(使用开源库的)公司有什么好处呢?
这个问题该怎么回答?
...全文
829 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sichuanwww 2018-08-23
  • 打赏
  • 举报
回复
ooolinux 2018-08-21
  • 打赏
  • 举报
回复
开源和快慢关系不大吧,.net framework没有开源,开发效率也很高。
linux是开源的,大家都参与,发展很快。
ooolinux 2018-08-21
  • 打赏
  • 举报
回复
引用 9 楼 housecarl 的回复:
[quote=引用 7 楼 u010165006 的回复:]
开源和快慢关系不大吧,.net framework没有开源,开发效率也很高。
linux是开源的,大家都参与,发展很快。

囧,我只是说开源可以加快开发的进程,又没说不开源的库就不好了。毕竟做软件开发需要用到很多模块,比如日志模块,自己写和直接用log4cplus,肯定是开源库比较好啊,经过很多人的测试,出问题的概率低很多。当然也不是所有开源的库都好。
难道回答个问题,还需要跟数据证明一样,一丝不苟的?[/quote]

你说的也是对的。
我的理解是楼主问的是“开源(相对于闭源)的优势”,不是“使用开源库或软件的优势”,个人理解。
轻箬笠 2018-08-21
  • 打赏
  • 举报
回复
引用 3 楼 qazaq408 的回复:
[quote=引用 2 楼 housecarl 的回复:]
楼上是面试官?还是大学里面的?
要我回答的话,就一句话,开源的库可以加快开发的进程。

为什么开源的库能加快开发进程呢?[/quote]
这个问题把我问懵了,开源的库可以让你少处理很多细节,只需要关注大方向就可以了。比如qt的界面,你就不需要考虑不同系统的电脑的界面显示差异。
一般公司刚成立的时候,开源库用的比较多。慢慢的,项目积累多了,就形成了自己公司特有的。
轻箬笠 2018-08-21
  • 打赏
  • 举报
回复
引用 7 楼 u010165006 的回复:
开源和快慢关系不大吧,.net framework没有开源,开发效率也很高。
linux是开源的,大家都参与,发展很快。

囧,我只是说开源可以加快开发的进程,又没说不开源的库就不好了。毕竟做软件开发需要用到很多模块,比如日志模块,自己写和直接用log4cplus,肯定是开源库比较好啊,经过很多人的测试,出问题的概率低很多。当然也不是所有开源的库都好。
难道回答个问题,还需要跟数据证明一样,一丝不苟的?
cjzzmdn 2018-08-21
  • 打赏
  • 举报
回复
引用 7 楼 u010165006 的回复:
开源和快慢关系不大吧,.net framework没有开源,开发效率也很高。
linux是开源的,大家都参与,发展很快。


引用 2 楼 housecarl 的回复:
楼上是面试官?还是大学里面的?
要我回答的话,就一句话,开源的库可以加快开发的进程。
丁劲犇 2018-08-20
  • 打赏
  • 举报
回复
公司使用开源库,若用于商业用途,需要LGPL。如果用GNU,就必须公开自己的代码。额。不知道理解的对不对。
丁劲犇 2018-08-20
  • 打赏
  • 举报
回复
引用 2 楼 housecarl 的回复:
楼上是面试官?还是大学里面的?
要我回答的话,就一句话,开源的库可以加快开发的进程。

哈哈!俺是大学的兽兽
加盾男爵 2018-08-20
  • 打赏
  • 举报
回复
引用 2 楼 housecarl 的回复:
楼上是面试官?还是大学里面的?
要我回答的话,就一句话,开源的库可以加快开发的进程。

为什么开源的库能加快开发进程呢?
轻箬笠 2018-08-20
  • 打赏
  • 举报
回复
楼上是面试官?还是大学里面的?
要我回答的话,就一句话,开源的库可以加快开发的进程。
丁劲犇 2018-08-20
  • 打赏
  • 举报
回复
Qt是开源的,但是要是用于商用,是要购买许可证的。Qt支持GPL,LPGL,商业协议。
Qt不是因为开源才有好处,而是因为他诞生的时候很晚(90年代),那个时候C++OO技术深入人心,所以它的架构、封装比MFC先进好多。主要好处:
1、跨架构。PC、ARM、各种能够运行Linux的嵌入式环境都可以。移动端手机也OK
2、跨平台。windows,linux,macos,支持N种编译器。
3、全面向对象。QObject树形派生。
4、动态语言模拟。支持信号槽、运行时元数据绑定等等功能。
5、开发活跃。至今每半年多一个次要版本号。
6、第三方库丰富。QtCharts、3D、Qt Data Vis,NFC、串口、数据库、网络、并行计算(concurrent)、JSON、XML、WebEngine、Location、GPS、地理信息系统,基本上能想到的都有了。
7、自动化与植入:pyQt在python中使用Qt,JS脚本直接解析,以及windows下的COM、ActiveX

很多大型重工软件、知名软件(用来开发软件、工具的工具)全是Qt 的。
比如,
桌面:
Adobe Photoshop Album
Autodesk MotionBuilder ,3D建模
Autodesk Maya, 3D建模和动画软件
Doxygen:API文件产生器
EAGLE, tool for designing printed circuit boards(PCBs)
Google地球(Google Earth):三维虚拟地图软件。
LyX:使用Qt作为界面的LaTeX软件。
Mathematica:Linux和Windows版本使用Qt作为GUI
QGIS,先进的地理信息工具库
VirtualBox:虚拟机软件。
VLC多媒体播放器:一个体积小巧、功能强大的开源媒体播放器。
WPS,这个很熟悉了。
嵌入式:
惠普、NI、德州仪器各种几十万的分析仪器的界面。
智能车辆、船舶驾驶室、气象雷达前端界面。

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧