Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #371  
Old 22-09-2019, 13:44
su.thay's Avatar
Senior Member
Join Date: 04-2016
Posts: 164
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

C++ bị chính cha đẻ của C và go nó chửi cho như con vì thiết kế ngu như bò.
Anh thiết kế API, thì việc đầu tiên là việc đặt tên hàm nó phải có tính discoverable,.
Vâỵ mà nó lúc thì chơi viết đủ, lúc thì chơi viết tắt
Một số ví dụ như stringstream, và str(). Đều lá xử lý string nhưng thằng thì viết tắt thằng thì viết đủ.

Từng đó đủ thấy những thằng thiết kế ra C++ là những thằng khoogn có kinh nghiệm về làm API. Vi phạm ngay 1 trong 5 nguyên tắc cốt lõi của API, là tính discoverable và consistent

Ngoài ra OOP trong C++ là kiểu OOP nửa mùa, vi phạm nguyên tắc OOP tùm lum. Một ví dụ đơn giản là iterator nhưng vẫn sử dụng dereference. Hoặc đưa ra frieend để phá vỡ tính đóng gói

Những thứ này chứng tỏ team phát triển C++ kém.

Anh làm việc với C mà khoong hiểu nó tức là anh cần phải học lại cấu trúc máy tính, và operating system. Nó sẽ hướng dẫn anh cách quản lý memory, từ đó anh map kiến thức từ OS sẽ giải thích được các vấn đề trong C/ Vì cha đẻ của C và golang đã bảo rồi, Mấy lão muốn viết OS, nhưng các ngôn ngữ thời đó đều gặp rào cản, nên lão làm ra 1 ngôn ngữ mới, để viết OS. Nên các vấn đề trong C, đều có thể được giải thích được dễ dàng khi anh học về HĐH

Quote:
Originally Posted by vicecarlone.mt View Post
Cái chuẩn std11 là hỗ trợ C++ cho giống các ngôn ngữ lập trình hiện đại lắm rồi đấy.
Mà các bác có vẻ dễ lần lộn giữa C với C++ nhỉ.
C++ cú pháp chặt chẽ (chỉ thua 1 số thằng thôi), nếu viết sai thì compiler báo lỗii liền. C++ nó cũng là 1 wrapper của C, nên viết code nhiều người nhúng luôn cả code C trong nó nên dễ lẫn lộn.
Còn thằng C mới đúng là ngôn ngữ của Chúa , mình làm việc với nó vài năm rồi mà nhiều khi còn chả hiểu nó là cái gì luôn. Chỉ việc ép kiểu thôi mà đã lỏng não ra rồi
__________________
Thầy đã quy y cửa phật. Dùng lập trình để phổ độ chúng sinh
Reply With Quote
  #372  
Old 22-09-2019, 13:45
pepguard-violon-v1.0's Avatar
K.I.A
Join Date: 01-2015
Posts: 159
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

C++ với C tính ra dễ học chứ bộ. Học C rồi qua C++ viết code C++ kiểu phong cách C vẫn dc chấp nhận, đâu ai nói gì. Mà học C++ phải biết OOP với biết STL mới pro. So với tụi js hay tụi ngôn ngữ khác thì tính ra đã quen rồi thì C++ học rất là phê các ngôn ngữ mới, và rất pro. Chứ mới vô nhảy qua cái này cái nọ liền thì nát là tất yếu. Ko có gốc.
Reply With Quote
  #373  
Old 22-09-2019, 13:48
Junior Member
Join Date: 06-2008
Posts: 19
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

Quote:
Originally Posted by Supersoyx View Post
Thầng js nó viết đa hình, injection ngon lành cành đào luôn. Mấy ngon ngữ strong type cũng bắt trước đẻ ra mấy mô hình ioc mà mõo class phải tạo ra 1 interface phát mệt.
Có nhầm k? IoC, DI, SL... các kiểu nó có trong Java phải 20 năm có lẻ rồi, đám Js sau này mới lau nhau học chạy theo.

Mà Java thì hạn chế Reflection, giảm performance kha khá, mà đám profiler, inspector... nó chạy cũng mệt hơn. Thời đại cloud native như giờ thì đám AOT lên ngôi vì triển khai nhanh nên hạn chế dùng Reflection để đám compiler nó còn build native.

Mà giờ build system cũng có ai dùng chỉ 1 ngôn ngữ nữa đâu. Bên tôi dùng cả Java, Python, Go, Nodejs.
Reply With Quote
  #374  
Old 22-09-2019, 13:50
su.thay's Avatar
Senior Member
Join Date: 04-2016
Posts: 164
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

không phải quá khó hay phức tạp.Mà tất cả là do vụ quản lý memory thôi.
Những ứng dụng lớn, rất dễ memleak. vì cho dù kinh nghiệm đến cỡ nào. Viết chương trinhg cỡ enterprise thì thế nào cũng dính memleak. lỗi do chủ quan lẫn khách quan.

hiện nay golang nó giải quyết tốt vụ memleak này, nên go nó hoàn toàn có thể thay thế C++. Bằng chứng là người ta chuyển qua sử dụng golang rất nhiều/

Quote:
Originally Posted by wind_from_heaven View Post
Phải chăng C++ quá khó và phức tạp nên ít người dùng nó để xây dựng ứng dụng ?
giờ C++ là cross-platform language rồi qt chơi cả android lẫn ios , chấp luôn cả đám window , firefox , symbian , aurora (nga) , harmony (huawei)
__________________
Thầy đã quy y cửa phật. Dùng lập trình để phổ độ chúng sinh
Reply With Quote
  #375  
Old 22-09-2019, 13:51
_Covonho_'s Avatar
Senior Member
Join Date: 02-2017
Posts: 447
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

base là asm + c, qua nn mới dễ bỏ mẹ luôn :"> python đọc doc sang ngày sau code backend vù vù
__________________
Blog: quyennv.com
Reply With Quote
  #376  
Old 22-09-2019, 13:55
Senior Member
Join Date: 09-2017
Posts: 948
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

Quote:
Originally Posted by su.thay View Post
không phải quá khó hay phức tạp.Mà tất cả là do vụ quản lý memory thôi.
Những ứng dụng lớn, rất dễ memleak. vì cho dù kinh nghiệm đến cỡ nào. Viết chương trinhg cỡ enterprise thì thế nào cũng dính memleak. lỗi do chủ quan lẫn khách quan.

hiện nay golang nó giải quyết tốt vụ memleak này, nên go nó hoàn toàn có thể thay thế C++. Bằng chứng là người ta chuyển qua sử dụng golang rất nhiều/
Go có cross được như c++ k thầy thày tụng cho con vài trang kinh nghe với ạ
__________________
[QUOTE][B]Chỉ có trải qua sự mài giũa như ở địa ngục mới có thể rèn luyện sức mạnh của thiên đường; chỉ có những ngón tay từng chảy máu mới có thể diễn tấu ra tác phẩm để đời.
----- R.D.Tagore -----[/B][/QUOTE]
Reply With Quote
  #377  
Old 22-09-2019, 13:59
su.thay's Avatar
Senior Member
Join Date: 04-2016
Posts: 164
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

C++ anh bảo crossplatfrom là sai nhé. Bản chất C++ rất khó code crossplatform. Nguyên nhân là do binary compatibility.

Binary compatibility Nghĩa là sao??

Tức là khi anh compile, nó sẽ chuyển function và variable thành 1 dạng mã hóa, gọi là macro, ví dụ hàm functionA, nó sẽ chuyển thành function122333A

Dẫn tới 1 việc là các máy khác nhau, các compiler khác nhau, sẽ compile ra các macro khác nhau. Nên build trên win nó ra macro khác, build trên linux nó ra macro khác, thậm chí compiler 3.x và 4.x nó cũng ra khác. Nếu anh sử dụng API của win trên linux thì gần như là điuề không thể. Hoặc thậm chí là 2 phiên bản linux khác nhau cũng mệt mỏi

Cho nên rất khó để build C++ cho crossplatfrom.

Các người ta hay làm hiện giờ là viết bằng C++. sau đó wrap lại bằng C (C thì nó sẽ sinh ra macro giống nhau, C là ngôn ngữ bin compability), sau đó từ C API này có thể chuyển thành python API, ruby API ... Hoặc API cho bất cứ ngôn ngữ nào 1 cách dễ dàng bằng cách dugnf COM, CORBA, ...


Đây có thể gọi là 1 trong 2 yếu điểm chí mạng của C++. Thầy có đọc 1 blog của tác giả viết ra C++, và lão chỉ nói sau khi thảo luận thì quyết định làm vậy là để cho theiets kế compiler 1 cách thoải mái. Nhưng mà đây là quyết dịnh ngu ngốc nhất của các anh thiết kế ngôn ngữ C++. NÓ làm cho C++ khong thể bủng nổ được.

Các anh nên nhớ phần lớn trường ĐH người ta dạy C/C++. có nghĩa là nó là ngôn ngữ được học và nắm bắt nhiều nhât, người ta sẽ quen với câu lệnh và tư duy C/C++ trước, rồi mới chuyển qua các ngôn ngữ khác. Với thuanatj lợi như vậy, nếu nó được thiết kế tốt, chắc chắn sẽ bùng nổ, Nhưng rất tiến 2 yếu điểm chí mạng của nó, làm người ta bắt buộc phải thiết kế ra các ngôn ngữ khác.


Thêm nữa quyết định này đi ngược với triết lý thiết kế của C.

Túm váy là C và C++ là do 2 nhóm khác nhau phát triển, Những ông phát triển C đúng là siêu nhâm. Còn C++ thì không phải vậy, nó được thiết kế rất láo và thiếu kinh nghiêmhj


Chính cha đẻ của C, lão cũng rất ngứa mắt với C++, vì những quyết định tào lao của nhóm này, nên lão mới hợp tác với google để làm ra golang. Golang giải quyết triệt để 2 bài toán vướng mắc của C++

1/ Quản lý memory, golang dùng 1 deamon để coder khỏi quan tâm tới free memory
2/ Golang là ngôn ngữ có bin compatibility. Tức là viết crossplatform dễ dàng



I just love programming in Go. Its fast, its efficient, it prevents bad habits and defines a formatting schema. What a dream.

Not only that, it offers cross platform compilation and runs on all operating systems without the need for Go to be installed. Its compiled!

Quote:
Originally Posted by wind_from_heaven View Post
Go có cross được như c++ k thầy thày tụng cho con vài trang kinh nghe với ạ
__________________
Thầy đã quy y cửa phật. Dùng lập trình để phổ độ chúng sinh
Reply With Quote
  #378  
Old 22-09-2019, 14:01
Senior Member
Join Date: 05-2011
Posts: 563
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

Quote:
Originally Posted by su.thay View Post
C++ bị chính cha đẻ của C và go nó chửi cho như con vì thiết kế ngu như bò.
Anh thiết kế API, thì việc đầu tiên là việc đặt tên hàm nó phải có tính discoverable,.
Vâỵ mà nó lúc thì chơi viết đủ, lúc thì chơi viết tắt
Một số ví dụ như stringstream, và str(). Đều lá xử lý string nhưng thằng thì viết tắt thằng thì viết đủ.

Từng đó đủ thấy những thằng thiết kế ra C++ là những thằng khoogn có kinh nghiệm về làm API. Vi phạm ngay 1 trong 5 nguyên tắc cốt lõi của API, là tính discoverable và consistent

Ngoài ra OOP trong C++ là kiểu OOP nửa mùa, vi phạm nguyên tắc OOP tùm lum. Một ví dụ đơn giản là iterator nhưng vẫn sử dụng dereference. Hoặc đưa ra frieend để phá vỡ tính đóng gói

Những thứ này chứng tỏ team phát triển C++ kém.

Anh làm việc với C mà khoong hiểu nó tức là anh cần phải học lại cấu trúc máy tính, và operating system. Nó sẽ hướng dẫn anh cách quản lý memory, từ đó anh map kiến thức từ OS sẽ giải thích được các vấn đề trong C/ Vì cha đẻ của C và golang đã bảo rồi, Mấy lão muốn viết OS, nhưng các ngôn ngữ thời đó đều gặp rào cản, nên lão làm ra 1 ngôn ngữ mới, để viết OS. Nên các vấn đề trong C, đều có thể được giải thích được dễ dàng khi anh học về HĐH
Oop trong c++ là oop đúng trên lý thuyết, kok vấn đề gì cả, chả mắc gì phải chửi oop của c++ cả, theo mình thấy oop của c++ là trùm cuối của mọi thể loại oop mới đúng , a chả biết quái gì chỉ chửi đổng còn hàm là do thằng viết ra nó đặt trên thư viện stl chả liên quan gì đến bản thân c++ cả
Reply With Quote
  #379  
Old 22-09-2019, 14:04
su.thay's Avatar
Senior Member
Join Date: 04-2016
Posts: 164
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

Mời anh phân tích, thầy làm C++ tính tới giờ là hơn 10 năm rồi anh ạ, từ application tới embedded system, cloud và network. Luận văn master của thầy cũng là về optimize C++ compiler trên linux.. Thầy khá hiểu ngóc ngách của nó.

Quote:
Originally Posted by flowerfx2 View Post
Oop trong c++ là oop đúng trên lý thuyết, kok vấn đề gì cả, chả mắc gì phải chửi oop của c++ cả, theo mình thấy oop của c++ là trùm cuối của mọi thể loại oop mới đúng , a chả biết quái gì chỉ chửi đổng
__________________
Thầy đã quy y cửa phật. Dùng lập trình để phổ độ chúng sinh
Reply With Quote
  #380  
Old 22-09-2019, 14:16
Senior Member
Join Date: 05-2011
Posts: 563
Re: Javascript - Ngôn ngữ 'thống lĩnh' thị trường lập trình thế giới năm 2019

Quote:
Originally Posted by su.thay View Post
Mời anh phân tích, thầy làm C++ tính tới giờ là hơn 10 năm rồi anh ạ, từ application tới embedded system, cloud và network. Luận văn master của thầy cũng là về optimize C++ compiler trên linux.. Thầy khá hiểu ngóc ngách của nó.
Còn mình làm 7 năm về c++ và 3 năm về c rồi , theo mình thấy cái vụ oop đẻ ra để ép theo quy tắc thôi, nó mang tính trừu tượng rất cao, bên c++ nó tự do với mọi cách viết oop nên nó kok có interface và cho thừa kế nhiều nơi, tại sao chỉ cần lớp trừu tượng là đủ, vì c++ nó quản lý theo bộ nhớ, trong class nó có các hàm vốn dĩ nếu mapping theo c là con trỏ hàm, mà con trỏ hàm này nếu trả về null theo bên c++ là pure virtual function thì trình biên dịch về lý thuyết vẫn có thể alloc phần nhớ cho class trừu tượng dc, nhưng theo oop thì điều đó hơi rắc rối cho ng dùng và nó cấm alloc mem cho lớp trừu tượng luôn cho dev nâng cấp code cho tiện

Bên c++ a nên làm về memory thì sẽ hiểu dc c/c++ hoạt động thế nào, dễ nhất là các dự án của nhật làm nâng cấp các ứng dụng 16-32 bit lên 64 bit là a sẽ thấy nó map các struct class c/c++ từ data chứ kok phải kiểu đọc data phân tích rồi alloc ra đâu, nói chung về bản chất c++ cũng là c thôi, vì mình từng viết macro để apply cái oop của c++ xuống code c rồi
Reply With Quote
Reply

« Previous Thread | Next Thread »

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 04:26.