搜尋
首頁後端開發php教程程式語言:變革創業思維的工具
程式語言:變革創業思維的工具Nov 26, 2016 pm 01:48 PM
工具程式設計語言

《麻省理工科技評論》本週刊文稱,程式語言塑造了使用者的思維方式。這也可以反映科技業新創公司的策略,以及為何有能力實現自我變革。

以下為文章全文:

  作為Twitter、Hulu和許多當代互聯網服務的開發語言,Ruby備受關注。而當日本電腦科學家松本行宏決定設計這一語言時,他借鑒了薩莫埃爾·德拉尼(Samuel R. Delany)1966年科幻小說《Babel-17》中的概念。這部小說的核心是一種名為「Babel-17」的人造語言,能明顯提升使用者的思維層次。 「Babel-17是一種精確的分析語言,能讓你精通任何技術。」小說主角曾經這麼說。透過Ruby,松本行宏希望實現類似的目標:變革及優化程式設計師的思維方式。

  這個目標聽起來非常宏大,但松本行宏的觀點已經成為主流。軟體開發者通常都會相信,程式語言足以扭轉他們的思維方式,從而改變解決問題的方法,甚至改變他們對於應該去解決哪些問題的認識。這也是他們估計某家公司、某一產品和競爭對手規模的方式:「你們使用什麼語言?」

  對程式語言的審視將有助於外部人士了解,這些軟體公司為何能如此強大,有著如此高的價值,以及它們的產品和服務如何融入我們的生活。這些企業的內部決策,也就是使用什麼樣的語言,無論是Ruby、PHP或C,都會對我們所有人產生影響。如果你希望知道,為何 Facebook 看起來及用上去是目前的模樣,以及未來會有什麼樣的發展,你需要去了解馬克‧祖克柏(Mark Zuckerberg)所使用的程式語言PHP。

  在程式設計師之中,PHP或許是最不受尊重的程式語言。由於存在許多缺陷,知名技術部落格Eevee認為,PHP是“糟糕設計的一塊碎片”,而願意使用PHP的開發者很業餘。程式問答網站Stack Overflow共同創辦人傑夫艾特伍德(Jeff Atwood)則表示:「聰明的工程人才紛紛前往Facebook,這非常奇怪。他們在Windows XP環境中開發PHP程式碼。他們是駭客,但這裡的'駭客'是一種貶義。

  成功的程式語言有著整體化的哲學,或是一整套邏輯自洽的指導原則,以組織詞彙和語法(即提供給程式設計師的指令)。但PHP並非如此。這一語言的設計者拉斯姆斯·萊爾多夫(Rasmus Lerdorf)曾經承認,他只是將許多東西混合在一起。 「我不知道怎麼阻止這一切。」他在2003年接受採訪時表示,「我完全不知道如何編寫一款程式語言,我只是在這一過程中不斷加入新的邏輯步驟。」

  程式設計師最喜歡講的例子是PHP函數「mysql_escape_string」。在將資訊發送到資料庫之前,此函數能從中移除惡意輸入請求。 (惡意輸入的範例包括網站上表格請求使用者的電子郵件地址,以及駭客植入一段程式碼竊取網站使用者的密碼。)在發現該函數的漏洞之後,一個名為「mysql_real_escape_string」的新版本被建立出來,但舊版並未被取代。因此目前的情況就像是在飛機駕駛艙中並排放兩個功能類似的按鈕:其中一個按鈕用於放下起落架,而另一個則用於安全地放下起落架。這不僅違背常理​​,甚至會引起災難。

  儘管許多人都不喜歡PHP,但PHP仍是很大一部分網站的基礎。一項研究顯示,在目前網路的所有領域中,基於PHP技術的部分多達39%。 Facebook、維基百科,以及領先的發行平台WordPress都利用了PHP來開發。這是由於,儘管存在許多缺陷,但PHP對入門者來說幾乎完美。 PHP的名稱最初是「個人主頁」的英文縮寫。透過此語言,程式設計師可以方便地在靜態HTML頁面上新增日期和使用者姓名等動態內容。 PHP的興起推動了從網站開發到網頁應用程式開發的飛躍,而開發者甚至不必是專業人士。

  維基媒體基金會負責維基百科專案的首席軟體工程師奧利·利夫尼(Ori Livneh)表示,PHP易於上手的特點正是維基百科成功的關鍵。不過他指出:「我一直討厭PHP。」由於對PHP的依賴,維基百科在用戶規模擴大後出現了設計漏洞。 (正是由於這個原因,在2008年之前,維基百科一直沒有支援行動裝置。而直到2013年,該網站才提供了對用戶友好的編輯介面。)不過,基於PHP,一些不熟悉軟體程式設計的人士也可以開發新功能。例如,利用PHP語言,維基百科在「埃及古物學」條目上展示了象形文字,並且可以在頁面上實現音樂播放。

   Google 無法使用PHP語言,因為當前的谷歌需要非常出色地完成一項工作,即迅速而準確地進行搜索。因此,Google搜尋引擎採用了更強大的語言,例如Java和C++。與Google相比,Facebook是一個小規模實驗的集散地,一個按鈕、訊息流和小發明的大雜燴。在這種情況下,PHP可以更快地實現功能。

  你甚至可以想像,哈佛大學宿舍裡的祖克柏如何在決定性時刻選擇Facebook的開發方式。他需要以最小的成本使網站上線。網路發展速度很快,使用者的喜好變幻無常,把握機會的唯一方式就是成為市場的先驅。究竟要做成一盤大雜燴,還是一份精緻的義大利麵,這無關緊要。他首先需要完成這一網站,讓使用者可以使用。他考慮的並不是程式碼是否優美,而是如何讓好友們登上這一名為TheFacebook的網站,評價他們熟悉的女生。

  今天,Facebook的市值超過2000億美元,而該公司辦公室的牆上有這樣的標語:“完成工作比完美更重要”,以及“快速行動,打破僵局”。這些大膽的口號是為了確保員工符合該公司的「駭客」文化。而這也準確體現了PHP的價值。快速行動,打破僵局,這正是PHP的本質,代表了PHP程式設計師思考問題的方式。你甚至可以這麼說:PHP本身創造並維持了Facebook的文化。

  秘密武器:更強大的語言

  如果你希望找到與PHP截然相反的另一種理念,看看另一個極端是什麼樣,那麼金融交易公司Jane Street Capital位於紐約下曼哈頓的總部值得一看。這家有著400名員工的公司目前處理著美國每日證券交易量的約2%。

  當我見到Jane Street Capital技術主管雅隆·明斯基(Yaron Minsky)時,他正坐在辦公桌旁,旁邊放著一台恩尼格瑪密碼機,這是為數不多仍然現存的二戰時代裝備之一。我原本以為,這就是他房間裡最酷的秘密武器,但隨後我發現自己犯了錯。明斯基談到了一款名為OCaml的程式語言。身為電腦科學博士,明斯基於10年前說服自己的老闆,使用OCaml重新編寫公司的整個交易系統。

  在此之前,幾乎沒有人在實際應用中使用過OCaml。這一語言的設計者是法國一家研究機構,而最初目的是為了優化能自動證明數學定理的電腦系統。明斯基在自己的研究生階段就接觸到了這一語言。他認為,這一語言可以取代Jane Street Capital交易系統中使用的Excel電子表格。

  OCaml的最大特點在於「輸入檢查系統」。這類似於 微軟 Word的語法檢查功能,能在系統認為錯誤的程式碼下方使用綠色波浪線做出標記,隨後禁止這樣的程式碼運作。利用這系統開發出的程序有著極強的可靠性,而當所開發的軟體每天需要處理300億美元的交易時,這一點很重要。

  明斯基表示,透過捕捉漏洞,OCaml的輸入檢查系統使Jane Street Capital的程式設計師可以專注於更高大上的問題。而如果該公司能將OCaml的檢查功能進一步內化,那麼將培養出一種習慣,使程式設計師不可能再思考錯誤的想法。

  此外,為了讓輸入檢查工具發揮功能,程式設計師需要在程式碼中加入複雜的註解。這就好比說,Word的文法檢查工具要求你對所有句子進行標註。在輸入受限的情況下編寫程式碼有些麻煩,甚至會令人喪氣。而更糟的是,與其他程式語言相比,OCaml會涉及非常抽象的數學,這會給大部分程式設計師帶來困難。

  不過,這一語言的精確性對某些人來說極具吸引力,同時也為Jane Street Capital帶來了不同尋常的招募優勢。儘管一些軟體開發者不理會PHP的缺陷而加入Facebook和維基百科,但明斯基表示,OCaml語言以及他的著作《現實世界的OCaml》有助於吸引優秀的程式設計人才。吸引力不僅在於語言,也在於使用這語言的人群。在Jane Street Capital,員工在休息時間會去下棋。這種智力競爭的文化似乎與OCaml語言的使用密切相關。

  谷歌似乎也試圖憑藉自主設計的高效能語言Go來實現同樣的目的。為了讓網路服務更優雅、更有效率,針對大型網路服務背後的伺服器開發更先進的軟體頗有益處。此外,對於喜歡新鮮事物、喜歡挑戰困難的程式設計師來說,這也是一種吸引力。

  適當時機:發展壯大之後

  2010年底,Facebook曾遭遇過一場危機。 PHP並不是一種強調程式碼效能的語言,但當時Facebook出現了這方面的需求。 Facebook的發展速度很快,因此如果不做出一些重大改變,那麼該公司將會走向失敗。

  徹底改變程式語言並非可選方案之一。 Facebook使用PHP編寫的程式碼已達到數百萬行,從事這項開發的工程專家已有數千人,而所形成的產品已累積了數億用戶。因此,Facebook的多位資深工程師成立了一個小團隊。他們試圖發明一種方式,讓Facebook正常提供服務,同時不必放棄自己的「母語」。

  整個解決方案的一部分是開發一款編譯器,將Facebook的PHP程式碼翻譯成運行速度更快的C++程式碼。而另一部分則是電腦語言工程領域的壯舉:繼續為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
如何知道 Windows 上是否安装了 PHP?如何知道 Windows 上是否安装了 PHP?May 01, 2023 pm 09:31 PM

如何在Windows10或11上检查PHP版本在学习本教程之前,请确保已在您的Windows系统上正确配置PHP。除此之外,您还需要一个命令提示符或终端访问权限。使用命令提示符或Powershell检查PHP版本识别已安装的PHP版本的最好和最简单的方法是使用其命令行工具。但是,要使用,用户必须有权访问Windows命令行应用程序,如CMD。转到Windows10或11搜索框并键入CMD或Powershell。您可以使用其中任何一个。当图标出现在这些

Web 开发 FastAPI、Flask 和 Streamlit 的比较Web 开发 FastAPI、Flask 和 Streamlit 的比较Apr 09, 2023 am 11:51 AM

Python 已成为最流行的 Web 开发编程语言之一,这要归功于它的简单性、多功能性以及大量的库和框架集合。在使用 Python 构建 Web 应用程序时,开发人员有多种选择,从 Django 和 Pyramid 等全栈框架到 Flask 和 FastAPI 等轻量级微框架,再到用于数据科学应用程序的 Streamlit 等专用工具。在本文中,我们将比较三种最流行的 Python Web 框架——FastAPI、Flask 和 Streamlit——以帮助您为项目选择合适的工具。我们将探讨每个

基于Taichi的Python高性能计算入门指南基于Taichi的Python高性能计算入门指南Apr 12, 2023 am 08:46 AM

自从Python编程语言诞生以来,它的核心理念一直是最大限度地提高代码的可读性和简单性。Python对可读性和简单性的追求简直达到了如痴如狂的境地。一个事实即可证实这一点:只要你在Python系统的根目录中输入命令“import this”后按下回车键,竟然马上打印出一首英文小诗,翻译成中文大致意思是:“美丽胜过丑陋,显式优于隐式。简单比复杂好,复杂比繁杂好。扁平优于嵌套,稀疏胜过密集。可读性很重要……”简单总比复杂好,可读性很重要。毫无疑问,Python确实在实现这些目标方面非常成功:它是迄今

如何在 Windows 10 上使用命令提示符安装 PHP如何在 Windows 10 上使用命令提示符安装 PHPMay 08, 2023 pm 05:13 PM

使用命令提示符或PowerShell在Windows上安装PHP安装ChocolateyChoco包管理器我尝试了Windows默认包管理器Winget,但无法通过它安装PHP。因此,剩下的另一个最佳选择是使用流行的Chocolatey包管理器。但与Winget不同的是,Choco默认情况下不存在于我们的Windows系统中,因此我们需要在我们的系统上手动安装它。转到您的Windows10或11搜索框并键入CMD,出现时选择“以管理员身份运行”将给定的命令复制

html和css算编程语言吗html和css算编程语言吗Sep 21, 2022 pm 04:09 PM

不算。html是一种用来告知浏览器如何组织页面的标记语言,而CSS是一种用来表现HTML或XML等文件样式的样式设计语言;html和css不具备很强的逻辑性和流程控制功能,缺乏灵活性,且html和css不能按照人类的设计对一件工作进行重复的循环,直至得到让人类满意的答案。

在 Windows 11 或 10 上安装最新 Python 的 2 种方法——GUI 和 CMD在 Windows 11 或 10 上安装最新 Python 的 2 种方法——GUI 和 CMDApr 13, 2023 pm 11:31 PM

在 Windows 10 或 11 上安装 Python 3在这里,我们讨论两种设置 Python 的方法,一种是使用图形安装向导,另一种是借助提示符或 Powershell(终端)中的命令。使用图形用户界面:1.下载Python最新版本众所周知,默认情况下,Windows 中不包含 Python 来编译我们基于它的程序。因此,请访问官方网站python.org ,通过单击“下

Python Web3 开发:用 Brownie 部署智能合约Python Web3 开发:用 Brownie 部署智能合约May 19, 2023 pm 05:34 PM

Python是最通用的编程语言之一:从研究人员运行他们的测试模型到开发人员在繁重的生产环境中使用它,几乎在每个可能的技术领域都有使用案例。在今天的指南中,我们将了解Brownie,一个基于Python的工具,用于编写和部署智能合约。准备安装Python3以太坊节点文本编辑器终端什么是Brownie?智能合约开发主要由基于JavaScript的库主导,如web3.js、ethers.js、Truffle和Hardhat。Python是一种通用的、高度使用的语言,也可用于智能合约/web3的开

30 个数据工程必备的Python 包30 个数据工程必备的Python 包Apr 12, 2023 pm 04:58 PM

Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言,在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 Python 包来帮助数据人员的工作。在本文中,将介绍一些非常独特的并且好用的 Python 包,它们可以在许多方面帮助你构建数据的工作流。1、KnockknockKnockknock是一个简单的Python包,它会在机器学习模型训练结束或崩溃时通知您。我们可以

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),