Facebook được viết bằng ngôn ngữ gì?


(Lý ha thien) #1

Câu hỏi này không liên quan tới lập trình nhiều nhưng em vẫn đang tò mò không biết trang Facebook được viết bằng ngôn ngữ lập trình nào? Em từng đọc ở đâu đó nói rằng Facebook được viết bằng PHP nhưng khi nói chuyện thì có một số lại khẳng định rằng PHP chỉ là ngôn ngữ dùng để viết tầng frontend của Facebook?


(Hung) #2

PHP, C, C++, Python, Java, C#, Objective-C, Ruby, JavaScript, SQL, R, Matlab, Pig, Perl, Haskell, Shell Script.
Facebook career - Software Engineering


(Trần Hoàn) #3

PHP là ngôn ngữ backend. Ngôn ngữ lập trình front-end duy nhất hiện nay mà mình biết là JavaScript.


(doanguyen) #4

Front-end hay back-end đều là khái niệm rất trừu tượng. Hãy xem định nghĩa ở wikipedia:

In software engineering, the terms front end and back end refer to the separation of concerns between the presentation layer (front end), and the data access layer (back end) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the front end and the server is usually considered the back end, even when some presentation work is actually done on the server itself.
[1] https://en.wikipedia.org/wiki/Front_and_back_ends#Front-end_focused

Vậy front-end hay backend để hiểu đơn giản nhất là khái niệm để phân biệt đượcpresentation layer hay data access layer, mặc dù 2 khái niệm này trong 1 stack có thể interchangeable.

Xét về trường hợp cụ thể: web development, thì presentation layer này nhắm về phía client thông qua browsers, có nghĩa là bao gồm CSS/HTML/JS/Images etc…, còn data access layer là toàn bộ những thứ còn lại ví dụ API(REST)/DB query/Optimization etc…

Nhưng Facebook thì không chỉ có web development, stack của họ có vô vàn thứ diễn ra bên trong presentation/data-access layers, có nghĩa là việc separation of concern nếu chỉ dừng ở mức đơn giản là như trên thì sẽ rất khó để triển khai với số lượng dev/server cả chục ngàn người, buộc họ phải chia nhỏ thành nhiều layers khác nữa. Và vì 2 khái niệm presentation/data-acess layers có thể bị hoán đổi (tùy vào stack) nên khi bạn thấy PHP nằm trong front-end layer thì cũng đừng quá ngạc nhiên, vì phía sau của PHP (layer) ấy, còn có back-end layers xử lý những việc lower-level hơn.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?