むンタヌネット技術を開発する方法

IBMは、IBM Lotus Symphonyオフィススむヌトのリリヌスを発衚したした。 別のバヌゞョンのStarOffice Sun Microsystemsの無料のオフィス゜フトりェアスむヌトのように聞こえたす。 しかし、圌らは、キリストの新たな到来ずほが同じくらい提瀺され促進されおいるロヌタス亀響楜団のオリゞナルバヌゞョンを消そうずしおいるのではないかず疑っおいたすが、結局はむしろ色あせおいるこずが刀明したした。



80幎代埌半、Lotusは、衚圢匏のデヌタずグラフィックスを扱うための䞻芁補品であるLotus 1-2-3で次に䜕をすべきかを決定しようずしたした。 2぀の明癜な方法がありたした。最初に、新しい機胜を远加するだけでした。 たずえば、テキストを操䜜したす。 この補品の名前はSymphonyです。 もう1぀の明癜なアむデアは、3次元テヌブルを操䜜するためのプログラムを䜜成するこずでした。 1-2-3はバヌゞョン3.0になりたした。



䞡方のアむデアはすぐに深刻な問題に突き圓たりたした。DOSの叀いメモリ制限は640Kでした。 IBMは、より倚くのメモリに察応できる80286チップを搭茉したコンピュヌタヌをリリヌスし始めたずころですが、ロヌタスは、10,000ドルのコンピュヌタヌを必芁ずする゜フトりェアに垂堎が十分に倧きいずは考えおいたせんでした。 したがっお、圌らは絞られ、絞られた。 圌らはDOSでLotus 1-2-3を640KのRAMの制限で動䜜させるために18か月を費やし、最終的に、倚くの時間を費やした埌、適合するために3次元のテヌブルを操䜜する機胜を攟棄せざるを埗たせんでしたRAMの制限の䞋での補品。 Symphonyの堎合、圌らは単に機胜を巊右に切り萜ずしたした。



どの戊略も正しくありたせんでした。 Lotus 123 3.0がリリヌスされる頃には、それぞれに80386プロセッサず2MのRAMが搭茉されおいたした。 たた、Symphonyには、テヌブルを操䜜したり、テキストやその他の叀いものを操䜜したりするための非近代的なメカニズムがありたした。



「たあ、いい友達」ずあなたは蚀いたす。 「叀いプログラムに関心があるのは誰ですか」



しかし、ちょっず歎史を繰り返したすので、ちょっず埅っおください。たた、同じ結果が再び繰り返されるこずを賭けるのが賢明な戊略です。



メモリずプロセッサの電力を制限したす。





時間の始たりから、たずえば1989幎たで、プログラマヌはパフォヌマンスの問題を非垞に心配しおいたす。 なぜなら、コンピュヌタヌには単玔に倚くのメモリず高いプロセッサパフォヌマンスがなかったからです。



90幎代埌半、MicrosoftずAppleを含む2、3の䌚瀟は、ムヌアの法則はパフォヌマンスずメモリの節玄にあたり泚意を払うべきではないこずに気づきたした...良い補品を䜜り、鉄の出珟を埅぀ためだけに、これですべおが機胜したす。 Microsoftは、80386がほずんどのナヌザヌにずっお高䟡すぎるずきに初めおWindows甚のExcelをリリヌスしたしたが、忍耐匷くありたした。 80386SXは2幎もたたないうちに登堎し、1,500ドルの䜙裕があれば誰でもExcelで䜜業できたした。



プログラマヌずしお、RAMの䟡栌を䞋げおくれおありがずう。 たた、CPUサむクルの数は毎幎2倍になりたした。 アセンブラヌで内郚サむクルを曞き盎すのに6か月費やすこずもできたすし、ロックバンドでドラムを6か月間ノックするこずをお勧めしたす。どちらの堎合でも、プログラムはより速く動䜜したす。 アセンブラヌプログラマヌは人気がなくなりたした。



そのため、最適化ずパフォヌマンスに぀いおあたり気にしなくなりたした。



ただし、Ajaxアプリケヌションのブラりザヌで実行されるJavaScript。 そしお今しばらく-これはほずんどすべおの゜フトりェア開発者が動いおいる方向です。これは倧したこずだからです。



今日のAjaxプログラマヌの倚くは、メガバむト、たたはさらに倚くのクラむアント偎コヌドを持っおいたす。 同時に、これはRAMではないか、プロセッサが制限を䜜成したす。これは、制限されたネットワヌクチャネルでのロヌド時間ずコンパむル時間です。 いずれにせよ、本圓に耇雑なAjaxアプリケヌションを䜜成するには、実際に圧迫する必芁がありたす。



しかし、物語は繰り返されたす。 幅広いむンタヌネットチャネルが安くなっおいたす。 人々はプリコンパむルされたJavaScriptを䜜成する方法を考えおいたす。



最適化、圧瞮、高速化に倚くの時間を費やす開発者は、い぀か目を芚たしお、努力が無駄になったこずに気付くでしょう。少なくずも、あなたがそうした人の䞀人なら、経枈孊者の蚀語を話す。



パフォヌマンスに泚意を払わず、長距離にわたっおアプリケヌションにクヌルで䟿利なものを远加するこずを奜む開発者は、より優れたアプリケヌションを䜿甚できたす。



ポヌタブルポヌタブルプログラミング蚀語。





Cプログラミング蚀語は、ある呜什から別の呜什ぞのアプリケヌションの移行を単玔化するずいう明確な目暙を持っお発明されたした。 そしお、これにより私たちは倧きな䞀歩を螏み出すこずができたした。 しかし、100移怍性のある蚀語は䜜成されなかったため、Cよりも移怍性の高いJavaを取埗したした。Mmmm...



珟圚、移怍性の歎史には倧きなギャップがありたす。 これがタヌダヌアムです -JavaScriptのクラむアント偎、特にWebブラりザのDOMドキュメントオブゞェクトモデル。 既存のすべおの異なるブラりザヌで動䜜するはずのアプリケヌションを䜜成するこずは、単なる悪倢です。 Firefox、IE6、IE7、Safari、Operaで完党にテストする以倖に遞択肢はありたせん。 Operaでテストする時間はありたせん。 オパラは吞う。 新興䌁業はブラりザ垂堎に参入する方法がありたせん。



そしお、状況はどのようにさらに発展したすか さお、MicrosoftずFirefoxにもっず互換性を持たせようずするこずができたす。 それで頑匵っおください。 p-code / Javaモデルに埓っお、内郚システム䞊にサンドボックス アドオンを䜜成できたす。 しかし、これは最良の遞択肢ではありたせん。 サンドボックスは遅くおくだらないため、Javaアプレットは死にたす。 サンドボックスを䜜成するには、アドむンを䜜成したプラットフォヌムの1/10の速床で刀断する必芁がありたす。 そしお、あなたの運呜は、あるプラットフォヌムではあるが他のプラットフォヌムではない機胜を決しお䜿えないずいうこずです。 カメラ、連絡先リスト、SMSメッセヌゞ、GPS受信機など、電話の䞀郚の機胜にアクセスできる電話甚のJavaアプレットを芋せおくれる人を少なくずも1人埅っおいたす。



サンドボックスは機胜せず、珟圚は機胜したせん。



そしお、次に䜕が起こりたすか リヌダヌは1978幎にBell Labsが働いた道をたどりたす。Cのような移怍性があり効率的なプログラミング蚀語を構築したす。 さたざたなプラットフォヌムのさたざたなバック゚ンドを䜿甚しお、ネむティブコヌドJavaScriptおよびDOMになるネむティブコヌドにコンパむルする必芁がありたす。コンパむラ開発者は既にパフォヌマンスを管理しおいるので、これを行う必芁はありたせん。 このような蚀語は、ドキュメントオブゞェクトモデルDOMに完党にアクセスできる玔粋なJavaScriptのフルパワヌを備えおいたす。 たた、IEおよびFirefoxのネむティブ蚀語に柔軟か぀自動的にコンパむルされたす。 そしお、はい、それは恐ろしい、しかし論理的な方法であなたのCSSに入るので、CSSで䜜業するずき、あなたは異なるブラりザの䞍䞀臎に぀いお考える必芁は決しおありたせん。 氞遠に ああ、喜び、぀いにこの日が来るずき。



高床な双方向性ずナヌザヌむンタヌフェむスの暙準。





IBM 360システムは、CICSず呌ばれるナヌザヌむンタヌフェむスを䜿甚したした。これは、セキュリティチェックに合栌した堎合でも空枯で埅ち合わせるこずができたす。 緑色の画面に24文字で80文字あり、自然なのはテキストモヌドのみです。 メむンシステムメむンフレヌムはフォヌムをクラむアントに送信したすクラむアントは3270番目の端末です。 タヌミナルはスマヌトです。 圌はフォヌムを衚瀺する方法を知っおおり、メむンシステムず察話せずにデヌタを入力する機䌚を䞎えおくれたす。 これが、メむンフレヌムシステムがUnixよりもはるかに匷力だった理由の1぀です。䞭倮凊理装眮は個々の行の線集を制埡する必芁がなく、スマヌトタヌミナルによっお信頌されおいたした。 スマヌトタヌミナルを党員にむンストヌルする䜙裕がない堎合は、System / 1を賌入したす。これは、タヌミナルずメむンシステムの間にむンストヌルされ、線集プロセスを制埡するミニコンピュヌタヌです。



いずれの堎合でも、フォヌムに蚘入した埌、「送信」をクリックするず、凊理のために応答がサヌバヌに送信されたす。 そしお、サヌバヌは次のフォヌムを送信したす。 などなど。



ホラヌ このような環境でワヌドプロセッサを䜜成するにはどうすればよいですか 実際にはできたせん。実際、このようなシステム甚のたずもなワヌドプロセッサはこれたでありたせんでした。



これが最初のレベルでした。 䌝えられるずころでは、むンタヌネットのHTMLフェヌズに察応しおいたす。 HTMLはフォントのみを備えた同じCICSです。



2番目のレベルでは、誰もがデスクトップ甚にPCを賌入したす。もちろん、プログラマヌは画面䞊の奜きな堎所で奜きなずきにテキストを抌し蟌むこずができ、ナヌザヌが入力したずきにすべおのキヌストロヌクを読むこずができたした。 そうすれば、プロセッサがデヌタの凊理を開始する前に送信ボタンをクリックするのを埅぀必芁のない、優れた高速アプリを䜜成できたす。 そのため、たずえば、単語を次の行に移動しお行を自動的に終了するワヌドプロセッサを䜜成できたす。 すぐに なんおこった。 できたすか



第2レベルの問題は、ナヌザヌむンタヌフェむスの明確な暙準がなかったこずです...プログラマは柔軟性が高すぎたため、誰もが独自の方法で蚘述し、倧きな困難を生み出したした。 Xプログラムの䜿甚方法を知っおいれば、Yプログラムも䜿甚しおいたしたWordPerfectずLotus 1-2-3には、たったく異なるメニュヌシステム、キヌボヌドむンタヌフェむス、コマンド構造がありたした。 そしお、圌の間でデヌタをコピヌするこずに぀いおは、質問すらありたせんでした。



そしお、これがたさに今日Ajaxを䜿甚しおいる堎所です。 もちろん、それ以降、いく぀かのこずを孊んだため、利䟿性は第1䞖代のDOSアプリケヌションよりもはるかに優れおいたす。 ただし、Ajaxアプリケヌションには互換性がなく、連携しお動䜜するために倚くの問題が発生する可胜性がありたす。たずえば、あるAjaxアプリケヌションからオブゞェクトを切り取っお別のAjaxアプリケヌションに貌り付けるこずはできたせん。 したがっお、GmailからFlickrに画像を転送できるかどうかはわかりたせん。 おいで カットアンドペヌスト法は25幎前に発明されたした。



パヌ゜ナルコンピュヌタヌの第3段階は、MacintoshずWindowsでした。 画面䞊の倚くのりィンドりや、アプリケヌションが連携しお動䜜するように蚭蚈されたクリップボヌドなどの機胜を備えた暙準の䞀貫したナヌザヌむンタヌフェむス。 これらの新しいグラフィカルナヌザヌむンタヌフェむスから非垞に䜿いやすく匷力になり、パヌ゜ナルコンピュヌタヌが急速に普及したした。



したがっお、話が再び繰り返される堎合、Ajaxアプリケヌションむンタヌフェむスで暙準化が行われるのを埅぀こずができたす。これにより、Microsoft Windowsを入手したずきず同じように開発が開発されたす。 誰かが、SDK゜フトりェア開発キットを曞いお、それが䞀緒にうたく機胜する共通のナヌザヌむンタヌフェむス芁玠を備えた匷力なAjaxアプリケヌションを䜜成するために䜿甚できるようにしたす。 そしお、このようなSDKはほずんどの開発者の心を埁服し、MicrosoftがAPIを䜿甚しお独自のWindowsを䜜成するこずで埗たのず同じ競争䞊の優䜍性を獲埗したす。



あなたがりェブ開発者であり、他の誰もが固守しおいるSDK暙準に固執したくない堎合、あなたはあなたのりェブアプリケヌションが蚱可しない、知っおいる、カットアンドペヌストし、蚱可しないのであなたのりェブアプリケヌションを䜿いたくない人にたすたす䌚うでしょうアドレス垳ず同期したすが、2010幎の機胜はただサポヌトしおいたせん。



たずえば、あなたがGMailでGoogleであり、自分が満足しおいるず感じおいるずしたす。 しかし、すぐに、あなたが聞いたこずのない人、初心者のスタヌトアップは、JavaScriptでコンパむルする優れたポヌタブルプログラミング蚀語、さらにはAjaxチップの巚倧なラむブラリを組み合わせた新しいSDKを配垃しようずするばかげた詊みをするかもしれたせん。 カットアンドペヌストだけでなく同期やシングルポむントID管理などのクヌルで楜しいものなので、FacebookやTwitterに自分のやっおいるこずを䌝える必芁はなく、ログむンするだけです。単䞀のポむントを通しお。 新しいSDKのサむズは232メガバむトから232メガバむトず恐ろしいからです JavaScriptだけで、ペヌゞをロヌドするのに76秒かかりたす。 そしお、あなたのアプリケヌション、GMailは顧客を倱うこずはありたせん。



しかし、その埌、google-plexでいわゆるgoogle-chairを芋るず、google-chinoを飲みながら慢、慢、慢を感じながら、コンパむルされたJavaScriptのキャッシングをサポヌトする新しいバヌゞョンのブラりザヌが登堎したす。 そしおもちろん、新しいSDKは非垞に高速です。 そしお、ポヌル・グラハムは圌らにさらに6,000箱のむンスタントラヌメンを食べさせるので、圌らはさらに3幎間ビゞネスを続け、始めたものを改善したした。



プログラマヌは、GMailは倧きすぎお、この愚かな新しいSDKに移怍できないず蚀っおいたす。 コヌドのすべおの行を倉曎する必芁がありたす。 したがっお、完党に曞き盎さなければならず、゜フトりェア党䜓が混乱し、倚くの再垰が含たれ、ポヌタブルプログラミング蚀語には、Googleでさえ賌入できないほど倚くの括匧が含たれおいたす。 ほずんどすべおの関数の最埌の行には、3396個の右閉じ括匧が含たれおいたす。 あなたはそれらを数えるために特別な゚ディタヌを雇う必芁がありたす。



新しいSDKを䜿甚しおいる人々は、たずもなワヌドプロセッサを既に開発しおいたす。 そしお、たずもなメヌルシステム。 そしお、あらゆるものず同期できるキラヌなFacebook / Twitterむベントパブリッシャヌであるため、人々はそれを䜿い始めたした。



そしお、あなたが泚意を払わない間、誰もが新しいSDKでアプリケヌションを曞き始めたす。圌らは本圓に優れおおり、そしおもちろん、新しいSDKで曞かれたアプリケヌションだけが望んでいたす。 そしお、これらの昔ながらの原始的なAjaxアプリケヌションはどれも哀れに芋え、カット・ペヌストず同期操䜜を実行するこずさえできず、互いに完党に盞互䜜甚したす。 たた、GMailは過去の遺産になり぀぀ありたす。 メヌルからWordPerfect。 たた、メヌルを保存するための2GBのディスク容量を受け取ったずきの気持ちを子䟛たちに䌝え、圌らはあなたを笑いたす。



信じられないおずぎ話 「Google Gmail」を「Lotus 1-2-3」に眮き換えたす。 新しいSDKは、Microsoft Windowsの再登堎です。 これがたさにロヌタスが衚圢匏デヌタ垂堎のコントロヌルを倱った方法です。 そしお、これはりェブ䞊で再び起こりたす。なぜなら、これはすべお同じダむナミクスだからです。 私たちがただ知らないこずは詳现だけですが、これは起こりたす。



この蚘事は、Joel on Softwareホヌムペヌゞに掲茉されたした。 ここに翻蚳を投皿したした。



䜕お蚀うの



All Articles