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