百科问答小站 logo
百科问答小站 font logo



我怎么感觉近期到了第三次世界大战的边缘? 第2页

        

user avatar   ke-xue-shi-wei-yi-de-da-shi-da-fei 网友的相关建议: 
      

第三次世界大战的节点有且只有以下两个。

美国丧失货币霸权,欧洲(包括日韩)失去产业优势。(本来老欧洲衰落不在三战原因之内,但自此俄乌以来德日借口重整军备之后就扑朔迷离了)

这两个是发达国家维持高水平生活的根本。

很多人不清楚的是,美国并不是一般意义上的发达国家,大部分发达国家,如欧洲日韩等,依靠的是在制造业中所处的地位,通过高额的利润,维持目前的优渥生活,余下的发达国家则有卖资源的,搞旅游的多种多样,在这里不多提。

而美国的产业并不足以支持数亿美国人的现在的优渥生活,因而产生了巨额的贸易逆差,美国只能不停的发债用全世界的通胀来为数亿美国人的豪斯和牛排买单。如果丧失货币霸权,美国印出来的美元不能换取世界各国的货物,那么由此产生的高通胀会瞬间击垮美国人所谓的豪斯和牛排。

因此对于美国来说,货币霸权是根本,没有货币霸权又不开启战端,那么就等着数亿吃不上牛排的美国人把国会砸烂。

而支持欧洲日韩现在优渥生活的是他们的产业优势,如德日,他们都有着数千亿美元的贸易顺差,因此他们不需要依靠货币霸权发债来给国民的牛排买单。但如果欧洲日韩丧失其产业优势,不再能产生巨额利润,那么国民生活水平无疑会暴降,这时他们要么开启战端,要么被砸烂。


user avatar   001sirius 网友的相关建议: 
      

现在的确是第三次世界大战的前兆。

纵观前两次世界大战的特点:

1.都有大国被逼到角落(一战奥斯曼,二战德国)

2.各国之间互相为了利益,在大战前已经互相结盟

3.主要战场发生在欧亚大陆。

4.各大国都是强硬派掌权。

5.都是新的力量为了自身利益,试图推翻旧的世界格局。

其实各国的智囊和顾问的历史学的要比我好多了。但凡对一二战比较了解的都会发现现在的种种情况都在向第三次世界大战靠近。各国都在极力避免发生第三次世界大战,至少前两次世界大战给欧亚人民的心理创伤太大了。但是美国是一二战最大的受益者呀。他虽然知道应该避免三战,但是他没吃过苦,自然没那么深刻的印象。

所以现在的局面是:美国依然在疯狂试探着俄罗斯的底线,并且去挤压俄罗斯的生存空间。继续下去,俄罗斯不是没有可能到达底线,而首先遭殃的不是美国,而且他的狗:欧洲。欧洲这些鸟国又各个面和心不和的,一打就散,会给俄罗斯去扩大战局的强有力的信心。而与此同时,德国日本还在趁机找个名正言顺的理由扩大自己的武装力量,那中国绝对是第一个不干的。

所以第三次世界大战如果真的要发生,肯定是中国和俄罗斯结盟了。因为西方秩序倒台,最大的受益者必然是中国。中国是欧美体系之外工业化程度最高的国家,现在只差向科技型转变的临门一脚了,最大的阻碍不就是欧美吗?甚至我都不敢肯定,现在俄罗斯和中国是否私下里已经签署了结盟协议?

中俄结盟后,中东、印度等想要上位的新贵会加入中俄联盟,共同对抗想要维护旧体系的欧洲-澳洲-美国的组合。因为中东早就看透美国,他再好也不过是美国的一条狗,还是被时时刻刻提防的一条狗,永远不可能平起平坐。而印度甚至比中东更惨,他在欧美体系里是奴仆的地位,上不了台面的东西。

至于第三次世界大战的结果,我觉得99%会以核打击告终。一开始肯定没人会想走到这一步,因为谁都认为自己会赢,但是走到最后谁都没有选择的机会,因为失败者肯定会被逼到绝境。

这也是为啥北约和美国都这么克制的原因,各国智囊都给出了预测结果而已。

当然谁都不希望第三次世界大战发生。还是像赵立坚说的,解铃还须系铃人,美国才是真正的系铃人,主动权并不在我们。一旦车轮滚动起来,每个国家都有他既定的归宿,这甚至是无解的。

说点题外话,世界秩序正在崩塌,即使俄乌战争和平结束,美国也无法忍受被中国钝刀子割肉的感觉,势必要奋力一搏。全方位的大战可能是在所难免的,不是经济战就是真实战。劝大家不要总是有软弱的想要和平的想法,不可能的!

当然作为一个中国人,我只希望美国的内部分裂越来越严重,最好早日自行解体。


user avatar   tuo-ji-ga-cun-ma-fan 网友的相关建议: 
      

但凡是一个读过小学,语文别说及格,能做到50分的人,看了我这篇调侃的文章就知道,我是用下流加诙谐的口气评论目前打不起来三战!

然而,仅仅因为评价兔子是能打的就立马炸出一堆三无小号,我都能透过屏幕看到他们扭曲的脸,在那里无能狂怒!

说句实话,我,并不算什么富人,普通老百姓而已,就连买张溢价显卡都舍不得的普通人,安安心心当着垃圾佬,一部手机用了快五年了,实在用不下去了还捡的我老婆的手机继续用,舍不得花几千买个新的啊,然而我看到了各种酸,还有人说啥无产者?拜托,我们大陆,不管北方网友还是南方网友还是东方网友还是西方网友还是东南,东北,西北,西南网友,嗯,也包括中原网友,大家拍着胸口说,你真没房吗?你要不是去大城市打拼,暂时买不起房而已,老家的房不叫房?买个loft就不叫房?咱们大陆这边,真的,只要我们自己不那么过分追求自己的理想,有房住,有衣穿,吃好喝好其实并不难!不像某个省的人。

俄乌战争,炸出一堆堆的三无小号,天天在那里人性,乌克兰赢麻了,俄罗斯节节败退,微博待不下去就跑知乎来了是吧?真当我们不知道你们是啥意思是吧,你们是真怕了!

有的人,你三无,就别来我这里叫嚣,有本事,来重庆找我,约个地,我让你知道花儿为什么这样红!我让你知道跪着唱征服是啥意思!爷当年也是敢在黄桷坪这地横着走的人!爷不主动欺负别人,但爷也没怕过谁!

————————————————


三战?呵呵!

你可太看得起欧洲那群圣母了,拿什么打?

目前整个世界,敢打能打的剩不下几个了,兔子算一个,鹰酱只能算半个,因为它是不愿对大国出手的,欺负小国还行,东亚怪物圈里,北棒时刻都在敲打南棒,指望太阳的后裔们能做个啥,请参考李根大尉!锅儿是铁打的,只有锅敲在头上才知道痛,日本,说句真不好听的话,二战的日本还有信仰,武士道精神虽然是法西斯,但起码算它们的信仰,现在的日本,福岛核电站都不敢去的货,你指望它能做个啥样?所谓的东亚怪物房不过是吹吹得了。

老毛子敢打,但老毛子的实力其实真下降了很多,不过,勉强算一个吧。

欧洲,呵呵,呵呵,呵呵

呵呵一般代表不礼貌,对的,我就是不礼貌!

一群女国防部长,打啥?FBI警告吗?

所以,三战,谁打谁,谁敢动手?


user avatar   benizano 网友的相关建议: 
      


user avatar   lu-bu-fei 网友的相关建议: 
      

整个世界当前秩序已经不可持续了

不只是所谓资本主义危机的问题

那个只是一部分,还有更深刻的两个问题

一个就是文明冲突,几千年演化下来,现今活着的大民族,都有一套自己牢固的文明特质了,就比如中东阿拉伯的驴叫 和 欧洲白皮的鸡叫,虽然同根同源,但是已经厮杀千年,本质上是谁也不愿意被谁同化的,各自体量也大到无法同化了,又被全球化席卷导致各种人口流动混杂,地理隔离的矛盾已经犬牙交错,后面又是残酷的厮杀要开始了

还有一个更深刻的文明进化淘汰机制第一次启动了,就是人工智能的迅猛发展,比前几次工业革命更可怕,不只是继续拉开各个国家之间的鸿沟,更厉害的是,它开始发展到吞噬人类自己了,相当于人的大量价值被人工智能否定了,前几次工业革命,吃苦耐劳的民族,还能通过血汗工厂积累一点资本,谋求一点突破,未来呢?底层人民可能连苦力的价值都没有了,不只是苦力,很多中层的脑力劳动 甚至更高层次的劳动,都可能被一一替代

相当于,人类第一次被自己发明的东西在智力层面否定了

所以未来吧,会有一场前所未有的世界规模的大洗牌,不仅仅是一战 二战那种热战,毛子开始的战争导火索只是整个大戏的一小部分


user avatar   li-jie-1-2 网友的相关建议: 
      

新冠:说你呢,看这边!我们已经开打两年了。


user avatar   wu-kai-wen-12-83 网友的相关建议: 
      

去打游戏


user avatar   smh-8-89 网友的相关建议: 
      

首先,吴老二打了。


在公元220年,刘备在汉中大放异彩、关公在襄樊一片大好形势时,孙权攻打合肥了。


但是,当时合肥地区根本不鸟孙权,并不拿他当个东西,反而忧心忡忡的说:孙权实在不叫个东西,我现在担心曹仁那块有危机啊!今年水大,但曹仁不知道这个厉害,关羽骁勇精锐,专门钉有缝的蛋!一定会乘势闹乱子的!(恢谓兗州刺史裴潜曰:“此间虽有贼,不足忧,而畏征南方有变。今水生而子孝县军,无有远备。关羽骁锐,乘利而进,必将为患)


孙权同志为啥会在合肥军区这个口碑呢?为啥这货一定要偷袭江陵而不是死磕合肥呢?


在于五年前的一次惊悚经历,一场扭转三国历史的八百破十万。


215年八月,秋高水大,孙权同志领十万大军围攻合肥。


当时,合肥守军是张辽、李典、乐进三军共七千人。


曹操远征张鲁之前,给了合肥护军薛悌留了个机密函。


函上写着:贼至乃发。


结果孙权来了以后,薛悌打开机密函一看:上面曹书记最高指示:张辽、李典将军出战,乐将军守城,政委你别瞎掺合。(若孙权至者,张、李将军出战,乐将军守,护军勿得与战)


当时所有人都在疑惑,这特么十万人铺天盖地来了!就这么点人!不是应该聚拢守城吗!出去打干啥!


曹操是这么算计的:


1、为啥要出城打一通呢?


这是曹仁同志的好经验,打江东部队有一个常规操作,你得先冲出去吓窜他,然后后面的仗就好打了,对面没有周瑜和刘大爷了,他会陷入自我崩溃的。


2、曹操留下的这个合肥班子非常有意思,乐进、张辽、李典这三人的关系从来就不合适。(进、典、辽皆素不睦)


真到了打仗的时候,最合适的办法就是让两个人出去,一个人守城。


两个人出去野战,谁不玩命都会被记下来将来到领导那告黑状。


一个人守城,城丢了那就是你的责任!


护军政委则在高高的城头上把仨人的表现全都记下来。


这样的配置,最适合让三人都为了革命事业死在合肥!


再往深里说一句,那为啥曹操敢把三个互相不合适的人放在一起呢?


因为这种情况通常的结果就是内耗,然后合肥被拉拢引诱后让人家轻松钻了空子。


最关键的底色,是曹操打赢袁绍后干了两件制度建设:


第一、曹操落实了当年踹寡妇门后的感悟,把干部的家属都迁到了邺城当人质,连青徐土皇帝臧霸集团都把家属们送过来了。(太祖破袁谭於南皮,霸等会贺,霸因求遣子弟及诸将父兄家属诣邺)


人质被扣下了,他即便在合肥内部斗争失败也没办法跳槽,能狠心抛妻弃子卖父的毕竟是少数。


第二、曹操明确军法,有功必赏,败军必罚,不看苦劳,只认功劳。(是古之将者,军破于外,而家受罪于内也。自命将征行,但赏功而不罚罪,非国典也。其令诸将出征,败军者抵罪,失利者免官爵)


你就算搞内部斗争把那俩人都斗死了,但城守不住你仍然要被降罪。


这里往深说这一步是想跟大家延伸讨论一下,很多“御人”的招数千万思考全了再用,很多看似精明的不得了的计策其实都是“背水一战”的翻版。


要是没有上面两方面的内功打底,曹操要是还敢派这三位爷一块共事,合肥估计早被吕蒙勾引了,或者别人没打自己内部已经打翻天了。


很多高明决策的关键环节通常隐藏在水下,咱们贸然学非常容易吃大亏。


很多成功学的书可恨也可恨在这方面,他通常删除很多“重要条件”,简化很多成功中的过程,并不原原本本的给读者掏心窝子。


或者说写这书的人根本就没成功过,脑补在胡编。


大家学成功案例时,千万多甄别。


张辽看到领导的密函后率先表态:领导远征在外,等救兵来了咱早让人家打秃了!领导的意思这就是让咱们趁他还没来得及合围就迎头打他一棒子!挫他的威!然后咱们就能守啦!(公远征在外,比救至,彼破我必矣!是以教指及其未合逆击之,折其盛势,以安众心,然后可守也)



本来关系就都不好,漂亮话还都被你说了,那哥俩没反应。(进等莫对)


张辽大怒表态:成败在此一战!你们要是害怕我自己打丫的去!(成败之机,在此一战!诸君若疑,辽将独决之)



明确指示必须出战的李典不得不表态了,说:这是国家大事,我正考虑你说那话靠谱不靠谱呢!我怎么可能因为私人关系不咋地而忘了公义呢!(此国家大事,顾君计何如耳,吾可以私憾而忘公义乎!)


就这样,确定好了要执行曹老板的锦囊妙计。


但是,具体的实施过程张辽搞了变种。


他并没有带着全军出去杀一通!而是连夜募集了八百敢死队,杀牛吃肉!(于是辽夜募敢从之士,得八百人,椎牛犒飨)


张辽决定带着八百人去突孙权的十万军。


第二天一早,时年48的张辽大爷披甲持戟的先登冲阵去了,趁着孙权军阵还没布阵成功就冲过来了!


曹操的最高指示下达后,张辽解读出了自己的意思:领导让我趁他还没布阵成功就突他一顿!(是以教指及其未合逆击之!)


这和当年二爷白马斩颜良时一样,趁着阵型还没摆好就突进去让你手忙脚乱,打你一个措手不及!


这也是此战张辽能完成壮举的关键!


孙权十万人来打合肥小城,部曲番号众多,调动各部曲统一攻城步骤繁杂,所以肯定刚开始阵型会有各种松动,他也根本想不到自己声势浩大,对面那么点人居然还敢冲过来跟他野战。



江东方面的战后总结也证实了这一点,张辽突然就从城里窜出来了,诸将全都没想到!孙策时候的的老将陈武还被张辽给弄死了,宋谦、徐盛的部曲吓得开始乱跑,被潘璋砍死俩才都喊回来!(合肥之役,张辽奄至,诸将不备,陈武斗死,宋谦、徐盛皆披走,璋身次在后,便驰进,横马斩谦、盛兵走者二人,兵皆还战)


张辽如恐怖片里的鬼一样突然出现,宰了数十人,杀了两大将,喊着“我乃雁门张文远!谁来与我决一死战!”(辽被甲持戟,先登陷陈,杀数十人,斩二大将,大呼自名)


战况太突然了,徐盛很快又被捅了,兵器都打没了,贺齐的中军顶住了张辽才给徐将军把家伙捡回来。(徐盛被创失矛,齐中兵拒击,得盛所失)


张辽此战的目的是啥呢?


要复制二爷的白马奇迹,再夺他山西老乡的三国第一勇烈之名!


当年二爷万马从中突进颜良司令部!张辽作为现场先登军是亲眼看着自己这老乡是咋建功的!


原来还有趁乱钻空当直插敌军司令部这么骚的操作!


18年了,虽然我已不再年轻,但是我还有颗滚烫的心!十万你给我拿命来!


张辽如二爷一样,在江东诸将的懵圈下一路左右穿插竟然冲到了孙权司令部!这就要复制二爷的奇迹!(冲垒入至权麾下)


眼瞅张辽马上就要荣膺中国历史第一勇烈!十万人阵中捅死敌国一把!


孙权同志此时已经吓傻了!手都不知往哪放了!赶紧往高处跑!抓了把大戟自我保护!(权大惊,不知所为,走登高冢,以长戟自守)


保镖们随后赶紧挡在前面堵住张辽。


张辽怒吼:孙仲谋!你特么给我下来!老子非特么捅死你!(辽叱权下战)


孙权冷笑,纹丝不动,尽在我掌握中!(权不敢动)


孙权渐渐从大脑空白中回过神来,发现张辽就他娘的几百人!深深感到自己即将名垂千古了!于是调集各路部曲围住张辽!(望见辽所将众少,乃聚围辽数重)


不能让一个人活着出去!一千八百年后会有人喊我孙十万的!


张辽随后看到孙权急眼了,紧急调转枪头突围而出!(辽急击围开,将麾下数十人得出)



如入无人之境啊!


还有几百人被吴军围在里面,同志们说:将军不要我们了吗?昨天吃肉时说好做兄弟呢!(余众号呼曰:“将军弃我乎?)


山西汉子最听不得这个!带着几十人又杀入重围,带出来了剩下的兄弟们!(辽复前突围,拨出余众)


此时此刻,孙权的十万人已经彻底没气了!(权人马皆披靡,无敢当者···吴人夺气)


张辽这八百人在十万人中溜达了多长时间呢?


一上午!(自旦战至日中)



此战过后,吴军直到回到了大营中,同志们才不哆嗦了!(乃还修守备,众心遂安)


此战之后,合肥整整一代兵的国防安全打出来了!


亲临现场的江东十万大军亲眼看到了可遇不可求的历史级别勇烈表现!


这是一帮什么妖怪啊!山西话吼起来咋这么吓人呢!


其实要是十万人摆好阵型后再打,就算张辽带着八百个泰森也很打出这效果的。


他们并不知道这是极其罕见的表现,这是张辽凶猛,特种选拔,阵型未整,诸将不备等很多环节凑到一起才能发生的极小概率事件!


但是,自此在他们眼中,北军是魔鬼,是八百人就能冲死十万人的人均魔鬼!


尤其是山西人!太可怕了!


当年听说山西关云长在白马万军丛中捅死颜良,一直以为是传说,今天看见活的了!


随后孙权十万人在合肥又聚餐了十多天,找个茬赶紧命令撤军了。(权守合肥十余日,城不可拨,撤军还)


十万人终于能离开这个噩梦般的战场了!


孙权此时已经感觉到未来会“仲谋大名垂宇宙”了,于是与江东四猛将共驻逍遥津给将士们玩把殿后,要给自己的英勇找回一些面子!要让吴军将士们也知道自己家的领导也是也很猛的!(兵皆就路,权与诸将在逍遥津北)


他向老炮儿曹操的黄河边作死致敬,也玩把叉腰!


但是孙权也并非曹老板那种一百来人就敢叉腰的瞎浪,这孩子自出道就一直是很谨慎的,他留下了自己最精锐的特种兵千余人,以及吕蒙、蒋钦、凌统、甘宁四虎将的私兵,拢共也得几千人!(军旅皆已引出,唯车下虎士千馀人,并吕蒙、蒋钦、凌统及宁,从权逍遥津北)


这几千人基本相当于江东的兵尖子了!


他认为,这回既挽回军心了,也高调秀勇敢了。


结果有多大脸,现多大眼。


孙权这个玩票的造型,让张辽在城头发现了!



张辽感觉到自己成为中国第一勇烈的机会又来了!


迅速带着队伍就杀过来了!(张辽觇望知之,即将步骑奄至)


然后呢,顺利就把孙权给围了!


不得不说魏军的战斗力是真猛!


张辽这些年能叱咤风云手上确实是有真东西的!部曲的战斗力极强,十多天前八百突十万,现在打你几千人简直不要太好打!


甘宁、吕蒙、蒋钦开始和张辽力战,江东三将挡住了张辽,由凌统同志负责带领导先走。


凌统将孙权从围中带出来后又杀回去阻击敌军,基本杀成光杆司令的时候才撤回来。(力战捍敌,凌统率亲近扶权出围,复还与辽战,左右尽死,身亦被创,度权已免,乃还)


但是,孙权逃出包围圈来到逍遥津的时候,发现张辽在围他的时候已经派工程队把桥拆了个一丈多宽没有桥板的大口子。(权乘骏马上津桥,桥南已撤,丈余无板)


就在孙权准备跳水的时候,跟班的谷利(好名字)鼓励他:把马后撤,然后助跑,最后玩命抽!


孙权在斑羚飞渡后得到了“超渡”(史书原文),保住了自己这条命。


此战后,张辽基本奠定五子良将之首,拜征东将军,两年后曹操亲临张辽暴打孙权的战场后叹息良久,深感山西出将品质保障,随后增张辽之兵。


此战过后,孙权彻彻底底的失去了往北方进取的可能。


就算他有那个心,同志们也不会答应了!


此战算是他东吴全体进取派全都上阵了。


吕蒙、蒋钦、陈武、贺齐,这都是孙策时代时就都跟着混的老将了,甘宁船长更是见识过长江全线的秀丽风光,这都有着大量的战斗经验,都是见过大阵仗的!


凌统、潘璋则是孙权亲自培养的年轻虎将。


这一战后,所有人的心气都被打崩了!


凌统逃回来后都被打哭了,因为他多年培养的那三百个兵尖子全都打光了!(统率亲近三百人陷围···统复还战,左右尽死,身亦被创···统痛亲近无反者,悲不自胜)


这相当于他的指挥系统,他的高级军官,一战全打没了。


孙权只能安慰道:兄弟啊!死都死了!你还在,哥还在,你害怕没有兵吗?(权引袂拭之,谓曰:"公绩,亡者已矣,苟使卿在,何患无人?)


哪里是兵的事啊!招三千个新兵跟三百个排长那比得了嘛!


最终的战斗非常惨烈,几乎可以等同于张辽全歼了孙权阵营中的兵尖子集团,基本上高级干部们都是打光了逃回来的,就是孙权本人的逃脱也是非常惊险的!


孙权在断后的时候并没有搞形式主义换上领导服饰,而是顶盔掼甲的和诸将一个扮相,结果战后张辽问俘虏的时候说:我远远看见一个紫胡子将军,大长身子小短腿,射箭还挺准,那人谁啊!(张辽问吴降人:"向有紫髯将军,长上短下,便马善射,是谁?)


降兵说:眼力真好,那是我们爱射虎的大领导啊!


张辽和乐进碰上的时候拍大腿的说:真没想到那小子就是孙权!我要是再使使劲肯定就追死他了!(辽及乐进相遇,言不早知之,急追自得)


战后张辽、乐进、李典三军庆功时全都在叹息!(举军叹恨)


差一点点就中头奖了!


十万啥时候再来呢?家里来信说又看上了邺城一块地,好期待。


此战过后,基本上可以这么说,由于孙权最后的这个骚操作布置,不仅没有挽回军心,还让张辽一个人教育江东诸将全体明白了两件事:


1、野战就是送死!更不要说攻城了!


2、曹操的这波猛将部曲死光之前,北伐是一丁点戏没有的!


五年后,十万同志确实还是打过合肥的,但是······


欢迎关注微信公众号:渤海小吏的封建脉络百战


user avatar   to-myto 网友的相关建议: 
      

暗合国人心态:能贪是一种能力,而清廉是一种迂腐。法治与规则则只是御下的工具——被其束缚之人自然比不上操弄规则的人。


至于说工作能力,一个格格不入的人能身居高位,能力上怎么可能反而不如行贿上去的贪官?但是舆论要这么去引导,只能说现在的社会,普遍认为贪污不可治,只能尽量“为我所用”,一厢情愿罢了。


user avatar   chan-pin-gou-wang-wang 网友的相关建议: 
      

很少有人不基于框架直接写GUI界面啦,我这个回答就从GUI框架反过来推什么语言做GUI合适。(只聊桌面端GUI编程框架)

Qt

几乎是C++领域最流行的跨平台桌面端软件开发框架了,这个框架是两个挪威人在1995年创建的,发展至今可以说历史相当悠久,稳定性也很有保障。很多大公司都在用它做界面比如金山的WPS。

它内置了自绘引擎,也就是说界面上的一个按钮,一个文本框,都是Qt的引擎自己画的,这保证了基于Qt开发的软件界面在不同操作系统上看起来是一模一样的。

它提供了大量的与界面无关但与软件开发息息相关的API,比如、网络、文件系统、剪切板等,而且让这些API在不同的操作系统下都有效,这极大的节省了开发人员的时间。

但它也有一些缺点,比如在处理一些特殊需求上很不方便,比如:目前Qt有没有比较好解决高分屏下缩放显示的方案?Qt没有真正完美的无边框解决方案吗?等,在一些组件的渲染上也会出一些隐藏的较深的问题(QListItem),一旦遇到,就很难解决。

Qt近年来不太专一,qml,qtquick等,搞了很多,而且这些新玩意儿一直不温不火,有些模块做了又废弃了,比如:qt script,搞来搞去,搞的模块繁多且复杂,用起来不是很舒服。

Qt有界面描述语言(XML描述界面),可以通过设计器拖拽空间设计界面,编译期界面描述语言被转义成C++代码,性能上没啥损失。

Qt商业授权不太友好,开发商业应用一定要谨慎,之前听说有公司为此付出了高额的版权费。个人开发者可以免费使用。Qt的免费版本不允许静态链接,会有版权上的限制,但开发者还是可以通过一些特殊的编译方法静态连接Qt的库的。

除了使用C++开发Qt应用外,开发者还可以使用其他语言开发Qt应用,最流行的就是使用Python基于PyQt做Qt应用了,其他语言的绑定不是很成熟,但PyQt仍然有版权的问题。

GTK

GTK是1997年创建的,也非常成熟稳定,是C语言开发的,但有很多语言的绑定,比如官方支持的JavaScript、Rust等,当然用C++语言操作GTK也很方便,它也有自绘引擎(Cairo),也提供了大量系统相关的API,商业授权也非常友好,基于GTK开发商业软件不用担心收到律师函的问题,虽然它是一个跨平台桌面软件,但它似乎只在Linux操作系统领域流行,有非常多的Linux桌面软件都是基于GTK开发的。

这也直接导致GTK的维护者很重视Linux领域的发展,而忽视Windows和Mac领域。这个框架提供的很多API,只在Linux下有,Windows和Mac下没有。这样的API数量众多。甚至在Windows下编译一下GTK的源码都要比Linux下难很多。而且GTK的渲染引擎在Windows下性能表现也不如在Linux下好。

GTK在Windows上也没办法静态连接,它到不是因为版权的问题,而是它依赖MSYS2的一些库,这个库用于在Windows上模拟Linux环境,这也是为什么GTK在Windows上表现不佳的原因之一。

另外,由于GTK是C语言开发的,所以开发风格也很C语言化,这对于部分开发者来说可能觉得繁琐。

wxWidgets

wxWidgets是1992年英国的一个大学教授开创的跨平台GUI软件,也非常成熟稳定,商业授权非常友好。它没有自绘引擎,而是对不同平台下的界面API做了整合和封装,这样开发者在Windows下开发的软件看起来就是Windows窗口风格、Linux开发的软件看起来就是Linux窗口风格,这对于某些软件来说,正是他们想要的,但要想搞一些花哨的特效就没那么容易了。它同样也提供了大量的系统相关的API供开发者使用。

它是C++开发的,所以对C++开发者非常友好,除此之外它还支持静态连接,也就是说开发个应用不用分发给用户一大堆dll,当然Qt也支持静态连接,但是你得自己编译Qt的源码(不是很方便),而且Qt的授权规则也不允许普通开发者这么做。

它会有些小问题,比如我之前提的:wxEVT_NOTIFICATION_MESSAGE_DISMISSED event emit twice,但总体来说还是非常稳的。除了开发的界面比较死板外,没啥大的问题。目前使用这个框架开发软件的人越来越少了。

FLTK

fltk是1998年创建的跨平台开源GUI框架,历史悠久,商业授权友好,而且C++之父也用它,它非常轻量级,支持静态连接,一个简单的应用编译后只有500K左右,非常赞,

它有自己的自绘引擎,没记错的话用的是OpenGL,但它的重绘机制是按区域重绘的,如果组件A所在的区域上存在组件B,那么A组件重绘时,会把B组件的给重回掉,开发者必须自己写代码处理这种情况。想象一下,如果你想实现一个A组件fade out的同时B组件fade in的效果,就会非常麻烦。

FLTK提供的一些组件样式都比较刻板,绘图API也比较少,你想实现一个漂亮一点的圆角按钮(它内置圆角按钮的圆角大小是不能改的),必须自己画,而且还得借助一些非常奇葩的手段才行(如果你想知道,可以联系我)

它是C++开发的,但API不够现代,用起来总体还算舒服的,它有Rust绑定:fltk-rs。它的用户比前面三个都少。它提供了一些与界面无关的操作系统API,但非常少,几乎可以忽略。

Duilib

是2010年国内一个开发者开发的GUI开发框架,因为底层基于DirectUI开发,所以只支持Windows平台,不支持跨平台,开源协议友好,商用没有任何问题(需要附加Lincence文件),国内有很多大厂基于这个技术做桌面端应用,比如网易、腾讯、百度,这个框架是基于C++开发的,对C++开发者友好。但框架本身还有一些问题,比如对高分屏支持不佳、特殊控件绘制上也有一些小问题,除了界面相关的API外,几乎没有提供系统级的API,作者纯粹是用爱发电来开发这个框架,所以更新不是很及时。

相对来说网易基于Duilib开发的分支更完善一些:NIM_Duilib_Framework,添加了高分屏支持、多国语言、整合了多线程处理的支持,但环境搭建相对比较麻烦。如果开发者要用这个框架,一定要用develop分支下的代码,master分支下的代码问题很多,这个框架看上去也是作者一个人努力的成果。

Sciter

Sciter是2006年创建的跨平台闭源GUI框架,足够稳定,商业授权不友好,但个人开发者可以随便用(只能用动态链接库),一旦公司规模超过3人,就得买版权了(有权静态连接)。

它内部封了一个浏览器核心,让开发者使用HTML,CSS,JS来创建界面,但对这个浏览器核心做了大量的精简,不像Electron和NW.js动辄上百兆的体积,它只要6M就够了。当然这也意味着有些浏览器特性它是不支持的,比如CSS3的flex布局,它就不支持(但它提供了自己的flex布局实现方式)。以前它使用自研的一个脚本语言(和JavaScript很像),自从集成了Fabrice Bellard大神的QuickJs之后,就全面支持JavaScript了。它还对一些特殊的场景做了内置的支持,比如渲染大列表。

它使用C++开发,对C++开发者很友好,有Rust、go、Python等语言的绑定,但都是社区提供的,质量堪忧。有很多知名厂商都用这个库做界面,比如360、teamviewer、赛门铁克等。

RmlUi和Sciter很像,可以看成Sciter的替代框架,但RmlUi这个项目有三界作者,一个一个的弃坑不知道新任作者会不会弃坑,目前还不是很成熟,比如我正在尝试帮作者解决的CJK输入法的问题,目前还不推荐大家使用这个框架。

CEF

CEF是2008年创立的,基于Chromium的跨平台GUI框架,稳定且商业授权友好,国内很多大厂都用的CEF:比如微信桌面端、网易云音乐桌面端、QQ桌面端、微信桌面端、MATLAB、FoxMail、OBS Studio,装机量破亿。

由于它几乎封了一个完整的Chromium,所以体积非常大,但支持所有的HTMLCSSJS特性,它几乎不提供任何与操作系统相关的API,创建个托盘图标、读写个文件啥的,都要开发者自己完成,它是C/C++开发完成的,对C++用户非常友好,它有gopythonjava等语言的绑定,但都是社区提供的,质量值得担忧。

它对Chromium封装的很好,避免了开发者直接与Blink、V8、Chromium等复杂的代码打交道,很多功能都有默认实现方式,遵从约定由于配置原则,有经验的C++开发者可以很轻松的驾驭CEF框架。

由于Chromium是版本弟,所以CEF版本发布也非常频繁,很多被标记为稳定的版本,还是会出一些莫名其妙的问题,选一个好的版本非常重要。

与Electron一样,它也是分主进程和渲染进程的,所以开发者要非常娴熟的运用跨进程通信的技术,虽然CEF提供了跨进程相关的API,但复杂度还是有点高的,使用的时候要认真细心。

MAUI

这是微软的跨平台GUI框架,不仅仅支持桌面端,还支持移动端,但官方并不支持Linux的桌面端(黑人问号,感觉与微软近些年向开放、开源的大方针相悖),这个框架新的狠,至今还没发布稳定版。目前还没什么人用。而且不知道将来会不会被微软放弃。

它是.NET平台下的GUI框架,有自绘引擎,对C#开发者很友好,界面依然是用XAML描述的,可能很多人一听到XAML就直接弃坑了。XAML表现力确实弱一些,我觉得WPF没火起来跟XAML有直接关系。

使用这个框架开发桌面应用得封一个.NET框架给用户,当然有了.NET框架应用程序访问一般的系统级API也就不成问题了。

Compose Multiplatform

这是JetBrains搞的跨平台GUI框架,也非常新,前段时间刚刚推出1.0.0版本,但这个版本还不是很稳,至少比Flutter Desktop的第一个稳定版要差很多。同样也几乎没什么人用。

它的自绘引擎用的是Google的skia,这个自绘引擎稳的很,Chrome和Flutter都是用的它,所以排版、绘制、渲染之类的工作不太会出问题。比Java生态圈里的Swing和JavaFx要好很多。

JetBrains的东西当然对Kotlin开发者友好啦,Java生态下的很多东西你都能用,访问系统级API也没啥大问题,同样也得考虑封一个JRE给用户。

flutter-desktop

这是谷歌的跨平台开发框架,开源、免费、文档齐全、投入力度大且持久,同样也新的很,Windows版本刚刚发稳定版,Mac版本还没稳定。

如果你完全没搞过移动端的flutter,想用这个框架开发桌面应用,那么意味着你要学的东西还挺多的。好在dart和flutter入门都不是很难,学习曲线比较平缓。

由于flutter在移动端积累了很多年,所以界面上的一些东西在desktop端都比较稳(skia自绘引擎),与操作系统相关的东西还不成熟,生态也不太好,比如你想订制一下窗口的标题栏,想访问一下注册表这类工作可能得自己想办法。不过它有类似FFI的支持,跟C/C++语言打交道很方便。

开发者直接使用Dart语言描述界面,这会导致众多大括号嵌套在一起的问题,可能很多开发者不习惯。

webview2

这是微软Edge浏览器团队推出的跨平台GUI引擎,是闭源的,目前只支持Windows,对C#和C++开发者友好,如果使用C#开发,就得考虑把.NET运行时分发给用户,如果使用C++开发,就得自己处理系统级API的操作,webview2本身是不对系统级API做封装的。

这个框架推出也没多久,很多API也还不稳定,更值得担忧的是这个团队,他们前不久刚刚放弃了自己的浏览器核心转而使用Chromium浏览器核心,不知道他们会不会放弃webview2这个框架。

它的优势是可以复用系统当中已存在的webview2二进制资源,也就是说它虽然封了一个Chromium浏览器核心,但如果你可以确定客户电脑已经存在了基于webview2开发的应用,你的安装包体积可以足够小。

它也是多进程架构,甚至比Electron还要多一个进程(为了复用二进制资源),资源占用比较多。

webview

这个库使用操作系统的浏览器引擎来达到减小安装包体积的问题,Mac上使用Cocoa/WebKit,Linux上使用gtk-webkit2,Windows 10上使用Edge(也就是上一个小节里提到的webview2),它应该是不支持Win7的。开发者要考虑前端代码浏览器兼容的问题。

开源且免费(MIT)有go、Rust、Python等语言的绑定,不过官方支持的是go语言,C和C++,操作浏览器的API非常少,不支持自定义scheme,更别提系统级API了。

TAURI

采用的技术方案与webview类似,所以安装包也足够小,非常新,还没发布稳定版,开源免费。webview框架碰到的问题TAURI都有,

使用Rust开发,将来会支持Deno,作者说将来会直接使用webview的技术来支持多平台,

NW.js

NW.js最早把Chromium和Node绑定到一起,用前端知识做界面,用Node技术访问操作系统,最早叫node-webkit,在2012年创建。NW.js基于MIT开源,可以无忧使用。没记错的话,微信小程序开发工具是用NW.js开发的。作者是英特尔的员工,英特尔的一些工具也是用NW.js开发的。

除了Chromium和Node的能力外,NW.js自己也封装了一些系统级API,类似托盘图标、剪切板、系统菜单这种,但数量明显比Electron要少。

NW.js可以在多个窗口间共享同一个Node.js上下文,而且还可以通过配置让Node的上下文和Dom上下文混合,这给开发者带来了很多便利。心智负担减少很多。不像Electron要时刻想着进程间通信,哪些模块当前进程不能用这类问题。

NW.js虽然起步早,但奈何没有杀手级应用,周边的生态和工具链没发展起来。用的人越来越少,维护的投入也不如Electron大,再加上Chromium更新非常频繁,导致NW.js的有些API也不是很稳,恶性循环加剧。

Electron

Electron的作者曾经在NW.js团队工作过(NW.js项目贡献第二多的人就是Electron的作者),后来辗转到了github公司,于2013年在创建了Electron,也是个开源免费的产品。由于VSCode、slak等国际型产品都选择了Electron,所以从者甚众,生态和周边工具链也完善的多。虽然开发方式上有点蹩脚的地方(多进程架构及模块归属进程),但瑕不掩瑜。

Electron每创建一个窗口都会多一个进程,这使Electron创建窗口的效率不高(秒级),NW.js有复用进程的机制,即使新窗口加载完全不同域的页面也不会创建新的进程(毫秒级)。这也是为什么很多基于Electron开发的应用都使用Dom模拟弹窗的原因。

无论是浏览器相关的API,还是系统级API,Electron提供的都比NW.js多。

--------2022-02-25更新--------

这些框架除了对开发者使用的编程语言有要求外,还有一个重要的差异就是有没有独立的界面描述语言(也就是UI DSL),这非常重要,涉及到一个框架表达业务的重要能力。

类似XAML、qt的ui文件、HTML+CSS都是界面描述语言,下面这种也可以算界面描述语言,但我感觉它不够纯粹(flutter、qml和Compose Multiplatform都是类似这样的):

       panel {   row {     checkBox(...)     row {       textField(...) // indented relatively to the checkbox above     }   } }     

但无论如何,显而易见的是,没有任何一个界面描述语言能比的上HTML+CSS组合。想想看:HTML里各种花里胡哨的语义化标签和Dom操作技巧,CSS里的布局方式、伪元素、动画描述...,对比之下你就会觉得XAML、qml直流都是弟弟。

除此之外,一个优秀的GUI框架还有两个重要的需求,这里我简单聊聊:

强大的事件处理机制必不可少。

想想这些:鼠标事件、键盘事件、触屏事件...界面加载完成、媒体播放结束、元素大小改变...网络状态变更、数据段传输完成...另外,还得处理事件冒泡、事件捕获、事件分发吧...

qt的开发者曾经说过qt的SIGNAL和SLOT机制是有性能问题的(但影响很小)

强大的异步处理机制必不可少

你不能在用户处理业务逻辑的时候,让界面渲染工作阻塞,这就需要一个强大的异步处理机制,让开发者自己去开线程去完成业务处理,无疑是又麻烦又会增加开发者的心智负担。

我记得很早之前在C# WinForm应用中,点击一个按钮,如果不用Invoke执行逻辑处理的话,界面就会卡死。

这么看来,在你的GUI应用里包一个浏览器核心还是挺有必要的,这样你就可以用HTML+CSS强大的能力来描述你的界面,用JavaScript强大的事件处理机制和异步处理机制来完成用户交互。

可能有人会想,这会带来很多问题呀,比如应用体积会增大的100M以上、会占用更多的CPU和内存资源,还会更耗电等等。

确实,目前来看这些都是问题,但仔细想想,这些问题应该不会持续太久,网络会变的更快,用户的磁盘和内存会变得更大,CPU处理能力也会更好,耗电的问题当然会持续存在,甚至会愈发耗电,但电的供应会持续增长呀。

web相关的技术之所以胜出,并不是这些技术的设计者有多厉害,而是这20多年间,有大量的人涌入了这个领域,前赴后继的推动着它前进。其他任何一个领域都没有这么热火朝天的景象。推荐大家看看我的另一个回答:

------------2022-02-27更新----------

用Web相关的技术做GUI应用的优势是,让开发者可以把大部分精力投注在业务本身上,而不是处理与GUI相关的技术细节。

实际上所有的框架,都应该是这个目的,比如ORM框架,目的应该是让开发者把大部分精力投注在业务与数据之间的关系上,而不是管理关系型数据的技术细节。

当然这肯定是有损耗的,在性能、稳定性、资源消耗上,都会有所削减。而且,因为有框架的存在,开发者很难深入到框架内部做一些特殊的事情。比如,我们该如何修改HTML的排版渲染机制呢?

所以,有些框架注重性能,有些框架注重开发效率,开发者做选择题的时候也应该衡量这两个问题,你的应用对哪些方面要求多一些呢?

你如果要开发一个视频监控系统,没多少业务功能,但要24小时不间断的记录视频数据,随时调取某一段时间的视频数据,这种应用可能Qt是最好的选择。

你如果要开发一个类似飞书的团队协作应用,业务逻辑复杂的一塌糊涂,而且要在短时间内满足更多用户的需求,占领更多的市场,那么Electron可能是更好的选择(目前飞书已经不再用Electron了,他们自己编译了Chromium核心,自己封了一个类似CEF的框架)

目前微软、谷歌、JetBrains等公司都非常重视桌面端开发框架,也在推各自的框架产品,说明桌面应用领域并没有没落,反而应该更加受到重视。

虽然移动端应用大行其道,但我认为,只有生活、社交、轻娱乐等方向上的应用在移动端有较好的发展。文档协作、大型游戏、开发工具、专业管控软件等应用还是在PC端发展的更好一些,毕竟PC端有更多样的输入输出设备、更广阔的显示和交互的空间,更强的存储和计算能力。

希望桌面软件开发领域的从业者都能获得幸福。

满屏荒唐言,一把辛酸泪,一把辛酸泪,一把辛酸泪...





        

相关话题

  为了避免第三次世界大战的爆发,我们普通人可以做些什么? 
  能不能推荐一些核战争的游戏? 
  美国参众两院一致通过《乌克兰战时租借法案》,140亿美元超级军援开始了,这一关是不是三战前奏? 
  现在的德国有能力发动第三次世界大战吗? 
  90后有经历第三次世界大战的可能性吗? 
  此次俄罗斯与乌克兰之间的战争,会不会演变成第三次世界大战? 
  如果现在爆发战争,你会为国而战吗? 
  假如战争在今天爆发,你会选择上战场吗?为什么? 
  第三次世界大战是否有可能是阶级战争? 
  如果发生了世界大战,那么战争法到底还有没有用? 

前一个讨论
若“乌克兰宣布中立,不谋求加入北约。俄军实控顿卢,退出除顿卢克里米亚以外所有乌克兰领土。”算谁胜利?
下一个讨论
你会瞧不起你身边生化环材专业的朋友吗?





© 2024-09-20 - tinynew.org. All Rights Reserved.
© 2024-09-20 - tinynew.org. 保留所有权利