Tại sao không sử dụng HTML, CSS và JavaScript cho các ứng dụng trên máy tính để bàn? [đóng cửa]


17

HTML, CSS và JavaScript có thể được sử dụng để xây dựng các giao diện người dùng đẹp (và hữu ích) (đặc biệt là bây giờ chúng tôi có HTML5 và CSS3) và rất nhiều người đã biết đến chúng. Mặc dù nó vẫn nằm ngoài tầm với của tôi, việc mang toàn bộ ứng dụng web vào ứng dụng trên máy tính có khó khăn đến mức nào? Chúng tôi đã thử nghiệm ứng dụng trên các máy chủ cục bộ của mình trước khi lưu trữ chúng.

Theo tôi, đó là một ý tưởng đơn giản, tốt đẹp sẽ tạo ra sự bùng nổ trong các ứng dụng máy tính để bàn. Thêm vào đó, do các ứng dụng này sẽ chia sẻ rất nhiều mã với các ứng dụng web, chúng có thể cung cấp kết nối tốt hơn.

Tại sao nó không được thực hiện?


15
Không phải điều này vừa được công bố là Windows 8 sao?
ChrisF

Sry, không phải là người đam mê windows, điều tôi yêu cầu chính xác là một khung công tác nguồn mở để phát triển các ứng dụng máy tính để bàn dựa trên db có thể kết nối với mạng, và vâng, cuối cùng là một thứ gì đó phá cách từ ms
kapv89

Tại sao giấy không được sử dụng để chế tạo ô tô? (vâng, đó là thời gian tương tự xấu :))
haylem

@ChrisF Điều đó đã bao giờ được tung ra cho Windows 8 hay chỉ là sự cường điệu?
developerwjk

Câu trả lời:


30

Adobe đã làm điều đó với Adobe Air và Mozilla cũng với Prism . Google cũng đã cố gắng thu hẹp khoảng cách giữa máy tính để bàn và web với Google Gears .

Nhưng nói chung, các công nghệ web không phù hợp với nhiều loại ứng dụng máy tính để bàn, đây là một số lý do tại sao:

  • Không có quyền truy cập phần cứng đầy đủ ngay lập tức.
  • Không có quyền truy cập hệ thống cấp thấp.
  • Không có quyền truy cập hệ thống tập tin dễ dàng có sẵn (các công nghệ tôi đã đề cập ở trên cho phép bạn có quyền truy cập fs nhưng mỗi một trong số chúng là giải pháp khác nhau của chính nó).
  • Hiệu suất. Một ứng dụng gốc, được biên dịch thường nhanh hơn ứng dụng Javascript.
  • Dễ dàng cho một đối thủ để đánh cắp mã nguồn
  • Không có thư viện có sẵn cho các nhiệm vụ chuyên ngành. Ví dụ. xử lý hình ảnh, mã hóa âm thanh, truy cập cơ sở dữ liệu, lập trình mạng, v.v ...

Để công bằng, không phải tất cả các ứng dụng đều cần truy cập đầy đủ phần cứng hoặc cấp thấp. Các ngôn ngữ VM như Java chắc chắn hoạt động tốt mà không cần loại truy cập đó
TheLQ

6
Chà, bạn có biết nhiều ứng dụng Java trên máy tính để bàn không?
Yoni Roit

Thế còn javascript trên v8 của google, tôi đã đọc nó rất nhanh (nhanh như java), tôi có thể thấy sự khác biệt khi tôi chạy một hoạt hình js nặng trong chrome và các trình duyệt khác. Và với việc phát triển api cho html5, js thực sự mang lại rất nhiều cho bảng, với công cụ canvas, bạn có thể xử lý hình ảnh và tất cả ... vì vậy tôi không nghĩ js thực sự có bộ công cụ tồi đó, như một điểm cộng, nó là ngôn ngữ lập trình chức năng nhiều hơn, (các hàm là đối tượng hạng nhất)
kapv89

1
chỉ cần kiểm tra lăng kính (bây giờ là WebRunner) và bánh răng google, những thứ hay ho để tinker, cảm ơn
kapv89

3
@YoniRoit: Eclipse, Vuze, hệ thống đặt hàng dược sĩ của tôi ...
haylem

2

Khuôn khổ mà tôi nghĩ đến là Adobe Air. Nó cho phép các nhà phát triển web sử dụng Javascript / HTML để phát triển các ứng dụng máy tính để bàn. Bản thân Javascript / HTML không phù hợp với các ứng dụng dành cho máy tính để bàn vì thường thì ứng dụng máy tính để bàn sẽ cần quyền truy cập vào các dịch vụ do hệ điều hành cung cấp, ví dụ: mở tệp, khởi chạy các ứng dụng khác, v.v. Javascript không cho phép truy cập vào các dịch vụ đó vì vậy bạn cần một cái gì đó thêm và các khung như Adobe Air cung cấp thêm keo đó.


1

Có một vài cách để làm điều này bây giờ. Có Khung ứng dụng Mozilla thường được sử dụng bởi các trình duyệt web như Firefox nhưng cũng được sử dụng bởi, ví dụ, Komodo IDE của ActiveState .

Ngoài ra còn có Qt, trong Qt Quick có CSS ​​và ngôn ngữ giống như Javascript.


thật tuyệt, sẽ xem xét khung ứng dụng Mozilla
kapv89

1

IMO, tôi không chấp nhận HTML và CSS như một cách để bố trí GUI vì không có trình biên dịch nào tôi biết về các ngôn ngữ này. Nếu tôi gặp lỗi trong mã, tôi phải tự đi tìm hoặc thậm chí tôi có thể không nhận thấy nó (hoặc truy cập trang web HTML để kiểm tra).

Trong c ++ tôi thích rằng nó sẽ không cho phép tôi biên dịch trừ khi mã chính xác (ngoại trừ việc bắt các vấn đề về thời gian chạy).

Ngoài ra, tôi không tin CSS & HTML chơi rất tốt với nhau, chẳng hạn như sử dụng float trong CSS - tùy thuộc vào mã & sử dụng HTML của bạn - kết quả của float sẽ có kết quả khác nhau - thiếu tính nhất quán so với sử dụng định vị tuyệt đối trong win32 hoặc các trình quản lý bố cục Java Swing tuyệt vời.


3
Trình xác thực HTML và CSS về cơ bản sẽ thực hiện những gì trình biên dịch C ++ của bạn đang thực hiện: kiểm tra cú pháp và kiểm tra kiểu. Tôi tin rằng một số IDE mạnh mẽ đi kèm với các trình xác nhận như vậy.
Arnaud Le Blanc

1
Đối với phần định vị, CSS cũng có định vị tuyệt đối và HTML5 có nhiều hơn các trình quản lý bố cục của Swing. Một số trình soạn thảo cũng sẽ cho phép bạn thiết kế GUI theo kiểu WYSIWYG.
Arnaud Le Blanc

0

Một lý do chính là nếu bạn không muốn ứng dụng của mình dễ dàng bị đánh cắp và sao chép, bạn cũng sẽ phải tạo một ứng dụng chứa WebControl liên kết trực tiếp đến các tệp của bạn theo cách nào đó.
Trong thực tế, có những ứng dụng làm điều này. Titanium Appcelerator là một. Tôi không khuyên bạn nên sử dụng nó vì lần trước tôi nhìn vào nó có rất nhiều lỗi và được hỗ trợ rất kém. Bạn sẽ phải tự nghiên cứu xem nó có đáng không.


0

Hơi muộn một chút, nhưng nếu bạn sử dụng AsYouWish trong Firefox (hoặc tạo các tiện ích bổ sung cho Firefox nếu bạn không bận tâm đến việc nén các tệp của mình và kiểm tra bằng các công cụ của chúng), bạn có thể tạo các ứng dụng trong HTML có đặc quyền của máy tính để bàn. Nếu bạn sử dụng WebAppFind (chỉ dành cho Windows), bạn cũng có thể nhận các tệp trên máy tính để mở trực tiếp từ máy tính để bàn vào ứng dụng web (không cần kéo và thả).

Disclaimer: Những add-on (mã nguồn mở) này được tạo bởi tôi.


1
Bạn phải tiết lộ liên kết của bạn với sản phẩm mà bạn đang quảng cáo.
Rob W

0

Bạn có thể sử dụng Javascript, HTML và CSS để xây dựng ứng dụng cho Windows Store, Windows Phone và - tôi giả sử - XBox thông qua "Ứng dụng phổ quát". (Để rõ ràng, bắt đầu trong Visual Studio bằng File | Dự án mới ...)

Điều này đang sử dụng ở trên để xây dựng UX của bạn và mã ứng dụng chống lại việc triển khai các API gốc .

Đương nhiên, thay vì điều này được coi là một nỗ lực của Microsoft nhằm mở ra nền tảng cho nhiều nhà phát triển hơn, nó được coi là nhà phát triển dựa trên C # và XAML - tất nhiên họ không hiểu nhưng đó gần như không phải là một câu chuyện ... bất kể là gì đây không nhất thiết là các loại ứng dụng máy tính để bàn mà câu hỏi cho rằng chúng là bản địa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.