開放源代碼的必要性程序有多少,看看字處理程序是多少
2021-10-20
本文原作者為:tomz。tomz的網(wǎng)頁:
開源的必要性
在介紹編程語言之前,先說一下開源的必要性?,F(xiàn)在,在軟件生產(chǎn)領(lǐng)域存在著巨大的智力浪費(fèi),每個(gè)人都將大量精力花在編寫別人已經(jīng)實(shí)現(xiàn)的程序代碼上??纯从卸嗌傥谋揪庉嬈?,有多少ftp程序,有多少文字處理程序。盡管這些程序不同,但它們的主要功能是相同的。實(shí)現(xiàn)個(gè)性化的功能,修改現(xiàn)有軟件會(huì)節(jié)省多少時(shí)間!分別編譯每個(gè)程序會(huì)浪費(fèi)多少時(shí)間?如果沒有這種重復(fù)的工作量,全世界的程序員至少可以節(jié)省80%的工作量。同時(shí),開源代碼也方便了大家的交流。
要開源代碼,以下幾點(diǎn)更為重要:
語言統(tǒng)一:如果每個(gè)人都使用一種編程語言,相同的功能,相同的庫,那么每個(gè)人都會(huì)有很多共同的語言。每個(gè)人只要學(xué)會(huì)一門語言,一套函數(shù),一套庫,就可以閱讀理解對(duì)方的源碼。這樣,學(xué)習(xí)量最少;但是不可能統(tǒng)一語言,因?yàn)樗姓Z言都有自己的特點(diǎn)。, 如果利用其中一個(gè)優(yōu)勢(shì),通常會(huì)犧牲另一個(gè)。但是,學(xué)習(xí)一個(gè)新的 API 會(huì)浪費(fèi)程序員大量的時(shí)間和精力,尤其是當(dāng)這個(gè) API 有很多與其他 API 重疊的功能時(shí)。
要增加代碼的復(fù)用性,必須從以下幾點(diǎn)入手:
語言功能的強(qiáng)大可以從以下幾點(diǎn)看出:
語言友好:
多種語言選擇
如果你正在編寫一個(gè)對(duì)性能要求苛刻或與操作系統(tǒng)緊密結(jié)合的程序,你必須選擇C。
如果您編寫的程序可以隨處使用,請(qǐng)選擇 Java。
如果編寫大型程序,可以的話盡量使用Ruby等腳本語言,不行的話就用Java和C。因?yàn)槟_本語言帶來了生產(chǎn)力。
用 Perl 或 Ruby 編寫文本處理程序。
用于編寫知識(shí)處理程序。
用 Lisp 編寫最靈活、最晦澀的程序。
使用 vba 編寫程序。
編寫服務(wù)器端程序,PHP、(用你熟悉的語言編寫,如Perl、Ruby)、CGI、ASP和(如果你熟悉Java)JSP都是選擇。
用vb,或者寫數(shù)據(jù)庫程序。
進(jìn)行算法研究、設(shè)計(jì)和使用。
多種語言選擇
如果要追求性能和程序能力,充分利用操作系統(tǒng)的能力,最好使用C/C++語言。在類 Unix 環(huán)境中使用 VC 或 gcc。
如果不是追求與操作系統(tǒng)的完美融合,而只追求性能,還追求跨平臺(tái),那么還是選擇C,但是可以選擇跨平臺(tái)的庫,比如qt、gtk、fox、。如果您想編寫游戲,還有一個(gè)跨平臺(tái)選項(xiàng):SDL。
如果對(duì)C領(lǐng)域標(biāo)準(zhǔn)的不一致不滿意,對(duì)C不滿意的人容易出錯(cuò),對(duì)C的面向?qū)ο筇匦圆粷M意的人不透徹。如果不關(guān)心跨平臺(tái),平臺(tái)可以選擇C#,mac平臺(tái)選擇(-C)。如果需要跨平臺(tái),可以選擇Java。
如果您需要跨平臺(tái)和廣泛的支持,請(qǐng)選擇 Java。
在類 Unix 下,最方便的工具語言是 Perl,它有強(qiáng)大的社區(qū)和代碼庫支持。
如果只是作為簡(jiǎn)單應(yīng)用的工具語言,Ruby 是更好的選擇。它們的跨平臺(tái)移植性好,應(yīng)用廣泛。其中比較適合入門和交流,也有利于長(zhǎng)期使用。Ruby 是另一種不滿的選擇,它提供了許多額外的功能。
如果要選擇程序的嵌入式語言,以前有Lisp和Java,現(xiàn)在也可以選擇Ruby。
如果你要求動(dòng)態(tài)解釋執(zhí)行語言,但又不想學(xué)習(xí)其他語言,C程序員的選擇是pike,Java程序員的選擇是。
在Java平臺(tái)上,如果你想使用腳本語言,你可以使用它。
最正統(tǒng)的基于文檔的語言或動(dòng)態(tài)頁面語言是。
最專業(yè)的服務(wù)器端語言是 PHP,當(dāng)然還有很多其他的選擇。
最著名的 XML 語言是 XUL,dtml 也算是其中之一。您還可以將 XML 用作您自己的專用語言。例如,您可以使用 XML 作為模式定制語言。XML 語言是一個(gè)比較先進(jìn)的趨勢(shì),在特殊領(lǐng)域比現(xiàn)有語言更高效。
對(duì)于易于實(shí)現(xiàn)的語言,Lisp 和 Tcl 是選擇。
Lisp 集成數(shù)據(jù)和程序的能力和自由是其他語言所不具備的?,F(xiàn)在有一個(gè) Lisp 的現(xiàn)代變體:
如果需要基于事實(shí)的編程,那么 sum 是不可避免的。
我為什么選擇
首先聲明我只編譯應(yīng)用程序,這是一個(gè)代替我自己工作的小程序。如果您編寫系統(tǒng)程序,您將始終使用 C 或 Java。
我喜歡腳本語言。腳本語言無需編譯即可運(yùn)行,非常容易修改。編程是一項(xiàng)常規(guī)活動(dòng)。程序編譯后,一直在修改。沒必要認(rèn)真做和編譯。另外,使用該腳本的每個(gè)人都可以隨意修改它,無需尋找源代碼。因此,C/C++ 和 Java 被排除在外。
我喜歡簡(jiǎn)單的語言。我不喜歡為了編寫簡(jiǎn)單的程序而學(xué)習(xí)很多復(fù)雜的規(guī)則。需要大量學(xué)習(xí)的語言不是一門好語言。它將人視為機(jī)器。C/C++ 和 Java 都有嚴(yán)格但 的語法編程語言圖案,并且有你永遠(yuǎn)學(xué)不完的函數(shù)、類和庫。當(dāng)人們看到它時(shí)它很大。而且 Perl 有各種奇怪的速記符號(hào),程序經(jīng)常讓人頭暈?zāi)垦?。?jiǎn)單的含義不僅簡(jiǎn)單易學(xué),而且功能豐富。常用的東西要早準(zhǔn)備好,大家不用寫同樣的數(shù)據(jù)結(jié)構(gòu)程序。有豐富的數(shù)據(jù)類型、完整的面向?qū)ο蠼Y(jié)構(gòu)、正則表達(dá)式等方便的編程模塊。邏輯是,如果程序做得更多,人們就會(huì)做得更少。如果程序做得更少,人們就會(huì)做得更多。這是用戶友好性的問題。易于使用和豐富的功能是程序設(shè)計(jì)的一個(gè)非常重要的目標(biāo),它很受歡迎。這也很好地反映了這一點(diǎn)。而且 Perl 與 Unix 等其他工具一樣強(qiáng)大,但它太難學(xué)習(xí)和理解。這是非常違背人性的。
關(guān)于性能?,F(xiàn)在CPU非常強(qiáng)大。除大型程序和系統(tǒng)程序外,無需關(guān)心性能。
關(guān)于功能。如果你不是在寫系統(tǒng)程序和接近系統(tǒng)的程序,就沒有必要使用操作系統(tǒng)專門提供的功能。C可以做任何事情,但它的編程效率低且復(fù)雜。
至于我為什么不用vb,因?yàn)関b太大了。我不需要實(shí)現(xiàn)一個(gè)小功能來啟動(dòng)這么龐大的程序。太夸張了。另外,VB沒有類繼承。雖然是應(yīng)用程序編程,但是如果你想編譯一個(gè)稍微大一點(diǎn)的程序,你總是會(huì)使用類繼承。
它必須強(qiáng)大且可擴(kuò)展,這樣正確的學(xué)習(xí)才不會(huì)被浪費(fèi)。經(jīng)過簡(jiǎn)單的處理,可以使用各種C、C++庫編程語言圖案,也可以被C、C++調(diào)用??梢灾苯邮褂肑ava類,也可以直接通過Java調(diào)用。這樣,yes、Java、C的學(xué)習(xí)和使用經(jīng)驗(yàn)就不會(huì)浪費(fèi)了,可以相互補(bǔ)充??梢蕴岣逬ava和C的編程效率,可以補(bǔ)充Java和C的功能不足。您還可以直接與內(nèi)置的 Tcl 交互。我期待簡(jiǎn)單地調(diào)用 Perl 和 PHP 函數(shù)??梢允褂?Lisp 和更好。
Ruby 和 Ruby 的比較
與Ruby類似,相比Ruby的優(yōu)勢(shì),它可以實(shí)現(xiàn)列表中的條件語句和循環(huán)語句。Ruby 使用“塊”來實(shí)現(xiàn)這個(gè)功能,更加靈活和通用。Ruby 有條件語句、循環(huán)語句等,功能類似于 Lisp。句子的表達(dá)能力更強(qiáng)。自帶一些Unix工具,如raCC等。對(duì)比Ruby的缺點(diǎn)
和 Ruby 語言選擇
從簡(jiǎn)單到好,選擇就對(duì)了。適合尋找簡(jiǎn)單語言的人,這樣很可能會(huì)引起更多的人氣,所以有更多的支持。但是如果你想追求更強(qiáng)大的語法功能,對(duì)編程語言感興趣,想了解各種編程概念,Ruby 是一個(gè)不錯(cuò)的選擇。Ruby 和兩者都想取代 Perl,解決 Perl 的缺點(diǎn)——面向?qū)ο蟮牟蛔?,但方法是混合面向?qū)ο蠛瓦^程式編程語言。Ruby 是一種面向?qū)ο蟮恼Z言,它允許自己偽裝成一種過程編程語言。
多種腳本語言的統(tǒng)一與問題
現(xiàn)在腳本語言太多了,有必要整合一下,這是個(gè)好主意。.NET 也是一個(gè)好主意。為各種腳本提供統(tǒng)一的虛擬機(jī),為各種腳本語言提供基于“類”的相互調(diào)用,為各種腳本提供統(tǒng)一的類庫。
現(xiàn)在各種腳本語言只給C語言提供交互性,而這種交互性也是費(fèi)力且無效的。比如Perl、Ruby等,都為C提供了交互功能,腳本語言之間的交流有很多障礙。和 .NET 類似的東西為各種腳本提供了一種非常簡(jiǎn)單的方法來相互使用,避免了大量的代碼重復(fù)。這個(gè)標(biāo)準(zhǔn)平臺(tái)的力量是巨大的。為什么這個(gè)標(biāo)準(zhǔn)平臺(tái)沒有首先出現(xiàn)在開源領(lǐng)域?眾多的腳本是開源的特點(diǎn)和優(yōu)勢(shì)。為什么微軟要解決這個(gè)問題?之前有人問過類似的問題。為什么國(guó)內(nèi)至今沒有好用的類似ODBC的東西?
也許只有商業(yè)公司才有能力實(shí)現(xiàn)這種整合。
我的理解是,如果有創(chuàng)新想法的人會(huì)用他的想法來賣錢,那么開源中只剩下模仿者。kde在模仿,在模仿,在模仿Unix,gcc,bash等等都在模仿,如此等等,也在模仿,SDL也在模仿。我想知道開源社區(qū)有沒有自己的創(chuàng)新?我所知道的創(chuàng)新是zope,但是zope最初是一個(gè)商業(yè)產(chǎn)品,然后它被開源了。Perl 是創(chuàng)新,創(chuàng)新,但還有什么?開源領(lǐng)域只有一個(gè),不是嗎?
.NET介紹
.NET 實(shí)現(xiàn)的 Java 功能
代碼可控,跨平臺(tái)虛擬機(jī)和偽代碼,免費(fèi)的命令行編譯器,純面向?qū)ο笳Z言支持XML和XML web,為jsp對(duì)應(yīng)的asp.NET網(wǎng)頁上的程序提供統(tǒng)一的中間件環(huán)境。
Asp.NET 和jsp 不是同一級(jí)別的Web 技術(shù)。Asp.NET 使用完整的事件響應(yīng)機(jī)制。對(duì)于類似的技術(shù),只有 JSF 和 Asp.NET 具有可比性。
.NET 中未實(shí)現(xiàn)的 Java 功能
免費(fèi)集成開發(fā)環(huán)境,多廠商支持,跨平臺(tái)成熟
免費(fèi)IDE,#,ASP.NET有MS和免費(fèi)開源CLR實(shí)現(xiàn),MS自帶XP,Mac OS下實(shí)現(xiàn)(原理演示不能用于商業(yè)應(yīng)用),版本下的Mono項(xiàng)目已經(jīng)發(fā)布,即將發(fā)布2004 年 6 月 30 日;還有一個(gè) .NET 的 GNU 實(shí)現(xiàn)??!
.NET 實(shí)現(xiàn)的 Java 中不可用的功能
多語言支持強(qiáng)大的集成開發(fā)環(huán)境。它的速度可與本機(jī)程序的速度相媲美。支持 COM,繼承與圖形和直觀的表單、Web 表單和服務(wù)器端程序編程。
相對(duì)于 vs6 的改進(jìn)
集成開發(fā)環(huán)境統(tǒng)一,使C++程序也對(duì)vb友好。
XML各種技術(shù)介紹:RDF:SVG:::XML-rpC和soap:XUL:xaml:
最先進(jìn)的XML格式圖形界面程序開發(fā)工具-XUL
程序大家都知道,僅次于IE的瀏覽器,很多人都知道它有開源版本。但是很多人只是使用它,并不知道另一個(gè)重要的功能——程序開發(fā)。開源代碼三年后,1.0版本還沒有出來。很多人嘲笑他超慢的發(fā)展速度。事實(shí)上,一個(gè)超酷的新產(chǎn)品正在醞釀中,可以算是軟件開發(fā)工具的開發(fā)。一個(gè)里程碑。
基于瀏覽器的三層開發(fā)結(jié)構(gòu)現(xiàn)在很流行,微軟對(duì).NET的思考就是基于這種結(jié)構(gòu)。此外,無論服務(wù)器結(jié)構(gòu)如何,即使是基于網(wǎng)頁的小程序也非常吸引人。這些產(chǎn)品的想法是使用 HTML 作為用戶界面,但開發(fā)人員經(jīng)常擔(dān)心 HTML 過于粗糙。而 XUL 解決了這個(gè)問題。
XUL 是 HTML 的擴(kuò)展,與 HTML 完全兼容。XUL 在 XML 格式的基礎(chǔ)上對(duì) HTML 進(jìn)行了擴(kuò)展,實(shí)現(xiàn)了完整而強(qiáng)大的圖形用戶界面設(shè)計(jì)功能。可以設(shè)計(jì)復(fù)雜的圖形界面程序。其實(shí)整體就是XUL設(shè)計(jì)的。XUL使用Css控制界面風(fēng)格,DTD替換字符串,方便本地化。用于響應(yīng)用戶界面的操作,提供基本的邏輯編程,通過對(duì)象文檔界面DOM動(dòng)態(tài)控制用戶界面。同時(shí)通過調(diào)用提供的豐富的底層API實(shí)現(xiàn)強(qiáng)大的功能。為文件操作、網(wǎng)絡(luò)操作、圖形操作等操作提供了強(qiáng)大的API,并且這個(gè)API是完全跨平臺(tái)的。最后,
總結(jié): XUL 提供了最強(qiáng)大的用戶界面定制,因?yàn)樗c HTML 兼容,而 DTD 提供了最方便的本地化。XUL、RDF 提供顯示、邏輯和數(shù)據(jù)的分離。底層API提供強(qiáng)大的跨平臺(tái)編程能力。
希望大家關(guān)心。
最接近人類語言的編程語言——
有關(guān)詳細(xì)信息,請(qǐng)參閱。以下是我的印象。
缺點(diǎn)是顯而易見的。它是商業(yè)公司的產(chǎn)品。它只能像 Java 一樣免費(fèi)使用。但它不是開源的。并且它的數(shù)據(jù)庫連接函數(shù)庫是收費(fèi)的。但它的優(yōu)勢(shì)也非常明顯。如果因?yàn)椴皇情_源軟件而不能放心使用,也可以欣賞和借鑒它的各種特點(diǎn),懂了就忍不住用起來。
第一個(gè)是Lisp語言的替代品,可以實(shí)現(xiàn)Lisp的所有功能。它具有Lisp語言對(duì)數(shù)據(jù)和程序的處理相同的特點(diǎn),以及句子和表達(dá)的統(tǒng)一性。但它極大地打破了 Lisp 的局限性。它允許中綴運(yùn)算符的形式?jīng)]有醒目的括號(hào),這與一般編程語言中的表達(dá)式完全相同。同時(shí)擁有豐富的庫,完備的圖形界面庫,完備的網(wǎng)絡(luò)庫。因?yàn)槭枪镜漠a(chǎn)品,所以也保證了庫的統(tǒng)一性。
自稱為網(wǎng)絡(luò)編程語言,其網(wǎng)絡(luò)編程能力很強(qiáng)。一般一句話就可以下載一個(gè)文件,或者下載一個(gè)網(wǎng)頁,或者接收一封郵件。
一個(gè)神奇的功能是它的圖形界面設(shè)計(jì)。它的界面編程非常簡(jiǎn)單。它根本不使用語句和函數(shù),但就像HTML一樣,它只需要表達(dá)核心內(nèi)容。這是由于“方言”的能力。
內(nèi)置“方言”功能。是yacc一樣的語言解析能力?!白诱Z言”可以隨時(shí)擴(kuò)展。
有數(shù)十種內(nèi)置數(shù)據(jù)類型。用它編程時(shí),句子絕對(duì)是最精煉的。
可以實(shí)現(xiàn)運(yùn)行類似Java的網(wǎng)絡(luò)下載程序的能力,還具有沙箱功能。它比Java更進(jìn)了一步,有自己的桌面,可以在上面任意啟動(dòng)各種程序,桌面有豐富的表達(dá)和HTML一樣的超鏈接。您可以通過鏈接到功能性網(wǎng)站來使用各種程序,就像瀏覽網(wǎng)頁一樣。因?yàn)樵撜Z言比Java簡(jiǎn)潔得多,而且是一種不需要編譯的腳本語言,它的程序文件很小,更適合網(wǎng)絡(luò)傳輸。因?yàn)檫@個(gè)神奇的功能,它自稱為操作系統(tǒng)。因?yàn)槭悄_本語言,自然是跨平臺(tái)的。它有許多操作系統(tǒng)實(shí)現(xiàn)。
另一個(gè)特點(diǎn)是語言本身只是一個(gè)幾百k的可執(zhí)行文件,所以程序的分發(fā)非常簡(jiǎn)單。
最現(xiàn)代的 Lisp 解釋器
Lisp 是一種古老的計(jì)算機(jī)編程語言。給人的印象是速度慢,輸入輸出能力弱,沒有圖形界面,庫太少,很多功能無法實(shí)現(xiàn)。這一切都在手中改變了。
它具有現(xiàn)代語言所具備的大量功能,如嵌入腳本的能力、圖形界面編程能力、面向?qū)ο蟮哪芰Α⒔M件編程能力、正則表達(dá)式能力、XML能力、作為網(wǎng)絡(luò)的輸入輸出能力服務(wù)器和客戶端,以及其他網(wǎng)絡(luò)能力,生成獨(dú)立可執(zhí)行文件的能力。一個(gè)集成的編輯和調(diào)試環(huán)境。但是,它的程序執(zhí)行速度還是稍慢了一些。
當(dāng)然,它具有所有優(yōu)點(diǎn),定義語法宏的能力,命名空間的能力,不區(qū)分?jǐn)?shù)據(jù)和程序的能力,堆棧內(nèi)存管理,無限嵌套,以及用簡(jiǎn)單的方式表達(dá)所有語句和數(shù)據(jù)“表”。自然而然地具有在程序環(huán)境中存在的永恒能力。這些功能似乎在最新的編程語言中出現(xiàn)。看來目前的編程語言發(fā)展趨勢(shì)是從C語言的方式向更多Lisp特性的方向發(fā)展。就像逐漸擁有Unix已經(jīng)實(shí)現(xiàn)的越來越多的功能一樣。
我知道 Lisp 的編程環(huán)境已經(jīng)很好了。
語言印象
令人印象深刻的是,它是一門貫穿整個(gè)開發(fā)周期的語言,并且在開發(fā)周期中是可追溯的。它類似于艾達(dá)。它是一種類似于 C++ 的編譯型面向?qū)ο笳Z言,但更簡(jiǎn)單且能夠進(jìn)行多重繼承。它是C語言中面向?qū)ο缶幊痰奶娲贰?/p>
盎司語言
oz介紹,它是一種面向?qū)ο?、邏輯編程、并發(fā)分布的語言。oz 給我印象最深的是它的多線程功能。一個(gè)簡(jiǎn)單的 Case 語句可以啟動(dòng)多個(gè)線程。此外,它也是編寫分布式并發(fā)人工智能程序的替代品。
各種語言的選擇以及語言之間的關(guān)系
一般用什么軟件,用的軟件語言
以我使用的軟件為例:
要使用,只需使用vba編程。
只需使用編程
使用 zope 只使用編程
如果您使用 gimp,請(qǐng)使用或編程
只需使用或編程
只需使用編程
然后看處理的是什么類型的數(shù)據(jù)
如果您正在處理文件操作,請(qǐng)使用語言。比如bash
如果您正在處理文本文件,請(qǐng)使用 Perl 或 awk。如果您喜歡 Perl 的風(fēng)格并編譯大型程序,您應(yīng)該使用 Ruby。
如果您正在處理數(shù)據(jù)庫,只需使用 sed。否則,使用 sql。
如果是對(duì)象數(shù)據(jù)庫,可以使用+ZODB,或者Lua,fish
如果通用數(shù)據(jù)庫不能滿足要求,需要專家系統(tǒng),使用
如果您正在處理結(jié)構(gòu)化文本,例如 XML,請(qǐng)使用 xslt。
處理HTML,客戶端使用,服務(wù)器端使用PHP
如果您正在處理類似于語言分析的文本,請(qǐng)使用 yacc
如果處理的結(jié)果是打印文件或屏幕文件,使用tex
如果是圖像、動(dòng)畫或其他二進(jìn)制文件,一般使用C語言。
如果處理問題和操作系統(tǒng)底層,使用C語言
在語言特點(diǎn)上
如果對(duì)運(yùn)行多線程的并發(fā)性和分布性要求極高,可以考慮oz語言。
如果你很看重文檔,希望程序的文檔寫好,程序差不多完成,那就用Cweb
復(fù)雜的程序需要在編寫之前用 UML 記錄下來。
如果您想編寫大型程序或計(jì)劃只學(xué)習(xí)一種編程語言,請(qǐng)使用
如果你寫一個(gè)程序來處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法,使用Lisp and(類似Lisp的風(fēng)格,希望更簡(jiǎn)單,使用)
如果你想把一種語言最簡(jiǎn)單的實(shí)現(xiàn)作為嵌入式語言,就用Tcl,如果Tcl有限制,就用Lua
C語言是最流行的語言,但是C語言有一些缺點(diǎn),因此產(chǎn)生了很多改進(jìn)C的語言
因?yàn)镃寫不出大程序,C++誕生了
因?yàn)镃++也有指針等缺點(diǎn),所以Java誕生了
如果你不喜歡 C++ 的缺點(diǎn),想使用編譯型語言,選擇
C語言的缺點(diǎn)之一是標(biāo)準(zhǔn)庫規(guī)模小,不能解決所有問題。產(chǎn)生了大量不兼容的庫,導(dǎo)致許多不可移植的程序。如果您想要一種與 C 相同級(jí)別的可移植編程語??言,請(qǐng)選擇 Ada。Ada 的圖形用戶界面庫和各種操作系統(tǒng)相關(guān)的庫是標(biāo)準(zhǔn)化的,您可以選擇不同廠商的解決方案。它是軍隊(duì)所需的標(biāo)準(zhǔn)編程語言。
如果你不喜歡C語言的繁瑣,并希望你經(jīng)常做的編程可以簡(jiǎn)單,那么你可以使用它。為了完成同樣的工作,代碼行數(shù)是 C 的一小部分。
C 風(fēng)格的腳本語言是 pike
關(guān)于圖形用戶界面的選擇
最簡(jiǎn)單的圖形界面是tk,可以在各種平臺(tái)上使用
如果有更高的要求,使用gtk。Gtk 的可移植性較差。
一個(gè)以可移植性為目標(biāo)的開源 C 庫是
如果你想要簡(jiǎn)單的編程并且不是很苛刻,你可以使用XUL
跨平臺(tái)的圖形用戶結(jié)構(gòu)是Java的awt和。如果不是跨平臺(tái),還有ibm的Java解決方案。
如果你不排除商業(yè)編程語言,你可以使用qt,因?yàn)閝t的程序需要付費(fèi)才能用于商業(yè)用途。
如果你要寫一個(gè)全屏的文本界面程序,它是最權(quán)威的。我們可以回憶一下,C 的編程環(huán)境與圖形用戶界面一樣友好。它是一個(gè)全屏文本用戶界面。
如果你寫一個(gè)家庭式的程序,上面的選項(xiàng)也可以考慮。gtk也可以。
>如果您正在處理結(jié)構(gòu)化文本,例如 XML,請(qǐng)使用 xslt。XML 本身也可以計(jì)算在內(nèi)。>處理HTML,客戶端,服務(wù)端PHP不是唯一的PHP一. >如果處理的結(jié)果是打印文檔或者屏幕文檔,使用tex 。>如果是圖像、動(dòng)畫或其他二進(jìn)制文件,一般使用C語言。>如果是操作系統(tǒng)底層處理的問題,我會(huì)在C語言的C/C++中選擇C++。>如果對(duì)運(yùn)行多線程的并發(fā)性和分布有極高要求,可以考慮oz語言>>語言。20 年后的一門語言。> 如果你寫程序來處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法,使用 Lisp 并且> Lisp 也很流行。
>如果你要寫一個(gè)全屏的文本界面程序,它是最權(quán)威的。我們>> 可以回憶起C 的編程環(huán)境和圖形用戶界面一樣友好。It> 是一個(gè)全屏文本用戶界面。什么,。
或許,語言是用來超越的。許多應(yīng)用程序需要混合使用不同的語言。我發(fā)現(xiàn)將它嵌入到應(yīng)用程序中非常誘人。
文學(xué)編程與CWEB簡(jiǎn)介
CWEB是tex作者創(chuàng)造的一種編程語言。tex 是主流的文檔打印標(biāo)準(zhǔn)和文檔生成工具。tex及相關(guān)軟件都是用Cweb編寫的,tex體現(xiàn)了Cweb的編程特點(diǎn)。CWEB的編程思想被稱為“文學(xué)編程”。事實(shí)上,它應(yīng)該被稱為“文章編程”,因?yàn)樗c文學(xué)幾乎沒有關(guān)系,但類似于學(xué)術(shù)著作。主要思想是:編程應(yīng)該像寫學(xué)術(shù)著作一樣,有一個(gè)整體的思路,并以節(jié)、章、節(jié)、小節(jié)、小節(jié)的形式逐步豐富。這實(shí)際上類似于我們所說的“自頂向下”的編程方法。但是“自頂向下”只是軟件工程的一種方式,它是通過編寫文檔來實(shí)現(xiàn)的,不與編程語言結(jié)合。在我看來,CWEB在編程語言中實(shí)現(xiàn)了“自頂向下”。
CWEB的實(shí)現(xiàn)是“宏替換”,就是用更具體的內(nèi)容逐層替換更一般、更簡(jiǎn)潔的內(nèi)容。我們使用的編程工具“”其實(shí)是一個(gè)宏替換工具(我沒用過,只是聽說)。Zope 的TAL 語言是替換工具,但不是宏替換工具,因?yàn)樗膬?nèi)容是不可執(zhí)行的。如果內(nèi)容是可執(zhí)行的,那么它也可以稱為宏替換。