终于有办法禁止 Electron 软件的安装和运行了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ilolita
V2EX    分享发现

终于有办法禁止 Electron 软件的安装和运行了

  •  1
     
  •   ilolita 2020-12-06 15:51:01 +08:00 15431 次点击
    这是一个创建于 1771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    害……作为用户,我对 Electron 简直深恶痛绝,一言难尽……

    今天百度某个软件的汉化方法时,无意间发现发现了一个叫做 app.asar 的东西,搜索了一下,原来是 Electron 构建的软件基本都有这个东西,那么如果我禁止一切文件扩展名为 .asar 的文件运行是不是就可以干死用 Electron 写的软件了呢?

    亲测有效,如果还有其他方法,欢迎补充!

    Snipaste_2020-12-06_15-48-27.png

    Snipaste_2020-12-06_15-49-41.png

    第 1 条附言    2020-12-07 14:44:53 +08:00
    卧槽,一天没看帖子,怎么炸锅了?
    -----------------------------------
    楼主只是随便找了个软件举例而已,大家不用针对例子去讨论。也不用去讨论为何楼主偏偏下载了一个基于 Electron 构建的软件,我只是拿来验证是否能禁止运行而已,软件本体已经删除了,不用针对我言辞激烈,害怕……

    当然可能会有认为楼主电脑辣鸡,应该还不算太辣鸡吧?瑟瑟发抖~
    -----------------------------------
    处理器 Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz 3.40 GHz
    内存 16.0 GB
    显卡 GTX 970 4GB
    硬盘 512GB SSD
    系统类型 Windows 10 20H2 企业版
    117 条回复    2023-06-10 17:04:58 +08:00
    1  2  
    niubee1
        1
    niubee1  
       2020-12-06 16:42:25 +08:00
    那要不用 asar 打包呢
    vinsa
        2
    vinsa  
       2020-12-06 16:46:15 +08:00 via iPhone
    何必呢,又不是流氓软件,不下载他不会自己运行
    hingle
        3
    hingle  
       2020-12-06 16:48:47 +08:00
    clash?
    Tink
        4
    Tink  
    PRO
       2020-12-06 16:53:16 +08:00 via Android
    是的,可以
    ochatokori
        5
    ochatokori  
       2020-12-06 16:56:4 +08:00 via Android   48
    你难道不能控制你自己的电脑安装什么东西的吗
    ZeoKarl
        6
    ZeoKarl  
       2020-12-06 17:07:18 +08:00 via iPhone
    electron 软件的逻辑代码全在这个 app.asar 里面,其他的玩意都是框架
    Bijiabo
        7
    Bijiabo  
       2020-12-06 17:24:42 +08:00   1
    为什么要禁止基于 Electron 开发的应用呢?硬盘或者内存不够?
    paradoxs
        8
    paradoxs  
       2020-12-06 17:42:36 +08:00
    你把 CFW 禁了,现在 windows 上面连个可以代替的都没有。。 (别说原版 ss 和 sstap 之类的,差太远了。不是一个级别的)
    tadtung
        9
    tadtung  
       2020-12-06 18:17:48 +08:00 via Android
    @paradoxs 还在用 ss ?
    现在不都 trojan 或者 vless 了。
    paradoxs
        10
    paradoxs  
       2020-12-06 18:26:11 +08:00
    @tadtung 用的线路本来就是不过墙的,什么协议都一样。
    venster
        11
    venster  
       2020-12-06 18:44:47 +08:00 via iPhone
    @tadtung 原版 ss 安装在 vltru 服务器上,就是五六年前的那套标准做法,至今坚挺 ,不过可能是我使用量不大的原因。
    icanfork
        12
    icanfork  
       2020-12-06 18:53:37 +08:00 via iPhone   11
    我基于 electron 开发 app,别人说安装包太大( 78m ),我反驳到广州地铁 wifi iOS App 安装包 120m,就一个连接 wifi 的功能。
    不明白用 electron 就深恶痛绝了?难不成先如今还出现安装包洁癖?

    miaomiao888
        13
    miaomiao888  
       2020-12-06 19:07:38 +08:00
    这东西居然没有那种统一运行环境的东西,每个软件都像是一个庞大的 chrome
    SuperMild
        14
    SuperMild  
       2020-12-06 19:18:26 +08:00   4
    用户要示界面美观、现代化,同时又要求免费、跨平台,如果不用 Electron, 要每个平台都做到美观、现代化界面,知道需要多少工时吗……

    只有小部分用户介意体积、资源,开发者毕竟只是凡人,只好放弃小部分,满足大部分。
    wszgrcy
        15
    wszgrcy  
       2020-12-06 19:19:30 +08:00 via Android
    建议改为 假 回 子
    zwithz1998
        16
    zwithz1998  
       2020-12-06 20:07:36 +08:00   15
    VS Code 也不用了吗
    cmostuor
        17
    cmostuor  
       2020-12-06 20:13:10 +08:00
    硬盘内存都是白菜价的年代居然有人还嫌安装包大 啧啧啧这洁癖的改
    GeQi
        18
    GeQi  
       2020-12-06 20:44:03 +08:00
    建议把电脑砸了,杜绝任何非原声软件运行!
    ZeoKarl
        19
    ZeoKarl  
       2020-12-06 21:03:42 +08:00
    @miaomiao888 #13 统一不起来,这玩意一旦接入原生模块,就对版本有要求,api level 对不上,直接 crash.
    Windeligh
        20
    Windelight  
       2020-12-06 21:04:39 +08:00 via Android
    所以说如果 chrome 可以直接内置到 Linux 和 Windows 的系统中并跟随系统更新,那么不就解决了一个 electron 打包一个 blink 浏览器的问题吗?
    /huaji
    Cielsky
        21
    Cielsky  
       2020-12-06 21:14:08 +08:00
    @Windelight edge 已经内置到 win10 上了
    ClarkAbe
        22
    ClarkAbe  
       2020-12-06 21:30:13 +08:00 via Android
    然后你代码编辑器打不开了
    emberzhang
        23
    emberzhang  
       2020-12-06 21:47:02 +08:00 via iPhone
    @cmostuor #17 库克:你说什么,1500 还嫌低?那涨到 3000 好了
    cmostuor
        24
    cmostuor  
       2020-12-06 22:09:29 +08:00
    @emberzhang 不是果粉不懂你这梗
    levelworm
        25
    levelworm  
       2020-12-06 22:15:57 +08:00 via Android
    自己不装就是了。我是工作上没办法,很多软件是用这个的。现在嘛都是快速迭代,用这个快,没办法,自己不用就行了。
    chotow
        26
    chotow  
       2020-12-06 23:07:35 +08:00 via iPhone   17
    楼上一些用户,嫌弃 Electron 不是说它安装包大,而是「卡」(比如 Postman ),还有就是强行客户端化(把网页塞到 Electron 然后称之为客户端,比如阿里云 DMS )。
    VS Code 也是 Electron,但它不会很卡,功能还可以扩展,自然不嫌弃。
    最后,再次鄙视九成九的垃圾 Electron 软件。
    fndroid
        27
    fndroid  
       2020-12-06 23:17:41 +08:00 via iPhone   6
    哈哈哈谢谢你
    bricle
        28
    bricle  
       2020-12-07 00:32:24 +08:00 via Android
    惊先小猫咪开发者大佬
    IvanLi127
        29
    IvanLi127  
       2020-12-07 00:59:58 +08:00 via Android
    一个权衡利弊后,妥协的产物。技术很好,主要还是开发商不给力
    hoythan
        30
    hoythan  
       2020-12-07 01:23:27 +08:00
    @chotow 笑死爹了,什狗屁能吧吧打出多字.
    iOS 安卓商店中有成千上的垃圾 app 有的五六年都人用的,我怎不你嫌手?
    Window 的垃圾件成千上,我怎不你嫌 x86 架?
    就事事,不就拿自己用的 Electron app 就以偏概全 吐槽 Electron 的人都是社物.
    antileech
        31
    antileech  
       2020-12-07 02:21:25 +08:00 via Android   1
    几十 MB 而已,并不大,vscode 、Discord 、spotify 等等体验也很好,用 C/C++也许精巧,但是很难达到这种体验
    love
        32
    love  
       2020-12-07 08:05:32 +08:00 via Android
    @Windelight linux 不就是所有用这个的共享同一个 electron 。当然只限于库里面的,外面自己独立下载安装的可能还是自带一套。说到底还是可控不可控的问题。
    cnfczn
        33
    cnfczn  
       2020-12-07 08:12:06 +08:00   2
    @hoythan 就烦你这种以偏概全的言论,electron 为了兼顾平台而增加体积和运行占用是事实。每个人表达自己的不满还必须照顾 electron 的优点不成?我不种西瓜从来不妨碍我西瓜甜不甜。
    ljsh093
        34
    ljsh093  
       2020-12-07 08:29:5 +08:00 via iPhone
    @paradoxs 老哥 cfw 是什么
    icanfork
        35
    icanfork  
       2020-12-07 08:32:27 +08:00 via iPhone
    @chotow 感谢提出这个质疑。卡这种主观性很强的东西,无法具体量化。不过目前桌面电脑性能过剩已经是既定事实。不排除部分用户还是用十几年前的电脑。
    从技术选型来说,国内的大厂 钉钉,飞书,华为等采用 Electron 构建跨平台桌面应用,国外 Slack,微软等公司或团队采用 Electron 构建应用。我觉得有这些公司或团队的背书,起码在一些业务场景,Electron 有它的优势。
    程序安装包大小的问题,随手翻了下日常使用的 iOS App,现在的 App 体积太可怕了。
    程序内核复用的问题,如果你了解到你安装的 App,每一个都有单独的几十 M 的微信分享,QQ 分享,第三方推送 SDK 时,是否更为难受

    以上言论仅参与此话题讨论,非针对或反驳个人
    nrtEBH
        36
    nrtEBH  
       2020-12-07 08:52:55 +08:00
    上面列的一些软件的确不够流畅 在桌面上 总有种卡卡的感觉 现在知道是怎么回事了
    chotow
        37
    chotow  
       2020-12-07 09:00:05 +08:00
    @belin520 #35 「卡」确实是主观性的感觉,就我而言,得出这个结论的来源是 Postman 和 Paw 的对比,基于 MBP 15 2018 ;因此,纵然 Paw 用起来没 Postman 方便,我还是淘汰了 Postman 。
    我认为,Electron 就好像一把双刃剑,用得好的话有优势,用不好直接翻车。大厂背书是不错的,同时我也期待有更多更用心的开发者能产出不一样的 Electron 软件。我愿意一次次尝试 Electron 软件,但只要达不到我的目标(多个标准),我依然会认为这些 Electron 软件不值得,甚至视情况拉黑( Eolinker,DMS )。
    安装包大小是加分项,对于同类型的软件,我优先选择体积小的(参考 /t/716587 );这一项也是「玄学」吧,不过私心还是希望能有开发者能优化到这一点。
    很高兴与你进行这番友好讨论,互相启发。(楼上有一层很令人反胃,直接 block 了)
    qiguai2017
        38
    qiguai2017  
       2020-12-07 09:04:02 +08:00
    跪求禁用 C++ 编译开发出来的程序的方法

    我想要纯手工用汇编语言写出来的应用,

    要是能拿把刻刀,刻出一个跑通 HELLO WORLD 也行..............
    coloz
        39
    coloz  
       2020-12-07 09:10:06 +08:00
    软件难道不是自己下载安装的?
    icanfork
        40
    icanfork  
       2020-12-07 09:15:16 +08:00   1
    @chotow #37 哈哈哈,如此讨论甚好,上面的观点是我在技术选型 PPT 里面摘录的,势必领导也会这样质疑。
    说完好的,说一下 PPT 上面不好的。

    从平台特性来说,macOS 平台或者工具类的 APP,我个人也强烈建议使用原生开发,确实爽一些,特别是 macOS 平台。比较难受的是 Windows 平台,Windows 原生开发绘制 UI 的能力很差,逻辑处理很强,有时候他们也不得不进行混合开发,减少工作量,这样就需要内嵌一个精简版的 Chromium ( CEF ),因为阉割原因,体验不亚于 IE 浏览器,所以 Windows 软件开发涉及到工作量和体验的平衡。

    最后就是作为国内程序员应该看到的一个大趋势 "国产化",国产系统基本基于 Linux 进行开发,对于国产系统的平台支持也变得尤为重要,这时候如何快速的产出一个可以在国产系统安装的 APP 变成一个值得考虑的点

    当你进行一个新桌面项目调研的时候,可以综合考虑下自己团队的实力,macOS 、Windows 、Linux 分别开发,修 3 遍 bug 好,还是一个 Electron 全平台统一好。

    我从大学时候开始对跨平台技术感兴趣,一晃十几年过去了,希望推动桌面端跨平台、移动端跨平台在业内的进展,欢迎志同道合的朋友一起讨论。
    DaRenCC
        41
    DaRenCC  
       2020-12-07 09:20:18 +08:00
    Electron 软件的体验真的太卡了,结果发现阿里腾讯的主流产品都在用,挖坑把自己埋起来?
    Immemorial
        42
    Immemorial  
       2020-12-07 09:31:25 +08:00
    @hoythan 但事实就是大多数的 Electron 应用体验都不是很好,庞大的软件体积和没优化就会被吃掉大量内存,在大多数非顶配设备上,很多这类软件都无法做到 VS Code 那样的体验,再说了,软件的框架和开发者不用心带来的不好的体验,又怎么能说到系统和硬件架构上面去了???
    gaodeng
        43
    gaodeng  
       2020-12-07 09:39:27 +08:00   1
    这样配置了后,是全世界的人都不能运行基于 electron 开发的软件了吗
    MengiNo
        44
    MengiNo  
       2020-12-07 09:42:22 +08:00
    Electron 是不是可热更新,可以的话出生就是原罪。既然大家都承认用户可以自主选择安装与否,热更新是不是可以理解成开发者随时随地让你货不对板?
    MengiNo
        45
    MengiNo  
       2020-12-07 09:45:01 +08:00
    以及我就搞不明白,钉钉这种完美实现阿里社交梦的 App,这么大的公司竟然都不愿意调动一点资源给他做一个原生软件,到底是做不到还是没必要,没必要的意思是什么,到底是不是反正我都垄断了随意糟践用户也无所谓。连最基本的用户体验都没有的软件,实在不能理解为什么那么多人用。
    3dwelcome
        46
    3dwelcome  
       2020-12-07 10:00:50 +08:00
    @MengiNo 原生开发不好维护吧,你 electron 只要管好前端就可以了,招人接手也方便。
    真换成 C++跨平台,开发成本上涨不说,几年后相关人员离职了,后续谁来继续维护啊。
    AV1
        47
    AV1  
       2020-12-07 10:03:25 +08:00 via Android
    我觉得,要不要装某个软件,靠的是自己的主观能动性。
    fengjianxinghun
        48
    fengjianxinghun  
       2020-12-07 10:11:12 +08:00
    @3dwelcome 你又不是资本家管他维护不好维护?越不好维护岗位越多,越好维护内卷越严重。
    yuankui
        49
    yuankui  
       2020-12-07 10:11:45 +08:00
    你可以真厉害呢
    abcbuzhiming
        50
    abcbuzhiming  
       2020-12-07 10:11:58 +08:00   7
    @belin520 谁说“卡”不能量化的?把启动时间,执行同样任务需要花费的时间拿出来比一下不就知道了吗?

    谁说桌面电脑性能过剩的?我不是针对谁,现在程序员领域有两大歪风邪气:第一个歪风邪气叫“PC 电脑性能过剩论”,在持这种观点的程序员看 PC 电脑性能都过剩,一个程序占大几百 M 接近 1G 的硬盘,跑起来动不动几 G 的内存那是天经地义的。反正 PC 电脑用户的钱又不是我程序员的钱,所以 PC 电脑用户的硬件资源我用起来当然不心疼了对不对?第二个歪风邪气叫“服务器性能过剩论”,反正客户的服务器不是我掏钱,核心随便用,内存随便占。

    Electron 的优势是什么? Electron 的优势只有一个,让那些已经有成型 web 页面服务的大厂把自己的 web 页面打个包就能直接在用户的电脑上跑,这不省开发成本吗?至于说用户用的舒服不舒服,体验怎么样,关我屁事,反正用户的电脑又不是我出钱,跑不动升级电脑呗,什么?你说没钱没法升级?滚!穷鬼,中国网民快 10e 了少你一个我才不怕呢,PC 用户又不是主流。。。


    所以你看,没什么好的。这是对大厂最好的时代,对程序员也不错(不用管用户体验了好 high )。但是对于电脑用户来说,真的是个超级黑暗的时代。如果是 native 程序时代用过来的 PC 用户,能非常轻易的理解这点,Electron 这种 Web 应用打包到本地的用户体验,糟糕透顶!
    abcbuzhiming
        51
    abcbuzhiming  
       2020-12-07 10:13:45 +08:00   1
    @MengiNo 因为钱,大厂做事太考虑钱了,有成型的 web UI 团队能用为啥要花钱组建原生 UI 开发团队呢?至于用户,用户算个屁,这就是这个时代,你不用有人用,中国网民有 10E 了,大厂怕个球,这真是对大厂最好的时代,对用户最黑暗的时代
    cmdOptionKana
        52
    cmdOptionKana  
       2020-12-07 10:33:14 +08:00
    按理说 Electron 应用就是一个网站,平时大家上各种网站,也没有几个是卡的啊,把 Electron 应用做卡了,要么是技术差,要么根本没有重视这个项目。

    根源是技术差或不重视,只要这样的背后因素存在,产出的应用就不可能好,与是否采用 electron 关系并不大。
    MengiNo
        53
    MengiNo  
       2020-12-07 10:38:57 +08:00   1
    @3dwelcome 作为开发者,我非常明白你说的各种原因,同时我也很清楚是有办法做到比 Electron 更好的体验,只是开发者在权衡各项之后做出的一点取舍。特别是很多时候产品设计的时候,就根本不以用户体验为第一要义。反过来作为用户,对开发者可以做出更好的体验但选择 Electron 只能表示遗憾以及用脚投票。

    哪怕但凡懂那么一点点技术的,应该都不会不知道,开发者明明可以用原生做的更好。但是开发者们不,哪怕这个 App 再多人用、再赚钱开发者们都不。作为一个用户,我不知道这是为什么,我也不想关心这是为什么,我只知道 Electron 做出来的 App 很卡反应很慢很吃内存,而有的开发者作践完我的内存和硬盘还要嘲笑我现在内存和硬盘都白菜价了我为什么加不起。

    没有用户有责任和义务关心开发者的动机、苦衷和理由。或许开发者可以欺负普通用户绝大多数是门外汉,是小白,根本不懂技术。反正我个人觉得用户绝不应该是一个开发者眼中是抖 M 的,傻傻呆呆什么都不懂,给你吃屎就吃屎,有本事不要用,要用就别 BB,这种形象。但无论是这种性能体验问题还是隐私问题,用户极少被真正尊重。嘴上都是主义,心里全是生意。
    g00001
        54
    g00001  
       2020-12-07 10:47:25 +08:00
    不是说 Electron 不好,但真是被太滥用了。

    例如这个开源软件: https://github.com/winXray/winXray 功能和界面都挺不错的,体积只有惊人的 740KB,这要换 Electron,那至少得好几百 MB,运行能占用几个 GB 的内存。
    lin
        55
    lin  
       2020-12-07 10:52:39 +08:00
    方法也许是正确的,但是逻辑我没想明白。

    也就是,你要屏蔽你自己安装的东西还是屏蔽那些偷偷在跑的东西?

    既然要屏蔽你自己安装的东西,卸载或者不开就行了呀。

    如果是屏蔽偷偷在跑的东西,Electron apps 是否会这么干?
    charlie21
        56
    charlie21  
       2020-12-07 10:55:39 +08:00
    @MengiNo 真的是不怕得罪用户,不怕得罪用户型的开发者是很可怕(有点儿权 特别 这样的人其实不是中国特色 全世界哪都有 很 jerk 势利眼似的没原则)

    但其实不要抱怨他的存在:这样的人呢只会反而彰显了有追求的开发者的可贵
    3dwelcome
        57
    3dwelcome  
       2020-12-07 10:55:53 +08:00
    我觉得你们把原始开发想的太简单了,不光是投钱就能解决的事情,有钱也不一定能找到合适的人。
    所谓隔行如隔山,前端和 C++原生 API 之间的鸿沟,真不是资本家出点小钱,就能填平的。
    horizonl
        58
    horizonl  
       2020-12-07 10:58:35 +08:00
    小猫咪?俺目前用的是原版 clash+yacd 的方案,基本够用。
    @paradoxs #8
    youxiachai
        59
    youxiachai  
       2020-12-07 10:58:39 +08:00
    @MengiNo 找一个写 js...和找一个 c/c++ 不能相提并论....
    而且写业务..找量大人足的前端不就好了....
    几个核心 c++的做好, electron native 就好了....分工明确,风险小
    namelosw
        60
    namelosw  
       2020-12-07 10:59:02 +08:00
    嘴上说 Electron 体验这不好那不好.

    到最后还得看扩展名才能分辨出来? 如果体验都真那么不好还用, 一打开体验一下不就知道了嘛, 还用看扩展名嘛?

    欲加之罪何患无辞.
    damngood
        61
    damngood  
       2020-12-07 11:01:32 +08:00
    Electron 这种技术本来应该是用来做组织内部或者面向小撮用户的应用, 而不是那种大规模分发的应用.
    现在感觉用滥了
    SuperMild
        62
    SuperMild  
       2020-12-07 11:08:51 +08:00
    @g00001 你说那个是 aardio 做的,只能在 win 用,不跨平台。Electron 主要是一个跨平台方案。
    hakono
        63
    hakono  
       2020-12-07 11:12:18 +08:00   2
    看了眼任务管理器内存占用
    postman 846MB
    slack 320MB
    notion 460MB
    给 Electron 洗地的是真的没良心,反正用户的内存就是大风刮来的呗,开了之后我们干活的 IDE 、浏览器、虚拟机就不用开了呗
    abcbuzhiming
        64
    abcbuzhiming  
       2020-12-07 11:13:56 +08:00
    @cmdOptionKana 因为现在抱怨网站卡的人你渐渐看不到了,因为中国有 10e 用户把这些抱怨的人稀释掉了。别以为现在网站做的性能有多好似的,我几年前在另外一个伪程序员论坛说现在网站页面效果也没见有特别长进,一打开 CPU 和内存暴涨。。。结果当场收获了几个自称是大厂程序员的“善意劝告”:你们 PC 用户要有自觉自己是非主流;要么升级电脑;要么换移动端;现在还有几个厂会给你们优化页面性能呢?做梦呢。。。。

    前端三大框架和各种脚手架的诞生产生的一个负效应就是前端写翔山比过去容易多了,而且翔也没关系,反正跑的起来,至于用户体验是什么?没看楼上有人说 PC 电脑性能过剩吗。
    g00001
        65
    g00001  
       2020-12-07 11:16:53 +08:00   1
    桌面市场是 Windows 一统天下,“跨平台”意义并不大。

    “跨平台”很多时候并不能节省时间,Electron 要跟系统 API 做些简单的交互都非常麻烦,Electron 做的东西大多时候只是一个简单的网页套壳,并非真正意义的“桌面软件”,而且也不是每个 Electron 开发者都有 VS Code 的实力。
    LokiSharp
        66
    LokiSharp  
       2020-12-07 11:18:44 +08:00   4
    喜欢用 Electron 做小工具的真的是垃圾,比如 balenaEtcher 这种,就一个 dd 的功能套个 GUI 就上一两百多 M
    MengiNo
        67
    MengiNo  
       2020-12-07 11:19:21 +08:00
    @youxiachai 原生这块具体开发我确实不是很清楚,正好借此想咨询一下。从苹果的宣传看,用 OC / Swift 应该也可以做 macOS 吧,是不是可以理解成会开发 iOS 的基本都等于会开发 macOS ? 那是否 Windows 下也有微软开发的原生应用的套件,比如 WPF 、UWP 这些可以用 C# 这样高级语言编写的,是否比 c++ 比实现起来更容易,成本更低?还是说 UWP 这些实现效果也不理想,那这样的确锅就是 Windows 的了。。。(因为我个人是用 macOS 的,至少苹果在他自己的生态下的“原生”App 体验是非常棒的,比如 熊掌记 和 agenda 就完爆了 evernote 和 notion,paw 也完爆了 postman )。
    abcbuzhiming
        68
    abcbuzhiming  
       2020-12-07 11:23:46 +08:00   10
    @namelosw 不好意思,我现在基本上拿到一个程序,看看体积,双击打开看看启动速度,然后再瞄一下内存占用,就可以肯定判断你是 Electron 。

    但是,我是主流吗?不是,我已经是一个“老头子”,从 dos 时代过来的非主流 PC 用户,我对我自己的处境有充分的认知,所以我也很少公开的喷 Electron 。因为我知道:“时代变了”,我不满意又能怎么样呢?

    但是我要提醒已经开始膨胀的不知道天高地厚的程序“猿”,你们能这样肆无忌惮的喂用户吃 Electron 这套翔不是你们水平有多高,而是你们恰恰生活在了一个很好的时代这个时代有靠中国的基础建设养起来的接近 10e 上网用户,大量的手机用户稀释了 PC 用户的话语权;而普遍性生活水平的提高使得确实产生了相当数量的高级用户,这些用户确实不在于 PC 硬件的价格(你看看 3080 一出来就被抢光)。所以,这个时代,大厂不需要在意 PC 用户的硬件水平和用户体验,程序员也跟着得益,不再需要为了性能去和 C++这样的高难度语言较劲。


    我自己也是一个程序猿,大厂和程序猿们迎来了一个好时代,但是我还是请各位记住,这个好时代,不是因为你自身有多优秀而换来的。别膨胀的连基本的好坏都不认了。作为一个搞技术的人,如果连技术基本的好坏都开始不分了,变成了某种技术的信仰者和传教士,那可真是个人的悲剧
    LokiSharp
        69
    LokiSharp  
       2020-12-07 11:31:49 +08:00
    @abcbuzhiming #68 关键某些垃圾开发者用 Electron 做的软件还喜欢做成常驻后台的进程。。。整个内存从打开占到你主动清后台
    westoy
        70
    westoy  
       2020-12-07 11:35:50 +08:00
    哪有那么多原生啊, 中古程序基于 webui 的也不少.....比如做 activepython 、activeperl 的 activestate 搞的 komodo edit/IDE 就是基于 firefox 的 gecko 的, 基于 qtwebkit 的就更多了........
    3dwelcome
        71
    3dwelcome  
       2020-12-07 11:40:03 +08:00
    @abcbuzhiming "前端三大框架和各种脚手架的诞生产生的一个负效应就是前端写翔山比过去容易多了"
    其实前端 js, 天生就不太适合处理很复杂的逻辑。可是偏偏现在 APP 盛行,主流重前端轻后端的方式,硬上巨型体量的框架(看看 V 站的 VUE 加班贴,就知道了)
    以前 C++都会提到软件工程学,有一套完整的理论来整理大量代码。可前端并没有啊,等到 js 代码多到不可控的时候,翔山早晚会崩盘。
    Electron 承载的代码只要不太过笨重,个人体验还是可以的。
    LokiSharp
        72
    LokiSharp  
       2020-12-07 11:47:35 +08:00
    @3dwelcome #71 这里就有点矛盾了,JS 天生就不适合写复杂项目,而不复杂的项目没必要用 Electron 这种资源大户
    ryh
        73
    ryh  
       2020-12-07 11:48:30 +08:00
    有个特别的例子很恶心,Nvidia 驱动和 experience,全是一堆 node 进程,做硬件的连个管理程序都写不好,呵呵了
    Mohanson
        74
    Mohanson  
       2020-12-07 11:52:27 +08:00 via Android
    用户在乎不在乎自己的硬盘和内存我不知道,反正现在的 electron 前端觉得用户不在乎…
    Tink
        75
    Tink  
    PRO
       2020-12-07 11:53:28 +08:00
    @hoythan #30 真的 9 成 electron 的软件都是垃圾
    SuperMild
        76
    SuperMild  
       2020-12-07 11:56:30 +08:00
    electron 有很多缺点是事实,但如果要做跨平台( win, mac, linux),要现代化界面,比 electron 更好的选择是什么?
    youxiachai
        77
    youxiachai  
       2020-12-07 12:00:26 +08:00
    @MengiNo 并没有...苹果搞垮平台也是这两年...所以 macos 的生态一直没起来...就是 ios 和 mac 并没有打通(现在打通了,可以期待一下...)....
    electron 没出以前,大厂不会 care 这点苹果用户开发客户端...

    你说的这个,单纯就是 pc 不是主流了...大厂不像投入资源做这个事情
    wangxiaoaer
        78
    wangxiaoaer  
       2020-12-07 12:00:39 +08:00   2
    真是醉了,一帮人拿移动端 app 的安装包大来给 E 洗地,移动端再大点击后不用管了,后台下载、安装,你不用盯着吧。

    PC 呢,除非是商店,否则要不要盯着下载完成,然后一路 next ?一个 5M 秒下完的跟一个 200M 需要盯着的能不一样吗?

    其次,同样的电脑配置下,qq 比钉钉响应快的多,要说 E 一点都不背锅我是不信的。
    Tink
        79
    Tink  
    PRO
       2020-12-07 12:03:09 +08:00
    @g00001 #54 这个只能 Win 下用
    janxin
        80
    janxin  
       2020-12-07 12:06:00 +08:00
    很多 PWA 能解决的问题非得套层 Electron 的壳,扪心自问一下有必要吗?说 Electron 垃圾的时候,这些垃圾产品的产品开发一个个全跑不掉都得背锅
    namelosw
        81
    namelosw  
       2020-12-07 12:14:08 +08:00
    @abcbuzhiming

    1. 我的回复只针对“痛恨 Electron 却还得看扩展名”的人
    2. 我没说 Electron 好或者坏
    3. 我没当传教士
    4. 我还没见过信仰 Electron 的…… 信 PHP, 信 Haskell 的都见过一堆, 就是没见过信 Electron 的…
    5. “不知天高地厚”, 然后 raise 出来 C++? 如果 Electron 真像很多人说的那样恶心用户的话, C++就是程序员界的 Electron… 同类型的 C 和 Rust 的 asthetics 都比 C++强多了.
    damngood
        82
    damngood  
       2020-12-07 12:14:37 +08:00
    @hakono 有可能还有相关的 helper 进程的资源占用没有计算到... slack 应该不止这么点占用. 而且不光是内存, 还有 cpu 和磁盘
    u6pM63mMZ34z32cE
        83
    u6pM63mMZ34z32cE  
       2020-12-07 12:18:00 +08:00
    奇葩数量 +1
    cmdOptionKana
        84
    cmdOptionKana  
       2020-12-07 12:19:09 +08:00
    @abcbuzhiming #63 “因为现在抱怨网站卡的人你渐渐看不到了,因为中国有 10e 用户把这些抱怨的人稀释掉了。别以为现在网站做的性能有多好似的”

    主流网站,包括各大厂的首页(比较简单)、各种论坛 /社区(还是不复杂)、京东淘宝等购物平台(这比较复杂了)、优酷 B 站等视频网站(也比较复杂)、各种在线编辑器 /在线表格(这些需要极大量的 js )……

    这些网站我都用过,没有发现哪个性能不好,你能不能举个例子,说哪几个网站很卡?

    另外,你说 “前端三大框架和各种脚手架的诞生产生的一个负效应就是前端写翔山比过去容易多了”,这句话是不是对前端框架有误会?

    前端三大框架很明显是用来组织代码,用各种公认比较好的编程模式来组织代码,比过去 jquery 时代,代码肯定是更有条理、更方便团队合作的。

    现在前端复杂,主要是用户的需求更高,以前很简陋的页面就能满足,现在不做好看、不多做些动态,用户就觉得你 low,就不爱用。

    需求不一样才是根本原因。
    whypool
        85
    whypool  
       2020-12-07 12:33:45 +08:00 via Android
    现在跨平台才有用户增量
    如果是现在搞桌面软件,首选 e,没其他选择
    性能差异又不大,又不是不能用
    如果大厂有能力封装,能看出用 e 的还是比较少
    3dwelcome
        86
    3dwelcome  
       2020-12-07 12:33:57 +08:00
    @cmdOptionKana "需求不一样才是根本原因。"
    我就是觉得什么需求都往前端里加,代码量成倍上去后,前端代码才会变成翔山。
    这和用什么框架关系不大,就是没有合理的软件上下分层。
    比如密集型计算,以前是放后端在服务器运行,现在也搬到客户端也可以运行,但毕竟 JS 也不是万能的啊,各种乱七八糟不合理的需求加一起,才是 Electron 质量低下的根本原因。
    nicevar
        87
    nicevar  
       2020-12-07 12:34:50 +08:00
    Electron 的软件就是有替代品的尽量不用,确实即占硬盘空间运行效率也低,不是每个人都是 1T 的 SSD,如果是我即使 1T 的 SSD 我要装的其他软件很多,也架不住一堆 Electron 软件。
    很多人喜欢拿 vscode 举例,vscode 那是微软出品的,比说 Electron 了,当年的 c#出来的时候写的软件也是卡成狗,微软自己用 c#写的 Paint.NET 流畅的一匹,结果是人家从底层进行优化了,人家的资源配置跟普通公司是两码事。
    abcbuzhiming
        88
    abcbuzhiming  
       2020-12-07 12:43:58 +08:00
    @namelosw
    1.每个人的认知能力有区别,有些人被 Electron 恶心,但是只能看扩展名才能分辨 Electron,不是他们的错
    2.你确实没有明着说 Electron 好或者坏,但是你明着在鄙视那些厌恶 Electron 但是却无法一眼看出 Electron 的用户。
    3.传教士这句话不是说你的,是楼里的某些其它人,懒得再开一贴了
    4.那也不是说你的,其它同上
    5.先说明不是说你的,其次我并不觉得 C++这玩意多好,我只是想说现在的程序员终于可以摆脱 C++了,但是他们走向的是另外的极端以喂用户吃屎来提高自己的开发体验
    abcbuzhiming
        89
    abcbuzhiming  
       2020-12-07 13:06:36 +08:00   1
    @cmdOptionKana
    以下是我的真实经历,大约 4-5 年前,我当时用当时的主流入门 CPU intel core 奔腾系列,2 核,睿频大约只有 3.x,8G 内存。配了一台 ITX 电脑。这个电脑在当时打开京东淘宝 B 站,用 chrome 浏览器,那是非常流畅迅速的。但是仅仅过了 3 年左右的时间,我再用这台电脑去开这些网站的首页,就能感觉非常的卡顿我是 dos 时代过来的老人对性能很敏感,我不觉得这是我的感觉异常。

    察觉到有问题后作为一个曾经的 diyer 首先就是把自己的电脑整个重新捣鼓了一遍,重装系统,重装 chrome,再试?没什么卵用,换了一块 ssd,还是一样。

    我当时就觉得很奇怪,因为我觉得这三个网站的首页在显示上其实和三年前比起来没有什么大变化啊。我甚至一度怀疑,是不是不是网站的问题,是 chrome 的渲染引擎效率下降了?但是我后来在一个伪程序员论坛发了几句牢骚说“现在这些网站吃性能咋这厉害,三年前还流畅的配置,三年后我没见页面有啥变化咋跑起来好卡”。。。然后就有大厂程序猿出来教育我:你当前端技术三年不进步的吗?这些进步不吃性能的吗?你觉得页面没变化,你怎么知道在你看不到的地方我们改进了各种流程,实现了各种技术,加了多少新的监控,这些凭什么不能吃性能。。。。还要让我“耗子尾汁,现在 PC 用户是非主流,大厂不会为了你们去做性能优化的,还能用就算不错了”。。。

    我能说啥呢?虽然我是程序猿但我不是前端专家,我只能认为那个人说的对,时代进步的,旧机器被放弃了。PC 电脑用户的钱不是钱,穷鬼不配谈性能用户体验。。。。。。



    另外我虽然不是前端专家,但是我对三大框架的存在意义,并不是完全不了解,框架代表约束,约束就是为了组织更大的规模。所以我不觉得我说错了,以前没有框架,水平低一点的人是根本搞不起复杂一点的前端程序,有框架当然是一种进步,但是负效应是,框架只能提升规模,没法提升性能,而规模的提升,是要用户的电脑性和带宽能来买单的。这就是我说的负效应。我并不是说,因为有负效应,所以我们就不要三大框架,有框架总比没框架好,前端能成就更大规模更复杂的程序是历史趋势,我并不是反对这种趋势。我只是要强调:这种革新不是没有代价的。

    而且,现在的前端的问题,是进步的远远不够,而不是进步的很好。只是这个问题,在 PC 端用户式微,手机用户普遍 App 的时代,被掩盖起来了,所以就给人一个错觉:上面不是有人说吗我们网页性能用起来很好,怎么打包成 Electron 性能就不好了,是不是你们开发水平问题?那我就要说了,什么?网页性能很好?你确定?
    namelosw
        90
    namelosw  
       2020-12-07 13:14:18 +08:00
    @abcbuzhiming

    > 以喂用户吃屎来提高自己的开发体验
    放心, 即使这种团队做 native, 也是 native 的屎. 他们的目的就是凑合做一个 app, 我用过的凑合做的 native (各种 devtool 是典型) 绝大多数体验都不及 electron (因为预算本来就小, 因为 native 活相对多一些, 就只能更凑合了).

    我要说的现象是只有程序员才鄙视 Electron. 用户只会关心这个软件用着是不是难受 - 有很多用着难受 Native app, 也有很多用着不难受的 Electron app. 很多程序员专门一棍子打死 Electron, 这跟“xx 人素质都低”或者“x 人都懒”有什么区别?

    很多团队嘴上说体验, 各个平台搞了 native, 结果几个团队都没法对齐, 功能都维护不好. 做 Native, 不说 VSCode, 好歹能达到 Discord 这种 Electron + React Native 这种水平的体验再说, 不然 Native 有什么意义… 我见过 average 水平的 native 团队基本都是这样的.

    ---

    在中国, 最早只有精英厨师才能花很多天做出来各种很鲜的汤, 然后让菜肴更鲜美. 后来从日本传来一个发明, 叫味精, 让普通人也能无脑做出很鲜的菜肴, 立刻风靡起来.

    但是故事并没有结束:

    1. 在中国, 如果普通厨师能很容易做出来好吃的菜, 那还请精英厨师干什么? 于是德高望重的厨师们就开始利用自己的地位打击味精, 对身体不好, 或者评判菜色好坏先取决于放没放味精. 现在大多数人还有味精不好的印象.

    2. 在美国, 因为味精的流行, 中餐馆的火爆程度直线上升, 严重打击了其他餐馆. 于是人们又开始担心, 后来出现了味精会损害神经系统的研究. 后来中餐馆就逐渐不妨味精了.

    很多年前, 我见过一开始积极打击 Electron 最积极的基本上都是 native dev, 后来才逐渐转播到其他 dev 群体上. 感觉和味精的故事很像.
    shunia
        91
    shunia  
       2020-12-07 13:17:07 +08:00
    @paradoxs #8 Mellow 了解一下
    namelosw
        92
    namelosw  
       2020-12-07 13:21:03 +08:00   1
    @abcbuzhiming 你说的这些网站感觉卡顿的情况是存在的.

    不过原因不在前端框架, 在于删功能没有 KPI. 这几年团队实践都上道了, 从功能到开发不会像以前那样磕磕碰碰了, 每个月新加的功能越来越多.

    白板 React 和 Vue 其实是很快的, 比 jQuery 大不了太多, 这些大厂要是每年只挑核心功能重写一遍肯定快.
    Vegetable     93
    Vegetable  
       2020-12-07 13:24:04 +08:00
    无论如何这种行为都是喂自己吃屎,要不就是打自己脸解除限制真香,要不就是硬着头皮找代替产品,自己绑住自己罢了。
    charlie21
        94
    charlie21  
       2020-12-07 14:11:23 +08:00
    @namelosw 为什么你故意隐藏故事结果呢?故事的结果就是:随着时间发展,在小公司里写 Electron 的开发者会逐渐把写 native 的开发者给替换掉,饭碗都砸掉

    只要开始写 Electron 了,写 Electron 的人就是要逐渐把你们写 WPF 的给替换掉。到时候余下的你们不得不陪着 node.js 那帮人年年学新招式,陪他们内卷。这叫引狼入室( 彼时看公司人员构成,WPF 小团队已经被砍掉了,客户端都是写 Electron 的了 而且是年年追着最新版的 Electron )

    被替换的人 自然就担心,替换人的人 自然就不担心,那无知的孩子:她那时候还太年轻,不知道所有命运赠送的礼物,早已在暗中标好了价格。 你就是这价码的一部分,那分不清什么叫 优胜劣汰、引狼入室、良币驱逐劣币、劣币驱逐良币的人 就是这价码的一部分

    前端界的政变 /t/277607

    半次郎说:
    我今天的命运,
    可能是其他人明天的命运。
    那些注意我故事的人,
    甚至会发现某些珍贵的智慧隐藏在当中。
    https://www.bilibili.com/video/BV1v4411q7dU
    paoqi2048
        95
    paoqi2048  
       2020-12-07 14:19:03 +08:00
    LZ 在线暴打 Electron,可以的
    MengiNo
        96
    MengiNo  
       2020-12-07 15:01:57 +08:00
    @namelosw 好一个只有程序员才鄙视 Electron,我可以理解成:喂门外汉、小白们吃屎的行为被有技术的人揭发了,开始解决发现问题的人吗。是不是程序员丝毫不影响我是一个用户。
    3dwelcome
        97
    3dwelcome  
       2020-12-07 15:37:39 +08:00
    @charlie21 “随着时间发展,在小公司里写 Electron 的开发者会逐渐把写 native 的开发者给替换掉,饭碗都砸掉 ”
    有了 nodejs 后,仿佛前端,后端,客户端,移动端无所不能。事实真的如此吗?并不是吧,本帖提到的卡顿就是最好的证明。
    任何语言都是有其擅长和不擅长的,比如 C++擅长计算,JS 擅长界面。一个项目里,用户需求总会随着时间推移,不断变多,等大量新需求硬塞到前端框架里,最后必然变慢变卡,遇到性能问题,这谁都阻止不了。JS 诞生的时候,也不是为了来解决超级大项目,是 nodejs 促成了这个契机。
    至于你提到的 native 码农会被替换,在很早之前,调用 API 逻辑层码农,就是铁打的兵营,流水的兵,换了一批又一批。不变的,只有那些写核心 C++的底层代码的老人。
    KeyboardManAnAn
        98
    KeyboardManAnAn  
       2020-12-07 16:04:04 +08:00
    Electron 这种套壳应用确实令人深恶痛觉, Flutter 桌面端兴起之后或许能治一治它,唉
    charlie21
        99
    charlie21  
       2020-12-07 16:07:27 +08:00 via iPhone
    开阔的眼界不一定能得出善良的结论,反而会加剧固执。
    其实借由 electron 的跨平台特性 可以允许一个非常低廉的开发者(开发者水平)用非常低廉的成本(开发所用的人 /天数)开发出一组非常低廉的跨平台软件(能跑),但这反而告诉了人们好软件该值多少钱,用低价获取到的到底是什么
    求仁得仁
    -
    KeyboardManAnAn
        100
    KeyboardManAnAn  
       2020-12-07 16:21:03 +08:00
    像 tauri 像这种借用原生 WebView 控件来生成套壳应用的技术都比 Electron 好十倍
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2853 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 00:29 PVG 08:29 LAX 17:29 JFK 20:29
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86