编程语言的优缺点.docx

上传人:b****3 文档编号:4941693 上传时间:2022-12-11 格式:DOCX 页数:24 大小:39.13KB
下载 相关 举报
编程语言的优缺点.docx_第1页
第1页 / 共24页
编程语言的优缺点.docx_第2页
第2页 / 共24页
编程语言的优缺点.docx_第3页
第3页 / 共24页
编程语言的优缺点.docx_第4页
第4页 / 共24页
编程语言的优缺点.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

编程语言的优缺点.docx

《编程语言的优缺点.docx》由会员分享,可在线阅读,更多相关《编程语言的优缺点.docx(24页珍藏版)》请在冰豆网上搜索。

编程语言的优缺点.docx

编程语言的优缺点

你必须懂C。

为哈?

因为出于所有现实的理由,这个世界上你过去,现在,将来会用到的每一台计算机都是一台冯·诺曼机器,而C是一种轻量级的,很有表达力的语法,能很好的展现冯·诺曼机器的能力。

冯·诺曼架构就是你每天都用的计算机的架构的标准:

一个CPU,内存,硬盘,一条总线。

多核计算机并没有带来本质上的变化。

冯·诺曼机是一个很方便,很便宜,上世纪五十年代的实现图灵机的技术,图灵机是执行计算的最知名的抽象模型。

世上还有其他的计算的机器。

比如,Lisp机器,是上世纪50年代对Lisp计算模型的实现。

Lisp模型是基于lambda代数的一种计算语言表示法,后者是与图灵机同构的一种模型。

不像图灵机,lambda代数能被人类读和写。

但是这二者是同等能力的。

它们同样精确的表示了计算机能干什么。

Lisp机现在不是很流行了,除了在跳蚤市场里。

从谁更受欢迎来说,冯·诺曼机器赢了。

还有一些其他的计算机,比如神经网络计算机,译者也不知道怎么翻的计算机(cellularautomata),但是这些都不够大众化,至少现在是这样的。

所以你必须知道C。

还有一个你必须知道C的原因是,Unix是用C写的。

巧的是,Windows也是。

基本上所有的其他操作系统都是用C写的。

因为这些操作系统都是冯·诺曼机的操作系统,你还能用别的吗?

任何跟C很不一样的东西都会跟硬件的实际能力相差太远而导致无法满足性能上的需要,至少对一个操作系统来说是这样—至少在上个世纪是这样,碰巧这些系统都是上个世纪的。

你还应该知道Lisp。

你不必用它来干实际工作,虽然它在很多GNU的软件里都会很用得着。

尤其是,你应该学会Scheme,Lisp的一种小巧化的,纯洁的方言。

GNU的版本叫Guile。

他们在麻省理工和加州伯克利教新学生一到两个学期的Scheme,这些学生都对他们为哈要学这么奇怪的语言抓破脑袋。

实话实说,作为第一门学习的语言,这是一个很烂的选择,第二门也是很烂。

你应该学会它,最终,但不是作为第一门或第二门语言。

这是很难的哦。

这是很大的一步。

学会怎么用Lisp写出像C语言的程序是不够的,那没有意义。

C和Lisp一个就像红外线,一个就像紫外线,它们分布在光谱的最两端。

它俩一个牛逼的地方刚好是另一个傻逼了的地方。

如果说,C是最靠近计算机是如何工作的语言模型,Lisp就是最能反映计算(注意,这里没有了“机”字,计算机和计算是很不同的!

译者注)是如何工作的模型。

你不需要懂很多Lisp,真的。

紧咬Scheme就哦了,因为它是最简单最干净的。

其他的Lisp已经发展成了很大,很复杂(很好很强大?

译者:

-)的编程环境,就像C++和Java,要有很多库啊,工具啊等等之类。

那些,你不需要知道。

但是你应该能用Scheme写程序。

如果你能够做出TheLittleSchemer和TheSeasonedSchemer这两本书里的所有习题,你懂得就够多了,我认为。

但是对于你天天要做的编程工作,你应该基于以下条款选择你的语言:

库,文档,工具支持,操作系统集成,资源,和一堆其他的东西。

这些条款跟计算机如何工作关系很小,但是跟人类如何工作关系甚大。

人们还在用很直白的C语言写东西。

很多东西。

你应该懂C!

C++

C++是地球上最蠢的语言,即使是从蠢这个字的真正意义上出发。

C++很无厘头。

它不知道自己是什么东西。

它没有自省(introspective,面向对象里的一个概念,译者注)。

C也没有,但是C不是“面向对象”的,而面向对象很大程度上是关于要让你的程序知道它自己。

对象就像演员。

所以面向对象语言应该有运行时的自省机制,知道自己是个什么类的对象。

C++不是这样的,真的,你不会那样用它。

关于C:

写一个C的编译器是那么的简单,以至于你可以用C写一个关于C的工具,用起来就像是有内省机制。

而C++呢,基本上是不可解析的,所以如果你想写一个很牛逼的工具用来——比如,告诉你你的虚函数的原型,或者帮你重构你的代码,你将不得不依赖别人的工具集,因为你自己在除非脑子进屎的情况下是根本不会去写一个C++的解析器的。

而市面上所有的C++的解析器都很傻逼。

C++很蠢,你不能用蠢语言创造一个好系统。

语言决定世界,蠢语言决定蠢世界。

所有的计算都基于抽象。

你用低级的东西创造出高级的东西。

但是你不能用分子创造出一个城市。

尝试使用太低级别的抽象只会给你带来麻烦。

我们就惹上麻烦了(是指亚马逊的员工,还是所有C++的程序员?

我也不知道,译者注)。

理智的情况下,你用C写的最大的东东就是一个操作系统。

而操作系统其实不是很大的,真的。

它们看起来很大,但那是因为它们有很多应用软件,操作系统本身的内核是蛮小的。

你用C++能写的最大的东东是…也是操作系统。

好吧,或许稍微再大点儿。

让我们说,再大三倍吧。

或者10倍吧。

但是操作系统内核最多也就,那啥,一百万行代码?

所以我说你能用C++写的最大的系统大概也就是一千万行代码吧,再大的话就开始不行了,这玩意儿你没法控制了,就像恐怖片里的…

我说的一千万行是指如果你那时候还能让你的系统编译通过的话。

我们(在亚马逊,译者注)有五千万行C++代码。

不,现在还要更多了。

我已经不知道有多少行了。

上个圣诞节是五千万行,那是九个月前,而它以每季度八百万行的规模增长。

增长率本身也增长,妈呀。

我们想在这个系统里干点啥好像要一万年。

一个亚马逊工程师有一次这样描述我们的代码库:

“一座很大的屎山,你见过的最大的山,每次你想修正一个bug,你的工作就是爬到屎山的正中心去。

伙计们,那哥们可是在四年前说的这话。

他现在已经到更环保绿色的牧场上去了。

真是太可惜了,他可是个实实在在的高手啊。

这都是C++的错。

别跟我争论。

就是的。

我们用的是世上最蠢的语言。

这简直有点老板级的蠢,你说呢?

(译者注,meta在计算机术语里通常表示更高一个层次,比如,meta-language,比普通的language高一个层次,意思是关于语言的语言。

哲学里应该会经常用到这个词。

我不懂哲学,但是我觉得老板们总是比我们高一级,所以meta-dump我就翻译成老板级的蠢喽。

-)

说了以上这些难听的话,话得说回来了。

用C++写出漂亮的代码显然是可以的,我的意思是说,这样的代码应该大部分还是C,偶尔很有品味的,很有节制的用一点C++。

但是这种代码几乎从来不会被写出来。

C++是个很好玩的游乐场,而如果你把它玩儿得门儿清的话你会觉得自己特牛,所以你总是被诱惑把你知道的所有的东西都用上。

但是那是很难做好的,因为从一开始这个语言就太狗屎了,最终,你会弄得一塌糊涂,即使你很能干。

我知道,我说的都是异端邪说,该被钉到十字架上的。

随便吧。

我在大学里的时候老喜欢C++了,因为我那时候就只知道这一门语言。

当我听到我的语言教授,CraigChambers,绝对的厌憎C++,我想:

“为啥呢?

我觉得它挺好的啊”。

而当我听到STL(标准模板库)的发明者被采访时说他恨OOP(面向对象编程)时,我更是认为他肯定是磕药了。

怎么会有人恨OOP呢,而这个人竟然还是STL的发明者?

亲不敬,熟生厌(语出圣经,译者注)。

说的是在大多数情况下,跟一件事物熟悉了之后你就失去对它的膜拜尊敬了;在计算机语言里情况不是这样的。

光对一门语言熟悉不会导致你看轻这门语言。

你必须成为另一门更优秀的语言的专家(才能让你明白原来那门语言有多么多的问题)。

所以如果你不喜欢我针对C++大放厥词,请你去学另一门语言并成为一个专家(我推荐Lisp),只有那时你才有足够的武器与我争论。

然而,那时你将不会跟我争了。

你上了我的当了。

你也会跟我一样变得不喜欢C++了,你或许会觉得我这个人很恶心,把你骗得不喜欢自己曾经的最爱了。

所以或许你应该把我说的一切都忘了。

C++挺好的其实,真的。

它就是很棒棒(译者注,作者在这里用了ducky,这是一个女性喜欢用的夸某物好的词,近来也为玻璃们喜爱)。

忘了我说的话。

C++不错的。

Lisp

(我打赌这一节会让你觉得惊讶,即使你已经关注我的博客有一阵了[译者注,作者也可能是说,即使你成为亚马逊的员工有一阵了])

亚马逊创业之初,我们有很多明星级的工程师。

我不认识他们所有人,但是我认识几个。

比如?

ShelKaphan,大拿。

GregLinden,大拿。

EricBenson。

即使在他加入亚马逊之前就已经有自己响亮的名气了。

也是大拿。

他们写了Obidos服务器。

是Obidos让亚马逊成功的。

只是后来那些生产大便很拿手的工程师,网页开发者,搞前端的人——这些人因为生产大便很拿手而总是能让经理们满意——只是在后来这些人把Obidos搞糟了。

(他们的大便)把整条河都堵了,打个比方说的话。

但是Obidos是亚马逊最初的成功的一块关键的基石。

这些最早的牛人们在亚马逊神圣的代码库里只允许两种语言:

C和Lisp。

你自己去想吧。

当然,他们所有人都使用Emacs。

靠,EricBenson是XEmacs的作者之一。

这个世界上所有伟大的工程师都在用Emacs[注1]。

那种世界因你而不同级别的伟大。

不是坐在你旁边的格子里的那哥们那种伟大。

也不是Fred,走廊尽头那哥们。

我说的是我们这个行业里最伟大的软件开发者,那些能改变这个工业的面貌的人。

像JamesGosling们(Java语言设计者),DonaldKnuth们(这个人没有听说过的话赶紧改行吧,别搞计算机了),PaulGraham们[注2],JamieZawinski们,EricBenson们。

真正的工程师用Emacs。

你必须很有点聪明才能把Emacs用好,而如果你能成为一个Emacs大师的话它会给你难以置信的牛力。

有机会的话你应该站到PaulNordstrom的肩后看看他是怎么工作的,如果你不相信我的话。

对那些一辈子都在用烂VisualStudio之类的集成开发环境的人来说,一定会大开眼界的。

Emacs是那种你可以用100年的编辑器。

Shel,Eric,Greg,和其他像他们那样的人,我没有足够幸运能跟他们直接一起工作:

他们禁止在这里使用C++,他们禁止使用Perl(或者Java,为完整起见)。

他们是明白人。

现在我们都在用C++,Java和Perl了,所有的代码都用这些语言。

我们的前辈们已经到更环保的牧场上去了(指没有大便的牧场,译者注)。

Shel用C写了Mailman,客服部的人把它用Lisp封装了一下。

Emacs-Lisp。

你不需要知道Mailman是什么东西。

除非你是个Amazon的老员工,或许不是搞技术的,而且你曾经不得不让客户哈皮(只有在这种情况下你才需要知道Mailman,译者注)。

不是间接的,因为你用C++写的一个狗屎功能跑不起来了,让客户很生气,于是你不得不去搞定它以恢复客户的哈皮度。

不,我是说直接的,意思是,你必须跟他们聊。

我们可爱的,不识字的,呱呱其谈的,心地善良的,充满希望的,困惑的,能帮点小忙的,愤怒的,哈皮的客户们,真正的客户们,那些从咱们这里买东西的人,我们的客户们。

(如果你必须跟他们打交道的话,)那你就会知道Mailman这个东西。

Mailman是客服部的客户电子邮件处理软件,我们用了它有…四,五年?

反正是很长时间。

它是用Emacs写的,所有人都爱死它了。

人们现在还很爱它。

直到今天,我依旧不得不听我们一些非技术员工跟我长篇大论的叨叨他们是多么的怀念Mailman。

我可绝不是满嘴喷粪。

上个圣诞节我参加了一个Amazon的派对,一个我不知道自己怎么会被邀请的派对,里面全是些西装笔挺的商务人士,谁都长得比我帅,比我光鲜。

以及一些我在公司里曾经打过交道的人(这句不知道怎么译)。

四个美女认出了我是在客服部里干的,把我包围了,跟我说了十五分钟她们是多么的怀念Mailman和Emacs,而现在的亚马逊(我们用JSP花了好多年准备换掉Mailman的那一套软件)是怎么的不能满足她们,让她们觉得跟以前一样爽。

这一切都太梦幻了,我觉得她们可能是喝多了。

Shel是个天才。

Emacs是天才。

连非技术人员都爱Emacs。

我现在就是在Emacs里打这些文字。

我绝不情愿在任何其他地方打字。

这不只是关于让你的效率得到飞跃,通过那些地球上其他地方找不到的快捷键和文本编辑功能。

我每分钟打一百三到一百四十个英文单词,在Emacs里,当我在写没有格式要求的文本的时候。

我测过这个时间速度。

自己写了一个测打字速度的Emacs应用。

但我想跟你说的不只是这个。

Emacs有的是一种你叫不出名字来的品质。

我们现在不用Mailman了。

那是因为我们有一种叫得出名字的品质——就是,烂。

我们很烂。

我们(当时)找不到Emacs-Lisp足够牛的人把Mailman继续搞下去。

今天这应该不难了;亚马逊现在到处都是EmacsLisp的黑客。

但是在那时候,客服部的人没法从别人那里得到帮助。

于是他们就用他们当时手头有的资源去搞这件事。

他们当时没有足够多的Emacs-Lisp的人。

有一段时间,他们甚至找来BobGlickstein当合同工,那个给O’Reilly写了那本GnuEmacs扩展的书的家伙,坐在一个小办公室里给Emacs写Mailman的扩展。

客服应用部是Amazon的第一个两块比萨饼的团队(代表团队人数的增加,编者注)。

这个团队是完全自立的。

不管是那时还是现在。

没人跟他们说话,没人帮他们。

没有枪,没有炮,他们自己造。

他们没有网页工程师,没有支持工程师。

屁也没有。

有的只是一堆骨灰级的工程师和一个能带新人的文化。

这就是他们需要的一切了。

但他们最终不得不让Mailman光荣退休。

妈哎。

而我呢今天还听到人们说他们是多么的怀念它。

甚至在派对上。

我想今天按人头比例来说,客服部仍然拥有比亚马逊任何其他团队更多的Lisp黑客。

可能他们用到Lisp的机会不多了,但是EricRaymond说过,即使你很少用Lisp写程序,学习Lisp会是意义深远的一个经历,能让你下辈子都成为一个更好的工程师。

卡尔,宗教现在已经不是大众的精神鸦片了。

现在鸦片是集成开发环境了。

(卡尔·马克思。

这个人不知道的话应该打屁屁)。

Java

Java是过去的10年中计算行业里发生过的最好的同时也是最坏的事。

一方面,Java把你从C++编程的很多枯燥易错的细节中解救出来了。

没有数组越界了,没有coredump了。

抛出来的异常能让你精确定位到出错的那一行代码,而且99%的时候都是正确的那一行出错了的代码。

对象们在需要的时候能智能地把它们自己打印出来。

等等等等。

另一方面,除了是一种语言,一个虚拟机,一个巨无霸的类库,一个安全模型,一个可移植的字节码格式,Java还是一个宗教。

邪教。

所以你不能太相信对它太虔诚的人。

想要招一个好的Java工程师是一项很有技术挑战的活。

但是总的来说,Java是软件工程史上的一大进步。

从C++到Java不只是语法上的改变。

这是一种需要一段时间去好好体会的一种震撼性的世界观的转变。

这有点像突然你被配了一个执行助理。

你知道老总们为什么总是好像有时间去开会,总是知道公司现在运行的情况,总是写出很酷酷的文档吗?

老总们常常忘记其实他们不是一个人在战斗,他们都是两个全职的人,他们和他们的执行助理们。

有一个执行助理把你从琐事中解救出来让你有时间去思考那些真的需要你去解决的问题;没有的话你将不得不花一半的时间在那些无聊的世俗的事情上。

切换到Java编程语言就把你变成了两个程序员——一个处理那些你不需要关心的东西,另一个可以集中精力在问题本身上。

这是一个很震人的改变,一个你应该很快就能习惯能喜欢上的改变。

就像JamieZawinski(Netscape牛人,开发Mozilla浏览器,好像学历是高中毕业?

)在他著名的“Java真烂(javasucks)”那篇文章里说的:

“先说那些好东西:

Java没有free()函数。

我必须一开始就承认,其他的东西都没什么了不起。

(没有free)是能让我原谅其他所有东西的特性,不管其他东西有多烂。

讲完这一点后,我的文章里其他一切几乎都完全没有重要性了。

Jamie的文章写在1997年,按Java年来算的话是很早以前了,跟他写这篇文章时比,Java已经有很大的改善;一些他抱怨的东西甚至已经被fix了。

但是大多数还是没有被fix。

Java作为一门语言还是有点烂。

但就如Jamie指出的,Java“是今天为止最好的语言。

我的意思是说,它是今天市面上那些烂得底儿掉地一堆语言比起来有那么一点能被我接受。

真的,你应该读读他那篇文章。

Java几乎每一方面都很好,除了它的语言本身,而这是JWZ抱怨的主要对象。

但那是一个很大的抱怨。

再好的库也救不了一个烂语言。

相信我:

你可能比我知道多得多的东西,但是我知道好兵救不了烂将。

在Geoworks搞了五年汇编语言都会了我这个道理。

跟C++比,Java作为一个语言还过得去。

好吧,别扯了,Java要好很多。

因为它有(内建)的字符串。

哥们,你说一个没有内建的字符串的语言是人用的吗。

但是Java跟C++比少了一些好东西,比如(函数调用时)传引用,栈上的对象,typedef,宏,以及运算符重载。

一些时不时地会很称手的东西。

哦,还有多重继承,我现在老了,反而挺欣赏了的多重继承。

如果你认为我这个观点僵硬不灵活的家伙是多态教义很好的反例的话,我倒是可以给你举几个为什么你需要多态继承的好例子,或者至少像Ruby那样的mixin或者自动的派遣。

下次问问我白龙马的事情。

今天我要告诉你为什么Java的interface是个烂货。

几年前Gosling自己都说,如果一切都能重来的话,他不会搞出个interface的概念。

但是那正是Java的问题。

当James说出那句话的时候,人们被雷到了。

我甚至能感觉到那股雷劲儿,能感觉到Sun公司市场部和法务部的鸟人是多么想把James灭口,然后告诉大家他没那么说过。

Java的问题就是人们都被那帮人搞的广告效应蒙住了眼。

C++,Perl,任何流行语言都有这个问题。

这是很严重的,因为如果没有一些说大话吹牛逼的广告,一个语言是不会流行起来的。

所以如果一个语言的设计者说他的语言没有被设计得很完美的话,就是赶紧用麻醉枪射击这胡说八道的家伙并关闭会议的时候了。

语言们需要放点儿卫星才能活,我只希望人们不要被卫星耀瞎了眼。

我学了面向对象编程,我自己也对此大吹大擂。

当我加入亚马逊时,我不能告诉你我有什么智慧或者经验,但我可以给你背诵出所有关于OOP的魔咒。

多重继承是邪恶的,因为大家都这么说;运算符重载是邪恶的,诸如此类。

我甚至有点模糊地知道为什么是邪恶的,但实际上不知道。

后来我明白了,这些都不邪恶,不是烂玩意儿,烂的是开发者,是我。

我现在还是烂,但是希望每年都不烂一点起来。

上礼拜我碰到一个来面试的,他告诉我多继是邪恶的,因为,比如,你可以从头,胳膊,腿,躯干多重继承出一个人来。

他既是对的,又是错的。

那样的多继情形当然邪恶,但那都是因为他自己太邪恶了。

那样继承出来的“东西”远远就能看见有多蠢,如果他还把这玩意儿弄进门来那就更邪恶了。

不良开发者,占了这世上开发者的大多数,他们能用你扔给他们随便什么语言写出不良的代码。

说了这些,还是得说回来,多继不是请客吃饭那么轻松的事儿;mixin看起来是更好的解决方案,但是还没人完美的解决这个问题。

但我还是认为Java比C++好,即使它没有多继。

因为我知道不管我的出发点是多么好,某一天我还是会被一堆不懂怎么写好代码的人包围,让他们用Java比用C++会带来更少的伤害。

此外,Java除了语言本身外还有老多其他的重要有用的东西。

且Java语言本身也在进化,虽然像冰川一样慢,所以我们还是能看到希望。

Java正是我们应该在亚马逊推荐使用的语言。

你就是得小心点儿,因为和其他任何语言一样,你能很容易找出一堆人,他们很懂一门语言及其编程环境,但对品味,计算或者其他任何重要的东西却一无所知。

当你有怀疑时,还是雇那种会好几门语言的Java程序员,那种厌憎J2EE/EJB之类松松跨跨的所谓框架的,那种使用Emacs的。

这都是一些实战经验。

Perl

Perl,怎么说呢?

Perl是个老朋友。

老老朋友。

我开始写Perl代码的时候,可能是1995年。

而它为我很好的服务了差不多10年的时间。

它就像你骑了十万二十万英里的老自行车,你心里永远有一块地方装着它,虽然现在你已经换了一辆更加现代化的只有五磅重的自行车,而且这一辆也不像老的那辆顶得你屁眼疼了。

Perl受欢迎原因有仨:

用Perl你很快就能搞定你的问题。

而这是最终的衡量标准。

Perl有世上最好的市场推广。

你可以写一本介绍他们市场推广有多绝的书。

Sun公司砸大笔钱给Java推市场,Perl在受欢迎程度来说能跟Java齐头并进,但Perl纯粹是依靠LarryWall和他那帮哥们的三寸不烂之舌做市场。

哈佛商学院的人应该去研究Perl的市场是怎么做出来的。

真的让人瞠目结舌。

直到差不多,呃,现在,Perl没有真正的竞争者。

有比Perl“好”的语言。

操,有很多比Perl好的语言,如果你定义“好”为“不是给疯子用的”的话。

Lisp,Smalltalk,Python,妈呀,我可能可以列出二三十种比Perl“好”的语言。

从这些语言不像这个夏天在台湾街头爆了肚皮的抹香鲸这个角度来说。

鲸鱼肠子到处都是,汽车上,机车上,行人身上。

这就是Perl。

让人着迷,真的。

但是Perl有很多很多好的特性,直到最近,都是其他语言没有的。

它们弥补了Perl肠子在外的不足。

你可以从爆了肚皮的鲸鱼可以做很多有用的东西出来,比如香水。

这很有用。

Perl也是这样。

当其他的那些语言(尤其是Lisp和Smalltalk)都想假装操作系统并不存在,列表(Lisp的)和对象(Smalltalk的)就是把屎搞出来的唯一存在,Perl却走了截然相反的路子。

Larry说:

Unix和字符串是搞出屎来的唯一存在。

对很多任务来说,他绝对是正确的。

所以Perl绝对是Unix系统管理和字符串处理的史上最强语言,除了一个,刚出来的一个,从哥斯拉(电影哥斯拉看过没)之地出来的一个。

我一会儿会讲到那一个。

可惜,Larry太太太太在意Unix系统管理和字符串处理以致他压根忘了列表和对象,等他明白过来想改正的时候已经晚了。

实际上,在Perl早期的…好吧,对鲸鱼肠子我实在不想用“设计”这个词,就说生命周期中吧,他犯的几个关键错误让把列表和对象加进来变得如此尴尬,以致Perl已经进化成一个真正的RubeGoldberg机器,至少当你想在Perl里用列表和对象的时候。

(RubeGoldberg是一漫画家,常画一些很复杂的机器,但只完成简单的工作,比如一个小球滚过很多关卡,最后把门打开。

译者注)。

列表和对象也他妈的是很重要的,Larry!

(farging应该是作者不想说fucking那么直白,译者注)

Perl没法表达列表因为Larry一早犯了一个悲剧性的愚蠢的错误,把列表全抹平。

于是(1,2,(3,4))魔术般地变成(1,2,3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1