{eval=Array;=+count(Array);}
開發(fā)一套編程語言的難度對于任何團(tuán)隊(duì)來說都是難度系數(shù)極高的,個人基本上不可能開發(fā)完整一套。
編程語言現(xiàn)狀
目前優(yōu)秀的編程語言以C語言,Java語言,Python語言三大語言比較有代表性,也是目前的主流語言。
任何一門編程語言都是一種工具,那么這個工具需要用來做什么,這是首先需要考慮的。因?yàn)槟壳熬幊陶Z言這么多,你要開發(fā)一套語言用來做什么別人做不到的,或者比別人做的更好的。就別說超越Java或者C語言,先開發(fā)一套可以替代這兩種的語言就非常優(yōu)秀了。
編程語言開發(fā)大致思路
首先要定下一個體系,是面向?qū)ο筮€是面向過程,還是另辟蹊徑。這需要你對計(jì)算機(jī)底層有足夠的了解,對編譯原理非常精通。
然后你要給語言定一套規(guī)則,會用怎么樣的語法,會有什么樣的特性。一點(diǎn)非常重要,會決定這套語言的受眾面和推廣程度。
接下來你可以選擇去設(shè)計(jì)這套語言,是基于C語言的庫,還是借用點(diǎn)Java的類庫,還是自己設(shè)計(jì)一套與匯編語言有密切關(guān)系的語言。
設(shè)計(jì)出語言后,你還要考慮它的生態(tài)圈怎么擴(kuò)大,是閉源還是開源,開源后會面臨什么,這套語言要向什么技術(shù)領(lǐng)域進(jìn)行推進(jìn),要提供怎么樣的框架或者其他方面的技術(shù)支持。
最大的難點(diǎn)是資金和人力,你去開發(fā)一套編程語言需要的團(tuán)隊(duì)力量很大,他們不僅是編程屆的精英,更需要年薪百萬的薪水,這意味著是燒錢和燒腦。
其實(shí)說這些筆者也是云里霧里,開發(fā)一套編程語言,目前沒有中國團(tuán)隊(duì)會干這種事情,因?yàn)檫@屬于“吃力不討好”,盈利效益遠(yuǎn)不如“996”接項(xiàng)目來的快。
關(guān)注“極客宇文氏”,一名熱心有料的軟件工程師。
謝謝邀請,
開發(fā)一套編程語言,主要存在兩個障礙,其一:任何一種編程語言都有其存在的必要性,所以要搞明白為什么要弄一套新的編程語言,首先一定要有市場需求所在,編程語言如同一個產(chǎn)品,一定有強(qiáng)烈的市場需求,編程語言存在的價值在于生態(tài)鏈,只有具備完善的生態(tài)鏈才能存活的有意義,現(xiàn)在全球有600多種編程語言,主流的編程語言也就是幾十種,而這些編程語言中,都有強(qiáng)大的社區(qū)依托,也就是強(qiáng)大的生態(tài)鏈支撐,生命力才會如此的強(qiáng)大。
其二 本身的技術(shù)實(shí)現(xiàn)框架,有些編程語言在誕生之處就能感受到其強(qiáng)大的支配力,可擴(kuò)展性等等特性,在設(shè)計(jì)之處越是想的明白,越是框架清晰,后期越容易維護(hù),編程語言底層實(shí)現(xiàn)基本上靠的都是C語言,所以社會上很多對于內(nèi)在不是很了解到人,說到C語言已經(jīng)是過時的語言了,現(xiàn)在學(xué)習(xí)意義已經(jīng)不大的論調(diào),只不過在就業(yè)崗位絕對數(shù)量上,和java,python等高級編程語言無法比擬,但在一些關(guān)鍵崗位上離開了C語言還真不行,編寫編程語言就屬于這類的工作,一定需要強(qiáng)大的C語言做支撐。
現(xiàn)在國內(nèi)很多人喊著什么時候有一套屬于自己的編程語言,現(xiàn)在的易語言就是迎著這種勢頭發(fā)展起來的,雖然很多內(nèi)行程序員不是很認(rèn)可這種編程語言,覺得只是包了一層語言了而已,但畢竟有了中文編程的模式,按照這個道理應(yīng)該這種編程語言,在國內(nèi)會有一個非常大的發(fā)展前景,經(jīng)過這些年的發(fā)展,還是沒有登上主流編程語言的舞臺,倒是現(xiàn)在很多游戲輔助軟件都在用這種編程語言去搞,很多學(xué)習(xí)易語言的人就是為了做個游戲外掛或者輔助夢想著一天能夠賺大錢,在08年之前制作游戲外掛的人基本上賺了大錢,主要當(dāng)初針對游戲外掛的法律還不完善,讓很多人鉆了空子,在08年之后基本上從事這方面的人,從臺前轉(zhuǎn)到了幕后,專心做dll庫文件,從中繼續(xù)謀取暴利,所以編程語言的最難的在于如何普及,如何被大眾認(rèn)可,要成為主流的編程語言首先具備廣泛性,從這點(diǎn)來講英語編程相對來講是比漢語更加有優(yōu)勢,在傳播性更加容易被接收,從各個層面講,一種編程語言要具備,通用性,兼容性,穩(wěn)定性等特點(diǎn)。
編程語言的設(shè)計(jì)不是為了編寫而編寫,首先要迎合科技發(fā)展的需要,如同C語言的誕生讓程序員擺脫了用匯編編寫程序的痛苦,java等高級語言的誕生又讓程序員不在用面向過程中的語言,去寫復(fù)雜的功能,只需要調(diào)用成熟的類庫就可以輕松完成很強(qiáng)大的功能,主要在于編程語言在向高度集成化的方向發(fā)展,所以好的編程語言一定順應(yīng)科技發(fā)展大趨勢,只有這樣才能圈更多粉絲,建設(shè)更全面的生態(tài)鏈。
謝邀。我從事嵌入式軟件開發(fā)十多年,歡迎關(guān)注和交流。
編程語言是用來定義計(jì)算機(jī)程序的形式語言,是人和計(jì)算機(jī)打交道的語言。編程語言通常描述分為語法和語義。語法是指符號或文字,及其組合。語義是指編程解釋。編程語言一般分為機(jī)器語言,匯編語言,高級語言三大類。
開發(fā)一套編程語言,從技術(shù)上講不難,難的是推廣和生態(tài)。當(dāng)今世界,編程語言已有成千上萬種,但被使用得最多的,來來去去,都是那常見的幾十種,甚至十來種。如果沒有得到有效推廣,編譯器廠商,庫商,程序員就聞所未聞,聞而不見,視而不理,就無法形成生態(tài)圈,更談不起流行。
網(wǎng)上有不少聲音,總是想開發(fā)一種中文編程語言,為國人所用,甚至推廣至全世界。我認(rèn)為,國人有開發(fā)編程語言的能力,但沒有必要專門去開發(fā)中文編程語言。一來我國程序員,使用英文編程的能力還是足夠的。二來盡管全球都在學(xué)中文,而不是學(xué)貓叫,但是全球并沒有放棄英文的趨勢。最重要的是,語言是用來交流的,編程語言也不例外。
謝謝大家。
簡單的不那么難,學(xué)一下AST,能解釋就算了。但是要做的運(yùn)行效率高,安全,高并行,編譯效率高,多平臺支持等等是計(jì)算機(jī)科學(xué)里最深奧的領(lǐng)域,關(guān)垃圾收集器就可以研究整個職業(yè)生涯了
你要懂的東西很多,首先是計(jì)算機(jī)方面的,計(jì)算機(jī)原理,匯編,編譯原理;然后是一整套的語言邏輯;再者,還要懂?dāng)?shù)學(xué)方面的知識,比如離散數(shù)學(xué)等等。一個人很難完成,需要團(tuán)隊(duì)合作。還有個前提就是,你本身就是一個資深的編程者。
開發(fā)一套語言應(yīng)該一個人是完成不了,對于中國人來說就是漢語,就相當(dāng)于你要給計(jì)算機(jī)開發(fā)一套他能讀懂的語言,并且可以指定他去干嘛的語言,其中的難度不言而喻
說難吧,現(xiàn)在有幾千種語言,其中很多都是個人完成的,例如我最近比較喜歡的elixir,是個巴西人寫的。說不難吧,國內(nèi)確實(shí)沒一個像樣的語言項(xiàng)目,至于易語言,這個可能9成的程序員沒把它當(dāng)個語言。所以難還是不難?其實(shí)從技術(shù)角度來看,并不難。但從時間,精力的耗費(fèi)上,以及后期推廣及社區(qū)維護(hù)上來看,就嚇跑了一堆人。對國內(nèi)程序員包括我來說,有那時間,不如掙點(diǎn)奶粉錢
9
回答0
回答1
回答10
回答5
回答10
回答10
回答7
回答4
回答0
回答