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。