Tại sao Node Js được viết bằng c++ mà không phải c? - vozForums
vozForums
Go Back   vozForums > Học tập và công việc > Ngành CNTT > Phát triển Phần mềm
Reply
 
Thread Tools
  #1  
Old 30-10-2019, 08:59
thaiviptn1201 thaiviptn1201 is online now
Member
 
Join Date: 06-2013
Posts: 31
Tại sao Node Js được viết bằng c++ mà không phải c?

Mấy con server như apache, nginx,... Đều dùng c cho hiệu suất cao hơn c++ mà con node js lại viết bằng c++ làm gì nhỉ? Em newbie ạ
Reply With Quote
  #2  
Old 30-10-2019, 11:02
momotico's Avatar
momotico momotico is offline
Senior Member
 
Join Date: 09-2014
Posts: 667
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

vì V8 engine đã được viết bằng C++ rồi
Reply With Quote
  #3  
Old 30-10-2019, 13:02
quandaso's Avatar
quandaso quandaso is offline
Senior Member
 
Join Date: 10-2011
Posts: 315
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Ở đâu ra mà bảo C hiệu suất cao hơn C++ vậy. Lí do dùng C có thể do sở thích của ông founder thôi
Reply With Quote
  #4  
Old 30-10-2019, 13:23
Nipin Nipin is offline
Senior Member
 
Join Date: 03-2018
Posts: 1,326
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Thằng creator của nodejs giờ viết lại cái deno bằng rust kia kìa (lúc trước chọn go) =)

Bao giờ deno ra 1.0 nhỉ, dùng node nhiều cái bất tiện quá :s
Reply With Quote
  #5  
Old 30-10-2019, 14:06
thaiviptn1201 thaiviptn1201 is online now
Member
 
Join Date: 06-2013
Posts: 31
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by momotico View Post
vì V8 engine đã được viết bằng C++ rồi
Ý em là kiểu như c++ có cái gì hơn mà chọn nó

Gửi từ Xiaomi Redmi Note 4 bằng vozFApp
Reply With Quote
  #6  
Old 30-10-2019, 19:43
INTP INTP is offline
Senior Member
 
Join Date: 06-2012
Posts: 2,488
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

chắc là do có oop, có template đỡ phải mất công viết lại code, có raii tránh leak mem...
Reply With Quote
  #7  
Old 31-10-2019, 01:22
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,682
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Tôi nghĩ họ dùng C++ để tiết kiệm thời gian dev. C++ nó là NNLT hybrid bao gồm cả C, bạn hoàn toàn có thể code C-style structured programming / C++ style OOP paradigm. Những phần quan trọng nhất cần raw performance vẫn có thể dùng code C.

C nó low-level hơn C++, kô abstraction layer như class cùng các kiểu DL trừu tượng STL thì viết Thuần C nhanh hơn C++. Nguyên tắc là càng low-level (càng thấp gần phần cứng, thấp nhất như Assembly) thì khả năng cao dễ đc optimized cho hiệu năng cao.

Disclosure thì tôi là con nghiện Java chả biết gì mấy về C/C++ nên biết 1 nói 10. Nhưng Java là cái nồi cơm càng ít miệng ăn thì nó càng ngon dại gì nói. Java cần thì cũng có thể gọi low-level C/C++ thông qua JNI.

Last edited by LapTrinhGame; 31-10-2019 at 01:40.
Reply With Quote
  #8  
Old 31-10-2019, 08:53
bribnt's Avatar
bribnt bribnt is offline
Đã tốn tiền
 
Join Date: 02-2013
Posts: 3,748
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by LapTrinhGame View Post
Tôi nghĩ họ dùng C++ để tiết kiệm thời gian dev. C++ nó là NNLT hybrid bao gồm cả C, bạn hoàn toàn có thể code C-style structured programming / C++ style OOP paradigm. Những phần quan trọng nhất cần raw performance vẫn có thể dùng code C.

C nó low-level hơn C++, kô abstraction layer như class cùng các kiểu DL trừu tượng STL thì viết Thuần C nhanh hơn C++. Nguyên tắc là càng low-level (càng thấp gần phần cứng, thấp nhất như Assembly) thì khả năng cao dễ đc optimized cho hiệu năng cao.

Disclosure thì tôi là con nghiện Java chả biết gì mấy về C/C++ nên biết 1 nói 10. Nhưng Java là cái nồi cơm càng ít miệng ăn thì nó càng ngon dại gì nói. Java cần thì cũng có thể gọi low-level C/C++ thông qua JNI.

C++ tuy có abstract hơn C nhưng một trong những triết lý thiết kế ngôn ngữ của C++ là "zero cost abstraction". Tức là cho dùng có sử dụng những tính năng đó thì cũng không làm tăng chi phí tính toán so với C.
Tất nhiên đó chỉ là lý tưởng, một số tính năng của C++ có overhead khá lớn như std::function, std::share_ptr.
Một số thứ abstaction còn có cơ hội giúp tăng hiệu năng tính toán. VD như template, constexpr giúp đưa phép tính toán vào compile-time thay vì run-time.


Cho nên tận dụng tối đa khả năng thì cũng chưa biết ai ăn ai đâu.
Reply With Quote
  #9  
Old 31-10-2019, 13:56
hopevnn's Avatar
hopevnn hopevnn is online now
Senior Member
 
Join Date: 01-2012
Location: Akasuky
Posts: 1,159
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

NPM bây giờ viết bằng Rust rồi my fen
Reply With Quote
  #10  
Old 01-11-2019, 15:04
tao_la_giang's Avatar
tao_la_giang tao_la_giang is offline
Senior Member
 
Join Date: 11-2012
Posts: 774
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by LapTrinhGame View Post
Tôi nghĩ họ dùng C++ để tiết kiệm thời gian dev. C++ nó là NNLT hybrid bao gồm cả C(1), bạn hoàn toàn có thể code C-style structured programming / C++ style OOP paradigm. Những phần quan trọng nhất cần raw performance vẫn có thể dùng code C(2).

C nó low-level hơn C++, kô abstraction layer như class cùng các kiểu DL trừu tượng STL thì viết Thuần C nhanh hơn C++. Nguyên tắc là càng low-level (càng thấp gần phần cứng, thấp nhất như Assembly)(3) thì khả năng cao dễ đc optimized cho hiệu năng cao.

Disclosure thì tôi là con nghiện Java chả biết gì mấy về C/C++ nên biết 1 nói 10. Nhưng Java là cái nồi cơm càng ít miệng ăn thì nó càng ngon dại gì nói. Java cần thì cũng có thể gọi low-level C/C++ thông qua JNI.
Nói dài nói dai nhưng toàn nói nhảm.

(1, 2) C và C++ là hai ngôn ngữ khác nhau, chả có cái nào bao gồm cái nào.
(3) Trích được một câu đúng, nhưng hiểu sai hoàn cảnh. 1 điểm về chỗ.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +7. The time now is 16:46.
Chịu trách nhiệm nội dung: Bạch Thành Trung © 2019 Công ty TNHH Thật Vi Diệu
ĐC tầng 4, số 6-8 Đường D2, Bình Thạnh, Hồ Chí Minh, Việt Nam - SĐT 0981323799 - MST 0313906593
Giấy phép thiết lập MXH số 334/GP-BTTTT, Ký ngày: 19/08/2019