关于现在的图形界面库打包exe的体积

非常赞同,一堆浏览器有什么意义,而且你也提到了安全问题,开得越多死得越快。

原来qt已经算小体积了吗?我觉得mfc是真的小巧。

赞同,不过还是得强调,易语言适合像我这种业余的、把编程当作一种解决日常生活中小问题小需求的,也不需要在意编程语言兼容性,语法规范问题的普通人。

对于计划学习软件工程,电气工程等正规软件编程相关专业的人,老老实实从Python,c,cpp,java这种正规的,国际通用的编程语言入手吧

前半部分赞同,后半部分有一些补充。
也通过某些途径和混迹江湖多年的老码农(熟练掌握多种开发语言)交流过类似问题,他们的意见是,看具体情况,如果条件允许,他们也会偷懒用易语言划拉几下快速搭建一个UI,然后再用其他开发语言写后台或者其他功能。
总之,这些老江湖的意思就是,哪个方便用哪个,哪个省事用哪个,哪个搞事快用哪个,跟什么正规不正规关系不大,没必要说我是“正规”开发者,就肯定不会用易语言,否则掉价,对他们来说这都不存在。易语言几分钟搭一个UI,敲两下键盘写个小功能,省下大把时间干其他活它不香吗?

同意.

易语言其实比较类似 VB及 vb .net 的, 都是快速UI 的工具.

语言本身都是合适不合适, 谈不上low不low的.

我只是强调一下, 如果要系统的学习编程, 应该找一个规范严谨的语言. 在这方面, 比如 ahk , vb 其实都不合适. 包括语法糖多的语言都不合适.

所以编程教学上, 以前都是 Pascal , 因为它是典型的学院派语言. 但它是结构化编程语言, 已经不适合当今的 oop 思想.

因为考虑到或许有新人要了解什么语言适合学习, 我特意强调了一下.


包括 Python , 现在很多推荐学 Python 的课程和广告软文. 我儿子也学过一段时间.

从我个人浅薄的经验来看, Python 也是适合快速开发, 有众多库方便调用.

但是从语法严谨性, 编程思维的培养角度来看, 我并不觉得 Python 有多么优秀.

所以我就说了,“甚至有些人觉得 Qt 庞大”。我发布的几个 Qt 程序安装包只有 5M 左右,下载时间不到一秒,大家还是觉得太大,我是真的难懂。

使用软件,大家应该把关注点放在功能实现上面。一点点空间占用,用什么语言实现,只有我们这些开发者才需要去关心。作为使用者,关心这些干什么呢?

使用得多的语言都有你说的问题,都不适合编程思维的培养。很浅显的道理,如果一门语言被非常多的开发者所使用,那么它的编程库、语法一般都是比较灵活的,才能支撑广泛的应用领域。

所以向来只有两种语言:被人喷的语言和没人用的语言。

1 个赞

这个体积不大啊,我是看qBittorrent安装后体积有上百兆,所以觉得大。
在其他条件不变的情况下,一般来说,体积越大,启动越慢,越消耗资源。
当然以上肯定是在功能满足的前提下,不然其他没有意义。当然如果能满足需求,一般会挑体积小的。

1 个赞

一般我自己写的小工具都会小于1M,原因是垃圾校园网评平均网速125-180kb……

当然我这个肯定是得算到特殊情况里面。

因此平时自己制作发布小工具基本都是一个lite版专门用作校内使用,一个full版本集成了需要的依赖(如ffmpeg)发布给网友使用。因为qt体积需要费力去优化,所以我个人在平时开发小工具时比较排斥qt框架。

别浪费时间在处理这些枝节问题了啊。如果你能把时间花在提供更强大好用的功能上面。说不定你做的软件会更加受欢迎呢。我以前上大学的时候也被学校的网络给困住了,当时上网都只能通过 HTTP 代理,不能直接连接,想买个空间自己做网站发现没有办法上传我的网页,因为当时都是使用 ftp 上传不提供 HTTP 上传功能。后来回想起来,如果我自己一咬牙,给自己买一条宽带,当时的路应该会走得更宽一些。

其实吧,对我而言最头疼的反而不是ui,反而是平时遇到的各种奇葩需求。

典型案例:年级成绩统计。听起来可能很简单,py批量就行,实际上有诸多问题。

我们学校计算成绩使用的是有效成绩,即总成绩/有效科目数量。

比如,年级里面各种班级选课不一样,有的选了某一门选修课,有的没有(这使得有的单元格是nan,有的班级多一列,有的班级少好几列);
还有几个试点改革班,选课全都不一样,科目科目全都不一样,但是还要算平均分;
有的选修课按照合格/不合格计算,有的有分数(这代表计算平均分的时候有的要算进去有的不能算进去);
有人缺考的有人请假的(这意味着缺考的人的那一门课或者多门课程要计算在有效科目里面,请假的不能计算在有效科目里面)
更关键的是,垃圾教务系统明明是统一一起导出来的格式,但是一打开全都不一样!!!
…………
用python写的时候给我头疼死,一开始第一个学期大家还都是一样的,到了后面差异越来越大……所以现在我直接放弃了gui,全心投入功能的完善,未果。所以一直到今天,一到统计成绩的时候我都会根据各班的情况手动修改我的文件……

这里有个初版还有解析,现在的版本复杂程度远超初版但仍然无法满足实际需要…………(另,追求单文件解决,以及不会写类,所以全都是函数实现的功能)
https://www.52pojie.cn/thread-1604138-1-1.html

所以说ui对我来说大部分情况都是能用就行,关键是我写功能写的头大……

1 个赞

这个功能是数据库的基本功能,应该把数据导入桌面数据库(如sqlite)再用sql想怎么查就怎么查

1 个赞

你这种需求用 flask 做个小网站,把导出的文件上传到系统里面。用 python 的 padnas 模块输出 xlsx 下载就行了。搞命令行太难用只有你自己看得懂。搞 GUI 没必要。99.999% 的需求都能用 web 来搞定。不止界面好看,而且还能放在网站上面给其它人使用。阿里云和 ucloud、天翼云的 VPS 都特别便宜,个人可以注册。

这种情况下也别纠结什么文件大小的问题了。

要用 python 做数据清洗,然后才能丢到数据库。丢数据库你还得建表,如果是我,直接弄个 pandas 在内存里面转换丢给用户下载更省事。

其实C#搭配MFC或者WPF拉个UI也是几分钟的事情,只不过VS经常卡死让你心血付之东流~~233333

Qt一个是看你用到了多少模块,二一个是编译的时候是不是做了静态优化,小的几兆的能有,大的qB,Gnucash这些几百兆也能干得出来。尤其是现在Qt6,随便划拉两个控件就30多M,逆天~~

1 个赞

说的很对,然而清洗完了数据还是不行……很多格式得人眼手动看,有时候python得一行一行调试,这就要问问我们神奇的教务系统了,为什么一个班级内的成绩会同时出现全角的1和半角的1,气死我了,真的,哪怕我换了思源等宽一时也没看出来,瞪大眼睛仔细看了半天才瞅明白这是个什么奇葩……

py清洗数据的时候,我不仅感叹道,我们学校的成绩数据这么多年全都是人工排序人工做表不是没有道理的……

另,这个玩意老师问我要GUI,说黑色的窗口看不明白直接被我拒了。这么多变量要是我挨个适配重写一遍不如死了,我直接给她说要么改改教务系统要么找人给你们做,反正我做不到,我的极限就是每年根据实际情况改改我的py文件了,你们啥都不用管,能直接拿到数据就很好了……全都是学生做的。

——————

另,不是我不想做网站,1.个人不会js,仅限看懂部分。2.学校不给报销……我就是个纯纯的做苦力的出生

教务系统是自行开发的吧?一般自行开发的系统都会出现各种奇奇怪怪的问题,我觉得还是让开发者检查下比较好。
你用Python清洗还需要一行行调试,要不考虑换Power Query试试,它好歹会直接定位到报错行……

1 个赞

做网站比用 python 简单多了。很难想象你会用 pyqt 却不会用 js. 无非用 flask 输出 HTML 文件就行了。而且简单地上传下载界面只要 HTML,最多加上 bootstrap/AdminLTE 之类的 CSS 库美化一下就行了,完全不需要写 JS 的。想混软件这个行业,就算你是高级算法工程师,一般也会学一点 JS. 虽然我不喜欢 JS 语言,但现实就是如此。

现在用 web 技术写 pc 软件的越来越多。钉钉,Linux QQ 都在用 web 技术写。

emm,感觉老哥你看漏了一行,我说的是我会tkinter和wxpython,只是听说pyqt很好用但是很大所以一开始就没有在考虑范围之内…… :joy:

wxpython 和 tkinter 也是一样,这俩我都用过一段时间,显然都比 HTML + CSS 复杂。我干软件开发二十年了,十几岁就开始写程序。就我的经验看,你做校内数据清洗的活,web 比较好用,你可以轻易地搭建起服务器,把链接发给其它人使用,连手机上面都可以用。而小众软件社区喜欢的工具软件,则一般做成 pc 的比较好,一般需要调用系统的 API.

从我们这个时代过来的人,一般都有软件大小洁癖。因为最早用的 56K 猫下载软件,一个 5M 大小的软件下载得相当慢。但确实时代在进步,已经不是当年的 56K 网速的时代了。我认为一个软件安装包在 10M 以内都是非常好的了。毕竟现代的软件,哪个不加图标,不放背景图。不论是 SVG 还是 PNG 都很占用空间。以前追求软件大小的时代,一般会尽量使用 windows 自带的 win32api 来开发,但新时代大家都发现 win32api 效率太差了,功能也不够——比如按钮不能放图标,文本编辑器差,所以现在一般采用自绘引擎。一套成熟的自绘引擎,不论是 dui 还是 Qt,基本上都要消耗掉 10M 以上的空间。压缩后一般是 4M 左右。如果是移动开发则一般尽量用系统原生,因为移动系统开发的年代比较晚技术成熟不比第三方差。

不管是什么洁癖,本质上都是一种感性的决策。我们需要更加地理性,不要让感性影响我们的判断。有人因为生成的 exe 比较小就去学习 C#,而不去考虑考虑过微软的 c# 已经是日暮西山,没有前途了。甚至还有人学 delphi 这种已经过时二十年的技术,把自己一辈子有限的时间扔在造轮子上面。这太可悲了。理性地分析,我们无非是想做自己需要的软件,需要运行在特定的操作系统上面,需要满足运行效率的要求,需要尽可能少地发明轮子重用第三方组件等等。这些列出来的因素才是决策的依据。