一個問題是Ruby在運行時所做的。與C語言相比,它是一種解釋型語言,C語言是一種編譯語言。它會是多麼可行? Ruby每年都變得越來越快,但是如何?正在做什麼?我們使用的很多方法(each
,map
等)是用C編寫的,加速了一切嗎? C的長期目標是讓Ruby和C一樣快嗎?試圖將用Ruby編寫的代碼轉換爲C,然後運行它,最大的問題是什麼?或者,這個問題沒有任何意義嗎?如果是這樣,爲什麼?運行之前可以將Ruby轉換爲C嗎?
0
A
回答
5
Ruby爲您提供了比C更多的功能。例如,C編程的一個缺點是程序員必須執行內存管理。這需要時間,自我展示和技巧。在缺陷和安全漏洞方面缺乏任何這些結果。但它產生的運行時間很快,因爲它是針對特定情況而非常規情況而定製的。
使用Ruby,您可以專注於應用程序,而不是機械。它爲你做內存管理,這意味着(通常)更少的錯誤和更安全的代碼。但是沒有免費的午餐 - 你用更多的運行時間來支付。
C是一種靜態語言 - 關於類型和操作的決定必須在編譯時進行。 Ruby是一種動態語言,決定可以推遲到運行時間,這會導致更靈活和更具響應性的語言。比較C和Ruby就像比較蘋果和橘子。
當然,你可以用C做所有的事情,Ruby是用C語言寫的,但是它是一個工作的,你最好是一個該死的好程序員。
相關問題
- 1. 我可以在運行時將FBX文件轉換爲Three.js嗎?
- 2. Ruby Ruby可以在Mac上運行嗎?
- 3. 將objective-c轉換爲ruby
- 4. 將Ruby轉換爲C#
- 5. Ruby可以將acts_as_nested_set轉換爲JSON哈希而不遞歸嗎?
- 6. Obj-C AXObserverCallback可以轉換爲Swift嗎?
- 7. C#可以強制轉換爲const嗎?
- 8. 運行libgdx之前可以運行一個Activity嗎?
- 9. 我可以將XSLT轉換爲XML嗎?
- 10. 你可以將其轉換爲VB嗎?
- 11. 您可以將System.Windows.Control.Image轉換爲System.Drawing.Icon嗎?
- 12. 您可以將WebElement轉換爲WebDriver嗎?
- 13. 你可以將Model轉換爲ModelAndView嗎?
- 14. SQL將real轉換爲INT,可以嗎?
- 15. 我可以將Positive,Nat轉換爲int32,Z轉換爲int嗎?
- 16. 可以將R文件轉換爲可執行文件嗎?
- 17. Objective-C在編譯之前轉換爲C代碼嗎?
- 18. 是否可以將VBA轉換爲C#?
- 19. 我可以將Visual C++運行時切換到另一堆嗎?
- 20. 我可以將C++項目轉換爲Delphi嗎?
- 21. 我們可以將列表轉換爲C#中的DataTable嗎?
- 22. 任何人都可以將其轉換爲C#代碼嗎?
- 23. 我可以將VB代碼轉換爲C++代碼嗎
- 24. 有人可以將此Unityscript轉換爲C#嗎?
- 25. 我可以在運行時將XML/XAML轉換爲WPF控件嗎?
- 26. 在SQL中,我可以將列轉換爲行嗎?
- 27. C++庫可以在c中運行嗎?
- 28. 無法將C程序轉換爲Ruby
- 29. 運行功能之前可以檢查多個空白嗎?
- 30. 我可以在整個頁面加載之前運行JavaScript嗎?
我明白了。說Ruby是否爲你做內存管理是正確的,但它通常是這樣做的。它確保它能夠插入所有的孔,包括那些你甚至不會碰到的孔。這與C完全不同,內存管理完全由你來處理,所以你不會浪費時間在你知道你的代碼不會落入的區域和漏洞上,所以內存管理是針對你的代碼量身定做的。 Ruby更普遍,這需要時間,而C流線化,因爲它不必浪費額外時間。是嗎?沒有? – David
@David:絕對。在實踐中,它不是「你知道你的代碼不會落入」的區域,「更多」你認爲你的代碼不會落入的區域。 Ruby涵蓋了所有的基礎,其中C取決於你。另外請記住,這只是我用作示例的一個區別。我沒有提到C代碼中的大部分功能,比如Object Orientation。 – cdarke