Tại sao Node Js được viết bằng c++ mà không phải c? - Page 2 - 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
  #11  
Old 01-11-2019, 15:32
Nipin Nipin is offline
Senior Member
 
Join Date: 03-2018
Posts: 1,330
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by tao_la_giang View Post
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ỗ.
Bạn phải biết là khi một thằng đến cái từ disclaimer cũng dùng nhầm thì những thứ khác nó còn thế nào nữa =))

Quay lại bàn luận nghiêm túc, thì việc lựa chọn c++ là lựa chọn thực dụng của lão ry.

Năm 2009 ngoài google chrome ra thì không có thằng vẹo nào dùng v8 engine hết (nếu có dùng javascript engine thì cũng dùng cái của mozilla), cho nên nếu tác giả muốn dùng C thay vì C++ thì phải tự viết lại đống headers của v8 cho dùng được với C (giờ đây có thằng viết rồi, cho nên các bạn có thể thấy v8 được dùng ở khắp tơi, từ ruby python, từ go tới rust), mà với sức một người làm được vụ đó chắc cũng phải mất vài năm, về cơ bản là không thực tế.

Thay vì thế thì dùng C++ thì có thể dùng luôn c++ header có sẵn của v8, thư viện của C++ cũng to + tiện hơn nhiều so với C (hầu hết các thư viện của C đều có dùng được trong C++, ngược lại thì...), dùng C thì lại phải implement lại một tá, lại càng không thực dụng.

Chứ thực muốn raw performance thì người ta dùng luôn asm (như luatJIT) chứ C thì cũng vậy thôi (inline asm không tính). Đấy là không nói chuyện c++ chủ yếu là zero cost abstraction, hiệu năng không giảm mấy so với dùng C.

Nhân tiện thì mấy thể loại FFI như JNI có overhead khá lớn, vì cấu trúc dữ liệu khác biệt hoàn toàn giữa C/C++ với mấy ngôn ngữ kia phải tốn công chuyển đổi, nên các bạn đừng nghe thằng ml chém gió nhảm, project dạng này có thằng thần kinh mới dùng java (tất nhiên FFI vẫn có chỗ dùng, nhưng tuỳ bài toán thôi)
Reply With Quote
  #12  
Old 01-11-2019, 23:34
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,685
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by tao_la_giang View Post
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ỗ.
Đúng nó là 2 NNLT khác nhau (tôi chưa bao giờ nói 2 NNLT này là Một). Còn bàn luận về bao gồm/bao trùm thì bác xem các điểm này:

[1] Câu nói C++ bao trùm C thì là tôi đọc được từ cuốn C++ của tác giả Hoàng Ngọc Giao sách to khổ A4, nhà xuất bản SAMIS (sáng lập bởi ông Dương Quang Thiện, kỹ sư IBM)

[2] Trong assignment C++ tôi học đc khá lâu buộc phải nộp source code thì có nói là: C++ is required to be used, i.e. C libraries and C-style coding must be avoided. Tôi nhớ là có người code kiểu C (kô dùng bất cứ class nào) trong C++ tất nhiên nó vẫn chạy và 0 điểm vì sai yêu cầu.

[3] Còn điều này, nguồn: https://app.pluralsight.com/paths/skills/c-plus-plus

C++ is an object-oriented programming language that was first developed by Bjarne Stroustrup. It was originally created to be an extension of the C language, which is a middle-level language, and these roots are still present today. C++ can be developed in the object-oriented style, or in the C-style, making it a truly hybrid language. This path will take you from the very basics of programming using C++ and will vault you forward into creating rich applications for the Windows operating system. You can also create platform independent desktop applications in C++ using either the Qt or Cinder frameworks. Those courses are in our library but not listed on this path.

Last edited by LapTrinhGame; 02-11-2019 at 03:14.
Reply With Quote
  #13  
Old 01-11-2019, 23:44
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,685
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by tao_la_giang View Post
I am studying in the UK for my Master degree.
Master's degree nhé

Quote:
Originally Posted by Nipin View Post
Bạn phải biết là khi một thằng đến cái từ disclaimer cũng dùng nhầm thì những thứ khác nó còn thế nào nữa =))
Thôi tao xin mày, dốt mà khoe, bất cứ lúc nào thích thì Inbox tao với mày vs vô English speaking only section tao chiều mày 100% nhé. Tiếng Anh kô phải copy and paste đâu.

Define disclaimer (theo Google) (Noun) : a statement that denies something, especially responsibility
Tiếng Việt tạm dịch là Sự từ chối (đặc biệt là trách nhiệm). Mày tưởng tao là chủ site hả Nipin, tao chỉ là user như mày thôi.

Define Disclosure (Noun) : the action of making new or secret information known
Tiếng Việt tạm dịch là tiết lộ 1 sự thật gì đó (trong ngữ cảnh của tôi) thì tôi chẳng biết mấy về C/C++ mà

Quote:
Originally Posted by Nipin View Post
Nhân tiện thì mấy thể loại FFI như JNI có overhead khá lớn, vì cấu trúc dữ liệu khác biệt hoàn toàn giữa C/C++ với mấy ngôn ngữ kia phải tốn công chuyển đổi, nên các bạn đừng nghe thằng ml chém gió nhảm, project dạng này có thằng thần kinh mới dùng java (tất nhiên FFI vẫn có chỗ dùng, nhưng tuỳ bài toán thôi)
Đây nói mồm suốt thì tao dẫn nguồn ra cho mày coi performance(số responses/s với 20 queries/request)+Latency của các web framework vì tao với mày cũng làm web. Chú ý xem mấy cái như Multiple queries, Data updates... vì hay dùng trong các dự án to to đó. Xem cái Java framework ở đâu. Kô phải tao chê Phoenix/Elixir/Erlang/Ecto/Mix vì tao cũng đang học và cũng chờ cho Phoenix/Elixir nó mature hơn càng ít breaking changes thì xem xét dùng "in production"

https://www.techempower.com/benchmar...=ph&test=query

Nói thật là kiến thức về DS Java của mày rất dở hơi, tao kô muốn fix làm gì bằng chứng là cái thread JavaScript NNLT thống trị thế giới mày chả biết gì về Dynamic Array : ArrayList vs Vector trong Java mà chém gió về Java, pó tay.

Last edited by LapTrinhGame; 02-11-2019 at 01:55.
Reply With Quote
  #14  
Old 02-11-2019, 01:59
2TbP 2TbP is offline
Senior Member
 
Join Date: 08-2010
Posts: 418
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
Master's degree nhé



Thôi tao xin mày, dốt mà khoe, bất cứ lúc nào thích thì Inbox tao với mày vs vô English speaking only section tao chiều mày 100% nhé. Tiếng Anh kô phải copy and paste đâu.

Define disclaimer (theo Google) (Noun) : a statement that denies something, especially responsibility
Tiếng Việt tạm dịch là Sự từ chối (đặc biệt là trách nhiệm). Mày tưởng tao là chủ site hả Nipin, tao chỉ là user như mày thôi.

Define Disclosure (Noun) : the action of making new or secret information known
Tiếng Việt tạm dịch là tiết lộ 1 sự thật gì đó (trong ngữ cảnh của tôi) thì tôi chẳng biết mấy về C/C++ mà



Đây nói mồm suốt thì tao dẫn nguồn ra cho mày coi performance(số responses/s với 20 queries/request)+Latency của các web framework vì tao với mày cũng làm web. Chú ý xem mấy cái như Multiple queries, Data updates... vì hay dùng trong các dự án to to đó. Xem cái Java framework ở đâu. Kô phải tao chê Phoenix/Elixir/Erlang/Ecto/Mix vì tao cũng đang học và cũng chờ cho Phoenix/Elixir nó mature hơn càng ít breaking changes thì xem xét dùng "in production"

https://www.techempower.com/benchmar...=ph&test=query

Nói thật là kiến thức về DS Java của mày rất dở hơi, tao kô muốn fix làm gì bằng chứng là cái thread JavaScript NNLT thống trị thế giới mày chả biết gì về Dynamic Array : ArrayList vs Vector trong Java mà chém gió về Java, pó tay.
chú mày bị ngáo à, tự nhiên đá qua bắt lỗi chính tả vậy
Reply With Quote
  #15  
Old 02-11-2019, 02:08
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,685
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by 2TbP View Post
chú mày bị ngáo à, tự nhiên đá qua bắt lỗi chính tả vậy
(1) Bạn đừng có quote cái kiểu như thế, khó chịu cho người đọc, quote phần cần thôi.

(2) Tôi có muốn bắt lỗi trước đâu, thằng Nipin bắt trước mà nhưng lòi ra là nó kô hiểu ngữ nghĩa sâu sắc.

(3) Còn nói chuyện với bác Tao_la_giang (từ Hà Nội học UK) thì tôi vẫn lịch sự tối đa vì thực ra tôi cũng nể bác này chút, ngoài ra cái chuyện tôi bịa ra vụ keylogger cho vui thôi chứ làm gì có.

(4) Cơ mà chẳng ai đúng hoàn toàn hoặc sai hoàn toàn, nhưng tranh luận thì
[1] cần có văn hóa [2] có dẫn chứng dẫn nguồn (reference/source) ra rõ ràng. Tôi có dẫn nguồn đó.

Last edited by LapTrinhGame; 02-11-2019 at 03:16.
Reply With Quote
  #16  
Old 02-11-2019, 04:20
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
Đúng nó là 2 NNLT khác nhau (tôi chưa bao giờ nói 2 NNLT này là Một). Còn bàn luận về bao gồm/bao trùm thì bác xem các điểm này:

[1] Câu nói C++ bao trùm C thì là tôi đọc được từ cuốn C++ của tác giả Hoàng Ngọc Giao sách to khổ A4, nhà xuất bản SAMIS (sáng lập bởi ông Dương Quang Thiện, kỹ sư IBM)

[2] Trong assignment C++ tôi học đc khá lâu buộc phải nộp source code thì có nói là: C++ is required to be used, i.e. C libraries and C-style coding must be avoided. Tôi nhớ là có người code kiểu C (kô dùng bất cứ class nào) trong C++ tất nhiên nó vẫn chạy và 0 điểm vì sai yêu cầu.

[3] Còn điều này, nguồn: https://app.pluralsight.com/paths/skills/c-plus-plus

C++ is an object-oriented programming language that was first developed by Bjarne Stroustrup. It was originally created to be an extension of the C language, which is a middle-level language, and these roots are still present today. C++ can be developed in the object-oriented style, or in the C-style, making it a truly hybrid language. This path will take you from the very basics of programming using C++ and will vault you forward into creating rich applications for the Windows operating system. You can also create platform independent desktop applications in C++ using either the Qt or Cinder frameworks. Those courses are in our library but not listed on this path.
Nhìn câu trả lời dài dằng dặc này tôi thực sự không hiểu bạn muốn chứng minh cái gì? Nguồn số 1 và 3 thì độ tin cậy thấp, luận điểm số 2 thì càng tỏ rõ là bạn hiểu sai vấn đề.

Thôi thả cái link ở đây và kết thúc câu chuyện C++ có bao gồm C không. Và kết thúc luôn cả mấy luận điểm như "chỗ nào cần performance thì viết bằng raw C" luôn nhé: Nói dài nói dai mãi lệch cả topic rồi.
http://www.stroustrup.com/bs_faq.html#C-is-subset
Reply With Quote
  #17  
Old 02-11-2019, 05:39
INTP INTP is offline
Senior Member
 
Join Date: 06-2012
Posts: 2,508
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Code:
int n = 10;
int a[n];
Code:
struct A {
    int n;
    float f;
} a = {.f = 1.2, .n = 34};
mấy code trên valid trong C nhưng ko valid trong C++. C++ ko bao trùm hết C. Nói C++ bao trùm C ko khác gì nói người bao trùm khỉ (ko phải chê C là khỉ nha )

mấy thằng mất dạy gcc/clang khiến a[n] compile được trong C++, lũ chó mất não

còn mấy ông commitee iq cow sắp copy cái {.x = ...} vào C++20/23 gì đấy trong khi C có từ trước năm 2000 ctor đã nhiều nhớ ko xuể nay lại càng thêm fuck tạp
Reply With Quote
  #18  
Old 02-11-2019, 06:09
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,685
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

@tao_la_giang :
Còn luận điểm số 2 là thế này assignment #1 thì SV viết C sau đó đổi lại Assignment #2 viết C++ OOP nhưng SV nó lười quá chế lại chút (so code 2 cái code C vs C++ = Merge tool giống 98%) và có trường hợp giống 20-30% code SV vẫn bị buộc tội plagiarism. Còn bài essay thì còn gắt hơn, là khi submit lên TurnItIn chỉ đc trùng 1-3% trở xuống.

Thực ra tôi cũng biết là C++ kô bao gồm C hoàn toàn (strictly 100%). Nhưng công bằng mà nói thì vẫn có khá lớn % bao trùm, như vậy thì cũng chấp nhận đc, chính như cái link của bạn có nói là:
Well written C tends to be legal C++ also. For example, every example in Kernighan & Ritchie: "The C Programming Language (2nd Edition)" is also a C++ program. Tất nhiên trong ngữ cảnh "strict mathematical sense", C isn't a subset of C++

Last edited by LapTrinhGame; 02-11-2019 at 06:26.
Reply With Quote
  #19  
Old 02-11-2019, 06:25
INTP INTP is offline
Senior Member
 
Join Date: 06-2012
Posts: 2,508
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

vậy thì đừng nói nó bao trùm, bao gồm này nọ. Ko đúng 100% thì nói làm gì? Bao trùm 99% hay 98% hay 1%

ví dụ như cái fflush(stdin) đéo đúng nhưng vẫn có người sủa. C++ ko bao trùm C, C++ ko giống C nhưng vẫn có người phán bừa

Last edited by INTP; 02-11-2019 at 06:31.
Reply With Quote
  #20  
Old 02-11-2019, 07:10
LapTrinhGame's Avatar
LapTrinhGame LapTrinhGame is offline
Senior Member
 
Join Date: 06-2017
Posts: 2,685
Re: Tại sao Node Js được viết bằng c++ mà không phải c?

Quote:
Originally Posted by INTP View Post
vậy thì đừng nói nó bao trùm, bao gồm này nọ. Ko đúng 100% thì nói làm gì? Bao trùm 99% hay 98% hay 1%
Ờ do tôi nghe mấy cái rumor/lỗ hổng đâu đó có khi chục năm rồi nên post lên đây cho ACE tranh luận thôi, chứ mình đâu code C/C++ cũng đâu có lợi ích gì. C vs C++ càng tiến hóa như C11, rồi còn bên kia có C++ 20 thì chuyện nó bao trùm Càng XA Vời hơn.

Có thời tôi đi làm ông xếp cũng hay chơi đủ tricks lắm, nói chung là thử LTV đủ kiểu, còn thằng nó ghét ổng thì nó nói sau lưng, chê ổng. Mà thôi tôi sợ nó làm loãng chủ đề chọn C (Postgres,Apache,NGINX..) hay C++(many others)

Last edited by LapTrinhGame; 02-11-2019 at 07:33.
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 13:42.
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