成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ API設計大師Martin Reddy:選擇最合適的語言

開發 后端
Martin Reddy博士是軟件行業的一名老兵,有著15年以上的從業經驗,早年,他曾在SRI International供職5年,他成功創建了在Web上描述3D地球空間信息模型的ISO標準,并且還連續兩年被選為Web3D協會的會長。

Martin Reddy博士是軟件行業的一名老兵,有著15年以上的從業經驗,早年,他曾在SRI International供職5年,他成功創建了在Web上描述3D地球空間信息模型的ISO標準,并且還連續兩年被選為Web3D協會的會長。他曾在 Pixar動畫工作室工作過6年,擔任內部動畫系統的首席工程師,這些API在一些奧斯卡獲獎及提名影片的制作中都發揮了關鍵作用,這些影片包括《海底總 動員》、《超人總動員》、《賽車總動員》、《料理鼠王》,以及《機器人總動員》等。據說《超人總動員》中的超人爸爸的頭部原型就是借用自Martin Reddy。

他還開辦了一家咨詢公司Code Reddy,為各家軟件公司提供技術咨詢,為大型在線3D虛擬世界《第二人生》設計了API并改善了其基本架構。現在Martin Reddy擔任ToyTalk公司的首席技術官。我們聯系他的時候,他正在為公司即將發布的第一個產品忙得不可開交。

恭喜你們公司在最近推出了新產品,你們的新產品是基于語音識別和人工智能技術,你認為語音識別和人工智能會是未來的主要發展方向之一?

Reddy:非常感謝!是的,在幾年前,Siri問世之后,我們就開始看到越來越多的用語音作為輸入機制的應用 和設備。從控制電話,到電視,再到游戲控制。我認為我們想和計算機交流的方式應該和我們彼此間交流的方式相同。所以我預測我們將會看到語音識別技術的大規 模飛躍,而且為了更好地理解我們說的話和做出合適的回應,自然語言處理和人工智能這些相關領域發展也會日新月異。

記者:你曾經為Pixar動畫工作室工作過,這是一家領先于世界的團隊。你把它的成功更多地歸功于創造力還是它在技術上的優越性?

Reddy:從基礎的層面來說,Pixar的成功可以歸功于富有創造力的故事設計。復雜的故事線,討喜的角色, 以及機智的對白會讓你鐘情于這部電影;而不是射線追蹤反射,或者新的子面散射算法。但是,Pixar的獨特之處更在于它能夠把好故事和精彩的3D圖像相結 合。就像是John Lasseter(《玩具總動員》、《怪物公司》導演,《海底總動員》 和 《超人總動員》制片人)所說的那樣:“藝術挑戰科技,而科技激發藝術。

記者除了C++你還喜歡什么語言?你喜歡什么工具?

Reddy:我喜歡用合適的工具來做合適的工作。C++對于開發可移植和性能優先的代碼來說是一門很好的語言。 但是其他的語言對于其他的工作很可能更加勝任,而且有些語言在某些環境下可以達到獨霸天下的程度,比如Objective-C之于 iOS,JavaScript之于網頁。當我可以選擇的時候,我就愛上了Python。我曾經喜歡使用perl或者shell腳本編程,我現在轉向了 Python。甚至對于很多GUI工具,我也轉向了Python,PyQt和 PyInstaller環境下,我可以很快的開發代碼,然后作為獨立的二進制代碼在Windows, Mac OS X, 以及Linux平臺上運行。對于我來說Python的最大問題在于run-time類型查看的時候容易把代碼運送給用戶,這樣就會因為類型不匹配或者未定 義名稱而造成運行時的異常。為了彌補這個缺憾,我會經常在我的Python代碼上使用源碼檢查器,比如PyFlakes 或者 PyChecker。

記者 C++的應用領域變得越來越小,你認為它未來會有什么樣的發展?C++的強勢領域在哪里?你認為C++的演進方向是什么樣的?

Reddy:好問題!我一直以來看見的都是C/C++處在最受歡迎語言的前列,但是其他的語言也在變得越來越被 大家接受。在我的公司我們仍然在很多場合使用C++,因為它可以成為在眾多平臺上都能運轉的有效代碼,同時也可以進入性能優先的3D圖像庫和語音識別系 統。但是,新的設備和環境已經讓其他語言變得越來越突出。比如移動、平板,以及web開發現在正值火熱的時候,而且現在看來這樣的勢頭在未來只會有增無 減。我認為C++在我前面說過的領域中是很強勢的,但是這些新涌現出的編程環境會有一些不同的需求,而C++對于這些需求來說未必是最好的選擇。我認為這 是一件好事。

記者你怎么看C++新標準?它會影響API的設計嗎?現存的庫如何保持更新呢?

Reddy: C++11對于C++來說有很多很棒的提升。對于API設計而言,有很多新的特性你可以拿來用在你的API上,包括向元組、匿名函數、線程基元、智能指 針,以及嶄新的重寫和最終關鍵詞。當然,如果你的API必須要被無法使用C++11編譯器的客戶使用的話,那么你就需要維持C++03語法了,或者為你的 C++11客戶提供一個API包裝器。

記者 C++的ACE框架相當復雜,但ACE是當年分布式框架的首選。現今可選的技術相當多,使用復雜的C++構建分布式應用還有優勢嗎?有沒有更易用的C++網絡技術框架?

Reddy:我對ACE不是十分了解,但是有一些可以選擇的底層網絡框架,包括Boost Asio, cpp-netlib, 以及Qt的網絡訪問API。

記者一個新設計的系統API,早期版本經常陷入“狂熱”的增加特性(接口、參數、用途),而到了穩定期卻常常成為升級時甩不掉的包袱,甚至連早期bug都會變成被迫持續支持的“feature”。請問設計第一版API時如何在表達力、易用性、兼容性方面達到平衡?

Reddy:這是API設計最為重要的部分之一:保持事情的簡單性。有一點你說得很對,所有出現在早期版本 API中的特性都必須在API的整個生命周期中得到持續支持(除非你打破向后兼容性的限制)。我支持不要在接口上添加任何東西的辦法,除非真的有必要。不 要添加任何現在沒有用,但是你懷疑可能在未來會有用的東西。集中精力解決核心問題。

記者 Go語言變得越來越流行了,你對這門打算要取代C/C++的語言是什么態度?

Reddy:我愛Go!它真是一門偉大的語言。事實上,在我們公司里,我們在服務器端的基礎設施上用的都是Go 語言。它的編譯方式是靜態類型的,這一點和C以及C++很像,但是設計上卻比C++簡單很多,而且Go有強大的網絡支持以及內置并發性基元,這點真是太妙 了。而且Go語言的設計人之一正是Ken Thompson,他也是C語言的最初設計人,所以這門語言注定是很靠譜的!

記者向Python這樣的“可執行偽代碼”被越來越多的人所接受,你能預測一下未來的編程語言會是什么樣的嗎?是寫文章一樣任人都會還是仍然屬于程序員?

Reddy:像我上面說的那樣,我喜歡Python。它解讀清晰和動態類型的特性讓它變得更容易上手,更好學 習。加上大量的標準庫以及垃圾回收存儲器管理,我認為Python是最適合作為第一門編程語言來學習的。我也認同Python可以服務于非計算機科學家, 來幫助大家實現計算和自動化,比如Python已經在生物信息領域里非常受歡迎。但是我認為我們始終會存在語言的分水嶺,不同語言會有各自適合的領域。有 一些語言對于普通人來說更加平易近人,但是我相信我們仍然需要以性能為目的,可編譯、靜態類型的語言,這些語言在效率和準確性至上的領域會更為重要。

記者作為程序員應該怎么學習?要變成編程大牛需要數十年的時間嗎?有沒有捷徑可走?對于計算機專業的大學生們,你有什么特別的建議嗎?

Reddy:我認為要變成編程大牛不需要數十年的時間。但是我認為要了解你的編程語言的深度和細節需要很多的熱 情,要理解你的編譯器或注釋器是如何幫助你的,它們在后臺做的工作細節是什么樣的。對于C++來說,你理解如何為模板生成代碼嗎?你知道虛函數表是如何工 作的嗎?或者多重繼承的問題在哪里?對于Python來說,你理解引用計數是如何工作的嗎?你知道變量是由值還是由引用通過的?對于你工作上最重要的工 具,不要滿足于表面的知識。你對自己的工具了解越深,你就會成為更好的程序員。

但是我個人認為一個好的程序員和一個好的工程師是不同的。優秀的程序員知道如何寫代碼,而一個優秀的工程師知道如何架構以及如何建造復雜的系統,在 這樣的結構上會有更多的工程師為其工作。要成為一個好的工程師更加困難,而最好的老師就是經驗。所以我會建議在校生去擁有大型軟件產品的公司做實習,同時 作為工程師團隊的一員,學習在復雜生產的軟件上工作的流程和技巧。

記者在中國,很多人都更傾向于成為管理層。你認為程序員可以作為一生的事業嗎?

Reddy:這是個有趣的現象,因為我看到的多數高級工程師都想一直寫代碼,而不想變成管理層。如果你很擅長你 正在做的工作,你可能就會得到升職,從傳統意義上講,這就意味著管理層。但是我現在看見很多“雙軌”型的事業發展,尤其在科技公司里,也就是說你會得到升 職但是仍然從事一線的開發工作。比如在Pixar的時候,我們就有一個“技術帶頭人”,這個人就會決定其他幾位工程師的技術方向,而另一位“管理帶頭人” 就會接受大家的報告,同時也要指導并為這些人寫評語。當然,像技術總監、軟件架構師、以及主工程師這樣的路線都是你提高自己的方向,所以你沒有必要非得擔 負起管理這個包袱。

原文鏈接:http://www.ituring.com.cn/article/58481

責任編輯:陳四芳 來源: 李忠的博客
相關推薦

2017-10-17 12:49:18

無線AP無線AP

2013-12-16 13:55:42

ESXi存儲

2018-06-19 10:38:42

數據中心遷移時機

2020-12-31 09:39:39

應用圖像格式SVGOMG

2009-09-22 10:20:00

專線接入

2018-02-25 10:37:26

語言數據分析工具

2009-01-12 17:28:10

服務器虛擬化VMware

2017-05-31 09:12:51

機器學習算法數據

2015-04-23 16:17:40

云平臺華為

2010-01-22 10:26:40

C++語言

2025-05-13 03:00:00

NginxLVSHAProxy

2010-01-22 10:36:25

C++語言

2010-01-13 14:05:55

C++語言

2019-04-26 10:28:11

路由器價格網絡

2009-03-17 09:49:00

有線寬帶接入方案ADSL

2018-07-13 09:29:34

2018-07-18 15:19:35

DDoS高防服務DDoS 網絡安全技術周刊

2011-10-18 17:00:02

2010-01-15 17:38:37

C++語言

2009-02-27 09:25:28

編程語言程序員C#
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩区| 亚洲国产欧美在线 | 毛片免费观看 | 亚洲精品久久久一区二区三区 | 成人国产精品久久 | 精品久久99 | 日本精a在线观看 | 国产精品一区二区不卡 | 精品成人在线观看 | 精品综合久久久 | 天天色天天色 | 成人欧美一区二区三区 | 国产精品久久久久久久久久免费看 | 亚洲天堂久久 | 欧美在线 | 欧美日韩成人在线 | 精品日韩在线观看 | 亚洲成人中文字幕 | 久久亚洲综合 | 久久精品青青大伊人av | 亚洲一区二区精品视频 | 国产精品明星裸体写真集 | 日本精品久久久一区二区三区 | 欧美激情精品久久久久 | a级毛片毛片免费观看久潮喷 | 中文字幕第一页在线 | 96av麻豆蜜桃一区二区 | 日韩一区中文字幕 | 你懂的国产 | 91国内视频在线 | www.五月天婷婷 | 久久国产高清 | 免费在线一区二区三区 | 国产美女精品视频免费观看 | 亚洲精品成人av久久 | 欧美视频在线播放 | 美女福利视频网站 | www.一区二区 | 伊人色综合久久久天天蜜桃 | 亚洲人成人一区二区在线观看 | 欧美成人精品欧美一级 |