thảo luận Python đá Java ra chuồng gà !

  • Người tạo chủ đề Người tạo chủ đề Angelino
  • Ngày bắt đầu Ngày bắt đầu

Bạn thích Python hay Java ?

  • Python

  • Java


Chỉ xem được kết quả sau khi bình chọn.
Trước hết thì như nhiều bác đã nói trong này, không có khái niệm "ngôn ngữ thông dịch" hay "ngôn ngữ biên dịch", cái quyết định là cài đặt của ngôn ngữ chứ không phải bản thân ngôn ngữ đó.
Như C++ thường được coi là ngôn ngữ biên dịch nhưng thực ra vẫn có C++ interpreter (https://root.cern/cling/).

Python cũng vậy. Bản chính thức của Python là CPython là một interpreter, nó đọc từng chỉ thị bytecode đọc đến đâu thì thực thi đến đó. Nhưng cũng có một số cài đặt khác không phải interpreter. Bác có nhắc đến PyPy, nó là JIT (Just-in-time) compiler, không phải interpreter. Có nghĩa khi thực thi bytecode thì nó dịch một phần hoặc toàn bộ ra mã máy rồi thực thi phần đó, cho nên hiệu năng hơn vài lần so với CPython.
JIT compiler thậm chí nhiều lúc còn có thể nhanh hơn cả compiler, vì nó có thông tin về kiến trúc máy tính được chạy hay tập dữ liệu đầu vào. Chẳng hạn một chương trình C++ nếu khi build chỉ tune cho kiến trúc x86 generic thì có thể sẽ chậm hơn chương trình Java chạy các đoạn mã sử dụng tập lệnh AVX512 do JIT compiler sinh ra.

Nói thêm thì còn một loại nữa là AOT (Ahead-of-time) compiler, tức khi cài chương trình thì nó dịch bycode / code toàn bộ ra mã máy thành file nhị phân. Nhưng lần sau khi chạy chương trình thì dùng file nhị phân đó. Đại diện là bộ ART của Android hay mới đây có cái Rosetta 2 của Mac M1.
Anh làm về mảng nào thế cho em xin ít kinh nghiệm nào
 
Kệ mẹ nó, một là biết code, 2 là không.
Một khi biết thì chỉ cần học syntax, quan trọng đ' gì nó là nn gì.
Còn mở miệng nói, tao biết java nhưng python tao chịu thì vứt mẹ đi là vừa. XL
 
Mới đọc thì tưởng Python được tích hợp tính năng giống như mấy cái ngôn ngữ Shader cho gpu như hlsl, glsl nên được dùng cho AI, big data...:eek:
----Cho ai ko biết về Shader----
Shader code sẽ được gpu biên dịch khi load game (app).
Nguyên nhân là để tối ưu tốc độ cho phần cứng.
Cần phải biết gpu mặc dù nhanh hơn cpu gấp hàng trăm lần khi xử lý parallel nhưng chỉ hỗ trợ một số tập lệnh đơn giản và cấu trúc xử lý có thể khác biệt rất lớn.
----
Nhưng tra google thì thấy nó chỉ là ngôn ngữ nhúng với ưu điểm là cú pháp dễ học (mình thấy sai sai sao ấy :sick:)
Cho nên kết luận Python đá java là chuyện impossible.

Ngoài ra nói về ngôn ngữ thì hiện tại C# đã có thể biên dịch trực tiếp ra C++ native code chạy cực êm và nhanh trên nhiều nền tảng khác nhau rồi. Phổ biến nhất là IL2CPP được dùng để build crossplatform trên android/ios/pc
 
Anh làm về mảng nào thế cho em xin ít kinh nghiệm nào

Trên danh nghĩa thì mình đang là dev backend nhưng thực tế công việc chủ yếu là làm devops.

Mới đọc thì tưởng Python được tích hợp tính năng giống như mấy cái ngôn ngữ Shader cho gpu như hlsl, glsl nên được dùng cho AI, big data...:eek:
----Cho ai ko biết về Shader----
Shader code sẽ được gpu biên dịch khi load game (app).
Nguyên nhân là để tối ưu tốc độ cho phần cứng.
Cần phải biết gpu mặc dù nhanh hơn cpu gấp hàng trăm lần khi xử lý parallel nhưng chỉ hỗ trợ một số tập lệnh đơn giản và cấu trúc xử lý có thể khác biệt rất lớn.
----
Nhưng tra google thì thấy nó chỉ là ngôn ngữ nhúng với ưu điểm là cú pháp dễ học (mình thấy sai sai sao ấy :sick:)
Cho nên kết luận Python đá java là chuyện impossible.

Ngoài ra nói về ngôn ngữ thì hiện tại C# đã có thể biên dịch trực tiếp ra C++ native code chạy cực êm và nhanh trên nhiều nền tảng khác nhau rồi. Phổ biến nhất là IL2CPP được dùng để build crossplatform trên android/ios/pc
1. Shader do CPU biên dịch, không phải GPU. Kết quả là ra mã nhị phân dùng tập lệnh của GPU.
Ngoài ra vì các GPU sử dụng tập lệnh khác nhau nên việc biên dịch này xảy ra lúc runtime, vì dev không thể biết người dùng sử dụng GPU của hãng nào, đời bao nhiêu để mà ship mã đã dịch sẵn.
2. Nói đơn giản nhưng cũng là Turing Complete, tức là trên lý thuyết GPU có thể tính toán được mọi thuật toán mà CPU tính được. Chỉ có là không hiệu quả.

Sent from Xiaomi Redmi 5A using vozFApp
 
Lý do kinh phí với kẹt legacy system thì mình đồng ý. Chứ nói .net core không bằng .net thì chắc do thím ko chơi với hàng .net nên ít nắm thông tin bên này. Chính mic còn lệt kê mấy lý do dùng .net cũ toàn là vì vướng legacy system hoặc vấn đề compatibility này:

https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-server

MS từ mấy năm trước push rất mạnh vào phát triền .net core rồi, chuẩn bị sắp tới là gom hết vào .net 5, công ty nào nắm bắt được thì họ chuẩn bị plan để migrate hoặc phát triển app mới trên nền tảng .net core/ EF core. Mình làm java nhưng pet project toàn làm C# với Rust nên cũng hóng dc tình hình, với cả trong cty cũng chung division với mấy team .net nữa, mấy buổi tech talk cũng hay bàn về vấn đề này :big_smile:

Giờ dev C# nhìn .net 4.8 chắc ngang cỡ dev java thấy project xài java 6 :beat_brick:
core cái cc ý. wcf đầy cty xài giờ bỏ cái rụp đéo có thay thế kìa
 
Ngoài ra nói về ngôn ngữ thì hiện tại C# đã có thể biên dịch trực tiếp ra C++ native code chạy cực êm và nhanh trên nhiều nền tảng khác nhau rồi. Phổ biến nhất là IL2CPP được dùng để build crossplatform trên android/ios/pc
Không nhanh đâu anh ơi, chỉ là để bảo vệ code không bị dịch ngược thôi
6l22n1x.png
 
Shader code sẽ được gpu biên dịch khi load game (app).
1. gõ thiếu gpu driver chứ ko phải gpu :)
2. load game (app) nghĩa là khi game (app) nó khởi động từ ổ cứng á :)

2. Nói đơn giản nhưng cũng là Turing Complete, tức là trên lý thuyết GPU có thể tính toán được mọi thuật toán mà CPU tính được. Chỉ có là không hiệu quả.

Sent from Xiaomi Redmi 5A using vozFApp
Thực tế nó khác lý thuyết mà bạn.
Bởi vì thực tế chương trình nào cũng bị ảnh hưởng rất lớn bởi yếu tố real time. Ví dụ 1 đoàn 10 người chạy theo hàng nhưng thằng thứ 5 bị bệnh toàn đi bộ thì phải loại nó ra khỏi hàng chứ ko thể để nó kéo team được :)
Nhà sản xuất GPU nó chẳng quan tâm tới Turing Complete đâu, cho nên khi biên dịch driver nó sẽ loại bỏ những phần mà nó ko hỗ trợ hoặc thay thế bằng các phép tính gần đúng. Cho nên mới có hiện tượng 1 số game ko chơi được trên gpu ko hỗ trợ abcxyz này nọ.

Không nhanh đâu anh ơi, chỉ là để bảo vệ code không bị dịch ngược thôi
6l22n1x.png
Mình đã test và thấy cực nhanh luôn ý, đặc biệt là build trên kiến trúc mới arm64. build xong chạy test thử trên ss galaxy s10 thấy speed giật cả mình
 
Mình đã test và thấy cực nhanh luôn ý, đặc biệt là build trên kiến trúc mới arm64. build xong chạy test thử trên ss galaxy s10 thấy speed giật cả mình
Đấy chỉ là do anh tưởng tượng thôi
Anh cứ test viết 1 cái đơn giản như kiểu Fibo 1000, rồi tính time làm xong trong bao lâu hiện ra kết quả
Build thường và build IL2CPP xem time có giống y như nhau không
 
core cái cc ý. wcf đầy cty xài giờ bỏ cái rụp đéo có thay thế kìa
Thím đọc hiểu bị sao vậy, từ đầu tôi đã nói là tôi đồng ý chuyện legacy system khó mà chuyển đổi dc. Bằng chứng là những lý do thằng M$ toàn xoay quanh những hệ thống có sẵn đang dùng .net

Đoạn là tôi đang phản biện ý thím nói .net core không bằng .net về phương diện tính hiệu quả, hay ý thím là gom luôn cả chuyện "doanh nghiệp ko muốn thay đổi" vào việc so sánh 2 thằng với nhau?
Ay7pENF.png
 
Đấy chỉ là do anh tưởng tượng thôi
Anh cứ test viết 1 cái đơn giản như kiểu Fibo 1000, rồi tính time làm xong trong bao lâu hiện ra kết quả
Build thường và build IL2CPP xem time có giống y như nhau không
Ko phải tưởng tượng đâu bác, mà do có hiểu nhầm ở đây là mình chỉ test trên android/ios.
Với pure math như hàm fibo khi test trên C# .NET (Windows) thì nó chả khác gì C++. Có khi nó là manchine code giống như C++ luôn cũng ko chừng, bởi vì đã được thằng Microsoft tối ưu hàng chục năm.
Nhưng khi test trên android/ios hay MAC thì kết quả vẫn là il2cpp nó nhanh hơn khoảng 5 lần, đoán thế chứ chưa test hàm fibo bao giờ 8-)
 
Thím đọc hiểu bị sao vậy, từ đầu tôi đã nói là tôi đồng ý chuyện legacy system khó mà chuyển đổi dc. Bằng chứng là những lý do thằng M$ toàn xoay quanh những hệ thống có sẵn đang dùng .net

Đoạn là tôi đang phản biện ý thím nói .net core không bằng .net về phương diện tính hiệu quả, hay ý thím là gom luôn cả chuyện "doanh nghiệp ko muốn thay đổi" vào việc so sánh 2 thằng với nhau?
Ay7pENF.png
ủa anh làm .net mà a k hiểu ý tui?? .net core k đủ để thay .net được.

bây giờ hồi xưa webservice .net xài cái gì? wcf? bây giờ .net core k còn nữa. kêu ng ta qua xài asp.net api mà chỉ support restful k có soap??

có ai như thằng MS k. cái gì ngon thì nó bỏ ngang. như cc ý
 
ủa anh làm .net mà a k hiểu ý tui?? .net core k đủ để thay .net được.

bây giờ hồi xưa webservice .net xài cái gì? wcf? bây giờ .net core k còn nữa. kêu ng ta qua xài asp.net api mà chỉ support restful k có soap??

có ai như thằng MS k. cái gì ngon thì nó bỏ ngang. như cc ý
Tôi ghi tôi làm Java từ đầu mà. Net với Rust tôi làm pet project thôi.
B6OfawL.png


Chắc thím quen làm stack của MS, bọn nó dọn sẵn hết rồi nên cứ mang ra xài nên giờ thấy phiền khi bọn nó drop support mấy cái đó rồi đánh giá net core hay net 5 không bằng net. Quan điểm của tôi khác của thím, tôi chỉ chú ý tìm hiểu core có gì tốt hơn, performance cải thiện thế nào v.v.. chứ không quan tâm chuyện nó có build sẵn những solution, framework gì đủ để thay thế .net cũ hay ko. Framerwork thì cứ để community và các big players lo, như bên Java có IBM, Google, Apache, Eclipse, Redhat...

Lan man về chuyện .Net ecosystem ko đa dạng: do có 1 mình MS làm hoặc nếu thấy cái gì hay thì 1 thời gian sau MS cũng implement 1 cái gì đó tương tự nên hầu như enterprise chỉ dùng đồ của MS. MS họ nhận ra (và bị chửi cũng nhiều) là nếu phát triển theo hướng FOSS thì ko thể xài cái model này mãi được, nên đang bắt đầu ra roadmap, debate này nọ để tăng lượng 3rd party libraries, frameworks. Thời mà 1 mình MS làm hết mọi thứ sắp kết thúc rồi, sớm hay muộn thôi.

https://github.com/microsoft/dotnet/blob/master/docs/ecosystem-issues.md
https://aaronstannard.com/next-decade-dotnet/

P/S:
Vụ làm SOAP service, tôi search phát dc mấy project từ lúc mà .net core stable 2,3 năm trước rồi, có nhu cầu thì thiên hạ làm thôi: SoapCore, CoreWCF (được backed bởi net foundation, chưa ready production).
aOtDIDQ.png
 
Em mới tranning để làm CTV xử lý hình ảnh được 2,5 ngày.
Xui xẻo là buổi đầu tiên em có hỏi chị leader (team có 2 leader) về 1 câu hỏi trong dự án, nhưng chị ấy ko hiểu ý em (do em diễn đạt dở nên thành hỏi ngu) nên khiến chị ấy nổi nóng bỏ đi ra chỗ khác rồi chửi em là "người gì mà cứ ngơ ngơ". Giờ bã ghét em luôn rồi toàn chỉ bài cho người khác, còn gặp em cứ lơ lơ =((.
Giờ em làm task thì toàn phải nhờ anh leader thứ 2 hướng dẫn chứ ko dám nói chuyện với bã.=(( Giờ phải làm sao đây các thím?

Chị có chồng chưa. Không có thì múc luôn thôi thì may ra thím được tha thứ :D :D :D
 
ủa anh làm .net mà a k hiểu ý tui?? .net core k đủ để thay .net được.

bây giờ hồi xưa webservice .net xài cái gì? wcf? bây giờ .net core k còn nữa. kêu ng ta qua xài asp.net api mà chỉ support restful k có soap??

có ai như thằng MS k. cái gì ngon thì nó bỏ ngang. như cc ý

Xin bác nói rõ hơn cái điểm mà không thể nào bỏ SOAP để chuyển qua RESTFUL ở .Net Core với ạ?
 
ủa anh làm .net mà a k hiểu ý tui?? .net core k đủ để thay .net được.

bây giờ hồi xưa webservice .net xài cái gì? wcf? bây giờ .net core k còn nữa. kêu ng ta qua xài asp.net api mà chỉ support restful k có soap??

có ai như thằng MS k. cái gì ngon thì nó bỏ ngang. như cc ý

Microsoft có truyền thống như vậy rồi!
Chính vì thế dù MS mới ra mắt .NET 5.0, tôi vẫn không hy vọng gì nhiều! :)
 

Thống kê chủ đề

Ngày tạo
Angelino,
Người trả lời cuối
Khang.Hy.Gia.222,
Trả lời
121
Lượt xem
24.894
Quay lại
Lên đầu trang