ホームページ バックエンド開発 PHPチュートリアル プログラミング言語: 起業家的思考を変革するツール

プログラミング言語: 起業家的思考を変革するツール

Nov 26, 2016 pm 01:48 PM
道具 プログラミング言語

「MIT Technology Review」の今週の記事では、プログラミング言語がユーザーの考え方を形作ると述べています。これは、テクノロジー業界のスタートアップの戦略と、なぜ彼らが変革できるのかを反映している可能性もあります。

以下は記事の全文です:

Twitter、Hulu、その他多くの現代インターネットサービスの開発言語として、Ruby は大きな注目を集めています。日本のコンピューター科学者、まつもとゆきひろ氏がこの言語を設計することを決めたとき、彼はサミュエル R. ディレイニーの 1966 年の SF 小説「バベル 17」の概念を参考にしました。この小説の核となるのは、使用者の思考レベルを大幅に向上させることができる人工言語「バベル17」です。 「Babel-17 はあらゆるテクノロジーを習得できる正確な分析言語です。」と小説の主人公は言いました。まつもとゆきひろ氏は、Ruby を使って、プログラマーの考え方に革命を起こし、最適化するという同様の目標を達成したいと考えています。

この目標は非常に野心的に聞こえますが、まつもとゆきひろ氏の見解が主流になっています。ソフトウェア開発者は、プログラミング言語によって考え方が変わり、それによって問題の解決方法が変わり、どの問題を解決すべきかについての理解さえも変わると信じていることがよくあります。これは、企業、製品、競合他社の規模を推定する方法です。「どの言語を使用していますか?」 プログラミング言語を調べると、これらのソフトウェア会社がなぜこれほど強力で、これほど高いパフォーマンスを持っているのかを理解するのに役立ちます。その価値と、その製品やサービスが私たちの生活にどのように適合するか。 Ruby、PHP、C のいずれであっても、どの言語を使用するかについてこれらの企業が社内で行う決定は、私たち全員に影響を与えるでしょう。 Facebook がなぜ現在のように見え、機能するのか、そして将来何が起こるのかを知りたければ、マーク ザッカーバーグが使用したプログラミング言語である PHP を理解する必要があります。

プログラマーの間では、PHPはおそらく最も軽視されているプログラミング言語です。有名なテクノロジ ブログ Eevee は、PHP には多くの欠陥があるため、PHP は「悪い設計の断片」であり、PHP を使おうとする開発者はアマチュアであると考えています。プログラミングに関する質問と回答のウェブサイト Stack Overflow の共同創設者、ジェフ・アトウッド氏は、「賢明なエンジニアリングの人材が次々と Facebook に流れていますが、これは非常に奇妙なことです。彼らは Windows XP 環境で PHP コードを開発しています。彼らはハッカーですが、アトウッド氏は、PHP を「不器用な巨人」、「伝染病」、そしてオカルト愛好家を惹きつける「お化け屋敷」と呼んでいます。

成功したプログラミング言語には、総合的な哲学、つまり語彙と構文(つまり、プログラマーに提供される指示)を整理する論理的に一貫した一連の指導原則があります。しかし、PHP ではそうではありません。この言語の設計者、ラスムス・レルドルフ氏はかつて、単にたくさんのものを混ぜ合わせただけだと認めました。 「これを止める方法がわかりません」と彼は 2003 年のインタビューで語った。「プログラミング言語の書き方もわかりません。ただ、途中で新しい論理ステップを追加し続けるだけです。」お気に入りの例は、PHP 関数「mysql_escape_string」です。この機能は、情報をデータベースに送信する前に、情報から悪意のある入力リクエストを削除します。 (悪意のある入力の例には、ユーザーの電子メール アドレスを要求する Web サイト上のフォームや、Web サイト ユーザーのパスワードを盗むコードを挿入するハッカーが含まれます。) この関数の脆弱性が発見された後、「mysql_real_escape_string」と呼ばれる新しいバージョンが作成されました。 " ですが、古いバージョンは置き換えられていません。したがって、現在の状況は、飛行機のコックピットに同様の機能を持つ 2 つのボタンが並んでいるようなものです。1 つのボタンは着陸装置を下げるために使用され、もう 1 つのボタンは着陸装置を安全に下げるために使用されます。これは常識に反するだけでなく、災害を引き起こす可能性さえあります。

PHP を好まない人はたくさんいますが、PHP は依然として多数の Web サイトの基礎となっています。調査によると、現在のインターネット上のすべてのドメインの 39% が PHP テクノロジに基づいています。 Facebook、Wikipedia、および主要な出版プラットフォームである WordPress はすべて PHP を使用して開発されています。なぜなら、PHP には多くの欠点があるにもかかわらず、初心者にとってはほぼ完璧だからです。 PHP の名前は、元々は「Personal Home Page」の英語の略語でした。この言語を使用すると、プログラマは日付やユーザー名などの動的なコンテンツを静的な HTML ページに簡単に追加できます。 PHP の台頭により、Web サイト開発から Web アプリケーション開発への飛躍が促進され、開発者は専門家である必要さえありません。

ウィキメディア財団でウィキペディア プロジェクトを担当するチーフ ソフトウェア エンジニアのオリ・リブネ氏は、PHP の使いやすさがウィキペディアの成功の鍵であると述べました。しかし、彼は次のように指摘しました。「私はずっと PHP が嫌いでした。」Wikipedia は PHP に依存していたために、ユーザー ベースが拡大するにつれて設計上の欠陥が生じました。 (Wikipedia が 2008 年までモバイル デバイスをサポートしていなかったのはこのためです。Web サイトがユーザーフレンドリーな編集インターフェイスを提供したのは 2013 年になってからです。) しかし、PHP に基づいて、ソフトウェア プログラミングに慣れていない人でも、新しい機能も開発します。たとえば、PHP 言語を使用すると、Wikipedia は「エジプト学」の項目に象形文字を表示し、ページ上で音楽の再生を実装できます。

GoogleがPHP言語を使用できないのは、現在のGoogleが仕事を非常にうまく完了する必要がある、つまり、迅速かつ正確に検索する必要があるためです。したがって、Google 検索エンジンは Java や C++ などのより強力な言語を使用します。 Google と比較すると、Facebook は小規模な実験の寄せ集めであり、ボタン、フィード、ギズモの寄せ集めです。この場合、PHP は機能をより速く実装できます。

ザッカーバーグがハーバード大学の寮で決定的な瞬間にどのようにして Facebook の開発手法を選択したのかさえ想像できます。彼は最小限のコストで Web サイトをオンラインに公開する必要がありました。インターネットは急速に発展しており、ユーザーの好みは常に変化しています。チャンスをつかむ唯一の方法は、市場で先駆者になることです。それがごった煮であろうと、上質なパスタであろうと、関係ありません。彼はまず Web サイトを完成させ、ユーザーが使用できるようにする必要があります。彼が考えていたのは、コードが美しいかどうかではなく、友達に TheFacebook という Web サイトにログインしてもらい、知り合いの女の子を評価してもらう方法でした。

現在、Facebook の時価総額は 2,000 億ドルを超えており、同社のオフィスの壁には「完璧よりも物事をやり遂げることが重要」や「緊張を解くために迅速に行動する」といったスローガンが掲げられています。これらの大胆なスローガンは、従業員が会社の「ハッカー」文化に確実に適応できるように設計されています。そして、これは PHP の価値を正確に反映しています。迅速に行動して行き詰まりを打開する。これが PHP の本質であり、PHP プログラマーの問題に対する考え方を表しています。 PHP 自体が Facebook の文化を生み出し、維持しているとさえ言えます。

Secret Weapon: A More Powerful Language

PHP とは完全に反対の概念を見つけて、その対極がどのようなものかを知りたい場合は、ニューヨーク州ロウアー マンハッタンにある金融取引会社ジェーン ストリート キャピタルの本社は次のとおりです。一見の価値あり。従業員数 400 人の同社は現在、毎日の米国証券取引高の約 2% を扱っています。

私がジェーン・ストリート・キャピタルの技術責任者であるヤロン・ミンスキーに会ったとき、彼は第二次世界大戦時に現存する数少ない機器の一つであるエニグマ暗号機の隣の机に座っていました。これが彼の部屋にある一番クールな秘密兵器だと思ったのですが、それが間違いだったことに気づきました。ミンスキーは OCaml と呼ばれるプログラミング言語について話しました。コンピュータ サイエンスの博士号を取得したミンスキー氏は、10 年前に OCaml を使用して会社の取引システム全体を書き直すよう上司を説得しました。

それまで、OCamlを実用的なアプリケーションで使用した人はほとんどいませんでした。この言語の設計者はフランスの研究機関であり、その本来の目的は数学の定理を自動的に証明できるコンピュータ システムを最適化することでした。ミンスキーは大学院で勉強しているときにこの言語に出会いました。同氏は、この言語がジェーン・ストリート・キャピタルの取引システムで使用されているエクセル・スプレッドシートを置き換えることができると信じている。

OCamlの最大の特徴は「入力チェックシステム」です。これは Microsoft Word の構文チェック機能に似ており、システムが間違っていると判断したコードの下に緑色の波線マークを使用し、そのようなコードの実行を禁止します。このシステムを使用して開発されたプログラムは非常に信頼性が高く、開発中のソフトウェアが毎日 300 億ドルのトランザクションを処理する場合、これは重要です。

ミンスキー氏は、OCamlの入力チェックシステムは脆弱性を発見することで、Jane Street Capitalのプログラマーがより高いレベルの問題に集中できるようになると述べた。そして、同社が OCaml のチェック機能をさらに社内に組み込むことができれば、プログラマーが間違ったアイデアを考えることができなくなる習慣が生まれるでしょう。

さらに、入力チェックツールが機能するためには、プログラマーはコードに複雑なコメントを追加する必要があります。これは、Word の文法チェッカーではすべての文に注釈を付ける必要があると言っているようなものです。限られた入力でコードを書くのは面倒でイライラすることさえあります。さらに悪いことに、OCaml は他のプログラミング言語と比較して非常に抽象的な数学を必要とするため、ほとんどのプログラマーにとっては困難です。

それでも、言葉の正確さは一部の人にとって魅力的であり、Jane Street Capital に並外れた採用上の利点を与えています。ソフトウェア開発者の中にはPHPの欠点を無視してFacebookやWikipediaに参加する人もいるが、ミンスキー氏はOCaml言語と著書『OCaml in the Real World』が優れたプログラミング人材を惹きつけるのに役立っていると述べた。魅力は言語だけでなく、それを話す人々にもあります。ジェーン ストリート キャピタルでは、従業員が休憩中にチェスをしています。この知的競争の文化は、OCaml 言語の使用と密接に関係しているようです。

Google は、自社設計の高性能言語 Go で同じ目標を達成しようとしているようです。ネットワーク サービスをよりエレガントかつ効率的にするには、大規模なネットワーク サービスの背後にあるサーバー用のより高度なソフトウェアを開発することが有益です。また、新しいことが好きで難しいことに挑戦するプログラマーにとっても魅力です。

適切な時期:成長して成長した後

2010年末、Facebookは危機に直面した。 PHP はコードのパフォーマンスを重視する言語ではありませんが、当時 Facebook には PHP のニーズがありました。 Facebook は非常に急速に成長しているため、何らかの大きな変更を加えなければ、会社は失敗するでしょう。

プログラミング言語を完全に変更するという選択肢はありません。 Facebook は PHP を使用して数百万行のコードを記述し、数千人のエンジニアリング専門家がこの開発に従事し、その結果得られた製品は数億人のユーザーを獲得しました。そのため、Facebook の上級エンジニア数名が小規模なチームを結成しました。彼らは、Facebook が「母国語」を放棄することなくサービスを提供できる方法を発明しようとしていました。

全体的な解決策の一部は、Facebook の PHP コードをより高速に実行できる C++ コードに変換するコンパイラーを開発することです。もう 1 つの部分は、コンピューター言語エンジニアリングの偉業です。Facebook プログラマーがより信頼性の高いコードを記述できるようにしながら、PHP スタイルの文化を継続的にもたらしました。

この「救助チーム」は、PHP 言語の変種、つまり Hack を設計しました。 Hack は、オプションの入力チェック システムを備えた PHP 言語です。いつものように、わかりにくいコードを含む PHP プログラムをすばやく作成することも、システム要件に従い、コメントを追加してシステムにコードの正しさをチェックさせることもできます。この入力チェック ツールが完全に OCaml を使用して開発されているのは偶然ではありません。 Facebookはプログラマーが使い慣れた言語を使ってコードを素早く書くことを望んでいるが、彼らが物事を間違うことも望んでいない。 (昨年、ザッカーバーグ氏は Facebook の新しいエンジニアリング スローガンを発表しました。「インフラの安定性を確保しながら迅速に行動する」。)

同時に、Twitter も同様の変革を迎えています。 Twitter の開発はもともと Ruby on Rails に基づいていました。これは、Ruby 言語で開発された人気のあるネットワーク プログラミング フレームワークであり、PHP から多くのアイデアを借用しています。しかしその後、Twitterのユーザー数は急増した。ユーザーに数十万人のフォロワーがいる場合、メッセージを投稿すると、それに応じて数十万人のユーザーのタイムラインを更新する必要があります。以前は、一部の人気のある Twitter メッセージがシステムを圧倒することがよくあり、Twitter エンジニアがサービスを一時停止して問題を解決する必要がありました。 Twitterは、その後頻繁にサービス停止が発生することで「悪名」も高い。

その後、Twitter はサービスのコードの大部分を Scala で書き直すことでこの問題を解決しました。当然のことながら、OCaml と同様に、Scala も学術機関によって設計された言語であり、コードの精度とパフォーマンスを重視する強力な入力チェック システムを備えているため、プログラマの個人的なプログラミングの自由と娯楽が犠牲になります。

収益モデルを見つけた後、スタートアップ企業は成熟します。同様に、プログラミング言語の力を利用して企業文化を操作することもできます。プログラミング言語デザイナーの Guido van Rossum は、Google で 7 年間働いた後、Dropbox に入社しました。同氏は、ソフトウェア会社がある程度の規模に達した場合、混乱を避ける唯一の方法は、より多くのプログラマーを必要とするプログラミング言語を使用することだと述べた。 「同じことを3回言わなければならないので、遅くなるかもしれない」と彼は言った。

したがって、多くのスタートアップは、変更を加える前にできるだけ長く待ちたいと考えています。当初から優秀な人材を失う可能性があり、小規模なチームが新しい機能を迅速に開発するのには適していません。ただし、このような言語は、全社のプログラマーが互いのコードを理解するのに役立ち、より安定した製品につながります。製品を人々の日常生活の一部にするには、この種の安定性が不可欠です。

状況に応じて異なる戦略を採用できることは、ソフトウェアスタートアップの発展をある程度促進します。ソフトウェアの開発はコンピュータの普及に依存しており、これらの企業は独自の改革方法を持っています。彼らが変化し、発展するにつれて、彼らにできることは、組織構造を調整するだけではなく、より深い変化、つまり彼ら自身の文化や考え方を変えることです。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CでDMA操作を理解する方法は? CでDMA操作を理解する方法は? Apr 28, 2025 pm 10:09 PM

CのDMAとは、直接メモリアクセステクノロジーであるDirectMemoryAccessを指し、ハードウェアデバイスがCPU介入なしでメモリに直接データを送信できるようにします。 1)DMA操作は、ハードウェアデバイスとドライバーに大きく依存しており、実装方法はシステムごとに異なります。 2)メモリへの直接アクセスは、セキュリティリスクをもたらす可能性があり、コードの正確性とセキュリティを確保する必要があります。 3)DMAはパフォーマンスを改善できますが、不適切な使用はシステムのパフォーマンスの低下につながる可能性があります。実践と学習を通じて、DMAを使用するスキルを習得し、高速データ送信やリアルタイム信号処理などのシナリオでその効果を最大化できます。

CでChronoライブラリを使用する方法は? CでChronoライブラリを使用する方法は? Apr 28, 2025 pm 10:18 PM

CでChronoライブラリを使用すると、時間と時間の間隔をより正確に制御できます。このライブラリの魅力を探りましょう。 CのChronoライブラリは、時間と時間の間隔に対処するための最新の方法を提供する標準ライブラリの一部です。 Time.HとCtimeに苦しんでいるプログラマーにとって、Chronoは間違いなく恩恵です。コードの読みやすさと保守性を向上させるだけでなく、より高い精度と柔軟性も提供します。基本から始めましょう。 Chronoライブラリには、主に次の重要なコンポーネントが含まれています。STD:: Chrono :: System_Clock:現在の時間を取得するために使用されるシステムクロックを表します。 STD :: Chron

Cのスレッドパフォーマンスを測定する方法は? Cのスレッドパフォーマンスを測定する方法は? Apr 28, 2025 pm 10:21 PM

Cのスレッドパフォーマンスの測定は、標準ライブラリのタイミングツール、パフォーマンス分析ツール、およびカスタムタイマーを使用できます。 1.ライブラリを使用して、実行時間を測定します。 2。パフォーマンス分析にはGPROFを使用します。手順には、コンピレーション中に-pgオプションを追加し、プログラムを実行してGmon.outファイルを生成し、パフォーマンスレポートの生成が含まれます。 3. ValgrindのCallGrindモジュールを使用して、より詳細な分析を実行します。手順には、プログラムを実行してCallGrind.outファイルを生成し、Kcachegrindを使用して結果を表示することが含まれます。 4.カスタムタイマーは、特定のコードセグメントの実行時間を柔軟に測定できます。これらの方法は、スレッドのパフォーマンスを完全に理解し、コードを最適化するのに役立ちます。

Cのリアルタイムオペレーティングシステムプログラミングとは何ですか? Cのリアルタイムオペレーティングシステムプログラミングとは何ですか? Apr 28, 2025 pm 10:15 PM

Cは、リアルタイムオペレーティングシステム(RTOS)プログラミングでうまく機能し、効率的な実行効率と正確な時間管理を提供します。 1)Cハードウェアリソースの直接的な動作と効率的なメモリ管理を通じて、RTOのニーズを満たします。 2)オブジェクト指向の機能を使用して、Cは柔軟なタスクスケジューリングシステムを設計できます。 3)Cは効率的な割り込み処理をサポートしますが、リアルタイムを確保するには、動的メモリの割り当てと例外処理を避ける必要があります。 4)テンプレートプログラミングとインライン関数は、パフォーマンスの最適化に役立ちます。 5)実際のアプリケーションでは、Cを使用して効率的なロギングシステムを実装できます。

MySQLをアンインストールし、残留ファイルをクリーンする方法 MySQLをアンインストールし、残留ファイルをクリーンする方法 Apr 29, 2025 pm 04:03 PM

安全かつ徹底的にMySQLをアンインストールし、すべての残留ファイルをクリーンにするには、次の手順に従ってください。1。MySQLサービスを停止します。 2。MySQLパッケージをアンインストールします。 3.構成ファイルとデータディレクトリのクリーン。 4.アンインストールが徹底していることを確認します。

デジタル通貨アプリはどのようなソフトウェアですか?世界のデジタル通貨向けのトップ10アプリ デジタル通貨アプリはどのようなソフトウェアですか?世界のデジタル通貨向けのトップ10アプリ Apr 30, 2025 pm 07:06 PM

デジタル通貨の普及と開発により、ますます多くの人々がデジタル通貨アプリに注意を払い、使用し始めています。これらのアプリケーションは、デジタル資産を管理および取引するための便利な方法をユーザーに提供します。では、デジタル通貨アプリはどのようなソフトウェアですか?詳細な理解を持ち、世界のトップ10のデジタル通貨アプリの在庫を取得しましょう。

Cで文字列ストリームを使用する方法は? Cで文字列ストリームを使用する方法は? Apr 28, 2025 pm 09:12 PM

Cで文字列ストリームを使用するための主な手順と予防策は次のとおりです。1。出力文字列ストリームを作成し、整数を文字列に変換するなどのデータを変換します。 2。ベクトルを文字列に変換するなど、複雑なデータ構造のシリアル化に適用します。 3.パフォーマンスの問題に注意を払い、大量のデータを処理するときに文字列ストリームを頻繁に使用することを避けます。 std :: stringの追加方法を使用することを検討できます。 4.メモリ管理に注意を払い、ストリングストリームオブジェクトの頻繁な作成と破壊を避けます。 std :: stringstreamを再利用または使用できます。

コードを最適化する方法 コードを最適化する方法 Apr 28, 2025 pm 10:27 PM

Cコードの最適化は、次の戦略を通じて実現できます。1。最適化のためにメモリを手動で管理する。 2。コンパイラ最適化ルールに準拠したコードを書きます。 3.適切なアルゴリズムとデータ構造を選択します。 4.インライン関数を使用して、コールオーバーヘッドを削減します。 5.コンパイル時に最適化するために、テンプレートメタプログラムを適用します。 6.不要なコピーを避け、移動セマンティクスと参照パラメーターを使用します。 7. constを正しく使用して、コンパイラの最適化を支援します。 8。std :: vectorなどの適切なデータ構造を選択します。

See all articles