標籤:

一個網站用兩種或以上的後端編程語言會出現什麼情況?為什麼?

例如,用了PHP,又用Python,再用node.js


回答前提:一個網站,我理解為普通用戶腦子中對某個網站和域名的定義,而非技術層面上的一個solution/project。

大型互聯網企業里,這是正常情況。
針對單一場景,一貫的態度是,只有最合適的,沒有最好的。
針對複雜場景,各司其職就很正常了不是嗎?

多種語言的壞處,好像就是成本上有點問題,主要是管理成本。
技術總監要HOLD的住,他的工資自然不會是高級碼農的級別。(當然管理成本構成遠遠複雜的多,就是以點帶面的說說。)
但是現在的互聯網公司真的很care這些成本嗎?
care的那些都是邊緣化的生死線公司,如果起不來就掛了。沒錢玩個P的互聯網啊。。。

還有其他好處,我就不細說了。能力所限。
但是我不說壞處,不是辯解,而是因為這是一個選擇,如果壞處你無法忍受,自然就不會選擇了。


做一個網站,Typescript/C#/SQL/C++四個都用上了都是很普遍的事情,網站又不只是你看到的那幾行html就可以搞起來的


這裡面的會有哪些情況。。。這個太泛了吧,親。你讓別人怎麼回答?

1、團隊合作
2、項目把控
3、兩種語言集成方案

可以說整個項目的方方面面都是受到影響的。我是個外行不懂就不細說了。


rest就是個典型,
而且這個問題的角度就太奇怪了.
比如我隨便網上找了個免費的天氣預報的web service,這個的後台是php
我又用了個報時的ws,這個是java
我自己的是.net , 這樣算三種了么?


只用兩種語言?那是最簡單的網站吧。一般網站都用到三種四種甚至更多的語言。

題主是覺得只用兩種語言的網站不夠高端大氣上檔次嗎?

呃,這個,其實不用為這種虛無縹緲的名譽操心,等你的網站發展壯大起來,肯定就不止兩種語言了。在現階段,只用兩種語言應該可以為你省不少事。


正題:
看看你要做的「網站」的規模,「一個網站用兩種後端編程語言」,在生產中很常見,首先UI層會用快速開發的服務端語言,比如php;然後一些性能敏感的後端服務,會用上C/C++等低級語言;也可能一些http服務會選擇java/c#這類開發;而有的服務會選擇開速開發語言比如python甚至時髦的node.js。別忽略了資料庫呢,SQL也是一種語言。
上點規模的網站,不可能只有一個後端的。
「會出現什麼情況——沒什麼情況……真的
「為什麼?」——因為這是需求,也是因地制宜


順便我們看看一個網站到底需要多少種語言吧……
頁面:
必選:html/css/js
可選:某些前端模板,如jade, ejs等;某些預處理語言,如less/sass/stylus/coffee script等
服務端UI層:
必選:服務端語言,如php, java, python, ruby, javascript至少選一種吧
可選:某些模板引擎,如smarty, velocity等
數據層:
必選:某種SQL,至少選一種吧
其他各種服務(可能小網站沒有):
C/C++/java/C#……太多了,你能想像的任何編程語言,都可能出現在任何模塊當中
工具鏈:
各種腳本(含shell腳本)、makefile等……
文檔:
WORD(如果也算語言)、markdown


PHP 和 SQL 算兩種語言不算?
什麼?簡單 SELECT 不算?存儲過程算不算?
SQL 都不算?PHP / Python 的 C 擴展算不算?

所以,這有什麼好說的呢?每種語言都有自己擅長處理的問題和自己不擅長處理的問題,只要整個系統模塊劃分清楚,介面定義明確(包括有明確的調用規範,如 JSON / Thrift 等),用多少語言都沒關係啊。


php和php的c擴展算不算兩種語言= =


和做一把椅子用到多種工具一個道理。


關鍵是面向需要解決問題,能解決問題的語言就是好語言。


只要銜接的好是不會出問題的,做過一個網站,原來是asp+sqlserver2000寫的,php重寫的時候有一部分是來不及寫的,加了cookie保證了數據可以互傳就上線了,資料庫也是加了個mysql存儲文章


你們理解錯了題主的意思吧?題主應該是說後台,比如同時使用java 和net這兩種語言。這肯定不好,難維護,但一般有這樣的需求都是因為實際的需要。


會產生跨語言的rpc服務
Protocol Buffers https://developers.google.com/protocol-buffers/

Thrift Apache Thrift


== 試著從一個架構師的角度來回答這個問題

前期
幾乎無論任何項目, 包括軟體, 網站, 甚至幾個網頁, 對於前期來講的就是開發效率。 開發效率就是王道, 它能在快速的需要變更迭代中, 能儘可能地降低成本, 進可能快地出來個模型。
這種功能要求只有高級語言才符合, 如弱類型, 靈活的語法糖, 自動生成, 少寫代碼,等等。

後期
項目成型, 上線運行後, 基本改動不算大(對比前期), 這時講的就是優化, 任何一個再微小的功能, 那怕是點贊, 如果每秒1000++的並發, 基於高級語言的局限性是無法勝任的, 所以要用到低層語言, 類似c/c++等。

作為一個合格的站點, 至少都要用到兩門語言。

PS,如果你說python, php, asp混合用, 就算是多門語言的話, 那建個網站用上十多門語言都不奇怪, 只要它的app介面足夠開放性,支持多元化。


只要一切還在控制範圍內,請盡情用。不建議用兩種活以上,是因為要人員變動,維護性。


沒有什麼情況,你在前端是看不出後端用的什麼的


推薦閱讀:

selenium爬蟲被檢測到 該如何破?
Nginx、Gunicorn在伺服器中分別起什麼作用?
Python 如何入門?
那麼,Python做爬蟲究竟比其他語言好在哪裡呢?
關於用python抓取知乎關注的人?

TAG:Python | PHP | ASPNET |