-
1 # 逍遙飛俠400
-
2 # 深圳小小楓
這個問題過於寬泛,嘗試回答一下。
答案是肯定的。混合程式設計的關鍵,是適用場景。不同的程式設計的語言都有自己的優劣,巧妙組合效果極佳。有一種說法是,混合程式設計是未來。程式設計師掌握兩門及以上的語言,瞭解不同的正規化,一定是好的。至於架構師,得是必備要求。
jvm體系內的各種語言,由於同在一個虛擬機器下,就可以混合程式設計。例如常見的java+grovvy,就可以天然的混合程式設計,發揮各自優點。
Python是一個優秀語言,通常做為膠水語言,可以把java,c,c++這些語言混合起來。
-
3 # 過客12345
可以,比如,編譯型語言工具delphi、c++等,可以整合解釋型語言(比如python、lua等)的開發執行環境,實現混合語言程式設計,揚長避短、多專業人員協作開發。
-
4 # 三輪新司機
目前幾乎所有硬體平臺的啟動程式都是用匯編語言和C語言來實現的,所以這兩種必然是可以混合程式設計的。
幾乎所有的作業系統都是基於C語言實現的,現代作業系統如Linux和Windows都是提供C++開發環境的,C和C++本身就是父子兩,混合程式設計是理所當然的支援。
更高階的如java語言,也支援透過JNI來呼叫C或C++的介面。
目前流行的膠水語言python就更不用說了,幾乎能與任何其他語言混合程式設計。
造成這樣結果的原因,也是因為程式設計師的需要。
一門程式語言在設計時,就會考慮到與已有的語言進行互動,至少需要支援與更低階的語言進行互動。比如C語言就支援嵌入式彙編。
另外不同的公司或組織偏好不同的程式語言,但他們經常在某些專案或產品上或主動或被動的進行合作,合作的方式基本上就是我用你的模組功能,你用我的產品介面,但又不可能因為要用別人的產品而讓自己的組織更換一種語言吧,於是互相呼叫的需要就這麼產生了。
還有就是作業系統,比如Windows的DLL動態庫,就有規定的檔案格式自己呼叫方法,不管你是什麼語言,只要按照微軟的規範去呼叫,就能使用它的DLL。Linux的so庫也是一樣的道理。
-
5 # 資料指揮
你說的這種語言內的混合程式設計,除了做系統級的應用外,很少使用了。
還記得當年的C/C++/Delphi混編組合語言嗎?那才是真正的混編。以下看案例
procedure Tform1.Button1Click(Sender: TObject);
var
X:DWORD;
begin
X:=$FF000000;
ShowMessage(format("移位前: %.8X",[X]));
asm
MOV EAX, X
ROR EAX, 8
MOV X, EAX
end;
ShowMessage(format("移位後: %.8X",[X]));
end;
之中的asm到 end;就是混編了彙編程式碼!
這樣做的劣勢就是緊耦合繫結,修改程式碼太麻煩。
目前基本都是推薦微服務的模式來進行大結構規劃,這塊就是利用各種語言優勢來編寫程式碼了!
比如用c/c++來寫底層演算法程式碼
java呼叫演算法程式碼編寫工程性的程式碼,
php/python寫介面這些應用和使用者互動
這需要根據專案功能和工程量來規劃的!
語言知識實現手段,別把語言當成主題!
回覆列表
不知道你說的混合程式設計是什麼,如果是一起去實現功能不同語言可以相互呼叫的,比如c/c++生成的dll可以被c#或者java呼叫的,如果系統那可以透過介面相互呼叫!