DAVID J. MALAN:所以我們又回來了。 這樣的高級別 此刻的話題,現在 是技術堆棧,這是不 一個特別的技術術語, 它更多的是捕獲所有的任何 技術的組合數 你可以使用來解決問題。 也許是最 合適的方式來啟動 會看,因為語言 我一直劍拔弩張了一大堆 和大多數人在房間裡有 可能聽說過的至少一種。 所以我們為什麼不嘗試區分 what--區分這些語言 並簡要談談你們什麼時候 選擇一個比其他,他們是怎麼樣 諸如此類的根本 不同,特別是 當你與工程師聊天, 或試圖決定誰聘用, 或者執行什麼 建議綠燈, 你將如何實際上使 這些類型的決定。 所以我們就滔滔不絕一些事情了。 語言的人有 聽說過,想到什麼? C.確定。 OK,C ++。 那是什麼? 聽眾:Python的。 DAVID J. MALAN:Python的。 優秀。 還有什麼? Visual Basic中。 我聽說的Java。 視覺Basic--又名 VB。 Java的。 .NET,這更是一個捕獲所有 對於平時有什麼C#作為語言 有問題。 讓我提及。 因此,我們會回來這一點。 對不起? 抱歉? 聽眾:SQL。 DAVID J. MALAN:划痕? 聽眾:SQL。 DAVID J. MALAN:哦,SQL。 好。 SQL。 因此,我們會回來的居然that--, 這是突破後good--為好。 還有什麼? 聽眾:甲骨文。 DAVID J. MALAN:所以 甲骨文,不是一種語言。 其實,他們將使用SQL為好。 因此,讓我們把那個後 休息為好。 很遺憾,這裡有什麼事? 聽眾:數學。 DAVID J. MALAN:數學? 可以,當然。 和MATLAB是一種 在那裡的時候。 聽眾:R. DAVID J. MALAN:R.讓我們在這裡。 Fortran語言。 當然。 較早的學校。 Fortran語言。 COBOL。 我就折騰了BASIC。 BASIC。 任何 - 聽眾:MATLAB? DAVID J. MALAN:MATLAB。 呵呵,打你給它。 什麼? 我能想到的一對夫婦別人的。 我能想到的其他幾個人的。 什麼是最後? 聽眾:ASP。 DAVID J. MALAN:ASP? 是啊。 活動服務器網頁。 這通常會落在下 其他語言,有時是C#, 讓我們留給了。 但是,我們會回來給 對於框架和這樣的。 還要別的嗎? PHP是受歡迎的。 Ruby是另一回事。 JavaScript,以便不混淆 與Java,是另一回事。 這是怎樣的一個地段。 所以可以肯定鋪天蓋地, 如如果列表尚未, 剛開始知道你在哪裡開始。 所以幸運的是,我們 從幾個角度接近這一點。 首先,讓我們嘗試分類 至少有一些語言 分為兩大桶,讓人聯想到的 我們打破之前的談話中, 在這裡我們談到了編譯, 和源代碼和機器代碼, 因為這不是如何 所有的語言。 因此,我們將挖出的幾個例子of-- 或反examples--該模型。 然後,我們為什麼不 談談應用程序 這些語言 一般用於。 坦率地說,即使 這是一個相當長的名單, 這只是該列表的一個子集 您通常會從這些天畫 解決問題。 某些語言比其他更新。 某些語言 比其他人更受歡迎。 所以它不喜歡你有這​​樣的 在你面前一項艱鉅的任務 中決定何時 這些不同的語言。 因此,讓我們做到這一點。 我們之前,源代碼, 然後我們有機器代碼。 哎呦。 寫打錯字。 機器代碼。 我們曾在一些工藝 中間called--是啊,編譯器。 所以編譯器。 什麼機器代碼 實際上到底運行在 將是你實際的CPU。 換句話說,由機器碼,我 平均最低級別的指令 一個CPU實際上理解。 加法,減法,移動, 保存和類似的操作。 所以,這是什麼模型 一般被稱為編譯語言。 這也許並不奇怪。 因此,這是模型 對於編譯語言。 但事實證明,那裡的 另一個類的語言 所謂的解釋languages​​-- 解釋languages​​-- 是稍微不同的。 你寫的源代碼,運行 他們通過翻譯, 而解釋器 什麼在CPU上運行。 換句話說,你做了什麼不 EMIT是什麼,很明顯? 機器代碼。 在CPU的零和一 最終自己明白。 因此,在這個第一版本和 如C語言,就像我們看到的, 你在源代碼中寫 這是一個有點神秘, 但至少它是一種類似英語的 和它的至少可讀 一旦你習慣了它。 您可以通過一個編譯器和跑得過它 你得到的,最終,零和的。 這種過於簡單化。 還有在有其他步驟。 事實上,如果你曾經聽說過 術語“彙編語言” 這是前一步 在零和一。 這一點更可讀, 但仍然相當神秘。 所以有中間步驟 這是,事實上,這裡發生了。 但輸出,最終 是這些零和一。 但在解釋 世界,在這裡你有 這是解釋型語言 語言,你居然跳過這一步。 換句話說,當你寫一個 程序,您只需立即運行。 你不編譯它 然後運行它,就像我以前那樣。 你只寫並運行它。 如果你想快速的變化, 你做一個快速變化和重新運行它。 所以這裡沒有中間的一步。 現在,該計劃我之前寫的, 這是這個“Hello World”程序, 你很可能會 wonder--或可合理 state--這不是那個時候 耗時編譯我的程序。 它似乎已經做到了就這樣。 還有的圖形 編譯器版本。 我使用的是一個非常神秘的版本, 但你可以打一個播放按鈕 這將真正做到 編輯為您服務。 我編譯的程序,然後 再次,運行它,我只是做到這一點。 它在左邊輸出那裡,“你好!” 這似乎並沒有那麼繁重。 但是,當你的程序 不僅僅是一個,兩個,三個, 四,五線較長,可以 採取更為秒編譯。 有時甚至分鐘 相當多的時間進行編譯。 畢竟,一些 世界上最大的產品 事情像操作系統, 微軟的Word,Microsoft Excel中, 這可能是數以十萬計 甚至上百萬的長行的代碼, 而那些不只是 立即執行。 此外,在網絡上,它的 成為時尚使用 簡單理解的語言, 部分原因是因為你 可以做出改變作為顯影劑 然後就馬上重裝 瀏覽器頁面和 馬上看到結果。 等的HTML,而不是 一種編程語言, 是的解釋的語言。 而我們昨天看到了同樣的效果。 你只需做後重新加載頁面 在Cloud9的變化還有 - voila-- 你看到一個新的結果。 那麼,有什麼區別嗎? 在HTML中,回想一下,我們不得不打開HTML, 開目,開題,緊密稱號, 接近頭部,開身,等等。 我們有所有這些標籤,我們很 不多說了,告訴瀏覽器該怎麼做。 嘿瀏覽器,來了一個HTML頁面。 嘿瀏覽器,來這裡的冠軍。 嘿瀏覽器,來了一些 文本應該大膽。 然後你告訴相反。 嘿瀏覽器,這是它 為粗體文字。 嘿瀏覽器,這是它的身體。 等等。 還等什麼是瀏覽器? 瀏覽器只是一個解釋。 這是一個程序,有人喜歡 微軟或谷歌已經寫的, 他們的生活目的就是 讀語言,被稱為HTML, 和解釋。 從上到下,從左到右。 並隨時瀏覽器看到開放 支架,標題,緊密支架, 它應該是解釋 為意,呵呵,那 意味著我應該把這些詞的方式 這裡在瀏覽器的頂部。 因此,它只是做HTML代碼的話。 但沒有零和一。 有沒有編譯。 你沒有做到這一點。 瀏覽器並沒有這樣做。 它只是沒有涉及。 因此,在這些持續的精神 話題,今天和昨天, 這似乎是一個奇妙的功能。 您保存代碼,然後 只要運行它或解釋。 有沒有中間步驟。 當然,也存在著成本? 不能全部上升空間。 所以,可能是成本是什麼? 聽眾:太空。 DAVID J. MALAN:太空。 所以,肯定。 在編譯的世界裡,你有 不僅原始源代碼, 您還要創建和 然後大概節約 本機代碼 - 中 零和ones--,這就是 得佔用空間量。 絕對。 因此它花費你更多的空間。 是嗎? 聽眾:瀏覽器可能 不同的解釋。 DAVID J. MALAN:瀏覽器可能 不同的解釋。 那是真實的。 但我不相信我 自稱舒適 這是因為它的解釋。 這更多的只是因為它是 一語言的實現 這本身就具有模糊性。 因此,讓我們不是很確定 那一個,但好的預感。 還有什麼可能付出的代價? 安德魯? 聽眾:你結合 兩個步驟,讓你因此 有越來越多的複雜性,以及。 DAVID J. MALAN:本complex-- 增加的複雜性在哪裡? 為了誰? 聽眾:所以,在解釋 一步,你相結合的解釋 和編譯器只是領先了中場休息 DAVID J. MALAN:啊,OK。 諷刺的是,它可能是一個小 容易實現的解釋, 即使它似乎 這種便利的收益率上升空間。 所以可能如此。 但是,那種依賴,我 會說的語言 以及他們如何去 其實現。 可以有很多的複雜性, 實際上,在編譯, 只是因為你有從去 東西這麼高層次的東西 如此低的水平。 但是,一個好的想法。 所以換句話說,已編譯的程序, 當變成這些0和1 在語言結束 在CPU講, 而在的這一邊 世界上,程序,你已經寫了, 你的代碼已經寫了,從來沒有真正 被轉換成實際的語言 計算機說話。 在零和一。 它停留在原來的,更加人性化 友好,更可讀的語言。 所以,可能是什麼含義 還有,如果你不實際 打擾您的轉換 計劃到非常語言 底層計算機說話? 聽眾:可能並非 明白了點什麼? DAVID J. MALAN:可能 不明白的地方。 而這可能claim-- 如果不明白 什麼東西,這是一個錯誤或不足 的功能在解釋器。 因此,這將是多的 一個錯誤比成本。 聽眾:您可以訪問 源代碼? DAVID J. MALAN:有一個很好的一個。 所以這裡一個缺點就是你 似乎有訪問。 你的最終用戶,可能看起來 存取源代碼。 而這並非總是如此。 但它是在真 JavaScript的情況下, 我們將著眼於後 破發的今天,這 是一種解釋型的編程語言 您在源代碼中編寫。 但是,源代碼被轉移 從服務器到瀏覽器 並運行在人的瀏覽器。 所以在這裡,她可以只打開 窗口,就像我在Chrome一直在做, 看看它,因為我們自己 瞥了一眼昨天與谷歌。 它看起來有點 不可理解的,但它的存在。 所以,這絕對是一個價格支付。 聽眾:性能損失? 戴維·馬蘭:是的。 而這正是其他大不了的。 有一個性能命中。 因為你有這 中間人,這本身 是一個程序,你們之間 和CPU,而不是 只餵這些原始 零和一到CPU, 有一個性能命中,你 採取與解釋型語言。 這樣,任意地,程序 這可能耗時1秒 到一台計算機或一個在運行 分鐘到這裡的計算機上運行, 可能需要10秒或10 分鐘到這裡的計算機上運行。 它一般不會是 太大的difference--因素10-- 因為有 優化你可以做。 但它幾乎總是慢。 現在,另一面這一關切 是這樣的,還有電腦,每12 18 months--根據 摩爾定律,所以speak-- 只是越來越快。 我有越來越多的磁盤空間。 我有越來越多的RAM。 誰真正在乎呢? 而這類型的 合理的說法。 實際上,的原因之一 為什麼我們能容忍慢 解釋型語言,是因為 我們人類真的不注意到。 該計算機有 剛剛得到織補這麼快。 而早在一天,尤其是 當硬件被更多的限制, 你有較少的一切, 這是更昂貴的 所以一切成本較高,以及再 你真的想要擠走 盡可能多的性能,你可以。 但是,這需要在編寫 較低的水平,如果你願意, 用編譯語言。 這樣你就採取這種性能損失。 但是總體來說,有利的一面 似乎是值得的,這些天。 那麼,除了 知識產權問題。 那種可讀性 代碼中,我們將 回來的時候,我們看的JavaScript。 所以,讓我們嘗試分類 至少其中的一些。 因此,編譯語言之中,我們 將有C,C ++,有點兒,八九不離十,爪哇, 雖然這是一個有點異常,對於 原因我會告訴你在短短的時刻。 C#是這個名單上。 我們將看到更多的只是在 更現代的語言。 好吧。 這似乎是很多在那裡。 而在柵欄的這一邊, 可能我們的JavaScript和Python, 和PHP和Ruby。 並且是足夠 更近的嗎? 那感覺就像很多現在。 好。 然後點點點, 因為名單是無止境的。 而事實上,如果我們只想 獲得this--維基百科的感覺, 編譯語言。 我猜我們可以得到一個 更為詳盡的列表。 所以在這裡我們去。 因此,這裡是一個更詳盡的清單。 我希望有人猜ð 作為一種語言,因為,太多的存在, 但他們停止為D這似乎。 雖然有可能實際上是一個E. 呵呵,其實,這應該 在列表中的這些日子。 斯威夫特居然是 語言,蘋果發明 即現在使用,越來越 因此,在iPhone開發。 但是,我們會回來的 隨著我們的討論 在短短的一點點移動為好。 如此迅速也是如此。 然後,如果我們去 解釋language-- 解釋language--那麼這裡 甚至更長的名單也是如此。 所以,如果你只是谷歌和 看看維基百科上對於這些, 你會看到各種各樣的語言。 但是其目的是, 今天真的,只是 歸結起來,也許這 知識產權問題 性和可讀性由最終用戶和 性能,是另一個大問題為好。 因此,這些語言中, 讓我看看,如果我們可以給你 只是語言的一些示例。 我們不想去通過 所有語言不休。 你有沒有想過什麼 某些語言樣子? 我們確實看到了剛才。 我們為什麼不拿一對夫婦 的功能要求。 誰願意看什麼 其他語言的樣子? 是啊。 聽眾:Java的。 DAVID J. MALAN:Java的。 好吧。 所以,讓我們去渣。 而只是給你一個sample-- 我們可以寫這些了, 但它會更快只是 看著別人的示例代碼。 好吧。 所以這是一個很好的例子嗎? 哎呦。 好。 因此,這裡是的Java版本 節目我之前寫的,的“Hello World”。 所以Java中,你經常會 看到關鍵字“類”。 然後你就會看到後,一些名字。 你會看到大括號 像我們以前看到的, 有時他們去了 同一行,有時其他線路, 它是一種個人的決定。 你會看到類似於關鍵字 “公”,“靜”,“無效”。 但是,我們也看到“主”。 “主”一般 缺省功能的名稱 或代碼的默認存儲塊,它 獲取程序運行。 “串。” 什麼我們通過串前面是什麼意思? 我用它那種隨隨便便。 字符串是什麼? 一個字。 這就像一個字符序列。 單個字符,回 背靠背,通常在一個數組, 正如我們已經討論過。 而事實上,看到這個語法 這裡,這兩個方括號? 這意味著,哎電腦,在這裡 附帶的字符串的數組。 在方括號是 常用來表示。 然後,你可能 採取什麼guess-- 這也凸顯 代碼塊可能嗎? 聽眾:輸出? 戴維·馬蘭:是的。 它打印一些東西到屏幕上。 因此,“系統”是一種的 參考到您的計算機。 “出”是指您的計算機 輸出或屏幕。 因此,“system.out.print LN”大概意思? “LN”。 打印線,程序員喜歡 顯然到一些拼寫出單詞 以其整體並採取 快捷鍵與其他詞。 但是,“LN”為線,所以打印線。 所以它打印出“你好 世界!“後跟一個新行。 所以這是它。 但是,Java是什麼,他們會 通話面向對象的。 事實上,只給一 其他幾個定義 那裡,你可能 看到,在一般情況下,有 有許多不同類型的 語言文字,但最常見的 是程序或命令式語言。 有功能 語言,這不 意味著別人都不起作用。 然後還有 面向對象的語言。 這也許是最好的 大多數語言的分類 那你會不會選擇排序 典型的商業項目。 這將是太多的, 我認為,老鼠的洞, 往下走,嘗試解釋 不同的差異。 但語言 我們已經看到了這樣far--Ç 是程序或 命令式語言。 最近發明了 語言往往是,對不起, 面向對象的,這意味著 他們有其他的功能給他們。 我可以解釋它以這種方式? 我們甚至沒有去那裡。 面向對象的方法 你可以implement-- 你可以模擬真實的世界 稍微更有效。 人性化,隨著時間的推移, 已經想通了,哇, 這將是,如果我的語言不錯 有這個功能或特性。 這就是為什麼我們有這麼 許多語言在世界上。 理智的人,聰明 人,同意或不同意 和總是那種走到一起 開發新的語言都在一起。 典型的例子。 蘋果發明Swift在 想必希望降低 酒吧到iPhone的發展, 因為以前language-- 所謂的Objective-C,這可能 也是我們榜單上這裡 - 是更加神秘和多 更難迴繞胸臆。 而作為編程無疑成為 更方便和更廣泛 人們甚至通過 少技術,該goal-- 這是一個非常勇敢的目標嘗試 通過降低准入門檻 語言本身 容易上手, 但同樣強大的必然。 而另外一門語言。 我們為什麼不來看看 在類似的Python, 這是非常流行的這些日子。 蟒蛇。 樣本程序。 讓我們來看看。 “Hello World”的語言。 我們開工吧。 “你好,世界。” 讓我們看看這給 我們一個很好的例子。 好。 所以,這其實是一種樂趣。 所以,如果你曾經谷歌 的“Hello World”,這 恰好是在第一方案中的一個 寫過在現代語言, 正如概念證明,你可以看到 種種此實現。 一些語言 我甚至沒有聽說過。 但是你可以see--讓我們去基礎, 一個我多年前了解到,在部分。 這是一個有趣的語言,因為你 不得不,作為編程,數 所有的線。 不是不像我是什麼 當我在寫做 偽上的黃色文件 之前為二進制搜索, 用於搜索電話簿。 所以,如果你想 去到另一行, 你會從字面上鍵入, 到10,或者去20。 如果你正在寫的線條, 公約是做的,這是10號線, 這是第20行,這是行 30,40,與沒有在兩者之間, 從而給自己一​​些空間 如果你決定了,等一會兒, 我應該補充一些 更多的代碼的某個地方。 你仍然有那種九個機會 擠在你的程序之間 你不得不手動前 重新編排的一切。 因此,這是什麼樣的我的意思 當我說這個世界上來 用一個新的功能。 某處有人方式 實現的,這小子是愚蠢的。 這僅僅是創建 為程序員工作。 於是,他或她只是一種建 最重要的是一個新的圖層 這樣你就不必擔心 什麼行號代碼 其實上。 你什麼時候可以選擇 一種語言或其他? 那麼,其中哪些 語言你傾向於 聽到的最 你自己的世界,這些天? 讓我們下拉的Objective-C了。 聽眾:C#。 DAVID J. MALAN:C#。 因此,讓我的顏色。 難道我們有其他顏色的地方? 因此,C#。 那麼,你知道C#? 什麼春天介意嗎? 聽眾:這是一種編程語言。 DAVID J. MALAN:這是一個 編程語言。 好。 那是真實的。 因此,我們在談論C#。 C#趨於中所用 Windows環境中, 所以,如果你正在寫的微軟軟件 適用於Windows,C#是很常用的, 無論是桌面軟件,或 在Windows手機甚至手機軟件, 如果你已經擁有了這些, 或在網絡上甚至過於。 而事實上,也許卡里姆 上述ASP早些時候? 因此,有這些還 東西叫做框架, 我們可以通過擴展引入。 框架,如ASP。 代表活動服務器網頁。 這是代碼, 編程的一種方法 其通常可以更容易 編寫基於Web應用程序。 換句話說,這將是超級, 超級討厭寫網站 在C語言的 我們以前見過, 因為你將不得不使用打印+ F, 你將不得不使用關鍵字 “主”和大括號內。 很多神秘的語法 和方法來實現 東西是相當複雜的。 一個網頁。 等其他語言的演變 做出那種事情更容易。 反過來,人們紛紛拿出 與框架,排序工具 您可以使用,使它 更容易編寫網頁。 因此,例如,為了使 這更具體, 讓我打開一個剛 一會兒文本文件。 你可能還記得昨天 我們說了些什麼 像,這是一個網頁。 HTML。 關閉HTML。 讓我跳過頭 只是做身體在這裡。 假設我想 不寫的“Hello World” 但“你好大衛,”大衛是 當前登錄的用戶的名稱。 什麼樣的東西 ASP會做,或JSP-- 這是Java服務器pages--或 任何數量的其他框架 是他們沒有語言本身。 他們就像 額外的軟件,您 將其安裝到您的環境 只是使其更易於編程。 因此,例如,而不是必須做 像“你好,的printf(”大衛“)” 或東西是 一種共同mingling-- 什麼樣的代碼中,我們已經看到before-- 你會做一些簡單得多, 如“名字%。” 所以這些框架, 像ASP--和我 不記得,如果我得到 語法正好適合ASP。 JSP是little--這是正確的? 因此,與ASP,這是 那種特殊的語法 一些開發商已經決定 這可能幫助人們走出。 我可以表達更簡潔 佔位符,例如。 喜歡這裡,這裡放一個值 這個值的名字不是N-A-M-E, 它存儲在那裡一定的價值。 因此,“名稱”,在這種情況下, 我們所說的變量。 代數有變數 像x和y和z。 程序員使用的是變量 比的x,y和z更具描述, 典型。 因此,“名”會從字面上是某種 對於像存儲容器 D-A-V-I-D,為我的名,或誰 其他人登錄到該網站。 所以這是一種方便 你會得到一定的環境。 因此,C#和ASP一樣的東西會很 在Windows世界通常被使用, 無論是其台式機 軟件或Web服務器, 特別是如果你的服務器是反過來 運行Microsoft Windows和Microsoft IIS--或Internet Information 服務器,如果我得到的縮寫right-- 這是微軟的Web服務器。 那麼,什麼其他語言 熟悉的人, 或者你聽說過的 往往不是? 聽眾:我知道,Python的 一種流行的[聽不清]的。 戴維·馬蘭:非常受歡迎。 因此,這裡的Python很經常使用 科學應用程序或數據 科學,在那裡你有很多 數據要分析 並且要使用 編程語言了。 ř可能通常被用於 同時,在統計範圍內。 但是Python有這麼多 內置的功能。 因此,許多附加 庫,人說。 圖書館是收藏品剛 代碼的其他人 寫道,您可以使用,這樣你 不必重新發明輪子的那些。 所以Python是非常普遍 數據的科學應用。 但它也很普遍 在Web應用程序中使用。 您可以實現動態 網站使用Python。 並通過動態的網站,我 意味著不只是靜態內容 就像我們昨天創建,由 只是在拉丁文本硬編碼 等這樣的事情, 而是能力 登錄,能夠買 東西,能否退房 與您購物車,或類似物。 所有這些都需要活力和你 需要像其中的一個部分語言。 聽眾:這是否Python中有自己的 延伸,類似像[聽不清] DAVID J. MALAN:它。 所以在Python的世界裡,Django是 一個非常流行的Python框架。 WSGI是另一種機制,這是 排序從這個不同 但在精神上相似。 這是一個插件,可以讓你 向在服務器上運行Python代碼。 有other--呀。 因此,這些我們稱之為框架。 而且這是一個濫用的一點點。 這更多的是一種Web服務器技術。 但我們會保持它的簡單,並把 它在此列仍然。 好。 WSGI。 WSGI。 另一件事 - 實際上,讓 我謹以自己的列, 因為我將在自己喊 將它們放在同一個桶。 讓我們把這個變成服務器 的功能,讓我們說。 這不是一個技術術語。 所以在這裡,我們可能會WSGI。 有CGI,這是一個較舊的 技術服務了語言 像Perl或PHP,或者其他人。 再次,我已經提到這些條款 與其說是那種根深蒂固他們, 但是,這樣如果你看到 他們這件事情 您只需谷歌閱讀更多。 有沒有真正的果汁 對其中的一些東西。 但是,讓我們回到語言。 我們談到了C#,Python的。 還有什麼可能用於 Web編程可好? 讓我們關注仍然。 聽眾:PHP。 DAVID J. MALAN:PHP。 讓我們回到那一個。 所以很常用的PHP。 PHP往往得到一個壞名聲。 它開始作為一個語言實現 鄉親誰也許不一定 最好的語言設計者。 所以你可以閱讀各種 網上的文章關於PHP是多麼糟糕。 不幸的是,這是 體現,部分地 只是宗教辯論 程序員中的爆發。 這是值得 值得銘記, 從商業的角度來看, 這對技術人員很容易 讓所有使用過他們的 對某些事物的看法。 它並不意味著 這一個叫喊最響 或具有最強, angriest的意見是正確的。 很多時候,它真的 只是無所謂。 所以人們只是吵什麼 自己的偏見或舒適區是。 所以,你應該保持 考慮到這一點的時候做 一個決定,這只是 因為有人說 這是正確的語言 這項工作,這可能是真實的, 但它也只可能是它是 自己的技術範圍內的正確的語言 設置或安樂窩。 這是不壞,但你應該明白 可能有一些背景存在。 有一些客觀 錯誤的語句, 像C是用錯誤的語言 這些天來實現網站 幾乎總是。 但是,這不是沒有道理 地說,任何這些 錯了,我們已經迄今為止盤旋。 PHP經歷了許多版本了。 所以語言往往有版本 與它們相關聯的數字。 PHP是提出來,我覺得,第7版現在, 所以它的存在了相當一段時間。 而作為語言得到更新, 他們經常獲得新功能。 但你必須要留意這一點 因為如果你的網站已經 在PHP中的7版本中實現,但 你想運行自己的網站, 或者也許你已經外包 你的代碼的開發 給別人,他們郵寄 它給你或將其發送給你 他們說,在這裡,把 這是你的Web服務器上, 如果你的Web服務器是幾 年outdated--它是否 在自己的服務器或Web host-- 它可能不會實際運行。 所以這些都是該種 的東西,別人 需要謹記 升級站點時 或執行它的第一次。 我聽說JavaScript的早。 因此,JavaScript是一種有趣 之一,它通常是 客戶端,因為我們將看到 中場休息時,後 意味著它在用戶的瀏覽器中運行。 但是你也可以運行 JavaScript的這些天 使用一種叫 Node.js的,其中的Node.js 適用於運行機制 JavaScript代碼的服務器端, 而不是使用Python或 PHP或其他語言。 JavaScript是特別適合 聊天應用和實時 應用程序,而PHP是不是一個偉大的 語言實現的東西 就像一個聊天服務器,用戶 保持聯繫,它不斷。 PHP是更訪問我的 一次,回來的結果, 然後點擊另一個鏈接一些 從現在幾秒鐘或幾分鐘。 而Node.js的和JavaScript可以 更多用於永久連接。 您懷疑其他語言 通常用於Web的東西? 聽眾:請問jQuery的是一個框架? DAVID J. MALAN:好問題。 都不是。 我會打電話jQuery的圖書館,在那裡 再一個圖書館僅僅是一串代碼 別人有 撰文指出,一般 解決了一些問題, 使得它,希望更方便 為你做你的工作。 讓我做的一個例子 這在紙幅的情況下。 在幅材的上下文有 這種語言,JavaScript中, 我們將在後​​面看到,這樣你 可以這樣說this-- “的document.getElementById”。 而我怎麼叫它昨天? 首先,我認為,是唯一的ID我給 到這個樣子的元素。 “P ID =”第一個“>”,然後我們有 像“Lorem存有”,等等。 所以,如果我在寫一個程序 JavaScript來操縱不知何故, 改變的網頁,我們 昨天被打, 我會用這 代碼高亮顯示的行 獲得HTML的特定片段 從我的網頁,特定節點, 正如我們將調用它。 然而,在jQuery的,而不是寫作 這一點,這是原始的JavaScript代碼 - 剛剛開箱,這就是你如何 寫它 - 你不是剛才說, “#第一。” 這是等價的。 只有如此,在此基礎上很 神秘的例子,也許什麼 是使用jQuery的說法? 為什麼要開發利用就像一個圖書館 jQuery的,在此基礎上孤立的例子, 也許? 聽眾:更少的代碼。 戴維·馬蘭:是的。 這是更少的代碼。 這只是更快的輸入。 對位是 它看起來可怕。 你不能真正讀懂它從左到右。 事實上,因為它主要是 現在標點符號,而不是實際的話, 我可以種推斷 “的document.getElementById”變 從由它的ID的文檔的元素。 我真的可以用沒有這樣的 從這裡這個東西助記符。 所以這是一個權衡。 有自帶一個複雜 經常使用圖書館,特別是 像jQuery。 但現實是jQuery有樣 中成為一個事實上的標準, 使幾乎任何人這些 天誰寫的JavaScript代碼 使用jQuery或某事 喜歡它,而不再寫入 這樣一個冗長的表達式為 這一點,因為再次,人性化 了解到,哇,這是 那種一個錯失的機會 讓我們的生活更輕鬆。 所以,人類使他們的生活更輕鬆。 好問題。 其他語言來考慮。 我想這中間說 名單Ruby是相當流行。 因此在世界 紅寶石,有一個框架 所謂Rails的,這是非常受歡迎的。 因此,Ruby on Rails是一個 常用的表達。 此外,在這個世界上,讓我 圓形的Java的Web的東西, 凡在Java世界 你可能有JSP或Java 小服務程序,這是一種常見的技術。 而這僅僅是再次使用方式 在服務器環境中該語言。 所以,這是什麼意思? 如果你有一個物理 服務器,你會從字面上 下載的Web服務器軟件 並以這樣的方式安裝 你有一個支持 這些框架,與您 可以反過來,使用一個或 更多的這些語言。 而在現實中,如果您註冊 就像一個虛擬主機或某些雲 服務我們談 昨天,常 的東西只是自帶的 機器對你的配置。 你並不需要手動設置起來。 但是,如果你做到了,這是哪裡的作用 系統管理員,可以這麼說, 進場。 他或她居然會做 這種東西對你來說, 或所謂的管理員 往往會為你做這個。 好吧。 對其中一些在這裡有問題嗎? 或者在任何機會 所有詢問的語言嗎? 構架? 那就讓我來介紹 只是另一個庫 這也是很常見的這些天。 這個名單可以無限地繼續下去。 而這個庫是怎麼樣的 開始失寵。 它的存在了。 它是由推廣 Twitter的一段時間。 而現在很多的網站, 許多開發人員使用它。 但新的東西來了 一起出來,來了。 但是,讓我給你一個感覺 意味著什麼使用圖書館。 如此反复,JavaScript是 一個非常流行的語言。 CSS或級聯樣式表, 我們談到了昨天。 這同樣是無所不在的。 沒有人讓今天的網頁 不使用HTML和CSS最低限度。 但它並不總是那麼容易 做某些事情。 因此,讓我去getbootstrap.com。 哎呦。 這不是我們如何拼寫。 Getbootstrap.com,這 是要帶領我 對於這個庫的登錄頁面。 因此,他們呼籲慷慨 本身的框架,其 是一種形式的公平, 但我還是會稱它為 不止一個框架庫。 但這些都只是值得商榷的語義。 讓我去他們的CSS標籤, 讓我去這樣的事情。 因此,回顧一下我們的表格看起來 像昨天Cloud9? 這是相當難看。 老同學的按鈕。 我認為,按鈕是灰色的通過 默認。所有的一切都真的 格式化相當亂七八糟。 所以,如果你希望你的Web形式看 有點nicer--讓我放大這裡。 並通過更好的我真的只是 意思是很挑剔的美學。 所以注意郵箱有怎麼了 圓角的矩形角到它。 所以這是一個少許清潔劑存在。 注意,詞的電子郵件 在那裡,直到我開始輸入 然後消失。 所以這是一個不錯的小功能。 注意怎麼回事是怎麼樣的 泛著很好,其中一些這個你 獲得從瀏覽器免費的, 但一些這也是庫 碼,其他人都 寫了給你這個。 像這樣的事情 給我我的密碼。 這個按鈕是不是更性感一點 默認。非常流行現在。 自從iOS的7左右, 世界已經變得非常平坦, 而世界面前 許多陰影,大量的 對圖標的思考。 很像在服裝世界 有來來去去的流行趨勢。 現在一切都平坦您的手機上。 實際上,按鈕上的 iPhone現在只是藍色的鏈接。 這裡沒有甚至經常圓形按鈕。 所以這些都只是事 這進出 時尚的,​​所以你這是怎麼可能 做一個更現代的外觀的Web表單。 鈕扣。 因此,引導有很多漂亮的按鈕。 所以,如果你想藍色的按鈕, 綠色按鈕,藍,橙,紅。 引導使得它更容易 做這些事情。 這些是各​​種事情 你絕對可以 昨天已經用CSS和做 HTML,但它只是在頸部疼痛。 所以相反,什麼引導會 有你要做的就是這樣的事情。 如果你想要一個button--原來這 是我們沒有使用yesterday-- HTML標記 你希望它看起來 像這樣的綠色按鈕, 你從字面上只是給它一個類, 我們確實談論昨天, 的“BTN BTN-的成功。” 為什麼這些話? Twitter的,引導的作者, 想出了這些話。 他們可以被稱為 他們希望他們任何東西。 但是,你現在越來越是 他人在微博在這種情況下, 已經想通了,你怎麼做 按鈕看上去非常乾淨和綠色。 他們打包該功能 在CSS類,叫做“BTN”。 和“BTN-成功”,讓我們任何人都可以 現在使用它,甚至沒有考慮 它。 因此,他們都抽象化了 一個綠色按鈕的概念 因此,我們不必在意 實現它自己。 事實上,我們可以專注於實現 我們感興趣的東西。 如果我們在這裡向下滾動。 在屏幕上的錯誤信息。 有時候你需要一點消息 出現在瀏覽器的頂部。 我們任何人可以做一些該做的 努力,昨天的教訓後, 但你為什麼要這麼做呢? 這是這樣的無趣 審美細節。 讓我們站在 自舉的肩膀上 並讓他們給我們這樣的事情, 我們從字面上看,得到一個紅色的框, 只需要做一個段落 標籤與類of--遺憾。 “BG-危險”將會給我們 這微紅方塊。 現在,讓我們去 更有趣的事情。 如果我回到頂部 這個頁面並轉到組件, 現在世界變得更有趣。 例如,很常見的是 下拉這樣的菜單。 這將是一個絕對的 疼痛實現。 它不是很久 以前,我們的程序員 必須實施這些 種從頭開始菜單。 但它是這樣一個共同的模式 ,圖書館像引導 只是給大家做一個能力 遠的下拉菜單,更輕鬆。 有沒有人做到這一點的方式, 但如果我閱讀文檔 我也看到,OK,我應該使用 這個HTML,如果我想要一個下拉菜單 其行為這樣。 同樣,讓我們去按鈕下拉。 因此,這是更炫。 如果我想這看起來像一個按鈕 但小三角指 我一下就可以了 而得到這個菜單,這 是使用一種稱為JavaScript語言。 而我們都可以實現 這在JavaScript中。 但是再次,這是一個輪 你不想重塑。 你只想把它關閉 貨架庫這一點。 讓我們去的東西 像進度條。 所以,這樣的事情是挺酷的。 如果你見過一個進度 酒吧在屏幕上移動, 實施經常 僅僅是一個旋轉圖標。 事實上,正如順便說一句,讓 我去Ajax--是什麼呢? Ajax的信息? 哎呦。 Ajaxinfo。 讓我記住地址。 在那裡,我們走了。 所以,如果你見過一些動畫 而加載頁面時,或思考, 或保存,或創造的東西,你 可能會看到這樣的動畫,因為這些。 因此,讓我們看的東西 像這樣一個在這裡, 而我們選擇的前景色 綠色,感覺一種友好。 我可以點擊這個? 再來一個。 好。 我們就一起去紅色的,因為 這就是我們在說什麼。 所以在這裡我們有它。 所以,如果你見過這樣的屏幕上, 由此突然出現,然後 突然消失,是什麼 它是實現的呢? 好吧,這只是一個GIF。 G-I-F。這是一個動畫 文件,它只是意味著 它就像一個老同學的漫畫書。 這裡還有一堆不同 那些即將幀[STUTTERING] 而只是在重複。 和它的創建 運動的錯覺。 因此,一旦一個頁面完成 加載或做一些事情, 什麼程序員嗎? 那麼,他或她只是隱藏這個形象。 因此,所有的進度條是一種被 像一個電影你看。 你是那種無視這一事實, 它實際上沒有做任何事情, 它只是感動。 然後,當它完成進步, 他們只是隱藏或關閉它。 而這所有的魔法 這是有事情。 引導給你 票友的東西一點點, 讓你可以真正 看到一個百分比,因為它去, 但它也只是排序 一個簡單的動畫。 讓我們來看看一些最後的 這裡更複雜的例子。 就像一個模態。 有誰知道一個模式是什麼? 模態窗口通常是 一個被認為 採取前景控制 阻止你做其他事情。 它那種迫使用戶 注意在屏幕的中間, 鎖定他們,通常情況下, 的一切。 所以,如果我推出這個演示中, 屏幕通常會變成灰色。 那麼,我們如何讓它灰色的? 那麼,我們可能只是 改變的背景顏色 像我們昨天做 或類似的東西。 也許這是一個覆蓋 該半透明。 現在發現,你可以做 花哨的東西是這樣的。 所以,如果你點擊一個按鈕 並希望一點點蹦出出現, 你可以做到這一點。 所以誰在乎all--是嗎? 聽眾:因此,與引導, 得到它的成立, 是不是像昨天一樣簡單 我們做的CSS樣式的網頁? DAVID J. MALAN:確實是這樣。 非常好的問題。 讓我去入門。 是的。 所有你必須為了做 使用引導程序基本上是複製 並粘貼這三個排長隊 碼到你自己的網站page--頂部 您page--頭 而你啟動和運行。 還有的做不同的方式 它,但是這將是最簡單的。 那麼,什麼是對所有的有幫助嗎? 好吧,如果你沒有那麼多 一個網站的實施者 但你要設計它, 或者你想別人提供 用線框圖,可以這麼說, 或者只是藝術家的引渡什麼 你想做的事,我,這個 一天,會經常去的網站 像引導,在那裡,如果我 要實現something-- 像最近在校園 我們希望實施 用於導航基於Web的工具 哈佛大學的課程目錄, 使學生更容易 通過課程瀏覽 並添加課程 購物清單,可以這麼說, 來樣決定什麼 他們希望採取。 我試圖想像 我自己,什麼成分會 我們要用來建立這個? 將用戶界面是什麼樣的? 而就翻翻喜歡的網站 這或其他類似網站的庫, 你可以得到的靈感,因為哇, 我可以用這個小工具,這個小工具, 而這個小部件。 然後真的什麼 程序員開始 做的,尤其是這幾天在這 Web編程的更現代的世界裡, 是編程越來越 有關佈線的東西放在一起。 排序採取這一現成的, 這個現成的,這個現成的, 而你作為聰明的 連接所有這些點, 但最終再次建立的東西 站在別人的肩膀上, 讓你不花一個月 實施一個愚蠢的下拉菜單中, 這實際上是很難做到的,如果 你想讓它在Chrome工作, 而IE和Firefox,以及任何 其他瀏覽器數量。 這就是為什麼有這種豐富 商業和開源軟件 行業也是如此。 聽眾:這是否引導得到更新 你必須然後更新您的聯繫? DAVID J. MALAN:它。 嗯,是的,它的作用。 引導目前是3.3.6版本。 你會do--一般什麼 其實這是值得一提。 還有就是一般的 被稱為語義版本 系統在世界上。 不是每個人都這樣做了。 但是,如果你看過版本號 屬於形式的x.y.z-- 因此,例如,第一個版本 方案可能是1.0.0。 或者如果它是非常,非常公測,或 即使阿爾法狀態,這意味著使用 在您自己的風險,它不 真的準備好黃金時間, 你甚至可能開始0.0.1 或一些這樣的稱號。 但是,如果軟件開始於版本 1.0,或等價1.0.0, 通常情況下,什麼是共同的,這些 days--雖不omnipresent--是 如果一個公司或 個人程序員修復 在一些片的一些bug 軟件真的 是一個錯誤,其更正不應該 在all--它不會改變你的影響 該程序的行為, 它只是修復了的東西 這是行不通的 properly--您通常會 更新z值存在。 這意味著有人喜歡賈巴爾 可以簡單地進入他的網站, 盲目地更改版本號 從1.0.0到1.0.1,保存,出貨, 並且在理論上,不必 擔心他剛剛打破 他的網站是因為 有些欠缺的功能, 因為別的東西打破。 同時,如果我的 程序員或公司的一些 為使一些顯著 變化,增加了功能, 我可能會更新我們 1.1.0,因為我其實是 改變庫的行為。 我給你,也許更多的功能。 最後,如果我是實際 從根本上改變軟件, 多,這將打破許多 用戶網站或應用程序, 那麼我不得不在這個模型中,以 升級主版本號也一樣, 這是一個重大更改。 換句話說,我可能有 對於那些跌落不再支持 下拉菜單。 所以,如果您升級到2.0,一半 您的網站可能會停止工作。 這是一類信號 給社會以什麼 參與製作的升級。 一個很好的機會來提高。 其他問題? 好吧。 那麼讓我們來看看最後一個 在這一領域的編程話題 的技術堆棧, 即與移動。 因此,在手機的當今世界 你have--和iPad,和面, 和所有這些類型 的devices--你有 有很多選擇,當 談到實施 一個應用程序或網站 客戶的移動設備。 所以剛才陳述 很明顯,也許這些天, 什麼是平台 開發用於在移動領域? 你可能想什麼設備 您的應用或網站支持? 聽眾:蘋果。 DAVID J. MALAN:OK。 因此,蘋果的設備。 因此,這意味著iPhone和那 意味著iPad和甚至iPod的。 還有什麼? 奧利維爾? 聽眾:Android系統。 DAVID J. MALAN:Android系統。 好。 所以Android手機,Android的 平板電腦,Android市場 甚至混亂因為 - 和 即使蘋果正變得凌亂。 而曾幾何時 iPhone是具有一定規模, 和iPad是具有一定規模, 和iPod是具有一定規模,現在 我們有iPad的扭蛋,和薄 的人,和iPhone 6 Plus和6。 這已經成為一個爛攤子。 這已經成為了Android的世界。 我說這跟那種軋 我的眼睛,因為從開發者 的角度看,它是一 頸項強痛時 你沒有史蒂夫·喬布斯“ 絕對控股的願景 在所有這些規範。 蘋果仍然沒有因為他們是 的那些構建硬件。 但它是一個很好的事情,如果 我是一個軟件開發人員, 只知道我的 iPhone總是會 是這樣的,因為大 這意味著我總是知道 我是多麼的屏幕房地產有。 所以,如果我想提出一個圖標 在頂部左上角, 這將是完全一樣的 把每一個客戶的設備上。 但在iPhone的世界 6S和iPhone 6加號 在Android的世界 手機,這一切都在地圖上。 因此,這使得它更難程序 東西,尤其是用戶界面, 因為現在你必須開始安排 你的用戶界面比較,不 絕對。 而同樣一直在瀏覽器真實的, 和台式機和筆記本電腦的年 因為你,當然, 有不同的屏幕尺寸。 還有什麼? 你可能有面, 像微軟。 你可能有 - 聽眾:Windows phone的。 DAVID J. MALAN:那是什麼? 聽眾:Windows phone的。 戴維·馬蘭:是的。 所以Windows手機仍然可以發現。 排序黑莓手機的種類, 但他們繼續努力。 然後蕉等設備。 所以在大多數情況下,讓我們 說這些是那些 此刻關心。 當然,蘋果的東西, 當然Android的東西, 和Windows之間,像面片 似乎流行起來相當不錯。 所以這些設備中, 如果要推出, 比方說,對於移動你的存在 公司,什麼樣的設計決策 你有沒有做什麼呢? 好了,我們已經說了 在蘋果世界 有至少兩種語言 這通常使用。 一個是叫什麼? 聽眾:Objective-C的。 戴維·馬蘭:是的。 所以目標C,這是上了年紀的。 這也是語言,許多Mac 應用程序仍然寫入了數據。 那麼其他較新的一個是? 聽眾:斯威夫特。 DAVID J. MALAN:斯威夫特。 而那些是什麼樣的 兩到知道打動人。 然後在Android的世界, Android版確實使用什麼語言? 聽眾:C#? 聽眾:Java的。 DAVID J. MALAN:Java是 語言“大談特談”。 在Windows世界,當然, 我們會說在這種情況下C#。 所以,這已經是一種 惱人的,因為什麼 外賣的生意 業主或某人誰只是 要推出一個移動的存在? 像,該死? 就像,如果我想支持 一個相當廣泛的用戶基礎, 我必須寫,這似乎 三個獨立的應用程序。 其中在這些語言中的一種, 之一的Java,一個在C#。 即使我想要的功能 是相同的,也沒關係。 我還需要使用不同 語言,因為蘋果和微軟, 和谷歌都支持 不同的環境。 和這個多年來一直是一種挑戰。 早在一天, 人們習慣購買軟件 在電腦店 收縮包裝盒, 你要么必須 端起架子的Mac, 或for--這也許非常小的Mac shelf--漲幅較大的Windows貨架 買一些軟件。 而很多時候,甚至沒有 什麼東西可以在Mac貨架上。 為什麼? 那麼,公司決定,如果90% 世界,世界的95% 有電腦,何苦連 實現在Mac OS上的東西呢? 作為aside--共 digression--為什麼會 該MAC似乎很不受病毒, 和蠕蟲和安全威脅? 是蘋果在這更好的? 在保持電腦安全的更好嗎? 聽眾:小觀眾? DAVID J. MALAN:這是 可能更大一點吧。 所以蘋果電腦的許多用戶 早就聲稱,哦,使用的是Mac, 你會倖免於病毒和 蠕蟲和所有的這些事 長期困擾電腦。 這可能是因為蘋果 具有更好的程序員 他們編寫更好的軟件,或 操作系統是較好的設計。 也許吧,但可能不會。 這也可能是,當你 一個12歲或30什麼 那種坐在家裡寫作 惡意軟件接管 這個世界,你會去後 在更大的目標受眾。 世界上95%誰可能 運行Windows或某些 變體。 所以這是雙方一點點。 但是,他們的信用, 蘋果,據我所知, 還沒有真正吹捧自​​己 作為是更安全的, 因為你只是邀請戲劇,如果 你提出這樣的觀點,我想。 好吧。 沒有得到太多的遠了 即,我們如何解決這個問題? 你有買或做你有 支付三個不同的人來開發 您的應用程序? 你挑一個比其他? 應該怎麼引導你 想在這裡你覺得呢? 卡里姆? 不。 其他人。 聽眾:剛才來與硬件。 DAVID J. MALAN:來與硬件? 你什麼意思? 聽眾:對於 環境。 [聽不清] DAVID J. MALAN:所以這是真的。 但是你的客戶, 同時,可能有iPhone手機, 他們可能有Android手機,他們 可能必須通過微軟提出平板電腦。 那麼,你如何擁有移動戰略 所有這些不同的用戶? 這似乎是,如果它的成本, 假設$ 1,000作出iPhone 應用程序,這是怎麼回事 花費您$ 2,000,使 iPhone應用程序和 Android應用程序,或者$ 3000名 也支持Windows設備為好。 這可能是一個相當 輕描淡寫,它甚至可能沒有 是這樣的線性關係。 聽眾:如果你想有一個應用程序或 不是,你可以回應的網站。 DAVID J. MALAN:好。 聽眾:或者你可以有一個本機應用程序。 戴維·馬蘭:是的。 因此,在這裡所有這樣的背景下, 我們一直在談論什麼 人會說本地應用程序。 即正在編寫的應用程序 在該裝置的本機語言。 因此,原生的Objective-C或斯威夫特 代碼,或者在Java或C#。 這意味著當你下載,讓我們 說Snapchat,一個流行的應用, 或者當你下載 Facebook的一個電話, 您正在下載要么 版本為iPhone寫的, 或者您的Andr​​oid手機編寫的, 或者你寫的表面。 但有一個替代方案。 由於奧利弗被影射, 可以實際使用的HTML 5 相反,使用什麼叫做網絡 應用程序,因此你只需 實現你的手機存在 和任何功能。 我是什麼手機的存在呢? 喜歡你的網站中有您 聯繫信息,所有的列表 你的產品,也許它有一個購物 購物車,也許你通過它賣的東西。 無論您的應用程序,你 實現它,而不是在Objective-C, 或夫特或Java或C#,但在HTML中 5,這是我們看到的語言 昨天,用JavaScript和CSS。 什麼是關於那些漂亮 三是,要運行它們, 正是您所需要的軟件? 聽眾:Web瀏覽器。 DAVID J. MALAN:Web瀏覽器。 而最好的,我知道,所有這些 設備配有網絡瀏覽器, 所以用戶不必 安裝一些特別的東西。 所以,你可以告訴你的 觀眾,你的客戶, 進去acme.com的你 瀏覽器,你只 有一個基於Web體驗 仍然充滿屏幕, 但你不必擔心所有的 這些費用和所有這種複雜性。 但肯定有是怎麼回事 是一個catch這裡,對不對? 特別是,如果我想指出 一對夫婦幾年前, 的第一個版本 Facebook的移動應用程序 主要是一個HTML 5應用程序。 他們有更 最近,它重新實現 在他們的其他應用程序。 那麼,為什麼你會不 馬上要說, 嗯,很明顯,我們要做到這一點? 什麼可能的隱性成本是什麼? 聽眾:性能。 DAVID J. MALAN:性能? 你是什​​麼意思? 聽眾:本機應用程序 有更多的表現。 DAVID J. MALAN:所以這是 真的,因為有兩個原因。 我們可以簡單化的答案。 和召回我們的討論 解釋與編譯語言。 這是HTML 5與它,只是為了 清晰,JavaScript--常用寫 JS--和CSS都 解釋型語言, 即使只有JavaScript 是一種編程語言。 等與這些,其中一些這些 被編譯,至少這些three-- Objective-C中,Java和C# - 這些, 從理論上講,應該只是速度更快。 但還有另一種現實for-- 聽眾:功能? DAVID J. MALAN:那是什麼? 聽眾:功能。 DAVID J. MALAN:功能? 怎麼會這樣? 聽眾:使用相機 關閉手機或東西。 您可以使用那些瀏覽器。 DAVID J. MALAN:沒錯。 他們sec-- 聽眾:[聽不清] DAVID J. MALAN:這是個不錯的選擇。 有附帶功能 與移動電話今天 都沒有,在設計上,為安全 原因,Web瀏覽器訪問。 因為這將是一種 一個令人毛骨悚然的事情,如果只是當 您訪問google.com,或 cnn.com,或者任何website.com, 即該網站已關閉電源 你的相機,拿你的照片, 然後使用它。 但是,你不會想隨機網站 您訪問的第一次 有這種能力。 還等什麼手機 製造商通常做 是他們剛剛拒絕訪問 該類型的信息 給瀏覽器,這意味著你 無法實現的攝像頭。 你無法實現推送通知, 你得到你的屏幕上發出嗶嗶聲 與短消息。 而事實上,即使GPS是唯一的一種 排序提供給Web瀏覽器。 如果你曾經,在筆記本電腦上 或在移動設備上, 拉升像或許真的 cnn.com,也是當​​地新聞台 往往要做到這一點,系統會提示您 經常用message-- foxnews.com 想知道你的位置。 批准或拒絕。 那麼,瀏覽器正試圖訪問 從您的手機GPS信息。 但幸運的是微軟, 與蘋果和谷歌 已經決定,感覺就像 這是一個很有用的情況下, 我們希望谷歌地圖和 其他工具工作, 但我們不希望人們爬出來 只需使任何網站做到這一點。 因此,讓我們有點相遇 中途並提示用戶。 但是,這並不一定如此 與所有的硬件​​,象照相機 和推 通知等, 所以你可能需要 犧牲某些功能。 但性能也。 它是越來越少 時下明顯,或許 作為LTE抓住並更快 在手機上網的速度, 不過您可以感覺的差異。 就像一個基於Web的應用程序 只是感覺速度較慢,通常情況下, 比本機應用程序,部分 因為一個基於網絡的應用程序 顧名思義就是在互聯網上。 它的談話在網絡上的服務器。 如果你的網絡連接 慢,甚至滾動速度可能很緩慢。 但是本機應用程序,你必須 已經預先downloaded--可能 當你在家裡 從App Store, 或者你至少預先下載 它在其全部 此前,無論你 連接speed-- 所以現在你把所有的 比特一般需要。 也許除了一些數據 來自一個服務器。 因此,這些都是權衡這裡。 有一種中間的 折衷,事實上。 而且我覺得你 - 聽眾:使用離線數據。 在本機應用程序,你可以[聽不清] DAVID J. MALAN:當然。 因此,有離線的問題, 這實在是煩人 如果你不能玩一些遊戲或使用 一些軟件僅僅是因為你 在一個地下室的地方 或在電梯。 原生應用程序是有彈性 與針對概率較高, 假設你擁有所有的 數據在本地需要。 所以這裡有一個第三個選項。 讓我們繪製頻譜 這裡這裡本機應用程序和Web應用程序。 什麼是中間 東西called-- 我想你可能有 用這個詞之前,也許? 混合應用程序。 和作為字所暗示的, 這件事情在中間。 這是一種Web應用程序和 它是一種原生應用。 而這是什麼意思? 原來有frameworks-- 使用從先前已經軟件術語 其他人都寫 對這些平台的每一個。 這些和另外的其它設備。 事實上,讓我去的PhoneGap, 這是一種這樣的框架,我 相信現在的Adobe擁有。 讓我去入門。 讓我們來看看。 看看我能看到的工具列表。 硬件。 入門。 PhoneGap的硬件。 讓我們來看看。 PhoneGap的硬件訪問。 讓我看看,如果我們可以找到一點 圖表,他們曾經有過。 這是在其他網站上。 這是有用的? 沒有。 這是要去那裡浪費時間了。 PhoneGap的硬件。 設備。 設備API。 不,他們已經感動了。 PhoneGap的。 讓我們在這最後一眼 看看我可以告訴你。 入門。 安裝的PhoneGap。 安裝移動應用程序。 來吧。 他們已經重組了一切。 好吧。 哦,沒事。 好了,我們開始吧。 這是不是所有的啟發,但 這就是我是那種尋找。 所以PhoneGap的是一個框架,你 可以免費下載,讓你 一些啟動代碼,從根本上。 所以一些代碼,他們寫 這並沒有做太多的事情。 但它給你 本質上是等效 那樣只會把一個應用程序 在用戶的屏幕上大的矩形。 它沒有把地址欄,像 瀏覽器中,並沒有把一個地址。 它只是把一個大的矩形。 而在配置這個大 矩形,罩下方, 實際上去acme.com,或者 m.acme.com,對於mobile.acme.com, 但用戶不知道 他們在該地址。 他們所看到的是 網頁的內容。 但是,什麼是這個美好幸福 混合應用程序是什麼的PhoneGap 和其他公司給你的 他們給你的代碼一點點 在Objective-C或斯威夫特,或 代碼Java中的一點點, 或代碼一點點 在C#中,而且基本上, 你必須提供最低限度是的 您的基於Web的應用程序的地址。 然後你這個捆綁 一起和你 有它要么訪問 通過互聯網的網站, 或者你甚至緩存在本地 複製應用程序中, 然後保存您的應用程序 在iPhone格式,Android手機 格式,表面格式,或 任何數量的其它設備。 您上傳的每個版本 對谷歌Play商店, 到App Store,以 Windows應用商店,等等。 而現在,你可以有你的所有 觀眾下載一個真正的本機應用程序, 儘管大部分的代碼是 別人寫的, 但本機應用程序的所有內容 從何而來,通常情況下,您自己的網站。 所以,你繼續編寫網站 在HTML,JavaScript和CSS。 那麼,為什麼這些模糊行? 為什麼混合應用程序 這就是那種人,而且還 一種網絡為基礎? 什麼是整點 添加這種複雜性? 我的意思是,即使還在,剛剛從 通過這個頁面一瞧, 入門指南感覺 它有一大堆的步驟我 做我can--前 聽眾:可重用性? DAVID J. MALAN:可重用性? 你什麼意思? 聽眾:源代碼。 所以相同的代碼將運行在 所有不同的平台。 戴維·馬蘭:是的。 聽眾:[聽不清] DAVID J. MALAN:完美。 如果時間很緊,如果你 沒有很多developers-- 也許你有一個開發人員 他或她肯定 不知道所有這些 environments--肯定不會好, 當然更不能計劃 同時在所有三個 和船舶三款產品 時間允許的, 能不能讓他(她)的一切建設 在HTML和JavaScript和CSS, 然後學習一個小小的 有關本機應用程序位, 剛夠下載 這樣的框架下, 然後到你的產品上傳到 所有的各種應用商店 所以,你現在有 本機應用程序。 所以這似乎是一個雙贏的, 但同樣,要清楚, 是什麼的電位 成本還是陷阱? 聽眾:性能? 戴維·馬蘭:是的。 性能。 很難口頭描述。 所以,如果你只是把上 信仰一個移動應用程序, 一個Web應用程序將 通常執行更慢。 它可能看起來不完全正確的,因為 在iPhone和Android手機, 和Windows設備,有 總是一種默認的樣子 感覺所有的 按鈕和菜單。 而公司在網絡,可以試試 近似​​的美學 像引導庫, 但user--精明user-- 是要知道 有什麼地方不太對勁在這裡。 這很好,也許 這不是什麼大不了的事。 但是性能問題 絕對是一個大問題。 本機應用程序將趨向於剛 更加敏感,因此 更好。 所以,什麼話可能是 兩全其美的? 如果你是一個特別小 公司還是一個小團體, 你沒有的資源 並行開發的應用程序 在所有三個平台,並坦率地說, 感覺這是一個不好的想法 因為如果你滾出去,上 所有這三個同時實現, 我們應該增加了一些功能 或者做一些不同的東西,現在 你要修復它在 三個地方,沒有之一。 什麼是可能的最佳 這裡的戰略整體, 如果資源和時間是緊? 聽眾:只要做到這一點在iOS。 DAVID J. MALAN:這是沒有道理的。 的iPhone,至少在 美國,是超人氣。 Android的似乎仍有優勢 的市場份額,全球的整體。 所以,你是不是 一定代表 本週全球的整體。 但是,這絕對是一項決定。 我的意思是,在校園裡我在這裡 覺得有些殘酷的數 或者本科生的比例 擁有iPhone手機,而不是Android手機。 但在國外,它是一種相反的。 所以你決定根據你的聽眾。 你怎麼知道你的觀眾了? 好了,我們昨天學了一招。 你可以問問他們。 如果你有一個俘虜觀眾 你可以向他們發送調查表。 或者你可以做什麼呢? 聽眾:谷歌Analytics(分析)? DAVID J. MALAN:那是什麼? 聽眾:谷歌分析。 DAVID J. MALAN:谷歌分析。 是啊。 甚至更多樣的技術,只是 看看你自己的Web服務器日誌。 由於發生了什麼 每次瀏覽器, 無論是筆記本電腦,台式機或 手機訪問您的網站? 他們發送的HTTP標頭節目 你他們使用的是什麼瀏覽器和操作系統。 因此可以推斷,以高概率, 你的人口正在使用的方式 再調整。 因此,假設這是不可接受的。 這就是那種不好的業務,如果 Android用戶可以不買我們的小部件。 聽眾:無論你是 要充電或不? DAVID J. MALAN:是否 你要收費嗎? 那麼OK,你得到你所支付的。 聽眾:無論你的應用是要去 是免費的還是它的gonna-- DAVID J. MALAN:OK。 因此,也許你可以收回 成本的方式,or--? 聽眾:我讀了研究一旦說 更多蘋果用戶付費應用versus-- DAVID J. MALAN:這是真的 因為他們已經 付出更多的他們的設備。 所以,不是沒有道理的假設。 聽眾:[聽不清] DAVID J. MALAN:OK。 所以,如果他們更願意付出, 然後與Android用戶地獄。 他們不打算 反正付錢給我們任何東西。 我們不妨關注我們的優先事項, 至少在最初的幾個月 或一年,在iOS。 完全合理的。 什麼是更具包容性 戰略比? Maybe--那是什麼? 聽眾:[聽不清] DAVID J. MALAN:更expensive-- 所以也許投入更多in--下去。 聽眾:是的。 只是一個移動網站。 DAVID J. MALAN:所以,做一個 移動網站,而不是 甚至擔心這種複雜性。 或者,也許一個合理的策略, 甚至Facebook的了, 開始是與混合動力 應用程序,因為它不是 更難以做到這一點比此。 你只需要讀一些 文件,並找出如何 的東西上傳到App Store。 因此,也許你開始 此,這樣,在第一天, 可以支持所有的用戶。 然後,就像Facebook的 和其他公司都做了, 當你有足夠的資源, 你能找到人, 你為什麼不重新實現 就在iPhone應用程序。 你還有每個人的東西, 即使它是一個劣質的經驗 或許,與混合應用。 但是你可以逐漸鋪開 更換你的短期 與混合應用的措施 您更多的本地應用程序。 聽眾:但隨著混合應用程序,你 將有機會獲得移動功能? DAVID J. MALAN:不一定。 因此,也許你做一個 有意識的早期決定, 你只能在上傳照片 對於Facebook原生iPhone應用程序, 但不能在Android應用程序, 最初,例如。 這是一個有點善意的謊言,因為 Web應用程序有更多的限制 比混合應用事實 出,如果我們閱讀文檔 為PhoneGap的事情就是這樣吧, 人們已經想出了各種辦法 給基於Web的應用 訪問攝像頭, 只要你使用 混合應用程序。 這是如何工作的? 因為混合 應用,根據定義, 有一點在Objective-C代碼, 和斯威夫特,以及Java或C#, 它可以訪問硬件。 不一定一切, 但它很可能會 是你有情況 足夠的訪問讓相機, 即使是針對Android平台上, 例如,在人為的例子。 其他問題嗎? 好吧。 我們為什麼不把我們的 休息15分鐘在​​這裡。 我們將在三個恢復與最後的 看看網絡編程,數據庫, 和Javascript。