Reply
 
Thread Tools
  #1  
Old 30-10-2019, 08:59
thaiviptn1201's Avatar
thaiviptn1201 thaiviptn1201 is offline
Member
Join Date: 06-2013
Location: số 2 Hùng Vương, Ba Đình
Posts: 62
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: 753
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: 316
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
__________________
Bad Guy
Reply With Quote
  #4  
Old 30-10-2019, 13:23
Nipin Nipin is offline
Senior Member
Join Date: 03-2018
Posts: 1,564
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's Avatar
thaiviptn1201 thaiviptn1201 is offline
Member
Join Date: 06-2013
Location: số 2 Hùng Vương, Ba Đình
Posts: 62
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: 1,585
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,707
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,890
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.
__________________
Quote:
Một quốc gia căm ghét hoặc ưa thích một quốc gia khác theo thói quen thì ở một mức độ nào đó đã trở thành một quốc gia nô lệ. Quốc gia đó là nô lệ cho chính sự thù địch hoặc ưa thích của mình, ...
Reply With Quote
  #9  
Old 31-10-2019, 13:56
hopevnn's Avatar
hopevnn hopevnn is offline
Senior Member
Join Date: 01-2012
Location: Old Trafford
Posts: 1,160
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
__________________
Where am I?
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: 778
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ỗ.
__________________
Blog làm game: tongtunggiang.com
-> Series ký sự làm game: http://tongtunggiang.com/vi/series-ky-su-lam-game/
Reply With Quote
Reply

« Previous Thread | Next Thread »
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


All times are GMT +7. The time now is 06:11.