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



批判易语言的人是否用过这门语言,批判它的原因又是什么? 第1页

  

user avatar   leng-zhe 网友的相关建议: 
       @刘然

说易语言”易语言最大的问题,恰恰是因为使用中文关键字和变量名,严重降低了代码可读性“

这个我实在不能同意。

他举得这两个例子,其实并不对应。

中文的案例,明显是为初学者设计的,因此命令/函数名都不厌其烦地进行了清晰的描述。而英文的案例,则相反,而且用的变量名也是超简单。如果我们把这两个翻译一下,其实就变成了这样(知乎会自动删除每行开头的空格,所以大家就将就着看吧):

local_ComparisonArray={12, 34, ....}

CounterLoopHead (GetArrayMemberAmount(local_ComparisonArray), i)

VariableLoopHead (i+1, GetArrayMemberAmount(local_ComparisonArray), 1, j)

IfTrue (local_ComparisonArray[i] > local_ComparisonArray[j])

local_temporary = local_ComparisonArray[i]

local_ComparisonArray[i] = local_ComparisonArray[j]

local_ComparisonArray[j] = local_temporary

VariableLoopTail

CounterLoopTail

对 壬 在 略范围(长(甲)):

对 癸 在 略范围(壬+1,长(甲)):

若 甲【壬】>甲【癸】:

甲【壬】,甲【癸】= 甲【癸】,甲【壬】

这样不就反过来了么?哪个可读性高呢?

所以核心问题并不是说汉语不适合编程,而是愿意在”对初学者友好“和”精简“之间如何平衡。

易语言好还是不好,显然不在于它采取了哪种语言。而在于它大概只适合初学者学习之用,工作上用起来就有些烦琐了,而且用的人比较少,支持度也比较差。


user avatar   liu-ran-67-90 网友的相关建议: 
      

觉得大家都没有说到点上。

易语言最大的问题,恰恰是因为使用中文关键字和变量名,严重降低了代码可读性


人们说,没有用过就没有资格批评,所以我冒着被旁人鄙视的风险试用了一把易语言。我只能说,我真的好累。。。。。。。

由于中文笔画繁多,易语言使用中文书写的程序结构十分难以辨认,感觉整个人被一团字糊了一脸。写的程序越复杂,就越让人有砸机器的冲动。为了让围观者体会一下我的感觉,我举个栗子:

我们看下图(图来自网络)

----

----

这是个简单得不能再简单的冒泡算法,但你们看看,这还是那个简单明了的冒泡吗?

首先,计次循环首 变量循环首,这还能再啰嗦点吗,还有,你这些个循环尾,显示在这里除了干扰我看代码还有别的用吗?吗?

这个程序之所以暂且还能看,很大程度上是因为使用了 i, j 这两个字母,当把越来越多的字符替换成中文后,程序结构将会越来越难以辨认。比如第二行:

       变量循环首 (i + 1, 取数组成员数(局_比较数组), 1, j)     

我们把变量名都换成中文

       变量循环首 (猫 + 1, 取数组成员数(局_比较数组), 1, 狗)      

如果进一步替换数字和运算符

       变量循环首 (猫 加 壹, 取数组成员数(局_比较数组), 壹, 狗)      

你们看,可读性就是这么被毁掉的。

----

我们再看看用python写的同一段程序:

你来告诉我,哪个更容易读?

----

所以并不是程序员不了解它,有优越感,故意要去喷它。实际情况是,他喵的以后要是没人拿枪逼着我我才不会用这么丑的语言写代码,谢谢。

什么?还没理解?

不如你去拿易语言写个红黑树出来感受一下?

最后祝你,身体健康,再见!

----

3.20日补充:

有些朋友依然觉得,使用中文可以方便初学者理解。是嘛,可我觉得理解关键字的意思并不是学习编程的最大障碍。要是连几个关键字都记不住,那为什么一定这么拼还要去编程呢?

答主8岁开始写代码,那时还没有学英语,也并不知道 for 和 if 是什么意思,但我觉得这并没有造成困扰啊。如果有的人觉得自己达不到8岁小朋友的水平,一定要看中文才能看懂,那我觉得易语言其实挺适合你的。

就酱。


user avatar   Ovear 网友的相关建议: 
      

程序员的歧视链在本文体现的淋漓尽致,简直是一场好戏啊。把人类的劣根性体现的如此完美~

也真是不容易的。。另外果然自己思考的人,永远比动手点个赞的人少。

首先我来说一下,高票得主吧。我们分析下lz 的原题目

既然高票得主是搞自然语言编程的,刚好到您的擅长领域,我们来分析下语意吧,本人无能,只能人肉分析了,如有错误,欢迎指出

那些踩易语言的[人] (看) 过[易语言]是怎么[编程]的吗?[易语言] 为什么这么被人 [喷]?

好,第一句的意思也就出来了,人 看过 编程

来让我们看看这些回答回答的都是些什么吧。

好的,再绕回来,高票得主的回复意思就是,易语言不是自然语言编程,所以他被喷。

OK,Well,我承认,易语言不是自然语言编程,但是官方从来没有以他可以使用自然语言编程来作为卖点,按您的意思,现在主流的非自然语言编程都是笑话。

中文这么难的语法,没有一套体系的语法系统,在您的说法下都是随便改改就ok,那么现在市面上的英语类,非自然语言编程都是残废咯,您公司开发的C#也是残废咯。

请允许我用下列图片表示我的心情:

(差评 知乎图片上传了就不会动了。。)

imgup-domain1.stor.sinaapp.com imgup-domain1.stor.sinaapp.com

(关于中文语法问题参见:

汉语对于外国人是很难学的语言吗? - 知乎用户的回答

可以很明显的看出英语语法系统比中文完善,计算机分析处理也完善。中文的各种时代语意乱的很,有时候人都会理解错误,机器呢?)

脱水版:易语言根本就不是一款自然语言编程,怎么可以跟自然语言编程扯到一块呢?

对于那些赞的人,我也想说一句。。你们真的看题了么?

OK,关于易语言,我再来普及下

易语言其实是分为两个

1、易语言 2、易语言.飞扬(开源)

关于易语言,就是lz贴的他写的那个软件了,或者说语法上类vb,类c

易语言.飞扬,就是类似第一张图了,他就是高票得主喷的语言,我不知道是不是第一款尝试中文自然语言编程(无语义分析系统)

但是,他已经(2007-2014)七年没更新过了,可以说,属于基本放弃状态(已开源)。不要说多落后,请跟同时期的语言对比,他已经在尽力模仿了。

引用官方的话,请注意 “类自然语言编程” “类自然语言编程”’(因为很重要,所以要说两遍)

---

友好名称,是对“人”友好的名称,也是EF支持类自然语言编程的具体体现。

EF认为,程序员不应该总是面对冰冷的、抽象的语法。程序员首先是“人”,编程语言理应对“人”友好,对“机器”严格。

通过引入“友好名称”,EF实现了“类自然语言编程”。

友好名称也有“参数”的概念,但它的参数可以出现在友好名称中间的任意位置,参数的顺序也不重要——而不象类方法那样,参数只能顺次放在方法名称的后面(还要用小括号括起来)。

----

请问易语言骗了你们么?就算是飞扬,也没有宣传过 自然语言编程。 难道就不能给国产语言多一点包容么?


除了支持 类自然语言编程 ,飞扬还支持同样的关键字编程,也就是目前大多编程语言一样。

具体白皮书:

“易语言.飞扬”白皮书

作为一款07年的编程语言拥有这些特点,难道就不能表扬一下么?

  • 完全面向对象,跨平台,支持Unicode、多线程,垃圾自动回收,类型反射,静态编译,动态类型装载等等。

  • 方法的多返回值、嵌入方法(内部方法)、匿名嵌入类、类的封装、继承和多态、“动态类型”和“弱类型”(类型推断)

看看啊,这是07年的语言啊无虚拟机啊,跨平台啊!某些特性我跟你说Java到现在都木得。

说真的,如果飞扬还在开发,我一定会去使用他的。

在中国这个大环境之下,盗版成群,敢问使用易语言的人,几个是正版呢?喷易语言的有几个是使用过的?更多的是对他们的鄙视,看到中文,就由内自外的鄙视,国外的月亮就是比国内的圆。

写一个语言的,鄙视另外一个语言的。都说没有国产语言,好不容易出了一个国产的语言,这冷言,那嘲讽的,怪不得易语言公司要倒闭,怪不得都说药丸,怪不得中国就是没自己的语言,啧啧啧啧。

-----------------------------------

好了,再来说说易语言吧,楼下有很多人喷他。

首先作为一个半死不活的商业公司,维护着易语言唯一一个生态圈,也就是官方论坛了。那么为什么没办法形成新的生态圈呢?因为你们都鄙视他啊!走到哪,鄙视到哪,写C,C++的鄙视,写C#(.net framework支持的一系列语言)的鄙视,写Golang的鄙视,写Pascal的鄙视,写Python的鄙视,写Java的鄙视 ,写Delphi的鄙视,几百年前的PowerBuilder也跑来鄙视,连隔壁写Web的PHP也跑来鄙视,八竿子打不着的Asp诈尸复活第一件事也是来鄙视。

OK,再来看看其他回复

首先是这一条

其次就是水平问题。易语言要真的是什么惊天动地的东西,你们在这里咋唬一下也就算了。

我就问一句噢,你见过什么程序是易语言写的,然后还得在大标题写个大大的,本程序由易语言编写,或者来个全屏弹窗,本程序有强力的易语言驱动(官方demo除外)。

所以说,不知道您觉得现在易语言太高调了么?

OK,再来说一说水平问题,水平低下不正说明了易语言的成功么?什么样的人都可以来写,没上过学的人都可以明白,所以导致的程序残次不齐,但是这不正是易语言公司想实现的,低门槛编程么?

然后来说说,什么惊天动地的事情,lz知道易语言为什么被报毒这么惨么?

我来引用下:

易语言那么不入流吗? - 天空的回答
接下来我想谈谈易语言背后的灰色产业链:
易语言发展到大概4.0其功能、函数库、文档、社区逐渐成熟,当时的用户群也应证了作者的初衷,几乎百分之七八十的用户都是从来没接触过编程,由于易语言函数库的强大,他们可能连什么是循环都还没搞懂的情况下,就能依样画葫芦做个mp3播放器或者单击按钮就能弹出个框框什么的,这带给他们极大的成就感
因此,用户数量越来越多,有部分骨灰级用户尝试除了用来满足工作需求或兴趣外,开始尝试开发商业软件,如教育软件管理系统,那个时间段也正是中国互联网野蛮生长的时候,很多人发现基于易语言开发游戏外挂网络工具木马病毒更容易(相对于vb、vc、delphi),也更有利可图,因此采用易语言开发的各种灰色程序呈蔓延趋势,这可苦了杀毒软件厂商,由于易语言编译出的可执行文件大部分二进制数据都是由易语言系统直接提供的库函数所产生(病毒作者也不想造重复的车轮啊!),因此两个不同的易语言程序,其代码二进制相似度非常之高,导致使用易语言开发的合法程序经常被杀毒软件误杀,也让部分正经的开发者备受打击,逐渐放弃或离开易语言。易语言公司为了扭转局面,曾和卡巴斯基等主流杀软协商甚至对薄公堂,也难以挽回灰色软件作者对合法软件作者造成的伤害,包括从技术上使用vc链接器编译成可执行文件、民间高手开发的黑月斩月等编译手段,但仍然难以挽回易语言一步步走入黑暗,哎,可歌可泣!
现在的易语言职业开发者群体,他们正在不分白天黑夜的编程,创造一个又一个的外挂和木马,沿着米特尼克的生财之道,把建设有中国特色的软件产业推向21世纪!
最后:
我估计易语言的作者吴涛(似乎已不在易公司)也没想到易语言最后的结局会是这样吧,不过他最开始的初衷:“让中国更多不会编程的人学会编程”确实实现了!

上面的东西,我都不再重复说了,所以易语言真的不高调,你甚至不会意识到一个软件在是由易语言开发的(现在报毒了除外)。易语言的报毒原理上面也清楚了~就是因为易语言的framework被直接加入进病毒库识别,所以导致的。

我再来举个例子吧,现在很多攻击器,包括百度到的,都是易语言写的。但是请问一下,他们说了这个是用易语言写的么?顶多可能就是由一些特定的错误看出来了,比如说

这款程序,偶尔会报 数组超出下标 很明显易语言

还有这类程序,这个界面布局很熟悉吧,其实他也是易语言写的。

可以看看下面C++编写,可以看到这鄙视链有多深了吧,都不敢说出他用什么语言写的了,还得乱编一个。

这真的算高调么?已经把人家逼到一个由商业公司,强力维护的生态圈中,还紧追不放,说他过于高调,自以为是,就不能给别人一个生路么?

说完高调的事,我再来说一下关于易语言的其他方面。

首先,易语言最初的目的其实是:

易语言的初衷其实不是为了给职业开发者使用的,它是为了让普通用户能够解决自己工作时遇到的小问题作为一款学习编程入门的工具

还是引用上面说到的那个答主的话

这个门槛相对于毫无基础的普通用户,还是太高!可以这样说:使用易语言来学习基础的编程概念与通过C语言来学习其难度是没有任何差别的。从这点来看,易语言并不成功

是的,易语言其实在这一点,官方做的并不成功,很多人也就看到这一点罢了,就开始喷易语言,把易语言喷的一无是处,那么是不是真的易语言就一无是处呢?

不是,他其实还是有一套完善的类库,包括官方的,也包括第三方的。

而且他非常的易用,中文的翻译也非常的精辟,基本上可以做到你一想,用易语言的IDE打出来,下面就有对应的已经实现好的内部函数供你调用,而且参数也用非常简明的方式列了出来。甚至连官方的doc都不用看。什么?还是不会用?不怕,下面的实时提示非常的有帮助。

好吧。。你是一点基础都没有的初学者,不怕,易语言还自带了视频教程,依葫芦画瓢都可以画出来~

当然这还是其一,拥有大而全,又方便的类库。简化了那堆为了标准化而让初学者难以理解的各种API。比如说文件的读写操作,多线程,socket,数据库操作,还有一堆好用的可视化的控件,什么时钟空间,excel控件。

但是为了让没有基础的普通人会编程,这点还远远不够。对的,编程最重要的是思想,不管是面向对象还是什么。易语言公司也想到这点了,他们提供了大量已经在内部实现了的,可高度定制的封装

比如说tcp服务器(不过易语言自带的tcp服务器还有点bug),网截(忘记这个的原理是什么了,好像是lps还是l什么玩意的,希望知道的大神帮忙补充下),各种网路协议封装(ftp bt http smtp等等),甚至更底层的,内存读写,COM口通讯,嵌入汇编(可以使用各种黑科技),各种钩子的简化,当然这也导致了编写hack程序的难度降低,也在一定程度上导致了易语言目前这种尴尬的境地。

我们来看看易语言自带的例子


敢问现在还有哪种语言能提供这么全面,这么有趣例程?

再来看看lib方面,也就是易支持库

还有一些比较全面的模块,我就不贴出来了。

这些就是易语言的类库,专门给小白的类库!这样一个社区,有什么可黑的?为什么还要把它黑的体无完肤?正因为有这么丰富的第三方lib,才能让连编程思想,系统底层api都不了解的初级用户,可以用两三行代码来制作出一些极其酷炫的东西。

当然也正因为这样,让一些初学者过于自大(这是客观存在的),从而让“程序员”笑话。

--------------------------------------

可以说易语言是我编程入门的导师,想起当初学c语言的时候,他的学习曲线过于的陡峭,着实把我吓了一跳,学了一个月,发现自己几乎什么程序都不会写,那种打击。

我都几乎放弃了,再后来我遇到了易语言,几乎不用怎么学习,仅仅是跟着官方的教程走了一遍,我就可以开始写大部分桌面程序,正是因为这样,我对编程重新有兴趣起来了,后来也的确意识到易语言的不足,所以转而去入Java这个深坑了。。现在只会写一些黑框框(见不得人的)程序了。_(:з」∠)_。(桑心),再后来听说c#比易语言还方便,就开始写c#。。后来发现。。还是易语言方便点。。虽然坑多了点。。

所以说我噼里啪啦啰嗦这么多,只是为了给易语言正名而已。并不是想证明易语言没缺点,是的他有缺点,这点是必须得承认的。

2B程序员比工具,但是我不知道,为什么在 zhihu 这种知识型社区里面,还会出现这种情况,比工具比来比去。能解决问题的工具,就是好工具,我一直都是这么看待的。但是程序员的鄙视链真的让我吃惊了,竟然在 zhihu 也重现了。上面一群回复,能优越到这种地步,真的让我不知道说什么好。

zhihu 一直倡导的还原事实的真相也许可能真的要不复存在了,很可惜啊,正是因为这点我才这么喜欢zhihu这个社区的,每次回答都非常认真。但是为什么这里还是有这么多不思考的人呢?看到高票的评论真的让我很心痛,什么“看到轮子哥果断赞”,这类跟风现象层出不穷。。难道 zhihu 也要堕落成跟微博一样,以大v为中心了么?我真的很担心。。

→_→我来学一学zhihu的结尾

利益相关:Java、易语言重度使用者,Golang C#轻度使用者。

目前是易语言盗版用户(捂脸OAQ,穷。。)准备买正版支持。。

喜欢易语言.飞扬,Golang等新奇的语言。不是脑残粉。。不会脑残喷

使用易语言开发过kw级别访问量,100k级别同时在线的Socket后端服务器。最终发现协同开发完全做不到(泥煤啊,为什么要用二进制存代码_(:з」∠)_)

尝试过Golang重写,最终跪倒在其GC的魔抓之下,现在由Java承担。

某小型音乐站新版客户端/服务端开发者(我了个去。。wpf的坑能小一点么。。巨硬自家都开始打架了。。vs2008没问题,2012就 报错 _(:з」∠)_ @巨硬)

顺便@一下 易语言客户端作者/站长

@黄祺



  

相关话题

  刚开始学习Objective-C,面对Swift该怎么办? 
  上网时,为什么感觉现代人除了我全都很懂编程或计算机? 
  有哪些话一听就知道一个程序员是个水货? 
  如何实现 C/C++ 与 Python 的通信? 
  Python3.10的新特性match关键字为什么不会和当前作用域的变量名称match冲突? 
  如何学习递归呢? 
  C++ 的常量后缀在什么情况下使用? 
  C#中字符串可以使用可变大小的内存,为什么数字不能? 
  java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么? 
  可以用 Python 编程语言做哪些神奇好玩的事情? 

前一个讨论
1948 年存入 50 万法币,现在取出该是多少钱(新人民币)?
下一个讨论
如何评价有些大学老师上课异常严格?





© 2024-11-26 - tinynew.org. All Rights Reserved.
© 2024-11-26 - tinynew.org. 保留所有权利