[Thảo luận] Liệu có nên build desktop app với Nodejs hay không?



  • @CodeConCat đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    Search ta thì thấy bây giờ Phonegap đã có bản beta để build desktop app rồi.
    Và tùy nhu cầu, tùy khả năng, chứ đâu phải lúc nào cũng build bằng native được, chưa kể build bằng NodeJs còn tận dụng được số lượng package siêu khổng lồ của nó nữa chứ.

    Khổng lồ nhưng rác cũng không ít. Thực tế ứng dụng build với nodejs trên desktop chỉ hợp với làm các ứng dụng client-server , còn ứng dụng local thì performance không cao được. Hiện nay thì hầu hết nền tảng build app js đều có nhược điểm là vậy :D. Khi nào thời đại app on cloud thì sẽ khác



  • Mình thì nghĩ vẫn nên build desktop app với nodejs. Vì trước khi cần quan tâm tới performance thì hay quan tâm đến tính hữu dụng của app đã. Chắc chắn là Nodejs sẽ không tạo ra những app chạy quá ỳ ạch, hay ngốn ram đến mức độ khủng khiếp như cái trình duyệt mà chúng ta dùng hàng ngày :)))).
    Khi mà app của mình đã có lượng người dùng tốt rồi thì lúc đó chuyển hướng công nghệ thành native cũng là điều bình thường và mình có cơ sở để làm điều đó. Mất công build app native rõ là ngon mà không ai dùng thì cũng vứt.


  • Global Moderator

    theo mình thì không nên build nhé, vì khi build desktop app với nodejs thì không khác gì bạn build một trình duyệt cả. Nếu chỉ là app nhỏ thì không sao nhưng nếu vấn đề về performance được đề cao thì sẽ rất không ổn.
    Nodejs không phải là low level language nên khi chạy nó cũng sẽ không cho bạn hiệu suất lớn như bạn tưởng tượng đâu. Nếu bạn muốn dev nhanh thì cũng nên nghĩ lại vì code desktop app bằng nodejs cũng chưa chắc nhanh hơn code trên c+, c# hay python đâu. Nếu bạn có kỹ năng về các ngôn ngữ đó thì không nên dùng node còn nếu chỉ biết node thì có thể dùng node để làm thử, làm để test thì hay hơn.
    Bạn thử tưởng tượng, app mà cross platform ( not native ) thì tốt nhất nên là các app dạng restful và nên làm frontend là chủ yếu.
    Vấn đề về lưu trữ và xử lý dữ liệu nữa, desktop app của bạn sẽ lưu trữ như nào... liệu nó có thể stand alone không?



  • @ngocphuongnb đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    theo mình thì không nên build nhé, vì khi build desktop app với nodejs thì không khác gì bạn build một trình duyệt cả. Nếu chỉ là app nhỏ thì không sao nhưng nếu vấn đề về performance được đề cao thì sẽ rất không ổn.
    Nodejs không phải là low level language nên khi chạy nó cũng sẽ không cho bạn hiệu suất lớn như bạn tưởng tượng đâu. Nếu bạn muốn dev nhanh thì cũng nên nghĩ lại vì code desktop app bằng nodejs cũng chưa chắc nhanh hơn code trên c+, c# hay python đâu. Nếu bạn có kỹ năng về các ngôn ngữ đó thì không nên dùng node còn nếu chỉ biết node thì có thể dùng node để làm thử, làm để test thì hay hơn.
    Bạn thử tưởng tượng, app mà cross platform ( not native ) thì tốt nhất nên là các app dạng restful và nên làm frontend là chủ yếu.
    Vấn đề về lưu trữ và xử lý dữ liệu nữa, desktop app của bạn sẽ lưu trữ như nào... liệu nó có thể stand alone không?

    mình tưởng là để xây dựng 1 cái giao diện đẹp 1 chút thì code bằng web sẽ nhanh hơn (và có thể là đẹp hơn) là code bằng C++/C#/Java chứ.
    trong quá trình mình build app thì với toàn bộ source chỉ có chưa đến 1MB. toàn bộ là code và vài cái thứ viện nhưng khi build thành app thì nó lên tới gần 100MB nên mình cũng hiểu điểm hạn chế của pp này, chỉ là các app như Visual Studio Code cũng được xây dựng theo cách này làm cho mình thắc mắc.

    Về bản thân mình thì hiện tại mình có chút kinh nghiệm về nodejs và front-end nhưng về C++/C#/Java hay các ngôn ngữ bậc thấp khác thì mới chỉ ở mức vô cùng căn bản.

    Theo mọi người thì Visual Studio Code có được coi là 1 app bự theo kiểu mà việc build desktop app bằng nodejs sẽ khiến cho nó nặng nề và chậm chạm quá mức cho phép thay vì code bằng C# hay các ngôn ngữ bậc thấp khác hay không ?

    Hiện mình đang có dự định làm 1 cái app không quá to như thằng VS Code nhưng cũng không phải là quá đơn giản đi. Nhất là các thao tác GET POST đến server mà làm bằng C++ hay C# thì quả thật là mù tịt và cảm thấy khá là khó khắn, nhất là khi càng ngày code càng bị các thư viện của nodejs nói riêng và js nói chung làm phụ thuộc...


  • Global Moderator

    @phamhongphuc đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    @ngocphuongnb đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    theo mình thì không nên build nhé, vì khi build desktop app với nodejs thì không khác gì bạn build một trình duyệt cả. Nếu chỉ là app nhỏ thì không sao nhưng nếu vấn đề về performance được đề cao thì sẽ rất không ổn.
    Nodejs không phải là low level language nên khi chạy nó cũng sẽ không cho bạn hiệu suất lớn như bạn tưởng tượng đâu. Nếu bạn muốn dev nhanh thì cũng nên nghĩ lại vì code desktop app bằng nodejs cũng chưa chắc nhanh hơn code trên c+, c# hay python đâu. Nếu bạn có kỹ năng về các ngôn ngữ đó thì không nên dùng node còn nếu chỉ biết node thì có thể dùng node để làm thử, làm để test thì hay hơn.
    Bạn thử tưởng tượng, app mà cross platform ( not native ) thì tốt nhất nên là các app dạng restful và nên làm frontend là chủ yếu.
    Vấn đề về lưu trữ và xử lý dữ liệu nữa, desktop app của bạn sẽ lưu trữ như nào... liệu nó có thể stand alone không?

    mình tưởng là để xây dựng 1 cái giao diện đẹp 1 chút thì code bằng web sẽ nhanh hơn (và có thể là đẹp hơn) là code bằng C++/C#/Java chứ.
    trong quá trình mình build app thì với toàn bộ source chỉ có chưa đến 1MB. toàn bộ là code và vài cái thứ viện nhưng khi build thành app thì nó lên tới gần 100MB nên mình cũng hiểu điểm hạn chế của pp này, chỉ là các app như Visual Studio Code cũng được xây dựng theo cách này làm cho mình thắc mắc.

    Về bản thân mình thì hiện tại mình có chút kinh nghiệm về nodejs và front-end nhưng về C++/C#/Java hay các ngôn ngữ bậc thấp khác thì mới chỉ ở mức vô cùng căn bản.

    Theo mọi người thì Visual Studio Code có được coi là 1 app bự theo kiểu mà việc build desktop app bằng nodejs sẽ khiến cho nó nặng nề và chậm chạm quá mức cho phép thay vì code bằng C# hay các ngôn ngữ bậc thấp khác hay không ?

    Hiện mình đang có dự định làm 1 cái app không quá to như thằng VS Code nhưng cũng không phải là quá đơn giản đi. Nhất là các thao tác GET POST đến server mà làm bằng C++ hay C# thì quả thật là mù tịt và cảm thấy khá là khó khắn, nhất là khi càng ngày code càng bị các thư viện của nodejs nói riêng và js nói chung làm phụ thuộc...

    Nếu xét về đẹp thì trên C# cũng hỗ trợ nhiều UI framework lắm, giống như bạn dùng bootstrap hay material design vậy. Có điều khác là bạn phải cài qua nuget hay dynamic library và khi dùng thì phải gọi UI widget của nó thôi.
    Source code nói chung của nhiều ide thường chỉ bao gồm code và profile của project chứ chưa bao gồm required library (cái này khác với việc bạn include library trong php nhé). Nên khi build chắc chắn nó phải đính kèm cả các thư viện đó vào, dung lượng tăng nhiều là điều dễ đoán. Tuy nhiên vấn đề dung lượng không quan trọng bằng vấn đề hiệu suất. Ngôn ngữ bậc càng cao, càng dễ phát triển ứng dụng thì càng phải thông qua nhiều trình thông dịch hoặc biên dịch rất phức tạp.
    Visual studio code thì không phải app quá lớn nhé, nó dùng node để làm local apis, nếu app bạn chủ yếu GET, POST thì dùng node khong sao nhưng nếu liên quan đến render hoặc chạy multi threads thì nên xem xét lại.



  • @ngocphuongnb đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    @phamhongphuc đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    @ngocphuongnb đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    theo mình thì không nên build nhé, vì khi build desktop app với nodejs thì không khác gì bạn build một trình duyệt cả. Nếu chỉ là app nhỏ thì không sao nhưng nếu vấn đề về performance được đề cao thì sẽ rất không ổn.
    Nodejs không phải là low level language nên khi chạy nó cũng sẽ không cho bạn hiệu suất lớn như bạn tưởng tượng đâu. Nếu bạn muốn dev nhanh thì cũng nên nghĩ lại vì code desktop app bằng nodejs cũng chưa chắc nhanh hơn code trên c+, c# hay python đâu. Nếu bạn có kỹ năng về các ngôn ngữ đó thì không nên dùng node còn nếu chỉ biết node thì có thể dùng node để làm thử, làm để test thì hay hơn.
    Bạn thử tưởng tượng, app mà cross platform ( not native ) thì tốt nhất nên là các app dạng restful và nên làm frontend là chủ yếu.
    Vấn đề về lưu trữ và xử lý dữ liệu nữa, desktop app của bạn sẽ lưu trữ như nào... liệu nó có thể stand alone không?

    mình tưởng là để xây dựng 1 cái giao diện đẹp 1 chút thì code bằng web sẽ nhanh hơn (và có thể là đẹp hơn) là code bằng C++/C#/Java chứ.
    trong quá trình mình build app thì với toàn bộ source chỉ có chưa đến 1MB. toàn bộ là code và vài cái thứ viện nhưng khi build thành app thì nó lên tới gần 100MB nên mình cũng hiểu điểm hạn chế của pp này, chỉ là các app như Visual Studio Code cũng được xây dựng theo cách này làm cho mình thắc mắc.

    Về bản thân mình thì hiện tại mình có chút kinh nghiệm về nodejs và front-end nhưng về C++/C#/Java hay các ngôn ngữ bậc thấp khác thì mới chỉ ở mức vô cùng căn bản.

    Theo mọi người thì Visual Studio Code có được coi là 1 app bự theo kiểu mà việc build desktop app bằng nodejs sẽ khiến cho nó nặng nề và chậm chạm quá mức cho phép thay vì code bằng C# hay các ngôn ngữ bậc thấp khác hay không ?

    Hiện mình đang có dự định làm 1 cái app không quá to như thằng VS Code nhưng cũng không phải là quá đơn giản đi. Nhất là các thao tác GET POST đến server mà làm bằng C++ hay C# thì quả thật là mù tịt và cảm thấy khá là khó khắn, nhất là khi càng ngày code càng bị các thư viện của nodejs nói riêng và js nói chung làm phụ thuộc...

    Nếu xét về đẹp thì trên C# cũng hỗ trợ nhiều UI framework lắm, giống như bạn dùng bootstrap hay material design vậy. Có điều khác là bạn phải cài qua nuget hay dynamic library và khi dùng thì phải gọi UI widget của nó thôi.
    Source code nói chung của nhiều ide thường chỉ bao gồm code và profile của project chứ chưa bao gồm required library (cái này khác với việc bạn include library trong php nhé). Nên khi build chắc chắn nó phải đính kèm cả các thư viện đó vào, dung lượng tăng nhiều là điều dễ đoán. Tuy nhiên vấn đề dung lượng không quan trọng bằng vấn đề hiệu suất. Ngôn ngữ bậc càng cao, càng dễ phát triển ứng dụng thì càng phải thông qua nhiều trình thông dịch hoặc biên dịch rất phức tạp.
    Visual studio code thì không phải app quá lớn nhé, nó dùng node để làm local apis, nếu app bạn chủ yếu GET, POST thì dùng node khong sao nhưng nếu liên quan đến render hoặc chạy multi threads thì nên xem xét lại.

    khi nói về đẹp thì mình trong css không có dùng bootstrap hay material design nào cả, là code css riêng của mình chứ không phụ thuộc vào thư viện ( mặc dù nhiều người cũng nói mình là code tay nhiêu đó đủ rồi dùng thư viện đi là vừa, nó hỗ trợ tốt hơn cái mình làm ~ !! )
    -> ý mihf muốn nói là mình thích có thể thoải mái style theo ý mình ở mức tùy biến cao nhất mà code không quá phức tạp và mình tìm thấy điều đó ở web, chắc chắn tùy biến cao hơn nữa thì code các thằng như C# còn khủng hơn và nhẹ hơn nhưng chắn chắn là hiện tại vẫn chưa có đủ trình T_T

    App mình làm chủ yếu là GET, POST thôi , nếu không cần truy cập các tập tin trong ổ cứng thì chắc bây h nó chỉ là 1 app chrome mà thôi ~


  • Global Moderator

    mình nghĩ do bạn làm tốt web nên thấy tùy chỉnh style trong web dễ nhất đó, còn với mỗi nền tảng nó đều có điểm mạnh và yếu riêng. Mình thì thấy là web rất dễ tùy chỉnh style nhưng vấn đề là làm sao tổ chức nó hợp lý gọn gàng và dễ tùy biến khi app lớn lên nữa. Có thể do phần frontend mình yếu nên vẫn ngại làm style 😛



  • @phamhongphuc đã nói trong [Thảo luận] Liệu có nên build desktop app với Nodejs hay không?:

    mình muốn xác địn

    App slack cho desktop viết trên Electron. Nó phù hợp kiểu web apps. Khi đã có web app rồi bạn buil bản desktop để giúp người dùng có trải nghiệm tốt hơn. Nó cơ bản là thế.

    Bọn mình cũng mới viết xong dựa trên Electron này, đang Beta bạn thử nhé: https://subiz.com/vi/download.html


  • Sailor

    @mrokay Cái này làm bằng Electron à, hay thế. Giống y chang web ấy.



  • @katanhich đúng vậy, bản thân nó là web app, đem lại trải nghiệm mới cho người dung thôi.


Log in to reply