「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回言わなければならないので、遅くなるかもしれない」と彼は言った。
したがって、多くのスタートアップは、変更を加える前にできるだけ長く待ちたいと考えています。当初から優秀な人材を失う可能性があり、小規模なチームが新しい機能を迅速に開発するのには適していません。ただし、このような言語は、全社のプログラマーが互いのコードを理解するのに役立ち、より安定した製品につながります。製品を人々の日常生活の一部にするには、この種の安定性が不可欠です。
状況に応じて異なる戦略を採用できることは、ソフトウェアスタートアップの発展をある程度促進します。ソフトウェアの開発はコンピュータの普及に依存しており、これらの企業は独自の改革方法を持っています。彼らが変化し、発展するにつれて、彼らにできることは、組織構造を調整するだけではなく、より深い変化、つまり彼ら自身の文化や考え方を変えることです。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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