kiến thức Ưu,nhược điểm của ASP.NET so với NodeJS

  • Người tạo chủ đề Người tạo chủ đề huycon1002
  • Ngày bắt đầu Ngày bắt đầu
Thời đó còn Java, Ruby nữa
Tại sao Mark vẫn chọn PHP
Facebook ra đời vào năm 2003. Vào năm ấy thì web framework Ruby on rails chưa xuất hiện. Còn Java thì rất có thể là do setup cho web quá phức tạp, ko rõ ngày đó người ta dùng framework gì nhưng nghĩ lại hồi học Spring MVC phải config 1 đống thứ linh tinh là đã hãi rồi, sau này có Spring boot thì đỡ hơn. Nếu so sánh thì PHP đơn giản hơn Java rất nhiều, vào thời điểm đó thì PHP cũng là ngôn ngữ phổ biến cho web r
 
Hồi những năm 2000 web mà address có chữ jsp phổ biến hơn php nhiều.
Php thì có mô hình forum vbulletin hay xài thôi
Hải Phòng quê tôi được bọn Hàn cho thử nghiệm băng thông ADSL từ năm 1999 nên hồi đó tôi đã ra quán net xem JAV không che Tokyohot rồi. Mấy thằng lọ mọ hack cc chùa down để sẵn trong ổ cứng quán. Ra chỉ việc mò mở lên xem
Còn đến 2004 khi WordPress chiếm lĩnh thì thị trường việc làm web ở Việt Nam chỉ only PHP là chuẩn rồi
 
Sửa lần cuối:
js code IoT, desktop, backend, frontend,.. tôi chưa thấy js chưa làm đc gì
Lập trình bao năm thím nghe câu cái làm được nhiều thứ nhất là cái dỡ nhất chưa.
Js có thể làm rất nhiều thứ nhưng nếu tính về 1 thứ thì nó không hay nhất được.
Ví dụ back end đi nó sao so được với .net, java, py.. Mấy ngôn ngữ này nó sinh ra để lập trình backend phải ngon hơn js sinh ra từ font end rồi đá chéo sân chứ
 
Facebook ra đời vào năm 2003. Vào năm ấy thì web framework Ruby on rails chưa xuất hiện. Còn Java thì rất có thể là do setup cho web quá phức tạp, ko rõ ngày đó người ta dùng framework gì nhưng nghĩ lại hồi học Spring MVC phải config 1 đống thứ linh tinh là đã hãi rồi, sau này có Spring boot thì đỡ hơn. Nếu so sánh thì PHP đơn giản hơn Java rất nhiều, vào thời điểm đó thì PHP cũng là ngôn ngữ phổ biến cho web r
2003 thì java là servlet jsp. spring chưa có thì phải. dotnet mới 1.0 hình như chưa có mvc

code php là tốt nhất r
 
Khi so sánh 2 ngôn ngữ, ta phải nhìn từ nhiều góc độ, không thể phiến diện được. Như các bạn đã trình bày ở trên, NodeJS không có cửa với .Net trên mảng server side.
Còn về mặt business: đây là mặt quan trọng nhất, thậm chí quan trọng hơn kỹ thuật rất rất nhiều.
Vào thời mình mới chuyển từ .Net qua làm NodeJS, mình nghĩ thế quái nào thằng NodeJS này phổ biến đc nhỉ, nó lởm vãi nồi, nó lởm về mọi mặt.
Mình nghĩ: NodeJS chỉ dành cho mấy đứa làm front-end mới tập làm backend thôi, còn thực chất Javascript không phải là một ngôn ngữ tốt, và lại càng không phải ngôn ngữ phù hợp cho backend.

Nhưng sau một thời gian làm NodeJS, cộng với có thêm góc nhìn từ nhiều người đi trước, mình hiểu rằng công nghệ không quá quan trọng như mọi người nghĩ.

Giờ các bạn thử nghĩ như thế này: Giờ các bạn đang làm C# trên front-end (làm winform hay WPF chẳng hạn), dự án muốn tách ra thành UI và API thay vì chọc thằng vào db từ trên UI, API họ thiết kế theo microservice các kiểu...
Các bạn thuê 1 bên thứ 3 để thiết kế architecture cho giải pháp mới, Bên đó họ không chọn C# mà đi chọn elixir chẳng hạn, họ cũng nêu ra 1 loạt các ưu điểm của elixir và nó nghe có vẻ hợp lý và cũng hợp luôn với bài toán mà mình đang cần giải quyết. Quá tuyệt vời.
Là một developer, leader, liệu các bạn có đồng ý chuyển qua elixir?
Là một CEO, PM, liệu bạn có nghĩ elixir là một lựa chọn hợp lý?

Mình không nói về vấn đề kỹ thuật ở đây, mình cứ xem như C# làm được mọi thứ, elixir chỉ làm một cách có vẻ nuột nà hơn thôi.
Mình nghĩ 99% câu trả lời là giữ nguyên C#, đơn giản bởi view từ tất cả mọi người, từ technical đến business, việc chuyển qua một ngôn ngữ mới là RISK, tốn kém và không đem lại hiệu quả rõ ràng.
Cùng lắm là họ sẽ đưa ra một giải pháp hybrid giữa C# và elixir, hết phim.
Câu chuyện tương tự cũng xảy ra giữa C# và JS, nguồn nhân lực cho JS rất rất dồi dào từ trong và ngoài dự án, thành thử risk + cost sẽ dễ chịu hơn.

Và nên nhớ, ngôn ngữ chỉ là công cụ giúp dự án đạt được mục tiêu, miễn nó giải quyết được vấn đề thì không có gì phải bàn cãi.

Các bạn cũng có thể nhìn qua React và các framework front-end mới, rõ là react không có nhiều ưu điểm ở thời điểm hiện tại, nhưng tại sao nó vẫn được dùng phổ biến, thậm chí trong các dự án mới?
 
Còn thêm khoản embedded, game và blockchain nhé.
Performance hay tooling thì ko biết nhưng về khoản đa năng thì .NET xách dép.
Có ai làm blockchain = .NET ko?, chỉ thấy js thôi. :))
Ý bác là mảng nào của blockchain?
Nếu nói về phần core của blockchain thì em thấy người ta toàn dùng C++, Rust, Golang hoặc mấy ngôn ngữ hiếm thôi chứ chẳng ai xây core bằng js cả.
Còn nếu nói về external services thì nó ko có liên quan nhiều đến kiến thức về Blockchain đâu, giống xây API thông thường thôi
 
Ý bác là mảng nào của blockchain?
Nếu nói về phần core của blockchain thì em thấy người ta toàn dùng C++, Rust, Golang hoặc mấy ngôn ngữ hiếm thôi chứ chẳng ai xây core bằng js cả.
Còn nếu nói về external services thì nó ko có liên quan nhiều đến kiến thức về Blockchain đâu, giống xây API thông thường thôi
Mình đang nói bề mặt thôi, vd xây decentralized app hay smart contract, web3.... Còn core thì lại ít job, chen dc vô mấy vị trí này, job ít, kén người, khó bm ra.
Tiêu chí đa năng ý là sự mềm dẻo và job popular.
 
1. Quan trọng là sử dụng nó cho việc gì, resources đang có trong tay ra sao. Mỗi ngôn ngữ có một thế mạnh riêng, nhưng cái quan trọng nhất là team của bạn đang mạnh về cái gì. Mạnh java thì làm java, mạnh .net thì làm .net mà mạnh về nodejs thì xài nodejs.
2. Đều quan trọng tiếp theo là cộng đồng, cộng đồng lớn thì dễ tuyển người, tìm kiếm solution cho các problem sẽ dễ, lib support đầy đủ.

Bây giờ người ta cũng tách ra làm micro services chứ không gộp chung 1 cục như xưa. Việc lựa chọn các ngôn ngữ cũng trở nên dễ dàng hơn.
  • Xét về perf, NodeJs không mạnh để xử lý nhanh, nhưng lại rất mạnh để xử lý nhiều. Vì vậy nó phù hợp cho các services có lượng truy cập cao nhưng không cần tính toán phức tạp, đặc biệt là không động vào OS hay xử lý ảnh,...
  • Xét về khả năng development và maintain, NodeJs là ngôn ngữ linh hoạt nên khả năng phát triển sẽ nhanh hơn .Net, bù lại thì .Net có cấu trúc chặt chẽ hơn, khi maintain sẽ đỡ mệt hơn.
  • Hai fw này cũng khác nhau ở chỗ một ông là thuần FP, OOP giả cầy. Một ông là OOP thuần. Vậy nếu bạn muốn viết OOP chặt chẽ, dễ maintain thì xài .Net, muốn FP với khả năng tái sử dụng cao thì NodeJs.
 
Xử lý nhiều bao gồm string parser, con NodeJS nào gặp soap hay json to thì cũng khoai phết đấy. Operator tốn CPU là ko nên dùng NodeJS
 
Cái first class function tôi không rành nó tốt ở điểm nào tôi không bàn. (nhưng tôi có dùng qua Kotlin thì lạm dụng nó quá thì code như đống spaghetto)
Nhưng về tooling thì js muôn đời không tốt bằng bọn c#, java nói thế cho vuông, lý do đơn giản là duck typing thì static analysis kiểu gì
qZV215Z.png
.
Bọn Webstorm đơn giản là nhận diện framework rồi suggest cho tương ứng. Còn bọn vscode thì làm đếch ai rảnh mà đi support từng fw nên càng shitty hơn.
Code biến tấu 1 tí (và nhất là mấy anh "senior" js rất thích customize nhưng thiếu hiểu biết về type system) thì cái "IntelliSense" khác mịa gì fuzzy search đâu
jmEBCky.gif
. Bọn JetBrains toàn chuyên gia ngôn ngữ mà cái webstorm còn không đỡ nổi thằng JS thì anh trông mong gì nữa
Tôi từng 1 thời code react dùng js thì đúng là khổ dâm
lLqRnCJ.png
.

Còn library thì nó còn nằm ở cái văn hóa của cộng đồng nữa. Bọn Java, C# nó đi theo kiểu 1 cái library thì phải hoàn chỉnh, đầy đủ feature.
Còn bọn JS thì có mỗi cái is-number, left-pad cũng làm thành 1 cái lib rồi cái lib khác lại depends vào. Thành ra là library bên js mỗi anh 1 style, cảm giác nó không thống nhất như bên Java, C#.
+1 ASP.NET. Cảm giác thư viện bên nodejs lằng ngoằng, không đồng nhất như C#. Project của .NET dễ maintain hơn hẳn.
 
Mình đang nói bề mặt thôi, vd xây decentralized app hay smart contract, web3.... Còn core thì lại ít job, chen dc vô mấy vị trí này, job ít, kén người, khó bm ra.
Tiêu chí đa năng ý là sự mềm dẻo và job popular.
smart contract nào viết bằng js?
nếu nói chính xác thì là cái ngôn ngữ phổ biến nhất dùng để viết smart contract là solidity có syntax "y hệt" js, nói chung là để lôi kéo cộng đồng web dev đông đảo vào cuộc, chứ chả phải vì bản thân js có ưu điểm chói lọi gì lắm
còn như thằng EVM viết bằng go, hoặc đống solidity parser, compiler toàn viết bằng C++
còn nói làm web, service dính dáng đến blockchain t thấy đội dùng python đông kinh hoàng
 

Thống kê chủ đề

Ngày tạo
huycon1002,
Người trả lời cuối
xuansang999,
Trả lời
174
Lượt xem
44.753
Quay lại
Lên đầu trang