2 cái mà bản thân đang đánh giá cao, và chắc chắn có tương lai là Dart và Golang
Dart ngoài flutter để dev app mobile ra thì còn dùng chỗ nào nữa nhỉ? Có use case hay công ty nào lớn dùng không?2 cái mà bản thân đang đánh giá cao, và chắc chắn có tương lai là Dart và Golang
Thì mới nói là của tương lai mai phen ạ nó là ngôn ngữ mới, khắc phục đa số những cái dở ở Js, java... Ngoài mobile ra thì định hướng của nó là cả web,desktop, backend...Còn về cái phần ai dùng nó hay không thì fen cứ xem có bao nhiêu công ty đã phát triển flutter với xem lại th bố tạo ra nóDart ngoài flutter để dev app mobile ra thì còn dùng chỗ nào nữa nhỉ? Có use case hay công ty nào lớn dùng không?
Thế mà discord nó chuyển Go sang Rust đấy thím, chắc service nhỏ nào của nó thôi hay sao. Go code không khó rất tường minh, nhưng nó hơi ngu đối với mình ko có generic, try catch..vv . Trước bàn dân cũng propose rồi mà hình như là tác giả reject hết thì phải.Tốc độ chạy chỉ kém C,C++ 1 tí thì lại chả mọi hệ thống Backend sẽ viết lại hết bằng Go
Bữa cty mình có 1 case hài vl, má nào code Go sài ko đóng transaction hay sao ấy, nó lên connection poll . Sập,Rảnh rảnh type vài dòng cho các bác:
Ưu điểm của Go:
1. Code dễ đọc, dễ hiểu.
2. Go compiler mang lại nhiều thông tin có để giải quyết các vấn đề thay vì những output vô nghĩa.
3. Go code portable
4. Hỗ trợ concurrency, distributed programming.
5. Support Garbage collection. Được thiết kế khá nhanh chứ ko chậm chạp như GC của java.
6. Ko có preprocessor, tăng tốc độ khi compile chương trình.
7. Có thể build web app.
8. Bộ thư viện chuẩn của Go cung cấp nhiều library cho phép làm việc dễ dàng.
9. Sử dụng static linking by default. Ko cần quan tâm tới library, different version v.v...
10. Support Unicode
(cái này mình đọc sách nhiều nên biết thôi :sexy
Tất nhiên ko có ngôn ngữ nào là hoàn hảo, quan trọng là mục tiêu khi người ta xây dựng ngôn ngữ đó là gì.
Ví dụ như Go thì ko có OOP, có thể gọi là ko trực tiếp support OOP thì chính xác hơn.
Về tốc độ thì mình nghĩ Go vẫn ko thể nhanh hơn C dc, đơn giản là Unix viết bằng C.
Nhưng dù sao Go là một ngôn ngữ hiện đại, dễ học, dễ nắm bắt, dễ viết.
Để học syntax 1 ngôn ngữ thì rất dễ, python hay Java thì chắc ngồi vài hôm là xong. Nhưng để thực sự "đào sâu" vào ngôn ngữ đấy, thì mình nghĩ các bác cần nhiều thời gian hơn rất nhiều.
Có thể mất cả năm trời để hiểu rõ dc các cơ chế hoạt động phía dưới của ngôn ngữ, sử dụng một cách thông thạo, code đẹp đẽ tối ưu.
Do tính chất công việc hiện nay nên đa phần nhiều người ko đạt dc tới level đó và cũng ko coi việc đó là quan trọng, với mình đó là 1 điều đáng buồn.
Các bác chỉ có thể code 1 cách tối ưu khi các bác hiểu rõ ngôn ngữ đó hoạt động như thế nào.
Thế mà discord nó chuyển Go sang Rust đấy thím, chắc service nhỏ nào của nó thôi hay sao. Go code không khó rất tường minh, nhưng nó hơi ngu đối với mình ko có generic, try catch..vv . Trước bàn dân cũng propose rồi mà hình như là tác giả reject hết thì phải.
Thằng Dart sống lay lắt qua bao năm rồi chứ có mới đâu.2 cái mà bản thân đang đánh giá cao, và chắc chắn có tương lai là Dart và Golang
Discord 250 triệu người dùng voice realtime. So sánh ở tầm vĩ mô quáThế mà discord nó chuyển Go sang Rust đấy thím, chắc service nhỏ nào của nó thôi hay sao. Go code không khó rất tường minh, nhưng nó hơi ngu đối với mình ko có generic, try catch..vv . Trước bàn dân cũng propose rồi mà hình như là tác giả reject hết thì phải.
https://topdev.vn/blog/tai-sao-team-discord-chuyen-tu-go-sang-rust/
Nói chung chả có ngôn ngữ nào là hoàn hảo
Nói chứ sinh viên trường được dạy C++ thì cứ ràng mà nắm C++. Học xong chuyển sang Go hay Rust 1 nốt nhạc...
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2903-5Go gọi là performance cũng ngon nhưng đéo ăn được Java, .NET Core, C++...
Go GC cũng đéo ngon bằng Java.
Những cái ngon nhất của Go là memory footprint, build time.
Bên tôi những cái critical performance vẫn phải dùng Java, còn lại Go và Python cho những chỗ khác.
Cái cơ bản nhất là generic (có vẻ version 2 sẽ có, ngon hay k thì k chắc lắm)Ko biết rust với swift cho hỏi go nó thiếu gì vậy
Cái cơ bản nhất là generic (có vẻ version 2 sẽ có, ngon hay k thì k chắc lắm)
Thiếu kiểu result (năm 2020 rồi gọi hàm vẫn trả về cái err và phải check nil haha)
Ko có kiểu optional
Thiếu nhiều hàm xử lý sequence (map filter reduce...)
Polymorphism ở runtime (rust có traits, swift thì xài protocol ở compile time) do hệ thống typing sida. B có thể thấy dev go abuse cái interface{} ntn.
Cá nhân mình thấy go giống như ngôn ngữ giúp các dev js / python code ra phần mềm nhẹ và nhanh hơn, chứ ko có j nổi trội.
Ý bạn là bài viết này: https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1fđọc bài gốc của nó trên medium đi, phần response, nhiều ý kiến cho rằng chỉ cần upgrade version go lên bảng mới là đã giải quyết được vấn đề của go GC
Ý bạn là bài viết này: https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
~ 50 engineers tạo app cho 250 mil users, họ quyết định chuyển từ Go sang Rust chỉ vì GC ???
Như mình nói không ngôn ngữ nào hoàn hảo, bác kia hỏi Rust có gì mà Go không làm được mình đưa link dẫn chứng người thật việc thật cho xem, mình chưa hề nói Rust tốt hơn Go