国内编程语言的现状,国内编程语言的现状分析
开发一套编程语言有多难?
谢谢邀请,
开发一套编程语言,主要存在两个障碍,其一:任何一种编程语言都有其存在的必要性,所以要搞明白为什么要弄一套新的编程语言,首先一定要有市场需求所在,编程语言如同一个产品,一定有强烈的市场需求,编程语言存在的价值在于生态链,只有具备完善的生态链才能存活的有意义,现在全球有600多种编程语言,主流的编程语言也就是几十种,而这些编程语言中,都有强大的社区依托,也就是强大的生态链支撑,生命力才会如此的强大。
其二 本身的技术实现框架,有些编程语言在诞生之处就能感受到其强大的支配力,可扩展性等等特性,在设计之处越是想的明白,越是框架清晰,后期越容易维护,编程语言底层实现基本上靠的都是C语言,所以社会上很多对于内在不是很了解到人,说到C语言已经是过时的语言了,现在学习意义已经不大的论调,只不过在就业岗位绝对数量上,和java,python等高级编程语言无法比拟,但在一些关键岗位上离开了C语言还真不行,编写编程语言就属于这类的工作,一定需要强大的C语言做支撑。
现在国内很多人喊着什么时候有一套属于自己的编程语言,现在的易语言就是迎着这种势头发展起来的,虽然很多内行程序员不是很认可这种编程语言,觉得只是包了一层语言了而已,但毕竟有了中文编程的模式,按照这个道理应该这种编程语言,在国内会有一个非常大的发展前景,经过这些年的发展,还是没有登上主流编程语言的舞台,倒是现在很多游戏***软件都在用这种编程语言去搞,很多学习易语言的人就是为了做个游戏外挂或者***梦想着一天能够赚大钱,在08年之前制作游戏***的人基本上赚了大钱,主要当初针对游戏***的法律还不完善,让很多人钻了空子,在08年之后基本上从事这方面的人,从台前转到了幕后,专心做dll库文件,从中继续谋取暴利,所以编程语言的最难的在于如何普及,如何被大众认可,要成为主流的编程语言首先具备广泛性,从这点来讲英语编程相对来讲是比汉语更加有优势,在传播性更加容易被接收,从各个层面讲,一种编程语言要具备,通用性,兼容性,稳定性等特点。
编程语言的设计不是为了编写而编写,首先要迎合科技发展的需要,如同C语言的诞生让程序员摆脱了用汇编编写程序的痛苦,Java等高级语言的诞生又让程序员不在用面向过程中的语言,去写复杂的功能,只需要调用成熟的类库就可以轻松完成很强大的功能,主要在于编程语言在向高度集成化的方向发展,所以好的编程语言一定顺应科技发展大趋势,只有这样才能圈更多粉丝,建设更全面的生态链。
说难吧,现在有几千种语言,其中很多都是个人完成的,例如我最近比较喜欢的elixir,是个巴西人写的。说不难吧,国内确实没一个像样的语言项目,至于易语言,这个可能9成的程序员没把它当个语言。所以难还是不难?其实从技术角度来看,并不难。但从时间,精力的耗费上,以及后期推广及社区维护上来看,就吓跑了一堆人。对国内程序员包括我来说,有那时间,不如挣点奶粉钱
简单的不那么难,学一下AST,能解释就算了。但是要做的[_a***_]效率高,安全,高并行,编译效率高,多平台支持等等是计算机科学里最深奥的领域,关垃圾收集器就可以研究整个职业生涯了
开发一套编程语言的难度对于任何团队来说都是难度系数极高的,个人基本上不可能开发完整一套。
编程语言现状
目前优秀的编程语言以C语言,J***a语言,Python语言三大语言比较有代表性,也是目前的主流语言。
任何一门编程语言都是一种工具,那么这个工具需要用来做什么,这是首先需要考虑的。因为目前编程语言这么多,你要开发一套语言用来做什么别人做不到的,或者比别人做的更好的。就别说超越J***a或者C语言,先开发一套可以替代这两种的语言就非常优秀了。
编程语言开发大致思路
首先要定下一个体系,是面向对象还是面向过程,还是另辟蹊径。这需要你对计算机底层有足够的了解,对编译原理非常精通。
然后你要给语言定一套规则,会用怎么样的语法,会有什么样的特性。一点非常重要,会决定这套语言的受众面和推广程度。
接下来你可以选择去设计这套语言,是基于C语言的库,还是借用点J***a的类库,还是自己设计一套与汇编语言有密切关系的语言。
你要懂的东西很多,首先是计算机方面的,计算机原理,汇编,编译原理;然后是一整套的语言逻辑;再者,还要懂数学方面的知识,比如离散数学等等。一个人很难完成,需要团队合作。还有个前提就是,你本身就是一个资深的编程者。
要实现一个编程语言有多难?
尽管你写了这么多,但是我并不太理解你的需求,仅就提到的个别点说一下:
首先要实现编程语言,首先要理解什么是计算机,什么是CPU,说到底CPU硬件就只能实现一条一条的语句,我们称之为计算机指令或机器码,任何编程语言都要编译成机器码(语句)由计算机执行,那么你所谓的不基于语句,那么你到底想让计算机干什么?
其次,将函数作为参数来传递,这个很多编程语言都可实现啊,比如c语言中的函数指针就可以。
再次,如果你的需求是读取JPG,png图像,那么很多API可以,并不复杂。如果仍然觉得复杂的话,也有一些相对友好的编程语言,比如matlab,Python之类。
最后,一点不成熟的想法,数学不就是语句吗?公式大多是赋值语句,定理大多是“如果那么”的分支语句,定义大多是声明语句。这些与编程语句完全相同
从你的描述来看。你显然不需要自己去实现一个编程语言!
要实现一门编程语言,其难度远远超出想象!首先你得有最基础的理论知识。比如编译原理,算法与数据结构,计算机组成原理,等等。其次,你在发明一样东西之前,至少得了解一下同类东西。也就是至少你得精通一门编程语言。而你显然暂时不具备这个能力。换句话说,连别人现成的编程语言都用不好,又如何可能用别的编程语言去从零实现一门新的语言?!
所以基本上就不要考虑自己去造轮子,发明一种新语言了。先学好一门语言再说。等精通几门编程语言,有了多年实际编程经验后,再来谈论是否有必要以及如何实现一门新的编程语言。
对于题主说到的这些需求,你总是可以找到一门现成语言去简单完成的。比如matlab,Python,c++等。可以咨询业界专家。因为你能想到的别人也能想到,你遇到的别人也遇到。那么多数学家和科研工作中他们也用现成的工具或编程语言。总有一款适合于搞数学。万一仍然觉得编程实在太难,那也可以找人去帮你完成。现在社会讲究合作,术业有专攻嘛!不一定什么都要亲力亲为或什么都有从轮子造起。
你说的图像实际上是一种包含图像信息并符合某种规范的文档。你可能精通数学,但是你可能根本不知道如何用有限长度的2进制编码来表示特定精度的数字,甚至用特定精度取代数学上的确切数的意义是什么,能搞清楚吗?
实现一个编程语言并不是特别难,难的是你如何让别人喜欢上他。制作一个可用的“编程语言”工作量,可能比你看到过的应用软件项目更小些。
短时间不可能做到把程序方法或函数做成像数学定义数学公式那样。数学概念和编程是有本质区别的。
数学是高度抽象话的,数学要解决的问题是对世界的规律进行描述,说明,计算。
程序是具体的,程序要解决的问题是设定一系列的操作步骤,使得只有两个手指头(0和1)的计算机,能够接受输入并产生出预期的结果。所有的高级程序语言最终都会编译成2进制(计算机手指头不够用,多了数不过来)。不同的语言有不同的编译方式,不同的语法,不可能全部统一。
最后,其实别人提供了现成的方法给我们已经很幸福了,只要有数学基础。学习了解如何使用别人封装好的方法应该不是难点所在。
linux 下叫 flex,bson, 他们是编译器的编译器,Unix下编写,现每个语言基本上都有类似的工具。
使用方法,首先定义语言by的词法结构和语法结构。然后在词法分析和语法分析中嵌入我们的语言代码。然后使用这两个命令翻译为真正的词法分析和语法分析的实际代码,再用编译器编译谁有代码即可,
编程语言开发怎么样?
我觉得前景会越来越好,因为现在可以说不管是哪行哪业都离不开编程这个事情,真正的计算机人员需要学习编程;业余的会计人员要学习编程;教师要学习编程等等,总之基本上掌握一些基本的编程语言基本成为了每个人的必备技能。
这也是很正常的事情,想想现在周围有什么东西不是软硬结合的体现?家居用品也好、电灯也好、电脑也会,这些都离不开编程,要说不同的话可能只是每个领域对于编程的要求都不一样罢了。可是学习编程的前景必然是明朗的。
想想当下热门的人工智能领域,这也离不开编程,虽然这当中可能还要学习各种各样的芯片、硬件知识等等,可是最终它还是要和代码结合才成就了这个机器人的存在。
当然,如果你想要往编程方面发展,就一定要记住凡事要往底层钻,如果只是停留在表面的代码,那么就只能是完成一些最简单的工作罢了,就真的只会写代码了,相反学习它们的思想和底层原理,这才是编程的大好前景。
这个问题有点***。难度怎么样?前景怎么样?还是待遇怎么样?还是工作量怎么样?需求不明确,会打搬砖架的。
先说前景吧,目前基本上流行的各种编程语言都有各自的应用场景。至于薪资待遇,无论何种程序员,薪资待遇都还不错。主要还是看个人能力。牛逼的年薪百万不是梦(朝着这个方向努力就行,千万不要太当真),薪资低一点的一万多,七八千也没问题。当然了,极个别的也有三四千的(群里的人都说他严重拉低了行业底线,纷纷给他介绍其他的工作)。反正我身边的人,工资在八千至两万八之间的占绝大多数。详细的可以看看各招聘网站上,都有相关数据。
至于编程的学习难度嘛,一句话,入门容易精通难。基本智商正常,都可以学,至于学成什么样子那就要看个人能力。你是自己学还是报[_a1***_],都要看自己的兴趣和能力。不过找个工作问题不大。不过学习是个长期过程,找到工作只是学习新知识的开始。
有一点不得不提,程序员的工作量还是相对来说比较靠谱的。简单来说,就是要加班的时候多。
如果想学,个人建议先了解多了解一些相关的知识,多找这块的人了解一些。哪怕是要报培训班,也多了解几个培训班,不然会被招生的老油条坑。最后,坚持。毕竟月薪低于五千的程序员是不多的(一直想不通那个月薪三千的哥们为什么会对富士康有看法)。当然了,工资高低不是衡量问题的标准,不过对于我们这些迷途的羔羊来说,钱能衡量我们大部分的问题。
1 :目前编程开发工资还是普遍高于其他行业的,但是弊端也很明显,因为编程技术更新快,所以年纪大了以后,学习的能力以及时间跟不上,很容易被淘汰!
2:这个行业入行有一定得难度,需要有好的逻辑思维以及兴趣,不然很难走下去。
编程大的方面可以分为两类,分别是前端开发和后端开发。
前端开发指的是利用html、JavaScript、css对网页乃至网站进行渲染。后端开发是对网页中的组件功能进行实现。
常用的后端语言有C语言、C++、j***a、python等。这些语言在各自应用领域各有千秋。c语言和c++出现时间比较早,对于性能有着得天独到的优势,但是学起来比较难。j***a在web领域也可谓一骑绝尘。最近比较火的Python主要应用在数据处理,AI人工智能等方面。Python相对其他语言更简洁,更直接。对于初学者来说是不二之选。
编程语言分成好几类,机器码不算,最底层的叫汇编语言,你必须很了解硬件底层的工作过程才能学。高级一点的是c语言,它的作用是让你从关注机器的运行过程,转向关注程序的逻辑关系。再高级一些的是c++,它是让你的c语言更简单,更方便的实现编程开发的一个升级和扩展。让你更倾向于软件工程的架构和实现,更少的关注机器的运行过程。
但是,c系列语言,还是过于硬件化,目前也主要应用在硬件相关的研发领域。因为它的优点是优化好,效率高。如果快速搭建应用,快速构架平台,C语言就开发速度慢的缺点就被放大了,你需要的是j***a或c#这类更高级的编程语言,它们让你只专注于软件架构和逻辑实现,不必考虑机器的运行过程,模块化对象化非常好,使你能快速构建大型的应用平台。
还有一类语言,称作脚本语言,比如Python,J***aScript,它们的主要工作,是利用其他语言开发的模块,拼凑出一个新的功能,不做底层构建的事情。编程语言的开发,常见的概括起来大致就是这些
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/18769.html