Mình từng học C/C++/Java. Chưa thấy ngôn ngữ nào mà nó khùng khoằm rắc rồi như javascrpt.
Javascript khù khoằm thế nhỉ!
độ tâm thần sao bằng C++ được
modern C++ mấy ngày nay đang bị chửi rần rần vì độ điên kìa
nỗi cái đặt tên iota
cho 1 hàm đơn giản điền mảng số từ a tới a+n ko đã bị chửi, 1 bên chửi iota là cái quái gì vậy đặt tên kì quái chứng tỏ mình thông minh à, 1 bên chửi lại nếu anh nói anh ko biết iota là gì thì anh nên xấu hổ về bản thân chứ còn đem khoe à
iota la gì vậy bạn ơi chưa nghe qua
Nên đưa C++ ra khỏi list “từng học” vì nếu học C++ mà chưa thấy nó cũng “khùng khoằm” không kém thì chỉ có thể gọi là mới học C và một chút classes thôi. Đây là talk của Scott Meyers giải thích về độ “khùng” của nó
cần học những gì để thấy nó khùm khoằm vậy bạn vậy ra mình mới biết sơ sơ về c++.
thử đọc “vài” cái code Boost rồi qua đọc vài mẫu code Qt là thấy ko ai giống ai rồi
parse chữ số La Mã kiểu tâm thần: https://www.boost.org/doc/libs/1_69_0/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
forbidden black magic =): https://www.boost.org/doc/libs/1_69_0/libs/assign/doc/my_vector_example.html
my_vector<int> vec;
vec = 1,2,3,4,5,6,7,8,9,10;
functional programming:
int count = 0;
std::for_each(v.begin(), v.end(), if_(arg1 > 2 && arg1 % 2 == 1)
[
++ref(count)
]);
tribool là lạ: https://theboostcpplibraries.com/boost.tribool
range-v3 bị chửi lên bờ xuống ruộng:
std::vector<int> vi{1,2,3,4,5,6,7,8,9,10};
auto rng = vi | view::remove_if([](int i){return i % 2 == 1;})
| view::transform([](int i){return std::to_string(i);});
// rng == {"2","4","6","8","10"};
std::vector<int> vi{2,3,2,5,6,2,8,7,3};
vi |= action::sort | action::unique;
// vi == {2,3,5,6,7,8}
fmtlib, chưa thấy ai chửi
fmt::print("Don't {}\n", "panic");
fmt::print("I'd rather be {1} than {0}.", "right", "happy");
fmt::print("Hello, {name}! The answer is {number}. Goodbye, {name}.",
"name"_a="World", "number"_a=42);
std::string message = "{0}{1}{0}"_format("abra", "cad");
fmtlib giống format của Python, em chưa thấy ai chửi mặc dù cách xếp cú pháp kì cục
JS kể ra vẫn còn trong sáng chán rối rắm ở mấy thứ lạ lạ như promise, async, đến những cái rất nhảm nhí như array với dict đều là object (bữa nọ debug đến ngu cả người vì cái này ), túm lại đây là một ngôn ngữ khá lạ lùng
Ngôn ngữ nào thì cũng có cái khù khoằm
riêng của nó. Khi bạn đã quen với nó rồi thì nó là chân lý, những cái khác sẽ là khù khoằm
.
Sau khi kinh qua một vài ngôn ngữ, đào sâu 1 ngôn ngữ, mình xin xác nhận JS khá là trong sáng và dễ học
Ít nhất là so với C++
JS chỉ có 1 khái niệm cần phải hiểu thêm là lập trình bất đồng bộ thôi, chứ các cái khác thì còn dễ hơn Java, C++ nhiều.
Mấy cái như prototype thì có thể ko đụng vào cũng đc vì đã có ES6 và typescript.
Mình đọc mấy cái mã nguồn js để chôm chỉa ít kỹ năng mà phọt cơm
atoi hay itoa còn biết chứ iota thì đúng là chịu
Nói chung bị chửi cũng không oan mấy
Mình hiểu ý của bạn OP, bản thân mình cũng nghĩ Javascript là ngôn ngữ khó học, nhất là dành cho những người mới. Bản thân JS cũng có thể coi là 1 wrapper của 1 ngôn ngữ lower level hơn (như V8 codebase là C++) nên để nói hiểu rõ ngọn ngành JS thì cũng phải hiểu xem C++ quản lý bộ nhớ ntn, optimize bytecode ra sao bla bla, cho nên việc so sánh JS/C++ dễ học hay không theo mình mang tính tương đối. Sau 1 thời gian tìm hiểu sơ qua thì mình thấy:
- Cộng đồng JS quá lớn mà lại phân mảnh quá nhiều, rất khó để follow theo hướng nào chuẩn.
- JS không có standard library, cộng với cộng đồng như trên nên phân mảnh lại càng rõ ràng hơn.
- JS hỗ trợ DSL nên tồn tại những syntax khá kỳ lạ (ví dụ như JSX, coffescript,…).
Đó chỉ là 1 vài suy nghĩ thôi, JS vẫn là 1 ngôn ngữ thú vị với m.