DAVID J. Malan: Jadi kita kembali. Sehingga tingkat tinggi topik pada saat sekarang adalah tumpukan teknologi, yang tidak istilah khususnya teknis, itu lebih dari menangkap semua untuk setiap jumlah kombinasi dari teknologi yang mungkin Anda gunakan untuk memecahkan masalah. Dan mungkin yang paling cara pas untuk memulai akan melihat bahasa sejak Aku terus berderak dari sejumlah besar dan paling semua orang di ruangan memiliki mungkin pernah mendengar setidaknya satu. Dan jadi mengapa tidak kita coba untuk membedakan -UMPC membedakan bahasa ini dan berbicara sebentar tentang kapan Anda akan memilih salah satu dari yang lain, bagaimana mereka semacam fundamental berbeda, dan terutama ketika Anda mengobrol dengan insinyur, atau mencoba untuk memutuskan siapa yang akan dipekerjakan, atau apa implementasi proposal untuk Greenlight, bagaimana Anda benar-benar akan membuat orang-orang macam keputusan. Jadi mari kita mainan beberapa hal off. Bahasa orang mendengar tentang, apa yang terlintas dalam pikiran? C. OK. OK, C ++. Apa itu? AUDIENCE: Python. DAVID J. Malan: Python. Sangat baik. Apa lagi? Dasar visual. Aku mendengar Java. Visual Basic-- alias VB. Jawa. NET, yang lebih dari menangkap semua untuk apa biasanya C # sebagai bahasa yang dimaksud. Dan biarkan aku menyebutkan bahwa. Jadi kita akan kembali ke itu. Maafkan saya? Maaf? AUDIENCE: SQL. DAVID J. Malan: Scratch? AUDIENCE: SQL. DAVID J. Malan: Oh, SQL. BAIK. SQL. Jadi kita akan kembali ke itu-- sebenarnya, itu good-- setelah istirahat juga. Apa lagi? AUDIENCE: Oracle. DAVID J. Malan: Jadi Oracle, bukan bahasa. Sebenarnya mereka akan menggunakan SQL juga. Jadi mari kita menempatkan bahwa setelah istirahat juga. Dan maaf, sesuatu di sini? AUDIENCE: Mathematica. DAVID J. Malan: Mathematica? OK, yakin. Dan MATLAB adalah jenis di sana kadang-kadang. AUDIENCE: R. DAVID J. Malan: R. Mari kita pergi ke sini. Fortran. Yakin. sekolah tua. Fortran. COBOL. Aku akan membuang BASIC. DASAR. Apa saja-- AUDIENCE: MATLAB? DAVID J. Malan: MATLAB. Oh, mengalahkan Anda untuk itu. Apa pun? Saya bisa memikirkan beberapa orang lain. Saya bisa memikirkan beberapa orang lain. Dan apa yang terakhir? AUDIENCE: ASP. DAVID J. Malan: ASP? Ya. halaman server aktif. Yang umumnya akan jatuh di bawah bahasa lain, kadang-kadang C #, jadi mari kita meninggalkan off. Tapi kami akan datang kembali ke untuk kerangka kerja dan semacamnya. Ada yang lain? PHP adalah populer. Ruby adalah hal lain. JavaScript, tidak menjadi bingung dengan Java, adalah hal lain. Itu semacam banyak. Sehingga bisa dipastikan luar biasa, seakan daftar ini belum, hanya untuk mulai tahu di mana Anda mulai. Dan untungnya, mari kita pendekatan ini dari beberapa sudut. Pertama, mari kita coba untuk mengkategorikan setidaknya beberapa dari bahasa-bahasa ini menjadi dua ember yang luas, mengingatkan percakapan kami sebelum jeda, di mana kita berbicara tentang kompilasi, dan kode sumber, dan kode mesin, karena itu bukan cara semua bahasa bekerja. Jadi kita akan mencabut beberapa contoh of-- atau counter-examples-- ke model. Dan kemudian, mengapa tidak kita berbicara tentang aplikasi bahwa bahasa-bahasa ini biasanya digunakan untuk. Dan terus terang, meskipun ini adalah daftar yang cukup panjang, itu hanya sebagian dari daftar ini yang Anda biasanya akan menarik dari hari ini untuk memecahkan masalah. bahasa tertentu yang lebih baru daripada yang lain. bahasa tertentu lebih populer daripada yang lain. Jadi tidak seperti Anda memiliki seperti tugas yang sangat besar sebelum Anda ketika memutuskan antara berbagai bahasa. Jadi mari kita lakukan ini. Kami memiliki awal, kode sumber, dan kemudian kami memiliki kode mesin. Whoops. Menulis kata yang salah. kode mesin. Dan kami memiliki beberapa proses di tengah called-- yeah, compiler. Jadi compiler. Dan apa kode mesin benar-benar berjalan di pada akhirnya akan menjadi CPU Anda yang sebenarnya. Dalam kata lain, dengan kode mesin, saya berarti petunjuk tingkat terendah bahwa CPU benar-benar mengerti. Selain itu, pengurangan, bergerak, menyimpan, dan operasi seperti itu. Dan jadi ini adalah model untuk apa umumnya dikenal sebagai bahasa dikompilasi. Mungkin tidak mengherankan. Jadi ini adalah model untuk bahasa dikompilasi. Tapi ternyata ada yang kelas lain bahasa disebut ditafsirkan languages-- ditafsirkan languages-- yang sedikit berbeda. Anda menulis dalam kode sumber, jalankan mereka melalui seorang penerjemah, dan bahwa penafsir adalah apa yang berjalan pada CPU. Dengan kata lain, apa yang Anda tidak memancarkan apa, rupanya? kode mesin. Nol dan orang yang CPU itu sendiri akhirnya mengerti. Jadi dalam versi pertama ini dan bahasa seperti C, seperti yang kita lihat, Anda menulis dalam kode sumber itu adalah rahasia kecil, tapi setidaknya itu jenis bahasa Inggris-seperti dan itu setidaknya dapat dibaca setelah Anda terbiasa untuk itu. Anda menjalankannya melalui compiler dan keluar Anda dapatkan, akhirnya, nol dan satu. Yang terlalu menyederhanakan. Ada beberapa langkah lain di sana. Bahkan, jika Anda pernah mendengar istilah "bahasa assembly," itu salah satu langkah sebelum yang nol dan satu. Yang sedikit lebih mudah dibaca, tapi masih cukup misterius. Dan jadi ada langkah-langkah perantara yang, pada kenyataannya, terjadi di sini. Tapi output, akhirnya, adalah nol ini dan orang-orang. Tapi di ditafsirkan dunia, di mana Anda memiliki bahasa yang ditafsirkan bahasa, Anda benar-benar melewatkan langkah itu. Dengan kata lain, ketika Anda menulis Program, Anda hanya segera menjalankannya. Anda tidak compile dan kemudian jalankan, seperti yang saya lakukan sebelumnya. Anda hanya menulis dan menjalankannya. Dan jika Anda ingin membuat perubahan cepat, Anda membuat perubahan cepat dan jalankan kembali itu. Jadi tidak ada langkah tengah di sini. Sekarang, untuk program saya tulis sebelumnya, yang ini "Hello World" program, Anda mungkin cukup wonder-- atau mungkin cukup state-- yang tidak saat itu memakan waktu untuk mengkompilasi program saya. Tampaknya telah melakukannya begitu saja. Dan ada grafis versi compiler. Saya menggunakan versi yang sangat misterius, tapi Anda bisa menekan tombol putar dan yang benar-benar akan melakukan kompilasi untuk Anda. Saya telah menyusun program dan kemudian lagi, untuk menjalankannya, saya hanya melakukan ini. Dan itu output di sebelah kiri ada, "Hello!" Itu tidak tampak semua yang berat. Tapi ketika program Anda lebih dari satu, dua, tiga, empat, lima baris panjang, dapat mengambil detik lebih untuk mengkompilasi. Kadang-kadang bahkan menit atau sedikit waktu untuk mengkompilasi. Setelah semua, beberapa produk terbesar dunia hal-hal seperti sistem operasi, Microsoft Word, Microsoft Excel, yang mungkin ratusan ribu atau bahkan jutaan baris kode yang panjang, dan mereka tidak hanya segera mengeksekusi. Selain itu, di web, itu menjadi mode untuk menggunakan bahasa diartikan, sebagian karena Anda dapat membuat perubahan sebagai pengembang dan kemudian hanya segera ulang halaman browser dan segera melihat hasilnya. Dan HTML, sementara tidak bahasa pemrograman, adalah bahasa yang ditafsirkan. Dan kita melihat bahwa efek yang sama kemarin. Anda hanya reload halaman setelah membuat perubahan Cloud9 dan-- voila-- Anda melihat hasil baru. Jadi apa bedanya di sini? Dalam HTML, ingat, kami memiliki HTML terbuka, kepala terbuka, judul terbuka, judul dekat, kepala dekat, tubuh terbuka, dan sebagainya. Kami memiliki semua tag yang kita cukup banyak kata, memberitahu browser apa yang harus dilakukan. Hei Browser, di sini datang sebuah halaman HTML. Hei Browser, di sini datang judul. Hei Browser, di sini datang beberapa teks yang harus berani. Dan kemudian Anda mengatakan sebaliknya. Hey Browser, itu saja untuk wajah teks tebal. Hey Browser, itu saja bagi tubuh. Dan seterusnya. Dan jadi apa browser? Browser adalah hanya seorang penerjemah. Ini adalah program yang seseorang seperti Microsoft atau Google telah menulis, Tujuan yang dalam hidup adalah untuk membaca bahasa, yang dikenal sebagai HTML, dan menafsirkannya. Atas ke bawah, kiri ke kanan. Dan setiap kali browser melihat terbuka braket, judul, braket dekat, harus menafsirkan bahwa sebagai makna, oh, yang berarti saya harus menempatkan kata-kata ini dengan cara di sini di bagian atas browser. Sehingga hanya melakukan apa kode HTML mengatakan. Tapi tidak ada nol dan satu. Tidak ada kompilasi. Anda tidak melakukannya. Browser tidak melakukannya. Hanya saja tidak terlibat. Jadi dalam semangat yang sedang berlangsung ini topik, hari ini dan kemarin, yang tampaknya menjadi fitur yang indah. Anda menyimpan kode Anda dan kemudian hanya menjalankannya atau menafsirkannya. Tidak ada langkah-langkah perantara. Tentunya ada biaya? tidak bisa semua upsides. Jadi apa yang mungkin biaya itu? AUDIENCE: Space. DAVID J. Malan: Space. Begitu yakin. Dalam dunia dikompilasi, Anda memiliki tidak hanya kode sumber asli, Anda juga menciptakan dan maka mungkin menyimpan mesin code-- yang nol dan ones-- dan itulah harus mengambil beberapa jumlah ruang. Benar. Jadi itu biaya Anda lebih banyak ruang. Ya? AUDIENCE: Browser mungkin menafsirkan berbeda. DAVID J. Malan: Browser mungkin menafsirkannya berbeda. Itu benar. Tapi aku tidak yakin aku nyaman mengklaim itu karena itu ditafsirkan. Itu lebih hanya karena itu sebuah implementasi dari bahasa itu sendiri memiliki ambiguitas. Jadi mari kita tidak cukup mengkonfirmasi yang satu, tapi firasat baik. Apa lagi yang mungkin harga dibayar? Andrew? AUDIENCE: Kau menggabungkan dua langkah, sehingga Anda karena itu memiliki meningkatkan kompleksitas juga. DAVID J. Malan: The complex-- peningkatan kompleksitas mana? Untuk siapa? AUDIENCE: Jadi, di penafsir langkah, Anda menggabungkan penafsir dan compiler untuk hanya mengarah to-- DAVID J. Malan: Ah, OK. Ironisnya, itu mungkin sedikit sederhana untuk melaksanakan penerjemah, meskipun tampaknya akan upsides hasil kenyamanan ini. Jadi mungkin benar. Tapi itu jenis tergantung, saya akan mengatakan, pada bahasa dan bagaimana mereka pergi tentang mengimplementasikannya. Bisa ada lebih banyak kompleksitas, sebenarnya, di compiler, hanya karena Anda harus pergi dari sesuatu yang begitu tinggi tingkat untuk sesuatu sehingga tingkat rendah. Tapi pikiran yang baik. Jadi dengan kata lain, program dikompilasi, ketika berubah menjadi nol ini dan orang-orang, berakhir di bahasa bahwa CPU berbicara, sedangkan pada sisi ini dunia, program yang sudah Anda tulis, kode yang sudah Anda tulis, tidak pernah benar-benar akan dikonversi ke dalam bahasa yang sebenarnya komputer berbicara. The nol dan satu. Itu tetap dalam aslinya, lebih manusiawi ramah, bahasa yang lebih mudah dibaca. Jadi apa yang mungkin implikasi ada, jika Anda tidak benar-benar repot-repot mengubah Anda program untuk sangat bahasa bahwa komputer yang mendasari berbicara? AUDIENCE: tidak Might memahami sesuatu? DAVID J. Malan: Might tidak memahami sesuatu. Dan yang mungkin claim-- jika tidak mengerti sesuatu, itu bug atau kekurangan dari fitur dalam penafsir. Sehingga akan lebih dari kesalahan dari biaya. AUDIENCE: Anda memiliki akses ke kode sumber? DAVID J. Malan: Ada satu yang baik. Jadi downside di sini adalah Anda tampaknya akan memiliki akses. Anda, pengguna akhir, mungkin tampaknya memiliki akses ke kode sumber. Dan itu tidak selalu benar. Tapi itu benar di kasus JavaScript, yang kita akan melihat setelah istirahat hari ini, yang adalah bahasa pemrograman ditafsirkan bahwa Anda menulis dalam kode sumber. Tapi itu kode sumber akan ditransfer dari server ke browser dan berjalan di browser manusia. Jadi di sini dia hanya bisa membuka jendela, seperti yang telah saya lakukan di Chrome, dan melihat itu, karena kita sendiri melirik kemarin dengan Google. Ini mungkin terlihat sedikit dimengerti tapi itu ada. Jadi itu benar-benar salah satu harga yang harus dibayar. AUDIENCE: Kinerja hit? DAVID J. Malan: Ya. Dan itulah masalah besar lainnya. Ada hit kinerja. Karena Anda memiliki ini orang tengah, yang dengan sendirinya adalah sebuah program, antara Anda dan CPU, sebagai lawan hanya makan mentah ini nol dan satu ke dalam CPU, ada hit kinerja yang Anda mengambil dengan bahasa ditafsirkan. Seperti itu, sewenang-wenang, program yang mungkin mengambil satu detik untuk dijalankan pada komputer atau satu menit untuk berjalan di komputer di sini, mungkin mengambil 10 detik atau 10 menit untuk berjalan di komputer di sini. Ini umumnya tidak akan menjadi yang banyak faktor difference-- dari 10-- karena ada optimasi yang dapat Anda lakukan. Tapi itu hampir selalu lebih lambat. Sekarang, Sisi lain kekhawatiran bahwa adalah bahwa, baik komputer, setiap 12 18 months-- menurut Hukum Moore, sehingga untuk speak-- hanya semakin cepat dan cepat. Saya memiliki ruang disk lebih dan lebih. Saya memiliki lebih banyak dan lebih RAM. Siapa yang peduli? Dan itu semacam argumen yang masuk akal. Memang, salah satu alasan mengapa kita bisa mentolerir lambat ditafsirkan bahasa adalah karena kita manusia tidak benar-benar melihat. Komputer memiliki mendapatkan hanya begitu darn cepat. Sedangkan kembali pada hari, terutama ketika hardware yang jauh lebih dibatasi, Anda memiliki kurang dari segala sesuatu, itu jauh lebih mahal jadi semuanya biaya lebih, baik maka Anda benar-benar ingin memeras sebanyak kinerja yang Anda bisa. Tapi itu diperlukan menulis di a-tingkat yang lebih rendah, jika Anda mau, dengan bahasa yang dikompilasi. Jadi Anda mengambil kinerja hit ini. Namun umumnya, upsides tampaknya layak hari ini. Nah, kecuali untuk masalah kekayaan intelektual. Itu semacam pembacaan kode, kita akan kembali ke ketika kita melihat JavaScript. Jadi mari kita coba untuk mengkategorikan setidaknya beberapa ini. Jadi antara bahasa dikompilasi, kami akan memiliki C, C ++, agak, agak, Jawa, meskipun sedikit pengecualian, untuk alasan saya akan menunjukkan hanya dalam beberapa saat. C # akan berada di daftar ini. Kita akan melihat lebih di hanya bahasa yang lebih modern. Baiklah. Dan yang tampaknya seperti banyak ada. Sedangkan di sisi pagar, kita mungkin memiliki JavaScript, dan Python, dan PHP, dan Ruby. Dan apakah itu cukup untuk yang lebih baru? Yang terasa seperti banyak untuk saat ini. BAIK. Dan kemudian dot dot dot, karena daftar ini tak ada habisnya. Dan pada kenyataannya, jika kita ingin hanya mendapatkan rasa ini-- Wikipedia, bahasa dikompilasi. Saya menduga kita bisa mendapatkan daftar jauh lebih lengkap. Jadi di sini kita pergi. Jadi di sini adalah daftar jauh lebih lengkap. Dan saya berharap seseorang akan menebak D sebagai bahasa karena itu juga ada, tapi mereka berhenti di D akan terlihat. Meskipun ada mungkin benar-benar menjadi E. Oh, sebenarnya, ini harus berada di daftar hari ini. Swift sebenarnya bahasa bahwa Apple diciptakan yang sekarang digunakan, semakin jadi, dalam pengembangan iPhone. Tapi kita akan kembali ke bahwa dengan diskusi kita mobile hanya sedikit juga. Jadi Swift juga. Dan kemudian jika kita pergi ke ditafsirkan language-- ditafsirkan language-- maka di sini daftar bahkan lebih lama juga. Jadi, jika Anda hanya google dan lihat di Wikipedia untuk ini, Anda akan melihat segala macam bahasa. Tapi tujuannya adalah, untuk hari ini benar-benar, hanya bermuara mungkin ini isu kekayaan intelektual dan mudah dibaca oleh pengguna akhir dan kinerja, adalah masalah besar lain juga. Jadi di antara bahasa-bahasa ini, biarkan aku melihat apakah kami dapat memberikan hanya beberapa contoh dari bahasa. Kami tidak ingin pergi melalui semua bahasa tanpa henti. Pernahkah Anda bertanya-tanya apa bahasa tertentu seperti? Kita memang melihat beberapa saat yang lalu. Mengapa kita tidak mengambil pasangan dari permintaan fitur. Yang ingin melihat apa bahasa lain seperti? Ya. AUDIENCE: Java. DAVID J. Malan: Java. Baiklah. Jadi mari kita pergi ke Jawa. Dan hanya untuk memberikan sample-- kita bisa menulis semua ini keluar, tetapi akan lebih cepat hanya untuk melihat contoh kode orang lain. Baiklah. Jadi ini contoh yang baik? Whoops. BAIK. Jadi di sini adalah versi Java dari Program yang saya tulis sebelumnya, "Hello World." Jadi Java, Anda akan sering melihat kata kunci "kelas." Kemudian Anda akan melihat beberapa nama setelah itu. Anda akan melihat kurung kurawal seperti yang kita lihat sebelumnya, dan kadang-kadang mereka pergi pada baris yang sama, garis kadang-kadang lainnya, itu semacam keputusan pribadi. Anda akan melihat kata kunci seperti "Publik," "statis," "void." Tetapi kita melihat "utama." "Main" umumnya nama fungsi default atau potongan default kode yang akan dijalankan dalam sebuah program. "Tali." Apa yang kita maksud dengan tali sebelumnya? Saya menggunakannya jenis santai. Sebuah string adalah apa? Kata. Ini seperti urutan karakter. karakter individu, kembali ke kembali ke belakang, biasanya dalam sebuah array, seperti yang telah kita bahas. Dan pada kenyataannya, melihat sintaks ini di sini, dua kurung? Itu berarti, hey komputer, di sini datang array dari string. Notasi braket persegi biasa digunakan untuk menunjukkan itu. Dan kemudian Anda mungkin bisa mengambil guess-- a apa hal ini disorot serangkaian kode mungkin lakukan? AUDIENCE: Output? DAVID J. Malan: Ya. Mencetak sesuatu ke layar. "Sistem" adalah semacam referensi ke komputer Anda. "Out" berarti komputer Anda Output atau layar. Jadi "System.out.print ln" mungkin berarti? "Ln." garis cetak yang programmer seperti untuk rupanya mengeja beberapa kata-kata secara keseluruhan dan mengambil pintas dengan kata lain. Tapi "ln" adalah line, sehingga garis cetak. Jadi ia akan mencetak "Hello Dunia! "Diikuti oleh baris baru. Jadi itu saja. Tapi Java adalah apa yang mereka akan panggilan berorientasi objek. Dan memang, hanya untuk memberikan beberapa definisi lain ada bahwa Anda mungkin lihat, secara umum, ada banyak jenis bahasa, tetapi yang paling umum adalah bahasa prosedural atau penting. Ada fungsional bahasa, yang tidak berarti bahwa orang lain tidak fungsional. Dan kemudian ada bahasa berorientasi objek. Dan ini mungkin yang terbaik kategorisasi kebanyakan bahasa bahwa Anda akan pernah memilih untuk jenis dari proyek komersial yang khas. Ini akan menjadi terlalu banyak, Saya pikir, dari lubang tikus untuk turun, untuk mencoba untuk menjelaskan berbagai perbedaan. Tapi bahasa kita telah melihat demikian far-- C adalah prosedural atau bahasa imperatif. Baru-baru ini diciptakan bahasa cenderung, maaf, berorientasi objek, yang berarti mereka memiliki fitur lain kepada mereka. Dapatkah saya menjelaskannya dengan cara ini? Mari kita bahkan tidak pergi ke sana. berarti berorientasi obyek Anda dapat implement-- Anda dapat model dunia nyata sedikit lebih efektif. Kemanusiaan, dari waktu ke waktu, sudah tahu, wow, akan menyenangkan jika bahasa saya memiliki fitur ini atau fitur itu. Dan itulah mengapa kita memiliki begitu banyak bahasa di dunia. orang yang wajar, smart orang, setuju atau tidak setuju dan selalu semacam datang bersama-sama pada mengembangkan bahasa baru semua bersama-sama. Inti masalah. Apple diciptakan Swift di harapan mungkin menurunkan bar untuk pengembangan iPhone, karena language-- sebelumnya disebut Objective-C, yang bisa juga berada di daftar kami di sini- jauh lebih misterius dan banyak sulit untuk membungkus pikiran seseorang di sekitar. Dan pemrograman menjadi bisa dibilang lebih mudah diakses dan lebih luas diadopsi oleh orang bahkan kurang teknis, goal-- yang itu adalah tujuan yang sangat gagah berani untuk mencoba menurunkan hambatan masuk dengan membuat bahasa sendiri lebih mudah untuk memulai dengan, namun tidak kurang kuat tentu. Dan satu bahasa lainnya. Mengapa kita tidak lihat sesuatu seperti Python, yang sangat banyak dalam mode hari ini. Python. contoh program. Ayo lihat. "Hello World" bahasa. Ayo lakukan ini. "Halo dunia." Mari kita lihat apakah ini memberikan kita contoh yang bagus. BAIK. Jadi ini sebenarnya jenis menyenangkan. Jadi jika Anda pernah google "Hello World", yang terjadi menjadi salah satu program pertama yang pernah ditulis dalam bahasa modern, hanya sebagai bukti dari konsep, Anda dapat melihat segala macam implementasi ini. Beberapa bahasa ini Aku bahkan tidak mendengar. Tapi Anda bisa see-- mari kita pergi ke Dasar, yang saya pelajari tahun yang lalu, di bagian. Ini adalah bahasa yang menyenangkan karena Anda harus, sebagai programmer, jumlah semua baris Anda. Tidak seperti apa yang saya lakukan ketika saya sedang menulis pseudocode pada dokumen kuning sebelumnya untuk pencarian biner, untuk mencari buku telepon. Dan, jika Anda ingin untuk pergi ke baris lain, Anda akan benar-benar mengetik, pergi ke 10, atau pergi ke 20. Dan jika Anda sedang menulis baris, Konvensi adalah untuk melakukan, ini adalah garis 10, ini adalah baris 20, ini adalah garis 30, 40, dengan apa-apa di antara, sehingga memberikan diri Anda beberapa ruang jika Anda memutuskan, tunggu sebentar, Saya harus menambahkan beberapa kode lebih di suatu tempat. Anda masih memiliki semacam sembilan peluang untuk memeras bahwa dalam antara program Anda sebelum Anda harus secara manual nomor baru segalanya. Jadi ini adalah jenis apa yang saya maksud ketika saya mengatakan dunia telah datang dengan fitur baru. Di suatu tempat di sepanjang jalan seseorang menyadari, anak ini bodoh. Ini hanya menciptakan bekerja untuk programmer. Jadi dia hanya jenis dibangun layer baru di atas itu sehingga Anda tidak perlu khawatir tentang apa baris nomor kode Anda sebenarnya pada. Jadi, ketika Anda mungkin memilih satu bahasa atau yang lain? Nah, yang ini bahasa apakah anda cenderung mendengar tentang yang paling di dunia Anda sendiri hari ini? Mari kita drop down Objective-C juga. AUDIENCE: C #. DAVID J. Malan: C #. Jadi biar warna. Apakah kita memiliki warna kami yang lain di suatu tempat? Jadi C #. Dan apa yang Anda ketahui tentang C #? Apa pun muncul di pikiran? AUDIENCE: Ini adalah bahasa pemrograman. DAVID J. Malan: Ini bahasa pemrograman. BAIK. Itu benar. Jadi kita sedang berbicara tentang C #. C # cenderung digunakan dalam lingkungan Windows, jadi jika Anda sedang menulis perangkat lunak Microsoft untuk Windows, C # sangat umum digunakan, apakah itu untuk perangkat lunak desktop, atau bahkan perangkat lunak telepon pada ponsel Windows, jika Anda sudah memiliki mereka, atau di web bahkan terlalu. Dan pada kenyataannya, mungkin Kareem disebutkan ASP sebelumnya? Jadi ada juga ini hal yang disebut kerangka, yang kami dapat memperkenalkan dengan ekstensi. Kerangka, seperti ASP. Singkatan halaman server aktif. Dan ini adalah kode dan cara pemrograman yang umumnya membuat lebih mudah untuk menulis aplikasi berbasis web. Dengan kata lain, itu akan menjadi super, Super menjengkelkan untuk menulis sebuah website dalam bahasa C yang kita lihat sebelumnya, karena Anda akan harus menggunakan cetak + F, Anda harus menggunakan kata kunci yang "Utama" dan kurung kurawal. Banyak sintaks misterius dan pendekatan untuk menerapkan sesuatu yang cukup kompleks. Sebuah halaman web. Dan bahasa lainnya telah berevolusi untuk membuat hal semacam itu mudah. Dan pada gilirannya, orang telah datang dengan kerangka, semacam alat Anda dapat menggunakan yang membuatnya lebih mudah untuk menulis halaman web. Jadi misalnya, untuk membuat jauh lebih konkret ini, biarkan aku membuka hanya file teks sejenak. Dan Anda mungkin ingat kemarin bahwa kita mengatakan sesuatu seperti, ini adalah halaman web. HTML. Tutup HTML. Mari saya melewatkan kepala dan hanya melakukan tubuh sini. Misalkan saya ingin menulis tidak "Hello World," tapi "Hello David," di mana David adalah nama saat login user. Apa sesuatu seperti ASP akan melakukan, atau JSP-- yang merupakan Jawa server pages-- atau sejumlah kerangka kerja lainnya adalah mereka tidak bahasa, per se. Mereka hanya seperti software tambahan yang Anda akan menginstal ke dalam lingkungan Anda yang hanya membuat lebih mudah untuk program. Jadi misalnya, daripada harus melakukan sesuatu seperti "Halo, printf (" David ")" atau sesuatu yang jenis co-mingling-- jenis kode yang telah kita lihat before-- Anda akan melakukan sesuatu yang lebih sederhana, seperti "nama%." Dan kerangka kerja ini, seperti ASP-- dan saya tidak ingat apakah saya mendapatkan sintaks tepat untuk ASP. JSP adalah little-- adalah hak ini? Jadi dengan ASP, ini adalah semacam sintaks khusus bahwa beberapa pengembang telah memutuskan ini mungkin membantu orang keluar. Dan aku bisa mengungkapkan lebih ringkas placeholder, misalnya. Seperti menempatkan nilai di sini, di mana Nama nilai ini tidak N-A-M-E, itu adalah beberapa nilai yang disimpan di sana. Jadi "nama," dalam konteks ini, kita sebut variabel. Aljabar memiliki variabel seperti x, dan y, dan z. Programmer menggunakan variabel yang lebih deskriptif dari x, y, dan z, khas. Jadi "nama" harfiah akan menjadi semacam wadah memori untuk sesuatu seperti D-A-V-I-D, untuk nama saya, atau siapa pun lain yang login ke website. Dan jadi ini adalah jenis kenyamanan Anda dapatkan dengan lingkungan tertentu. Jadi C # dan sesuatu seperti ASP akan sangat umum digunakan dalam dunia Windows, apakah untuk desktop perangkat lunak atau web server, terutama jika server Anda pada gilirannya menjalankan Microsoft Windows dan Microsoft IIS-- atau Internet Information Server, jika saya mendapatkan akronim right-- yang merupakan web server Microsoft. Jadi apa bahasa lain adalah orang-orang yang akrab dengan, atau yang pernah Anda dengar lebih sering daripada tidak? AUDIENCE: Saya tahu bahwa Python jenis populer [tidak terdengar]. DAVID J. Malan: Sangat populer. Jadi Python di sini sangat sering digunakan dalam aplikasi ilmiah atau data ilmu pengetahuan, di mana Anda memiliki banyak data yang Anda ingin menganalisis dan Anda ingin menggunakan bahasa pemrograman untuk itu. R mungkin biasa digunakan untuk itu juga, dalam konteks statistik. Tapi Python memiliki begitu banyak fitur built in. Begitu banyak tambahan perpustakaan, sebagai orang mengatakan. Perpustakaan hanya koleksi kode yang orang lain menulis bahwa Anda dapat menggunakan sehingga Anda tidak perlu menemukan kembali roda tersebut. Dan Python sangat umum digunakan dalam aplikasi ilmu data. Tapi itu juga sangat umum digunakan dalam aplikasi web. Anda dapat menerapkan dinamis website dengan menggunakan Python. Dan oleh website dinamis, saya berarti konten tidak hanya statis seperti kita dibuat kemarin, oleh hanya sulit coding dalam teks Latin dan hal-hal seperti lainnya, melainkan kemampuan login, kemampuan untuk membeli sesuatu, kemampuan untuk memeriksa dengan shopping cart Anda, atau sejenisnya. Semua itu membutuhkan dinamika dan Anda perlu beberapa bahasa seperti salah satu dari ini. AUDIENCE: Jadi tidak Python memiliki sendiri ekstensi, mirip seperti [tidak terdengar] DAVID J. Malan: Itu. Jadi dalam dunia Python, Django adalah kerangka kerja yang sangat populer untuk Python. WSGI adalah mekanisme lain yang semacam berbeda dari ini tapi mirip dalam roh. Ini adalah add-on yang memungkinkan Anda untuk menjalankan kode Python di server. Ada other-- ya. Jadi kita ini akan memanggil kerangka. Dan itu sedikit penyalahgunaan. Ini lebih dari teknologi web server. Tapi kita akan tetap sederhana dan menempatkan dalam kolom ini tetap. BAIK. WSGI. WSGI. Lain thing-- dan benar-benar, biarkan saya bergerak bahwa untuk kolom sendiri, karena saya akan berteriak pada diriku sendiri untuk menempatkan mereka dalam ember yang sama. Mari kita menempatkan ini ke Server fitur, katakanlah. Itu bukan istilah teknis. Jadi di sini kita mungkin WSGI. Ada CGI, yang lebih tua teknik untuk melayani sampai bahasa seperti Perl atau PHP, atau beberapa orang lain. Sekali lagi, saya sebutkan istilah-istilah ini tidak begitu banyak untuk semacam menanamkan mereka, tapi begitu bahwa jika Anda melihat mereka itu adalah sesuatu Anda hanya google untuk membaca lebih lanjut. Tidak ada jus nyata untuk beberapa hal. Tapi mari kita kembali ke bahasa. Kami berbicara tentang C #, Python. Apa lagi yang mungkin Anda gunakan untuk web pemrograman hari ini? Mari kita fokus pada yang masih. AUDIENCE: PHP. DAVID J. Malan: PHP. Dan mari kita kembali ke satu. Jadi PHP sangat umum digunakan. PHP cenderung untuk mendapatkan rap buruk. Ini dimulai sebagai bahasa dilaksanakan oleh orang-orang yang mungkin tidak selalu yang terbaik desainer bahasa. Dan sehingga Anda dapat membaca segala macam artikel online tentang betapa buruknya PHP adalah. Dan sayangnya, ini adalah manifestasi, sebagian, hanya perdebatan agama yang meletus antara programmer. Dan ini adalah sesuatu layak disimpan dalam pikiran, dari perspektif bisnis, yang itu sangat mudah bagi orang-orang teknis untuk mendapatkan semua bekerja dengan mereka opini tentang hal-hal tertentu. Dan itu tidak selalu berarti yang satu berteriak paling keras atau dengan kuat, opini pemarah yang tepat. Banyak kali, itu benar-benar hanya tidak peduli. Dan jadi orang hanya berdebat apapun bias mereka sendiri atau zona kenyamanan. Dan sehingga Anda harus tetap bahwa dalam pikiran ketika membuat keputusan, yang hanya karena seseorang mengatakan ini adalah bahasa yang tepat untuk pekerjaan, yang mungkin benar, tetapi juga hanya mungkin itu adalah bahasa yang tepat dalam keterampilan mereka sendiri mengatur atau zona kenyamanan. Yang tidak buruk, tetapi Anda harus menyadari bahwa mungkin ada beberapa konteks sana. Ada beberapa obyektif pernyataan yang salah, seperti C adalah bahasa yang salah untuk menggunakan hari ini untuk melaksanakan website hampir selalu. Tapi itu tidak masuk akal untuk mengatakan bahwa semua ini salah bahwa kita sudah dilingkari sejauh ini. PHP telah melalui banyak versi. Jadi bahasa cenderung memiliki versi angka yang berhubungan dengan mereka. PHP terserah, saya pikir, versi 7 sekarang, sehingga sudah ada selama beberapa waktu. Dan sebagai bahasa mendapatkan lebih baru, mereka sering mendapatkan fitur baru. Tapi Anda harus berhati ini karena jika website Anda telah diimplementasikan dalam versi 7 dari PHP tapi Anda mencoba untuk menjalankan website Anda, atau mungkin Anda sudah outsourcing pengembangan kode Anda kepada orang lain dan mereka mail kepada Anda atau mengirimkannya kepada Anda dan mereka mengatakan, di sini, menempatkan ini pada server web Anda, jika web server Anda adalah beberapa tahun outdated-- apakah itu server Anda sendiri atau host-- web mungkin tidak benar-benar berjalan. Jadi ini adalah jenis hal bahwa seseorang perlu memperhatikan ketika melakukan upgrade situs atau mengimplementasikannya untuk pertama kalinya. Saya mendengar JavaScript sebelumnya. Jadi JavaScript adalah menarik satu yang secara umum sisi klien, karena kami akan melihat setelah istirahat, yang berarti berjalan di browser pengguna. Tapi Anda juga dapat menjalankan JavaScript hari ini menggunakan sesuatu yang disebut Node.js, di mana Node.js adalah mekanisme untuk menjalankan kode JavaScript sisi server, daripada menggunakan Python, atau PHP, atau bahasa seperti lainnya. JavaScript sangat cocok untuk aplikasi chatting dan real time aplikasi, sedangkan PHP tidak besar bahasa untuk melaksanakan sesuatu seperti server obrolan, di mana pengguna tetap terhubung dengan terus-menerus. PHP lebih dari kunjungan saya sekali, mendapatkan kembali hasilnya, kemudian klik link lain beberapa detik atau menit dari sekarang. Sedangkan Node.js dan JavaScript dapat digunakan lebih untuk koneksi persisten. bahasa lain yang Anda menduga biasanya digunakan untuk hal-hal web? AUDIENCE: Apakah jQuery menjadi kerangka kerja? DAVID J. Malan: Pertanyaan yang bagus. Tidak. Saya akan memanggil jQuery perpustakaan, di mana lagi perpustakaan adalah hanya sekelompok kode bahwa orang lain memiliki tertulis bahwa umumnya memecahkan beberapa masalah yang membuatnya, mudah-mudahan, lebih mudah bagi Anda untuk melakukan pekerjaan Anda. Dan membiarkan saya melakukan salah satu contoh ini dalam konteks web. Dalam konteks web ada bahasa ini, JavaScript, yang akan kita lihat nanti, dimana Anda mungkin mengatakan sesuatu seperti ini-- "Document.getElementById." Dan apa yang saya sebut kemarin? Pertama, saya pikir, adalah ID unik yang saya berikan untuk unsur yang tampak seperti ini. "P id =" pertama ">" dan kemudian kita harus seperti "lorem ipsum," dan sebagainya. Jadi jika saya sedang menulis sebuah program di JavaScript entah bagaimana memanipulasi, mengubah halaman web yang kita bermain dengan kemarin, Saya akan menggunakan ini baris yang disorot kode untuk mendapatkan potongan tertentu HTML dari halaman saya, bahwa node tertentu, seperti yang akan kita menyebutnya. Namun, di jQuery, alih-alih menulis ini, yang merupakan baku code-- JavaScript hanya keluar dari kotak, itu bagaimana Anda menulis itu-- Anda akan bukan hanya mengatakan, "#pertama." Itu setara. Dan sehingga hanya berdasarkan ini sangat Misalnya misterius, apa yang mungkin adalah argumen untuk menggunakan jQuery? Mengapa pengembang akan menggunakan perpustakaan seperti jQuery, berdasarkan contoh terisolasi ini, mungkin? AUDIENCE: Kurang kode. DAVID J. Malan: Ya. Ini kode kurang. Itu hanya lebih cepat untuk mengetik. tandingan ini yang tampak menakutkan. Anda tidak dapat benar-benar membacanya kiri ke kanan. Bahkan, karena itu sebagian besar tanda baca sekarang bukan yang sebenarnya kata-kata, Saya dapat jenis menyimpulkan bahwa "Document.getElementById" mendapat elemen dari dokumen dengan ID-nya. Aku benar-benar dapat menggunakan tidak seperti mnemonik dari hal ini di sini. Jadi itu adalah trade off. Ada kecanggihan yang datang sering dengan menggunakan perpustakaan, terutama seperti jQuery. Tetapi kenyataannya adalah jQuery memiliki jenis dari menjadi standar de facto, sehingga hampir semua orang ini hari yang menulis kode JavaScript menggunakan jQuery atau sesuatu seperti itu, dan tidak lagi menulis seperti ekspresi verbose sebagai ini, karena sekali lagi, manusia telah belajar, wow, itu semacam kesempatan yang tidak terjawab untuk membuat hidup kita lebih mudah. Jadi manusia membuat hidup mereka lebih mudah. Pertanyaan bagus. bahasa lain untuk dipertimbangkan. Saya akan mengatakan di antara ini Daftar Ruby cukup populer. Dan dalam dunia Ruby, ada kerangka kerja disebut Rails, yang sangat populer. Jadi Ruby on Rails adalah umum digunakan ekspresi. Juga di dunia ini, biarkan aku lingkaran Java untuk hal-hal web, di mana dalam dunia Java Anda mungkin memiliki JSP, atau Java Servlets, yang merupakan teknologi yang umum. Dan ini hanya lagi cara menggunakan bahwa bahasa dalam lingkungan server. Jadi apa artinya ini? Jika Anda punya fisik server, Anda akan benar-benar men-download perangkat lunak server web dan menginstalnya sedemikian rupa bahwa Anda memiliki dukungan untuk salah satu kerangka kerja ini, dengan mana Anda bisa, pada gilirannya, menggunakan satu atau lebih dari bahasa-bahasa ini. Dan pada kenyataannya, jika Anda mendaftar untuk seperti web host atau beberapa awan layanan kami berbicara kemarin, sering hal-hal yang hanya datang dengan konfigurasi mesin untuk Anda. Anda tidak perlu mengatur ini secara manual. Tapi jika Anda melakukannya, ini adalah di mana peran administrator sistem, sehingga untuk berbicara, datang ke dalam bermain. Dia atau dia benar-benar akan melakukan hal semacam ini untuk Anda, atau yang disebut webmaster sering melakukan ini untuk Anda. Baiklah. Pertanyaan pada beberapa ini di sini? Atau setiap peluang di semua untuk bertanya tentang bahasa? Frameworks? Lalu biarkan saya memperkenalkan hanya satu perpustakaan lainnya itu juga sangat umum hari ini. Daftar ini bisa terus tak terhingga. Dan perpustakaan ini adalah jenis mulai jatuh dari nikmat. Sudah sekitar. Itu dipopulerkan oleh Twitter untuk beberapa waktu. Dan sekarang banyak website, banyak pengembang menggunakannya. Tapi hal-hal baru yang datang dan datang bersama. Tapi saya hanya memberikan rasa apa artinya untuk menggunakan perpustakaan. Jadi sekali lagi, JavaScript adalah bahasa yang sangat populer. CSS, atau Cascading Style Sheets, kita bicarakan kemarin. Itu pun, adalah di mana-mana. Tidak ada yang membuat halaman web hari ini tanpa menggunakan HTML dan CSS minimal. Tapi itu tidak selalu mudah untuk melakukan hal-hal tertentu. Dan jadi biarkan aku pergi ke getbootstrap.com. Whoops. Itu bukan bagaimana kita mengeja. Getbootstrap.com, yang akan memimpin saya ke halaman arahan untuk perpustakaan ini. Sehingga mereka murah hati sebut sendiri kerangka, yang adalah jenis semacam adil, tapi aku masih akan menyebutnya lebih dari perpustakaan daripada kerangka. Tapi ini semantik hanya diperdebatkan. Biarkan aku pergi ke tab CSS dan biarkan aku pergi ke sesuatu seperti ini. Jadi ingat apa bentuk kami memandang seperti kemarin di Cloud9? Itu cukup jelek. tombol sekolah tua. Saya pikir tombol abu-abu dengan default. Dan semuanya benar-benar diformat cukup messily. Jadi jika Anda ingin bentuk web Anda untuk melihat sedikit nicer-- biar tampilannya di sini. Dan dengan lebih baik aku benar-benar hanya berarti estetika sangat nitpicky. Jadi perhatikan bagaimana kotak email ada memiliki bulat sudut persegi panjang untuk itu. Jadi itu sedikit lebih bersih di sana. Perhatikan bahwa email kata ada sampai aku mulai mengetik dan kemudian hilang. Jadi itulah fitur kecil yang bagus. Perhatikan bagaimana hal ini jenis bersinar baik, yang sebagian dari Anda ini dapatkan secara gratis dari browser Anda, tetapi beberapa dari ini juga perpustakaan, kode bahwa orang lain memiliki tertulis yang memberikan ini. Sesuatu seperti ini memberi saya kata sandi. Tombol ini sedikit lebih seksi daripada default. Sangat banyak dalam mode sekarang. Sejak iOS 7 atau lebih, dunia yang sudah sangat datar, sedangkan dunia sebelum memiliki banyak bayangan drop, banyak refleksi pada ikon. Sama seperti di dunia pakaian, ada tren mode yang datang dan pergi. Sekarang semuanya datar pada ponsel Anda. Bahkan, tombol pada Anda iPhone sekarang link hanya biru. Ada tidak sering bahkan tombol melingkar. Jadi ini hanya hal yang masuk dan keluar dari mode, dan jadi ini adalah bagaimana Anda mungkin membuat bentuk web yang lebih modern mencari. Tombol. Jadi Bootstrap memiliki banyak tombol yang cukup. Jadi jika Anda ingin tombol biru, tombol hijau, biru, oranye, merah. Bootstrap memudahkan untuk melakukan hal-hal ini. Ini adalah hal-hal yang bahwa Anda bisa benar-benar telah dilakukan kemarin dengan CSS dan dengan HTML, tapi itu hanya rasa sakit di leher. Dan begitu sebaliknya, apa yang akan Bootstrap yang harus Anda lakukan adalah sesuatu seperti ini. Jika Anda ingin button-- sebuah ternyata ini adalah tag HTML kita tidak menggunakan yesterday-- dan Anda ingin terlihat seperti tombol hijau ini, Anda benar-benar hanya memberikan kelas, yang kami lakukan bicarakan kemarin, dari "btn btn-sukses." Mengapa kata-kata itu? Twitter, penulis Bootstrap, datang dengan kata-kata. Mereka bisa disebut mereka apa pun yang mereka inginkan. Tapi apa yang Anda mendapatkan saat ini adalah orang lain di Twitter, dalam hal ini, sudah tahu bagaimana Anda membuat Tombol terlihat bagus dan bersih dan hijau. Mereka dikemas fungsionalitas yang di kelas CSS, disebut "btn" dan "btn-sukses," sehingga setiap dari kita bisa sekarang menggunakannya tanpa berpikir tentang saya t. Jadi mereka telah disarikan pergi gagasan tombol hijau jadi kita tidak perlu peduli menerapkan diri kita sendiri. Kami benar-benar bisa fokus pada pelaksanaan hal menarik bagi kami. Jika kita scroll ke bawah sini. pesan kesalahan pada layar. Kadang-kadang Anda ingin sedikit pesan muncul di bagian atas browser. Setiap dari kita bisa melakukan hal ini dengan beberapa usaha, setelah pelajaran kemarin, tapi mengapa Anda akan repot-repot? Itu tidak menarik seperti rinci estetika. Mari kita berdiri di pundak Bootstrap dan membiarkan mereka memberi kita hal-hal seperti ini, di mana kita benar-benar, untuk mendapatkan kotak merah, hanya perlu melakukan sebuah paragraf tag dengan kelas of-- maaf. "Bg-bahaya" akan memberi kita kotak kemerahan ini sebagai gantinya. Sekarang mari kita pergi ke hal yang lebih menarik. Jika saya kembali ke puncak Halaman ini dan pergi ke Komponen, sekarang dunia akan lebih menarik. Misalnya, sangat umum adalah drop down menu seperti ini. Ini akan menjadi mutlak sakit untuk melaksanakan. Dan itu bukan yang lama lalu kita programmer harus menerapkan ini jenis menu dari awal. Tapi itu seperti sebuah paradigma umum bahwa perpustakaan seperti Bootstrap hanya memberikan Anda kemampuan untuk membuat drop down menu jauh, jauh lebih mudah. Tidak ada satu cara untuk melakukannya, tetapi jika saya membaca dokumentasi Saya akan melihat bahwa, OK, saya harus menggunakan HTML ini jika saya ingin drop down menu yang berperilaku seperti itu. Demikian pula, ayo pergi tombol drop-down. Jadi ini bahkan lebih menarik. Jika saya ingin ini terlihat seperti sebuah tombol tapi itu segitiga kecil berarti Saya harus klik di atasnya dan mendapatkan menu ini, ini adalah menggunakan bahasa yang disebut JavaScript. Dan kita semua bisa menerapkan ini JavaScript. Tapi sekali lagi, ini adalah sebuah roda Anda tidak ingin menemukan kembali. Anda hanya ingin melepasnya perpustakaan rak untuk ini. Mari kita pergi ke sesuatu seperti progress bar. Jadi sesuatu seperti ini jenis dingin. Jika Anda pernah melihat kemajuan bar bergerak di layar, menerapkan yang sering hanya ikon berputar. Bahkan, hanya sebagai samping, membiarkan saya pergi ke Ajax-- apa itu? Info Ajax? Whoops. Ajaxinfo. Mari saya ingat alamat. Di sana kami pergi. Jadi, jika Anda pernah melihat beberapa animasi sementara halaman sedang loading, atau berpikir, atau menyimpan, atau menciptakan sesuatu, Anda mungkin melihat animasi seperti ini. Jadi mari kita lihat sesuatu seperti ini di sini, dan mari kita memilih warna latar depan hijau, yang rasanya agak ramah. Dapatkah saya klik ini? Datang satu. BAIK. Kami hanya akan pergi dengan merah karena itulah apa yang kita dapatkan. Jadi di sini kita memilikinya. Jadi, jika Anda pernah melihat ini di layar, dimana tiba-tiba muncul dan kemudian tiba-tiba menghilang, apa yang itu yang menerapkan itu? Nah, ini hanya GIF. G-I-F. Dan ini adalah animasi mengajukan, yang hanya berarti itu seperti sebuah buku komik jadul. Ada hanya sekelompok yang berbeda frame yang akan [Gagap] dan hanya mengulangi. Dan itu menciptakan ilusi gerakan. Jadi, segera setelah halaman selesai memuat atau melakukan sesuatu, apa programmer lakukan? Yah, dia hanya menyembunyikan gambar ini. Jadi semua progress bar adalah jenis dari seperti sebuah film yang Anda tonton. Anda semacam menyadari fakta bahwa itu tidak benar-benar melakukan apa-apa, itu hanya bergerak. Dan kemudian, bila dilakukan kemajuan, mereka hanya menyembunyikannya atau mematikannya. Dan itu semua sihir yang terjadi di sana. Bootstrap memberi Anda sesuatu yang sedikit lebih menarik, dimana Anda dapat benar-benar melihat persentase sebagai kelanjutannya, tetapi juga adalah hanya semacam dari animasi sederhana. Mari kita lihat beberapa akhir lebih banyak contoh kompleks di sini. Sesuatu seperti modal a. Apakah ada yang tahu apa modal adalah? Sebuah jendela modal umumnya salah satu yang seharusnya untuk mengambil kendali dari latar depan dan mencegah Anda melakukan hal lain. Ini semacam memaksa pengguna perhatian ke tengah layar, mengunci mereka keluar, biasanya, dari segala sesuatu yang lain. Jadi jika saya memulai demo ini, Layar umumnya akan menjadi abu-abu. Nah, bagaimana kita membuat abu-abu? Yah, kita mungkin hanya mengubah warna latar belakang seperti yang kita lakukan kemarin atau semacam itu. Mungkin itu overlay yang semi-transparan. Dan sekarang perhatikan yang dapat Anda lakukan hal mewah seperti ini. Jadi jika Anda pernah klik pada tombol dan ingin pop sedikit keluar muncul, kamu bisa melakukannya. Dan jadi siapa yang peduli tentang all-- ya? AUDIENCE: Jadi dengan Bootstrap, untuk mendapatkannya dimasukkan, adalah sesederhana seperti kemarin kami lakukan halaman gaya CSS? DAVID J. Malan: Memang. Pertanyaan yang benar-benar baik. Biarkan aku pergi untuk Memulai. Dan ya. Yang harus Anda lakukan untuk Penggunaan Bootstrap pada dasarnya menyalin dan paste tiga baris panjang kode ke bagian atas page-- web Anda sendiri kepala page-- Anda dan Anda bangun dan berjalan. Dan ada berbagai cara melakukan itu, tetapi ini akan menjadi yang paling sederhana. Jadi apa yang bermanfaat tentang semua ini? Nah, jika Anda tidak begitu banyak pelaksana dari sebuah situs web tapi Anda mencoba untuk merancang itu, atau Anda ingin memberikan seseorang dengan bingkai kawat diagram, sehingga untuk berbicara, atau penafsiran hanya artis dari apa yang Anda ingin lakukan, saya, untuk ini hari, sering akan pergi ke sebuah situs seperti Bootstrap, di mana jika saya ingin menerapkan something-- seperti baru-baru ini di kampus kami ingin menerapkan alat berbasis web untuk navigasi Katalog Tentu saja Harvard, sehingga memudahkan siswa untuk menelusuri program dan menambahkan program untuk daftar belanja, sehingga untuk berbicara, untuk jenis memutuskan apa mereka ingin mengambil. Aku mencoba membayangkan untuk diri sendiri, apa bahan-bahan akan kita ingin gunakan untuk membangun ini? Apa yang akan user interface seperti? Dan hanya melihat melalui situs seperti ini atau situs perpustakaan lain seperti, Anda bisa mendapatkan inspirasi, karena wow, Saya bisa menggunakan widget ini, dan widget ini, dan widget ini. Dan kemudian benar-benar apa yang programmer dimulai untuk dilakukan, terutama pada hari-hari di ini lebih dunia modern pemrograman web, adalah pemrograman semakin tentang kabel hal bersama-sama. Semacam mengambil ini dari rak, ini dari rak, ini dari rak, dan Anda menjadi orang pintar untuk menghubungkan semua titik-titik, tapi akhirnya membangun sesuatu dengan kembali berdiri di pundak orang lain, sehingga Anda tidak menghabiskan satu bulan menerapkan drop bodoh down menu, yang sebenarnya sulit untuk dilakukan jika Anda ingin bekerja pada Chrome, dan IE, dan Firefox, dan setiap jumlah browser lain. Ini adalah mengapa ada ini kaya software komersial dan open source industri juga. AUDIENCE: Jadi tidak Bootstrap diperbarui dan Anda harus kemudian memperbarui link Anda? DAVID J. Malan: Itu. Nah, ya, itu tidak. Bootstrap saat ini di versi 3.3.6. Dan umumnya apa yang Anda akan do-- ini sebenarnya layak disebut. Ada apa umumnya dikenal sebagai versi semantik sistem di dunia. Tidak semua orang melakukan hal ini. Tapi jika Anda pernah melihat nomor versi yang dalam bentuk x.y.z-- jadi misalnya, versi pertama dari program mungkin 1.0.0. Atau jika itu sangat, sangat beta, atau bahkan Status alpha, yang berarti penggunaan risiko Anda sendiri, itu tidak benar-benar siap untuk prime time, Anda bahkan mungkin mulai 0.0.1 atau penunjukan tersebut. Tetapi jika software dimulai pada versi 1.0, atau ekuivalen 1.0.0, biasanya, apa yang umum ini days-- meskipun tidak omnipresent-- adalah jika sebuah perusahaan atau perbaikan programmer individu beberapa bug di beberapa bagian perangkat lunak yang benar-benar bug, yang koreksi seharusnya tidak Dampak Anda di all-- tidak berubah perilaku program, itu hanya perbaikan sesuatu yang tidak bekerja properly-- Anda akan biasanya memperbarui nilai z ada. Yang berarti seseorang seperti Kareem hanya bisa masuk ke website-nya, membabi buta mengubah nomor versi dari 1.0.0 ke 1.0.1, menyimpannya, kapal itu, dan dalam teori, tidak perlu khawatir bahwa dia hanya rusak situsnya karena beberapa kekurangan fungsi, karena sesuatu yang lain pecah. Sementara itu, jika saya yang programmer atau beberapa perusahaan yang membuat beberapa signifikan perubahan yang menambahkan fungsionalitas, Aku mungkin memperbarui kita 1.1.0 karena aku benar-benar mengubah perilaku perpustakaan. Aku memberimu fungsi mungkin lebih. Akhirnya, jika saya harus benar-benar mendasar mengubah perangkat lunak sehingga banyak yang akan merusak banyak pengguna situs atau aplikasi, maka aku wajib, dalam model ini, untuk meningkatkan nomor versi utama juga, yang merupakan perubahan melanggar. Dengan kata lain, saya mungkin memiliki dukungan dihentikan untuk penurunan mereka down. Jadi, jika Anda meng-upgrade ke 2.0, setengah website Anda mungkin berhenti bekerja. Dan ini adalah semacam sinyal kepada masyarakat untuk apa terlibat dalam membuat upgrade. Sebuah kesempatan yang baik untuk meningkatkan. pertanyaan lain? Baiklah. Nah mari kita lihat di salah satu akhir topik di segmen ini pemrograman dari tumpukan teknologi, yaitu berhubungan dengan ponsel. Jadi dalam dunia ponsel saat ini Anda have-- dan iPads, dan permukaan, dan semua orang-orang macam dari perangkat-- Anda memiliki banyak pilihan ketika datang untuk melaksanakan aplikasi atau situs web untuk perangkat mobile pelanggan Anda. Jadi hanya untuk negara jelas, mungkin hari ini, apa platform untuk mengembangkan untuk dalam ruang mobile? perangkat apa yang mungkin Anda ingin mendukung dengan aplikasi atau situs web? AUDIENCE: Apple. DAVID J. Malan: OK. Jadi perangkat Apple. Jadi itu berarti iPhone, dan bahwa berarti iPad, dan bahkan mungkin iPod. Apa lagi? Olivier? AUDIENCE: Android. DAVID J. Malan: Android. BAIK. ponsel sehingga Android, Android tablet, pasar Android adalah semakin rancu because-- dan bahkan Apple menjadi berantakan. Padahal sekali waktu iPhone adalah ukuran tertentu, dan iPad adalah ukuran tertentu, dan iPod adalah ukuran tertentu, sekarang kami memiliki iPad Minis, dan tipis yang, dan iPhone 6 Plus dan 6. Ini menjadi berantakan. Ini menjadi dunia Android. Dan saya mengatakan ini dengan semacam bergulir mata saya karena dari pengembang perspektif, itu adalah sakit di leher saat Anda tidak memiliki Steve Jobs ' visi kendali mutlak atas semua spesifikasi ini. Apple tetap tidak karena mereka yang membangun perangkat keras. Tapi itu hal yang bagus, jika Aku seorang pengembang perangkat lunak, hanya tahu bahwa saya iPhone selalu akan menjadi besar ini karena itu berarti saya selalu tahu berapa banyak layar real estat yang saya miliki. Jadi jika saya ingin menempatkan ikon di sudut kiri atas, itu akan berada di sama menempatkan pada perangkat setiap pelanggan tunggal. Tapi dalam dunia iPhone 6s dan iPhone 6 Plus dan dalam dunia Android telepon, itu semua atas peta. Dan sehingga membuatnya lebih sulit untuk Program hal, terutama user interface, karena sekarang Anda harus mulai mengatur antarmuka pengguna Anda relatif, tidak benar. Dan sama telah berlaku pada browser, dan desktop, dan laptop selama bertahun-tahun karena Anda, tentu saja, memiliki ukuran layar yang berbeda. Apa lagi? Anda mungkin memiliki permukaan, seperti dari Microsoft. Anda mungkin have-- AUDIENCE: Windows phone. DAVID J. Malan: Apa itu? AUDIENCE: Windows phone. DAVID J. Malan: Ya. Jadi ponsel jendela masih dapat ditemukan. Jenis jenis BlackBerry, tapi mereka terus mencoba. Dan kemudian tandan dari perangkat lain. Jadi untuk sebagian besar, mari kita mengatakan ini adalah orang-orang untuk peduli pada saat ini. Tentu saja hal Apple, tentu hal Android, dan di antara Windows, seperti tablet permukaan tampaknya penangkapan pada dengan cukup baik. Dan di antara perangkat tersebut, jika Anda ingin bangun, katakanlah, kehadiran ponsel untuk Anda perusahaan, apa jenis keputusan desain Anda harus membuat? Nah, kita sudah mengatakan di dunia Apple, ada setidaknya dua bahasa yang biasanya digunakan. Satu disebut apa? AUDIENCE: Objective-C. DAVID J. Malan: Ya. Jadi Objective-C, yang merupakan lebih tua. Ini juga bahasa yang banyak Mac aplikasi masih ditulis dalam. Maka yang lebih baru lainnya adalah? AUDIENCE: Swift. DAVID J. Malan: Swift. Dan mereka adalah jenis dua tahu untuk mengesankan orang. Kemudian dalam dunia Android, apa bahasa tidak menggunakan Android? AUDIENCE: C #? AUDIENCE: Java. DAVID J. Malan: Jawa bahasa "du jour." Di dunia Windows, yakin, kita akan mengatakan C # dalam kasus itu. Jadi sudah ini adalah jenis menjengkelkan, karena apa takeaway untuk bisnis Pemilik atau seseorang yang hanya ingin menggelar kehadiran ponsel? Seperti, sialan? Seperti, jika saya ingin mendukung basis pengguna yang cukup luas, Saya harus menulis, tampaknya, tiga aplikasi yang terpisah. Salah dalam salah satu bahasa ini, satu di Jawa, satu di C #. Dan bahkan jika saya ingin fungsi tersebut identik, tidak peduli. Saya masih perlu menggunakan berbeda bahasa karena Apple, dan Microsoft, dan Google semua dukungan lingkungan yang berbeda. Dan ini telah menjadi tantangan selama bertahun-tahun. Kembali pada hari, ketika orang digunakan untuk membeli software di toko komputer di menyusut kotak dibungkus, Anda akan baik harus meraih rak Mac, atau for-- mungkin Mac sangat kecil ini shelf-- atau lebih besar Windows rak dan membeli beberapa perangkat lunak. Dan sangat sering, tidak ada bahkan apa pun untuk Anda di rak Mac. Mengapa? Nah, perusahaan memutuskan jika 90% dunia, 95% dari dunia memiliki PC, mengapa repot-repot bahkan melaksanakan hal-hal di Mac OS? Sebagai aside-- total digression-- mengapa bahwa Mac tampak begitu tahan terhadap virus, dan cacing, dan ancaman keamanan? Apple lebih baik saat ini? Lebih baik menjaga komputer aman? AUDIENCE: penonton yang lebih kecil? DAVID J. Malan: Itu mungkin sedikit lebih besar untuk itu. Sehingga banyak pengguna Mac memiliki lama mengklaim, oh, menggunakan Mac, Anda akan kebal terhadap virus, dan cacing, dan semua hal ini yang telah lama mengganggu PC. Yang mungkin karena Apple memiliki programmer yang lebih baik dan mereka menulis perangkat lunak yang lebih baik, atau Sistem operasi ini lebih baik dirancang. Mungkin, tapi mungkin tidak. Ini mungkin bahwa ketika Anda 12 tahun, atau sesuatu 30 semacam duduk di rumah menulis perangkat lunak berbahaya untuk mengambil alih dunia, Anda akan pergi setelah target audiens yang jauh lebih besar. 95% dari dunia yang mungkin menjalankan Windows atau beberapa varian daripadanya. Jadi ada sedikit di kedua sisi. Tapi untuk kredit mereka, Apple, untuk pengetahuan saya, belum benar-benar dipuji sendiri sebagai lebih aman, karena Anda hanya mengundang drama jika Anda membuat klaim itu, saya akan berpikir. Baiklah. Tanpa terlalu jauh ke bawah itu, bagaimana kita mengatasi ini? Apakah Anda harus membeli atau apakah Anda harus membayar tiga orang yang berbeda untuk mengembangkan aplikasi Anda? Apakah Anda memilih salah satu dari yang lain? Apa yang harus memandu Anda berpikir di sini menurut Anda? Kareem? Nggak. Orang lain. AUDIENCE: Hanya datang dengan perangkat keras. DAVID J. Malan: Datang dengan perangkat keras? Apa maksudmu? AUDIENCE: Untuk lingkungan Hidup. [Tidak terdengar] DAVID J. Malan: Jadi itu benar. Tapi pelanggan Anda, Sementara itu, mungkin memiliki iPhone, mereka mungkin memiliki ponsel Android, mereka mungkin memiliki tablet buatan Microsoft. Jadi bagaimana Anda memiliki strategi mobile untuk semua ini pengguna yang berbeda? Akan terlihat bahwa jika biaya, katakanlah $ 1.000 untuk membuat iPhone aplikasi, itu akan dikenakan biaya $ 2.000 untuk membuat aplikasi iPhone dan aplikasi android, atau $ 3.000 juga mendukung perangkat Windows juga. Itu mungkin cukup meremehkan, dan itu tidak mungkin bahkan menjadi hubungan linear seperti itu. AUDIENCE: Jika Anda ingin memiliki sebuah aplikasi atau tidak, Anda dapat memiliki website responsif. DAVID J. Malan: Baik. AUDIENCE: Atau Anda dapat memiliki aplikasi native. DAVID J. Malan: Ya. Jadi dalam semua konteks ini di sini, kita telah berbicara tentang apa orang akan menyebutnya aplikasi asli. Itu adalah aplikasi yang ditulis dalam bahasa asli dari perangkat tersebut. Jadi asli Objective-C atau Swift kode, atau di Jawa, atau di C #. Yang berarti ketika Anda men-download, mari kita mengatakan Snapchat, aplikasi populer, atau ketika Anda men-download Facebook untuk telepon, Anda men-download baik Versi ditulis untuk iPhone Anda, atau ditulis untuk ponsel Android Anda, atau ditulis untuk permukaan Anda. Tapi ada alternatif. Sebagai Olivier menyinggung, Anda benar-benar dapat menggunakan HTML 5 sebaliknya, menggunakan apa yang disebut web aplikasi, dimana Anda hanya mengimplementasikan kehadiran ponsel Anda dan fungsionalitas. Apa yang saya maksud dengan kehadiran mobile? Seperti website Anda yang memiliki Anda informasi kontak, daftar semua produk Anda, mungkin itu memiliki belanja keranjang, mungkin Anda menjual sesuatu melalui itu. Apapun aplikasi Anda, Anda menerapkannya, tidak di Objective-C, atau Swift, atau Java, atau C #, tapi di HTML 5, yang merupakan bahasa kita melihat di kemarin, dengan JavaScript dan CSS. Dan apa yang baik tentang mereka tiga adalah bahwa untuk menjalankannya, Anda hanya perlu apa software? AUDIENCE: Sebuah web browser. DAVID J. Malan: Sebuah web browser. Dan yang terbaik yang saya tahu, semua ini perangkat datang dengan web browser, sehingga pengguna tidak perlu menginstal sesuatu yang istimewa. Jadi Anda bisa saja mengatakan Anda pemirsa, pelanggan Anda, pergi ke acme.com di Anda Browser dan Anda hanya akan memiliki pengalaman berbasis web yang masih mengisi layar, tetapi Anda tidak perlu khawatir tentang semua biaya ini dan semua kompleksitas ini. Tapi tentunya ada akan menjadi menangkap di sini, kan? Terutama jika saya menunjukkan bahwa beberapa tahun yang lalu, versi pertama dari aplikasi mobile Facebook sebagian besar HTML 5 aplikasi. Dan mereka memiliki lebih baru-baru ini, reimplemented itu dalam aplikasi mereka yang lain. Jadi mengapa Anda tidak segera ingin mengatakan, baik, jelas kita akan melakukan ini? Apa yang mungkin biaya tersembunyi menjadi? AUDIENCE: Kinerja. DAVID J. Malan: Kinerja? Bagaimana maksudmu? AUDIENCE: Aplikasi native memiliki kinerja yang lebih. DAVID J. Malan: Jadi yang benar, untuk beberapa alasan. Kita dapat menyederhanakan jawabannya. Dan ingat diskusi kami ditafsirkan dibandingkan bahasa dikompilasi. Ini adalah HTML 5 dan dengan itu, hanya untuk menjadi jelas, JavaScript-- umumnya ditulis JS-- dan CSS semua bahasa ditafsirkan, meskipun hanya JavaScript adalah bahasa pemrograman. Dan dibandingkan ini, yang beberapa di antaranya dikompilasi, setidaknya ini three-- Objective-C, Java dan C # - ini, dalam teori, hanya harus lebih cepat. Tapi ada realitas lain for-- AUDIENCE: Fungsi? DAVID J. Malan: Apa itu? AUDIENCE: Fungsi. DAVID J. Malan: Fungsi? Bagaimana? AUDIENCE: Gunakan kamera off ponsel atau sesuatu. Anda dapat menggunakan mereka dengan browser. DAVID J. Malan: Tepat. Mereka sec-- AUDIENCE: [tidak terdengar] DAVID J. Malan: Itu satu lagi baik. Ada fitur yang datang dengan ponsel saat yang tidak, dengan desain, untuk keamanan alasan, diakses web browser. Karena akan menjadi semacam hal menakutkan jika hanya ketika Anda mengunjungi google.com, atau cnn.com, atau website.com, bahwa website yang memiliki kekuatan untuk mengubah pada kamera Anda, mengambil gambar dari Anda, dan kemudian menggunakannya. Tetapi Anda tidak akan ingin website acak yang Anda kunjungi untuk pertama kalinya untuk memiliki kemampuan itu. Dan jadi apa telepon produsen biasanya melakukan adalah mereka hanya menolak akses untuk yang jenis informasi untuk browser, yang berarti Anda tidak dapat melaksanakan kamera. Anda tidak dapat menerapkan pemberitahuan push, beep yang Anda dapatkan pada layar Anda dengan pesan singkat. Dan pada kenyataannya, bahkan GPS hanya jenis dari jenis yang tersedia untuk web browser. Jika Anda sudah pernah, pada laptop atau pada perangkat mobile, menarik sesuatu seperti mungkin cnn.com, tetapi juga stasiun berita lokal cenderung melakukan hal ini, Anda diminta sering dengan message-- foxnews.com ingin tahu lokasi Anda. Menyetujui atau menolak. Nah, browser mencoba untuk mengakses informasi GPS dari ponsel. Tapi untungnya Microsoft, dan Apple, dan Google telah memutuskan yang terasa seperti ini adalah situasi yang berguna, kami ingin Google Maps dan alat-alat lain untuk bekerja, tapi kami tidak ingin merayap orang keluar dengan hanya memungkinkan situs web apapun untuk melakukan hal ini. Jadi mari kita semacam bertemu setengah dan meminta pengguna. Tapi itu tidak selalu terjadi dengan semua perangkat keras, seperti kamera dan dengan push pemberitahuan dan sejenisnya, sehingga Anda mungkin harus mengorbankan fitur tertentu. Tapi kinerja juga. Ini menjadi kurang terlihat saat ini, mungkin sebagai LTE menangkap dan cepat kecepatan internet pada ponsel, tetapi Anda dapat jenis merasakan perbedaannya. Seperti aplikasi berbasis web hanya terasa lambat, biasanya, dari aplikasi asli, sebagian karena aplikasi berbasis web menurut definisi adalah di internet. Ini berbicara ke server di web. Dan jika koneksi jaringan Anda lambat, bahkan bergulir mungkin lambat. Tapi aplikasi asli, Anda memiliki sudah pra-downloaded-- mungkin ketika Anda berada di rumah dari app store, atau Anda setidaknya pra-download itu secara keseluruhan sebelumnya, apa pun Anda koneksi speed-- dan jadi sekarang Anda memiliki semua bit yang umumnya Anda butuhkan. Kecuali mungkin beberapa data yang berasal dari server. Jadi ini adalah trade-off di sini. Ada semacam tengah sebuah kompromi, pada kenyataannya. Dan saya pikir you-- AUDIENCE: Gunakan data offline. Dalam aplikasi asli, Anda dapat [tidak terdengar] DAVID J. Malan: Absolutely. Jadi ada masalah offline, yang benar-benar menjengkelkan jika Anda tidak bisa memainkan beberapa permainan atau penggunaan beberapa perangkat lunak hanya karena Anda di ruang bawah tanah di suatu tempat atau di lift. Sebuah aplikasi asli adalah tangguh dengan probabilitas tinggi terhadap itu, dengan asumsi Anda memiliki semua data yang Anda butuhkan secara lokal. Jadi ada pilihan ketiga di sini. Dan mari kita menggambar spektrum sebagai aplikasi asli di sini dan aplikasi web di sini. Dan apa yang ada di tengah adalah sesuatu called-- dan saya pikir Anda mungkin memiliki menggunakan kata sebelumnya, mungkin? aplikasi hibrida. Dan seperti kata menyiratkan, itu sesuatu di tengah. Ini semacam aplikasi web dan itu semacam aplikasi asli. Dan apa artinya ini? Ternyata ada frameworks-- untuk menggunakan istilah dari software earlier-- bahwa orang lain telah menulis untuk setiap satu dari platform ini. Ini dan belum perangkat lain. Bahkan, biarkan aku pergi ke PhoneGap, yang merupakan salah satu kerangka kerja seperti yang saya percaya Adobe memiliki sekarang. Biarkan aku pergi untuk Memulai. Ayo lihat. Melihat apakah saya bisa melihat daftar alat. Perangkat keras. Mulai. hardware PhoneGap. Ayo lihat. PhoneGap akses hardware. Biarkan saya melihat apakah kita dapat menemukan sedikit bagan yang mereka digunakan untuk memiliki. Ini adalah di situs lain. Apakah ini berguna? Tidak. Itu akan membuang-buang waktu kami di sana. hardware PhoneGap. Perangkat. Perangkat API. Tidak, mereka telah pindah. PhoneGap. Mari kita pergi satu terakhir melihat ini dan melihat apakah saya bisa menunjukkan Anda. Mulai. Instal PhoneGap. Menginstal aplikasi mobile. Ayolah. Mereka telah direorganisasi segalanya. Baiklah. Oh baiklah. Nah, di sini kita pergi. Ini tidak semua yang mencerahkan, tapi ini adalah apa yang saya jenis mencari. Jadi PhoneGap adalah sebuah kerangka kerja yang Anda dapat men-download secara gratis yang memberikan Anda beberapa kode pemula, pada dasarnya. Jadi beberapa kode yang mereka tulis yang tidak melakukan apa-apa. Tapi apa yang memberikan Anda dasarnya adalah setara dari sebuah aplikasi yang hanya menempatkan persegi panjang besar pada layar pengguna. Ini tidak menempatkan bar URL, seperti Browser, tidak menempatkan alamat. Itu hanya menempatkan persegi panjang besar. Dan Anda mengkonfigurasi ini besar persegi panjang, di bawah tenda, untuk benar-benar pergi ke acme.com, atau mungkin m.acme.com, untuk mobile.acme.com, tapi pengguna tidak tahu mereka di alamat itu. Semua yang mereka lihat adalah isi dari halaman web. Tapi apa yang baik tentang makhluk ini aplikasi hybrid adalah bahwa apa yang PhoneGap dan perusahaan lain yang memberikan Anda adalah mereka memberikan Anda sedikit kode di Objective-C atau Swift, atau sedikit kode di Jawa, atau sedikit kode di C #, dan pada dasarnya, semua yang Anda harus menyediakan adalah minimal yang alamat aplikasi berbasis web Anda. Dan kemudian Anda bundel ini semua bersama-sama dan Anda memilikinya baik mengakses situs melalui internet, atau Anda bahkan cache lokal menyalin dalam aplikasi, dan kemudian Anda menyimpan aplikasi Anda dalam format iPhone, ponsel Android Format, Format permukaan, atau sejumlah perangkat lainnya. Anda meng-upload setiap versi mereka ke Play Store Google, ke App Store, dengan Windows Store, dan sebagainya. Dan sekarang, Anda dapat memiliki semua Anda penonton men-download benar-benar aplikasi asli, meskipun sebagian besar kode itu ditulis oleh orang lain, tapi isi yang aplikasi asli semua datang dari, biasanya, website Anda sendiri. Jadi Anda terus menulis situs web Anda di HTML, JavaScript, dan CSS. Jadi mengapa mengaburkan garis-garis ini? Mengapa aplikasi hybrid itu semacam asli, tetapi juga jenis web berbasis? Apa seluruh titik menambah kompleksitas ini? Maksudku, bahkan masih, hanya dari melirik melalui halaman ini, panduan Memulai terasa seperti itu punya seluruh banyak langkah-langkah untuk me lakukan sebelum saya can-- AUDIENCE: Reusability? DAVID J. Malan: Reusability? Apa maksudmu? AUDIENCE: Dari kode sumber. Jadi kode yang sama akan dijalankan pada semua platform yang berbeda. DAVID J. Malan: Ya. AUDIENCE: [tidak terdengar] DAVID J. Malan: Sempurna. Jika waktu ketat dan jika Anda tidak memiliki banyak developers-- mungkin Anda memiliki satu pengembang dan ia pasti tidak tahu semua ini environments-- tentu tidak baik, dan tentu saja tidak dapat program di ketiga secara bersamaan dan kapal tiga produk di waktu yang diperbolehkan untuk satu, Anda dapat memiliki dia membangun segalanya di HTML dan JavaScript dan CSS, dan kemudian belajar sedikit kecil sedikit tentang aplikasi asli, hanya cukup untuk men-download kerangka seperti ini, untuk kemudian meng-upload produk Anda ke semua dari berbagai toko aplikasi sehingga Anda sekarang memiliki aplikasi asli. Sehingga tampak seperti win-win, tapi sekali lagi, harus jelas, apa potensi biaya atau gotchas? AUDIENCE: Kinerja? DAVID J. Malan: Ya. Kinerja. Sulit untuk menggambarkan secara lisan. Jadi jika Anda hanya mengambil iman aplikasi mobile, aplikasi web akan biasanya melakukan lebih lambat. Ini mungkin tidak terlihat cukup tepat, karena di iPhone, dan ponsel Android, dan perangkat Windows, ada selalu semacam tampilan default dan merasa untuk semua tombol dan menu. Dan perusahaan di web, dapat mencoba untuk mendekati mereka estetika dengan perpustakaan seperti Bootstrap, tapi user-- sebuah user-- cerdik akan tahu bahwa sesuatu yang tidak cukup di sini. Dan itu baik-baik saja, mungkin itu bukan masalah besar. Tapi masalah kinerja benar-benar merupakan masalah besar. aplikasi asli akan cenderung hanya jauh lebih responsif dan karena itu lebih baik. Dan, apa yang kemudian mungkin terbaik dari kedua dunia? Jika Anda terutama kecil perusahaan atau kelompok kecil, Anda tidak memiliki sumber daya untuk mengembangkan aplikasi secara paralel pada ketiga platform, dan terus terang, terasa seperti itu ide yang buruk pula karena jika Anda roll it out dan pada ketiga secara bersamaan menyadari, kita harus menambahkan beberapa fitur atau melakukan sesuatu yang berbeda, sekarang Anda harus memperbaikinya di tiga tempat, tidak satu. Apa mungkin optimal Strategi sini secara keseluruhan, jika sumber daya dan waktu yang ketat? AUDIENCE: Lakukan saja di iOS. DAVID J. Malan: Itu tidak masuk akal. iPhone, setidaknya di AS, super populer. Android nampaknya masih memiliki dominan pangsa pasar, secara global, secara keseluruhan. Jadi Anda tidak tentu perwakilan dari keseluruhan dunia minggu ini. Tapi itu benar-benar salah satu keputusan. Maksudku, di kampus sini saya pikir beberapa nomor mengerikan atau persentase mahasiswa memiliki iPhone dan ponsel tidak Android. Tapi di luar negeri, itu semacam sebaliknya. Jadi Anda memutuskan berdasarkan audiens Anda. Bagaimana Anda tahu apa yang audiens Anda memiliki? Yah, kita belajar trik kemarin. Anda bisa meminta mereka. Jika Anda memiliki pendengar Anda dapat mengirim mereka bentuk survei. Atau Anda bisa melakukan apa? AUDIENCE: Google Analytics? DAVID J. Malan: Apa itu? AUDIENCE: Google Analytics. DAVID J. Malan: Google Analytics. Ya. Atau bahkan lebih semacam teknis, hanya melihat sendiri web server log. Karena apa yang terjadi setiap kali browser, apakah laptop, komputer desktop atau ponsel mengunjungi situs web Anda? Mereka mengirim bahwa HTTP header yang menunjukkan Anda apa browser dan OS yang mereka gunakan. Jadi Anda bisa menyimpulkan, dengan probabilitas tinggi, apa demografis Anda menggunakan cara itu dan kemudian menyesuaikan. Jadi kira itu tidak dapat diterima. Itu semacam buruk bagi bisnis jika pengguna Android tidak bisa membeli widget kami. AUDIENCE: Apakah kamu akan dikenakan biaya atau tidak? DAVID J. Malan: Apakah Anda akan dikenakan biaya? Jadi OK, Anda mendapatkan apa yang Anda bayar. AUDIENCE: Apakah aplikasi Anda akan bebas atau apakah itu gonna-- DAVID J. Malan: OK. Jadi mungkin Anda bisa menutup biaya seperti itu, or--? AUDIENCE: Saya membaca sebuah penelitian pernah berkata bahwa lebih Apple pengguna membayar untuk aplikasi versus-- DAVID J. Malan: Itu benar karena mereka sudah membayar lebih untuk perangkat mereka. Jadi tidak masuk akal asumsi. AUDIENCE: [tidak terdengar] DAVID J. Malan: OK. Jadi jika mereka lebih bersedia untuk membayar, kemudian ke neraka dengan pengguna Android. Mereka tidak akan membayar kita apa-apa pula. Kami mungkin juga fokus prioritas kami, setidaknya untuk beberapa bulan pertama atau satu tahun, di iOS. -Benar masuk akal. Apa yang lebih inklusif Strategi dari itu? Maybe-- apa itu? AUDIENCE: [tidak terdengar] DAVID J. Malan: A lebih expensive-- jadi mungkin berinvestasi lebih in-- pergi ke depan. AUDIENCE: Ya. Hanya situs web mobile. DAVID J. Malan: Jadi melakukan situs mobile dan tidak bahkan khawatir tentang kompleksitas ini. Atau mungkin strategi yang masuk akal, yang bahkan Facebook mengambil, adalah mulai dengan hibrida aplikasi karena itu tidak yang jauh lebih sulit untuk melakukan hal ini daripada ini. Anda hanya perlu membaca beberapa dokumentasi dan mencari tahu bagaimana untuk meng-upload hal-hal ke App Store. Jadi mungkin Anda mulai dengan ini, sehingga pada hari pertama, Anda dapat mendukung semua pengguna Anda. Dan kemudian, sama seperti Facebook dan perusahaan lain telah dilakukan, ketika Anda memiliki sumber daya, Anda memiliki orang-orang, kenapa tidak Anda kembali melaksanakan hanya aplikasi iOS. Anda masih memiliki sesuatu untuk semua orang, meskipun itu adalah pengalaman yang lebih rendah mungkin, dengan aplikasi hybrid. Tapi Anda bisa secara bertahap menggelar dan mengganti jangka pendek Anda langkah-langkah dari aplikasi hibrida dengan aplikasi yang lebih asli Anda. AUDIENCE: Tapi dengan hybrid aplikasi Anda akan memiliki akses ke fitur ponsel? DAVID J. Malan: Belum tentu. Jadi mungkin Anda membuat sadar keputusan awal, Anda hanya dapat meng-upload foto di Aplikasi iPhone asli untuk Facebook, namun tidak pada aplikasi Android, awalnya, misalnya. Dan itu sedikit kebohongan putih karena aplikasi web memiliki lebih pembatasan dari aplikasi hybrid ternyata keluar, dan jika kita membaca dokumentasi untuk PhoneGap dan hal-hal seperti itu, orang telah datang dengan cara untuk memberikan aplikasi berbasis web akses ke kamera, asalkan Anda menggunakan aplikasi hybrid. Bagaimana cara kerjanya? Karena hibrida aplikasi, menurut definisi, memiliki sedikit kode di Objective-C, dan Swift, dan Jawa, atau di C #, dapat mengakses perangkat keras. Belum tentu semuanya, tapi mungkin sangat baik menjadi kasus yang Anda miliki cukup akses untuk mendapatkan kamera, bahkan untuk platform Android, untuk Misalnya, dalam contoh buat. Ada pertanyaan lain? Baiklah. Mengapa kita tidak mengambil kami 15 menit istirahat di sini. Kami akan melanjutkan pada tiga dengan akhir melihat pemrograman web, database, dan Javascript.