thảo luận Tất tần tật về Go (Golang)

^
Lazada, vứt sạch backend Go cũ chuyển hết sang Java.
Tiki đập một mớ cũ rewrite lại + build mới một loạt bằng Java.

Chắc vẫn nhỏ, không bì với unicorn được :sad:
ME1tJB0.gif

Mình quen ông anh ở tiki, ông ấy bảo đập hết java đi làm lại bằng golang mà. Bác có nói ngược không vậy.

via theNEXTvoz for iPhone
 
Mấy bạn chưa bao giờ làm Java hay lỡ cỡ rồi nhảy sang cái khác luôn ác cảm vì cho rằng Java nó cùi, chậm, dài dòng... Blabla nhưng đâu có biết Java nó luôn tiến hoá để adapt với modern software development.

Tôi dùng cả Go cả Java cho hệ thống bên tôi, ngày trước tôi rất thích Go ở chỗ lightweight phù hợp với môi trường serverless nhưng dạo này Java có GraalVM thì ngon lắm rồi. Tương lai nếu Go k phát triển hơn thì mấy thế mạnh hiện tại sẽ bị thằng Java nó cắn mất. Chắc luôn:big_smile:
 
Mấy bạn chưa bao giờ làm Java hay lỡ cỡ rồi nhảy sang cái khác luôn ác cảm vì cho rằng Java nó cùi, chậm, dài dòng... Blabla nhưng đâu có biết Java nó luôn tiến hoá để adapt với modern software development.

Tôi dùng cả Go cả Java cho hệ thống bên tôi, ngày trước tôi rất thích Go ở chỗ lightweight phù hợp với môi trường serverless nhưng dạo này Java có GraalVM thì ngon lắm rồi. Tương lai nếu Go k phát triển hơn thì mấy thế mạnh hiện tại sẽ bị thằng Java nó cắn mất. Chắc luôn:big_smile:

Go không bao giờ phát triển được. Bởi vì Go viết ra không phải để cạnh tranh với Java. Nó chỉ được viết để cho nhân viên Google dùng. Các ngôn ngữ viết ra đều có chọn lọc tự nhiên cả. Không phải ngẫu nhiên Java với Javascript phổ biến tới vậy.
 
Bác nào làm tiki vào confirm thằng nào đập thằng nào cái :beat_brick:

tôi ko làm tiki nhưng confirm cho nè.
Hồi mới đầu tiki dùng php.
Sau đập đi và dùng java. Khoảng năm ngoái mới rục rịch move qua golang. Nhưng tui nghĩ chặng đường còn dài lắm. Java vẫn là core hiện tại và chắc cũng vài năm nữa.

còn có ai làm tiki thì confirm hộ nếu mình sai ^^
 
Mấy bạn chưa bao giờ làm Java hay lỡ cỡ rồi nhảy sang cái khác luôn ác cảm vì cho rằng Java nó cùi, chậm, dài dòng... Blabla nhưng đâu có biết Java nó luôn tiến hoá để adapt với modern software development.

Tôi dùng cả Go cả Java cho hệ thống bên tôi, ngày trước tôi rất thích Go ở chỗ lightweight phù hợp với môi trường serverless nhưng dạo này Java có GraalVM thì ngon lắm rồi. Tương lai nếu Go k phát triển hơn thì mấy thế mạnh hiện tại sẽ bị thằng Java nó cắn mất. Chắc luôn:big_smile:
Mình nghĩ java cần phải làm nhiều nữa mới có thể cắn thị phần của Go ở mảng infras (đặc biệt là k8s) :D
+ build time + binary size + build tools/process/dependencies manager: Go build ra fat binary vs tốc độ khá nhanh, quản lý dependencies vs Go module giờ khá tiện nữa so với việc config/quản lý lằng nhằng của java (maven, gradle, ant)
+ memory footprint: GraalVM giúp Java app giảm khá nhiều memory footprint khá nhiều vs native image rồi nhưng vẫn nhiều hơn so vs Go
+ faster start up times: cái này đặc biệt giúp scale app nhanh khi dùng vs HPA
+ cgroups awareness: config/optimize cho JVM based app cũng là một vấn đề để tránh OOM kill, tuy đã hỗ trợ khá ok vs hotspot rồi nhưng đạt đến mức perfect thì chưa
+ GraalVM được develop bởi Oracle, mà mình thì éo ưa + tin tưởng Oracle lắm sau mấy vụ license :beat_brick:

Tuy nhiên mấy thằng lớn contribute khá nhiều vô cloud native (ngoài 3 ông lớn Google, AWS, Azure) như RedHat (IBM), OpenSUSE, ... cũng đầu tư nhiều vô Java để giúp nó cloud native hơn nên mình nghĩ trong tương lai sẽ có nhiều hướng để làm vs cloud tùy theo hướng/ngôn ngữ mình thích :D
 
Câu Slogan chỉ là câu nói, great :)
Đoạn bôi đậm mình chả hiểu bạn muốn nói gì nữa :D
Quay lại vấn đề, bạn thử kể cái project nào trong 5 năm trở lại đây thực sự nổi tiếng được viết bằng Java?

Mình làm cho công ty unicorn startup, quy mô chắc nhất nhì Sài Gòn này. Code chủ yếu bằng Go, TypeScript, Ruby. Còn Javascript thì chả phải hỏi. Trừ khi code system, embed còn không bảo không viết javascript chắc bạn không phải dev, kể cả làm DS, AI đi nữa :big_smile:

Thêm hình chỗ làm cho khỏi bảo chém gió này nọ
View attachment 56333

nhất Grab nhì Sea nhỉ? Mà 2 thằng này đều cấp macbook 15” chứ đâu phải 13” đâu thím.
 
Mình nghĩ java cần phải làm nhiều nữa mới có thể cắn thị phần của Go ở mảng infras (đặc biệt là k8s) :D
+ build time + binary size + build tools/process/dependencies manager: Go build ra fat binary vs tốc độ khá nhanh, quản lý dependencies vs Go module giờ khá tiện nữa so với việc config/quản lý lằng nhằng của java (maven, gradle, ant)
+ memory footprint: GraalVM giúp Java app giảm khá nhiều memory footprint khá nhiều vs native image rồi nhưng vẫn nhiều hơn so vs Go
+ faster start up times: cái này đặc biệt giúp scale app nhanh khi dùng vs HPA
+ cgroups awareness: config/optimize cho JVM based app cũng là một vấn đề để tránh OOM kill, tuy đã hỗ trợ khá ok vs hotspot rồi nhưng đạt đến mức perfect thì chưa
+ GraalVM được develop bởi Oracle, mà mình thì éo ưa + tin tưởng Oracle lắm sau mấy vụ license :beat_brick:

Tuy nhiên mấy thằng lớn contribute khá nhiều vô cloud native (ngoài 3 ông lớn Google, AWS, Azure) như RedHat (IBM), OpenSUSE, ... cũng đầu tư nhiều vô Java để giúp nó cloud native hơn nên mình nghĩ trong tương lai sẽ có nhiều hướng để làm vs cloud tùy theo hướng/ngôn ngữ mình thích :D

Hehe GraalVM còn mới mà còn nhiều dư địa để optimize. Hotspot nó optimize 20 năm trời mới đạt đến performance tám lạng nửa cân với C++ hiện tại chứ ít gì :big_smile:
 
So sánh Golang với C# hay Java hơi sai vì một thằng theo hướng procedural còn hai ngôn ngữ kia theo là OOP. Mà ai làm rồi cũng biết OOP nó lợi cho việc maintain business logic hơn là đua performance. Cá nhân mình chỉ dùng Go nếu muốn cực nhanh mà không dám dùng C++, dùng Elixir nếu muốn concurency tốt, còn lại thì dùng C# hoặc PHP tùy yêu cầu khách hàng.

Sang mấy sản phẩm lớn, có cái nào viết bằng chỉ một ngôn ngữ back-end đâu. Cái nào phù hợp cho phần nào thì được dùng cho phần đó thôi.
 
Last edited:
Go mạnh lắm. Bạn nào mới ra trường nên theo.
Khuyên chân thành đấy.
Mình làm c++ lâu, cũng phải bỏ để qua golang
Go đánh giá mỗi cái goroutine thôi. Mà giờ c++20 cũng có. Một thằng stackful vs một thằng stackles. Cơ mà trước khi chuẩn hoá. C++ có mả lib ngoài hỗ trợ vụ này. Cá nhân thấy đỉnh cao vẫn c or c++. Làm gì cũng được per cực cao. Tùy biến tùy chỉnh mái thoải. Chứ cái goroutine stackful , khi sll lại sml.
Còn mấy cái khác thấy bình thường dễ nhìn hơn chút.
 
Go đánh giá mỗi cái goroutine thôi. Mà giờ c++20 cũng có. Một thằng stackful vs một thằng stackles. Cơ mà trước khi chuẩn hoá. C++ có mả lib ngoài hỗ trợ vụ này. Cá nhân thấy đỉnh cao vẫn c or c++. Làm gì cũng được per cực cao. Tùy biến tùy chỉnh mái thoải. Chứ cái goroutine stackful , khi sll lại sml.
Còn mấy cái khác thấy bình thường dễ nhìn hơn chút.

C C++ đỉnh cao nhưng chẳng ai dùng. Thấy toàn Java.
 
Go đánh giá mỗi cái goroutine thôi. Mà giờ c++20 cũng có. Một thằng stackful vs một thằng stackles. Cơ mà trước khi chuẩn hoá. C++ có mả lib ngoài hỗ trợ vụ này. Cá nhân thấy đỉnh cao vẫn c or c++. Làm gì cũng được per cực cao. Tùy biến tùy chỉnh mái thoải. Chứ cái goroutine stackful , khi sll lại sml.
Còn mấy cái khác thấy bình thường dễ nhìn hơn chút.

mục đích của go ko phải là thay thế c++ bác ơi.
C++ mạnh nhưng cũng tuỳ tình huống thôi. Có những tình huống ng ta dùng go sẽ phù hợp hơn

bác bảo c++ làm gì cũng dc thì ko sai, nhưng ko phải cái gì dùng c++ cũng là tốt, là phù hợp.

lý do mình bỏ c++ là vì khó phát triển hơn dc nữa, cái prj ở Vn bị giới hạn lắm.
 
C C++ đỉnh cao nhưng chẳng ai dùng. Thấy toàn Java.
Ko ai rảnh tới mức viết bằng mấy thứ đó tất cả Khó , dễ lỗi. Tốn time đau não dev....
Cơ mà bảo không ai dùng chắc thế giới giờ này đang đốt đèn dầu quá. Thím cứ nghĩ viết java thì java nhất. Có hỏi java tạo lên bằng gì chứ.
Có những chô cần C or C++ đôi khi không thể thay thế.. Cơ mà dạo này ko đặt nặng ngôn ngữ lắm. Cuối cùng thì cũng về với cái register thôi. ( Khó hiểu).
Cơ mà mình không ưa mấy thằng phải dùng tới Vm. Còn doanh nghiệp họ chọn cái gì đều có lý do cả. Không phải cái gì phù hợp ngày hôm nay. Ngày hôm mai vẫn phù hợp. Tương tự cho các cty , dev ...
Các thím hay bám chấp vào vài cái ngôn ngữ. Làm thui chột đi nhiều thứ hay ho...
Dạo này ngồi vọc cái lib đá lẫn Asm thấy hay quá.
c++ vẫn dc dùng ở nhiều nơi, tại bác ko thấy thôi.
Nhưng mà dev VN ít khi nhảy dc vô phần đó, còn lại toàn maintain outsource thôi.
Cái này chuẩn , cảm giác vn đang ở lv gia công "code".
Mong thèn go thay đổi cái goroutine or update cho dùng hai kiểu. Ko thì ăn sao về concurency vs mấy thằng kia.
 
Last edited:
Tôi giờ ngày nào cũng tự nhủ, ráng mỗi ngày try-hard golang thêm vài tiếng (bên cạnh việc công ty).
Bao gồm đọc sách, code side project, học thêm về distributed system, database.

Cố gắng 1-2 năm nữa lên pro, hy vọng dc lương 4-5k là ổn, khỏi cần ra nước ngoài nữa.

Chắc phải bỏ bớt thú vui gái gú, chơi game lại T_T
bác cho mình hỏi, giờ bác học go từ nguồn nào, mình thấy các tài liệu của go khá ít :sad:
 
Last edited:
Ko ai rảnh tới mức viết bằng mấy thứ đó tất cả Khó , dễ lỗi. Tốn time đau não dev....
Cơ mà bảo không ai dùng chắc thế giới giờ này đang đốt đèn dầu quá. Thím cứ nghĩ viết java thì java nhất. Có hỏi java tạo lên bằng gì chứ.
Có những chô cần C or C++ đôi khi không thể thay thế.. Cơ mà dạo này ko đặt nặng ngôn ngữ lắm. Cuối cùng thì cũng về với cái register thôi. ( Khó hiểu).
Cơ mà mình không ưa mấy thằng phải dùng tới Vm. Còn doanh nghiệp họ chọn cái gì đều có lý do cả. Không phải cái gì phù hợp ngày hôm nay. Ngày hôm mai vẫn phù hợp. Tương tự cho các cty , dev ...
Các thím hay bám chấp vào vài cái ngôn ngữ. Làm thui chột đi nhiều thứ hay ho...
Dạo này ngồi vọc cái lib đá lẫn Asm thấy hay quá.

Cái này chuẩn , cảm giác vn đang ở lv gia công "code".
Mong thèn go thay đổi cái goroutine or update cho dùng hai kiểu. Ko thì ăn sao về concurency vs mấy thằng kia.

vn gia công từ mấy chục năm trc mà bác. Khoảng mấy năm đổ lại đây mới bắt đầu phát triển hơn này.
cái gì cũng cần thời gian tích luỹ mà ^^
 
Back
Top