Có bất kỳ giới hạn nào của ứng dụng web HTML5 lý tưởng không


11

Giả sử hai giả định sau đây là đúng.

  • Toàn bộ cơ sở người dùng của bạn có quyền truy cập băng thông rộng ở mọi nơi
  • Có một trình duyệt X tưởng tượng thực hiện toàn bộ đặc tả dự thảo của các nhóm HTML5 và WHATWG, một cách nhất quán và tất cả người dùng sử dụng trình duyệt X.

Những hạn chế nội tại của một ứng dụng web HTML5 công cộng thương mại mà chúng ta cần các ứng dụng máy tính để bàn công cộng thương mại là gì?

Tôi quan tâm đến những hạn chế của các ứng dụng web không có plugin không dựa vào cầu nối Flash / Java / SilverLight / etc cho các tính năng bổ sung cũng như không dựa vào plugin trình duyệt để có các tính năng bổ sung.

Những hạn chế có thể không áp dụng:

  • Cơ sở dữ liệu? Chúng tôi có WebQuery và indexedDB.
  • Tập tin IO? Chúng tôi có API tệp HTML5, cả đọc và viết.
  • Tốc độ? Với cuộc đua công cụ JavaScript gần đây, trình duyệt không còn chậm nữa. C ++ bản địa chỉ nhanh hơn 3 lần so với động cơ V8 của chrome.
  • Công cụ phát triển? Web đã trưởng thành và có một loạt các công cụ có sẵn mà quá nhiều để liệt kê.
  • Nguồn đóng? Vâng, tất cả các mã là nguồn mở. Đây là con dao hai lưỡi và có nhiều ý kiến ​​về việc sử dụng mã nguồn mở hoặc mã nguồn mở. Cá nhân tôi tin rằng những lợi thế của mã nguồn mở lớn hơn những nhược điểm.
  • JavaScript / HTML5? Những tranh luận về sở thích "Cá nhân tôi nghĩ rằng HTML5 và EcmaScript là những nền tảng phát triển khủng khiếp" không được tính.

Giới hạn đã biết:

  • Mã thời gian thực / bảo mật (tối mật) không thuộc về web và cũng không thể. Nó cần phải được viết ở mức độ thấp, ngôn ngữ có thể kiểm soát cao như C hoặc C ++.
  • Bất kỳ công cụ nào cần tương tác với phần cứng của bên thứ 3 nước ngoài được gắn vào máy tính của bạn sẽ gặp khó khăn khi nói chuyện với ứng dụng web của bạn.

Ngoài ra còn có một bộ các chương trình không thuộc về web. Hệ thống hoạt động, trình điều khiển, phần mềm máy chủ, API cấp thấp. Tôi biết điều đó nhưng tôi không phân loại chúng là các ứng dụng "thương mại công cộng", đây là loại phần mềm có thể được cài đặt sẵn trên máy tính.

Ở một khía cạnh khác, tôi biết hai giả định là phi thực tế khủng khiếp, nhưng chúng ta có thể đạt được chúng trong 5/10/20/30 năm. Tôi quan tâm đến loại ứng dụng và tính năng của các ứng dụng khiến chúng hoàn toàn không tương thích với web.

Động lực:

Quan điểm:

Đưa ra các vấn đề trong đó một ứng dụng máy tính để bàn là một giải pháp hợp lệ.

  • Tại sao một ứng dụng web không phải là một giải pháp hợp lệ?
  • Làm cách nào để xác định liệu tôi có thể sử dụng ứng dụng web làm giải pháp hay không.

Tôi đã cố gắng loại bỏ những khó khăn chính với các ứng dụng web (kết nối internet và hỗ trợ trình duyệt) bằng cách khẳng định chúng không tồn tại.

Ngoài ra, các ứng dụng ngoại tuyến HTML5 và Modernizr đang đi đúng hướng để giải quyết cả hai vấn đề đó.

Những khó khăn khác với phát triển ứng dụng web là gì?


2
Giới hạn chính: một ý tưởng tốt cho ứng dụng web đủ người sẽ muốn sử dụng, kết nối với mô hình kinh doanh ít nhất sẽ trả lại chi phí. Phần còn lại là thứ hai xa.
SF.

"Những hạn chế nội tại" là gì? Bạn có ý nghĩa gì bởi "giới hạn nội tại"? Những từ đó có nghĩa là gì? Bạn muốn thông tin gì? Bạn gặp vấn đề gì? Câu hỏi là gì?
S.Lott

@SF xóa từ "web". Bạn cần một vấn đề và một giải pháp. Nếu giải pháp đó là một ứng dụng thì nó cần giải quyết vấn đề, có cơ sở người dùng và có một mô hình kinh doanh sẽ hoạt động. Tôi chỉ so sánh tập hợp các vấn đề có ứng dụng máy tính để bàn là giải pháp và đặt câu hỏi tại sao ứng dụng web sẽ không hoạt động.
Raynos

@ S.Lott chính xác của bạn, câu hỏi quá mơ hồ, tôi hy vọng tôi đã làm rõ câu hỏi thực sự là gì.
Raynos

Gì? "Những hạn chế nội tại của một ứng dụng web công cộng thương mại mà chúng ta cần các ứng dụng máy tính để bàn công cộng thương mại là gì?" Điều này có nghĩa là "Khi nào chúng ta cần máy tính để bàn vì web sẽ không hoạt động?" Nếu vậy, tất cả trong số này là các bản sao: programmers.stackexchange.com/search?q=desktop+web
S. Lott

Câu trả lời:


11

Khỏi đầu tôi ...

  • truy cập phần cứng độc quyền xuất I / O của nó bằng các phương tiện khác ngoài tệp. Là thiết bị khoa học, máy móc công nghiệp hoặc máy ghi đĩa CD thông thường và máy tính bảng số hóa có hỗ trợ nghiêng.
  • chỉ HTTP và một gia đình nhỏ của các giao thức khác. Bạn không thể tạo ổ cắm như bạn muốn, chuyển bất kỳ dữ liệu nhị phân nào bạn muốn. Điều đó hạn chế rất nhiều kết nối với các hệ thống và dịch vụ khác.
  • Không có nhà phát triển lành mạnh nào sẽ tạo ra trò chơi chuyên sâu về đồ họa trong Javascript. Băng thông rộng gần như không thể so sánh với thông lượng DVD / HDD thường cần. Hỗ trợ 3D trong Canvas kém hơn nhiều so với những gì bạn nhận được với các công cụ trò chơi. Không có cách nào để hỗ trợ cần điều khiển, nhiều phím bấm đồng thời, tính chất mở giúp gian lận dễ dàng. Nhưng chủ yếu, hiệu suất giảm không được chấp nhận.
  • Hộp cát nặng. Bạn sẽ không nhận được những thứ tích hợp sâu vào HĐH. Ảnh chụp màn hình, chống vi-rút, ổ đĩa ảo, tác vụ nền a'la khay hệ thống, tác vụ quản trị, v.v.
  • không thể là nhiệm vụ quan trọng. Tùy thuộc vào băng thông rộng mọi lúc để chạy phần mềm cơ bản của họ không phải là cách ưa thích mà hầu hết các công ty muốn chạy.

1
2. WebSockets hiển thị một ổ cắm TCP. Bạn không có quyền truy cập vào UDP trong trình duyệt nhưng TCP cung cấp cho bạn nhiều tùy chọn hơn.
Raynos

2
3. WebGL đang thực hiện một số tiến bộ thú vị. Hỗ trợ OpenCL gần đây đã bắt đầu. Chắc chắn rằng nó vẫn còn 5 năm sau khi phát triển trò chơi trên máy tính để bàn nhưng nó bắt đầu trở nên khả thi.
Raynos

2
@Raynos: WebSockets sẽ cung cấp chức năng giống như socket nhưng yêu cầu bắt tay cụ thể, bạn không thể dễ dàng điều chỉnh nó với các hệ thống hiện có, bạn cần sửa đổi phía máy chủ. Có nghĩa là không có ứng dụng web khách ssh chung. WebGL có thể giải quyết một số vấn đề về gfx, vẫn chưa có giải pháp cho các yêu cầu dữ liệu hàng loạt (gigabyte kết cấu và mắt lưới), I / O của bộ điều khiển, cũng hỗ trợ âm thanh hiện kém.
SF.

1
4. API thiết bị W3C (mà tôi không biết) thực sự chắc chắn đang trên đường giải quyết các vấn đề về hộp cát.
Raynos

1
Nhiều thứ đã thay đổi kể từ lần đầu tiên bạn viết câu trả lời này. Trình duyệt đã trở thành một nền tảng phần mềm hợp pháp theo cách riêng của mình; phần lớn những gì bạn mô tả trong câu trả lời của bạn bây giờ là có thể. Vâng, tôi có thể tưởng tượng khá nhiều bất kỳ trò chơi hoặc ứng dụng nào đang chạy trên trình duyệt, với nỗ lực vừa đủ.
Robert Harvey

3

Về cơ bản, bất cứ điều gì có thể phù hợp với mô hình máy chủ / máy khách đều có thể tạo ra một ứng dụng web tốt và thực tế thì điều ngược lại cũng có thể nói là đúng. Xu hướng chuyển sang web đã diễn ra rất nhanh bởi vì khi thấy hầu hết các chương trình có thể được mô hình hóa thành Model / Bộ điều khiển / Chế độ xem, các chương trình có thể tách mô hình và bộ điều khiển khỏi chế độ xem.

Tất nhiên vì lý do hiệu quả, một số bộ điều khiển cũng được đặt ở phía máy khách để tránh làm quá tải máy chủ với các yêu cầu và dữ liệu sai.

Mặc dù quan điểm của tôi là: những chương trình nào không phù hợp với mô hình / bộ điều khiển / xem kiến ​​trúc phần mềm, vì chúng có thể là những chương trình không bao giờ được chuyển đổi thành ứng dụng web. Các ví dụ điển hình xuất hiện trong tâm trí là hệ điều hành, lập lịch tác vụ, nhắc lệnh, chống vi-rút, bảo vệ phần mềm gián điệp. Mỗi một trong số đó có thể không được triển khai trên một trang web vì nó không phù hợp với mô hình. Và không phải ngẫu nhiên mà mỗi một trong những chương trình này phụ thuộc rất nhiều vào hệ thống của bạn. Hầu hết yêu cầu truy cập trực tiếp vào phần cứng trong khi những người khác chỉ yêu cầu bảo mật cao hơn để có thể chạy và không thể tin cậy để được thực hiện bởi các trang web internet.

Tất nhiên, Google hoàn toàn thích ứng lại khái niệm này với hệ điều hành mới của họ. Giả sử, không giống như Windows, nó không chỉ đơn giản là một hệ thống phát triển để sử dụng internet mà là một hệ thống phụ thuộc rất nhiều vào nó. Bạn sẽ sớm thấy tất cả các chương trình này được cung cấp trực tuyến, cho phép truy cập vào phần cứng và phần mềm của bạn, được cung cấp xác thực chứng chỉ nghiêm ngặt để ngăn chặn bất kỳ trang web nào có thể làm như vậy nhưng các trang web đáng tin cậy. Tôi lo lắng khi thấy những gì họ nghĩ ra, vì tôi nghĩ sau 20 năm nữa, máy tính sẽ không còn được sản xuất với phần mềm có thể cài đặt được nữa. Thay vào đó tất cả các dịch vụ sẽ có sẵn trực tuyến.


0

• Bất kỳ công cụ nào cần tương tác với phần cứng của bên thứ 3 nước ngoài được gắn vào máy tính của bạn sẽ gặp khó khăn khi nói chuyện với ứng dụng web của bạn.

Phần mềm tôi đang làm việc hiện có một khía cạnh máy tính để bàn cũng như một khía cạnh dựa trên web chính xác bởi vì nó cần thu thập dữ liệu từ các thiết bị ngoại vi của bên thứ ba. Nhu cầu phát triển cho trình điều khiển và chương trình máy tính để bàn của khách hàng để thu hẹp khoảng cách giữa Thiết bị và Web.

Tuy nhiên, điều này không loại trừ các ứng dụng web vì các loại ứng dụng máy tính để bàn này có thể mỏng với logic nằm chủ yếu trên máy chủ.

Mặt khác, người ta có thể nói với khía cạnh của điện toán đám mây và ảo hóa hàng loạt rằng không có ứng dụng nào nhất thiết phải bị hạn chế bởi các hạn chế và lỗ hổng bảo mật của công nghệ web. Chạy các ứng dụng máy tính để bàn từ môi trường ảo hóa trên thiết bị đầu cuối câm (Giống như Citrix) đã trở nên dễ dàng hơn để đạt được và có thể là "mốt" phát triển tiếp theo.

Điểm mấu chốt là có nhiều sự lựa chọn hơn bao giờ hết và nhiều người nói nhiều hơn chơi công nghệ của ngày mai là cách "tốt nhất".


1
Thật thú vị, bạn có thể chạy các ứng dụng máy tính để bàn từ môi trường ảo hóa trên trình duyệt web. Tính năng cổ xưa của hầu hết các máy chủ VNC là một applet Java của trình xem VNC, có sẵn theo mặc định trên http: // [máy từ xa]: 5800 / Vậy - ứng dụng máy tính để bàn như ứng dụng web?
SF.

0

Giả sử hai giả định sau đây là đúng.

  • Toàn bộ cơ sở người dùng của bạn có quyền truy cập băng thông rộng ở mọi nơi
  • Có một trình duyệt X tưởng tượng thực hiện toàn bộ đặc tả dự thảo của các nhóm HTML5 và WHATWG, một cách nhất quán và tất cả người dùng sử dụng trình duyệt X.

Những hạn chế nội tại của một ứng dụng web HTML5 công cộng thương mại mà chúng ta cần các ứng dụng máy tính để bàn công cộng thương mại là gì?

Tôi quan tâm đến những hạn chế của các ứng dụng web không có plugin không dựa vào cầu nối Flash / Java / SilverLight / etc cho các tính năng bổ sung cũng như không dựa vào plugin trình duyệt để có các tính năng bổ sung.

Ok, đây là chà: Trình duyệt đó về bản chất sẽ không an toàn. Vì vậy, bạn đang yêu cầu chúng tôi thực hiện một sự đánh đổi giữa hai người. Tuy nhiên, vượt qua điều đó và giả sử rằng chúng tôi có javascript (mà bạn đã ám chỉ trong bài đăng của mình) thì câu trả lời là không có ứng dụng nào không thể được viết chỉ bằng HTML5 / Javascript. Tuy nhiên, chúng tôi cho rằng một trình duyệt không gây cản trở.

Thứ này có một cửa hàng db cục bộ, có thể thực hiện các cuộc gọi đến bất kỳ nền tảng nào khác bằng cách sử dụng các yêu cầu HTTP (mà RESTafarian sẽ cho bạn biết là đủ) và có thể rút ra (thông qua Canvas) bất cứ thứ gì bạn muốn. Đã có các trò chơi 3D được viết bằng các tiêu chuẩn mở (OpenGL ish) và có các API để làm bất cứ điều gì bạn muốn.

Hạn chế thực sự duy nhất là tốc độ. Sẽ mất thời gian để thực hiện các cuộc gọi API HTTP đến các hệ thống (cơ sở dữ liệu) khác. Sẽ mất thời gian để xử lý các yêu cầu FILE (COM1 :) (để đọc qua một thiết bị nối tiếp trên Windows chẳng hạn) vì vậy đó là những vấn đề tôi mong đợi. Tất nhiên, tôi cũng cho rằng các trình điều khiển được viết để được truy cập như các tệp, điều mà tôi khá chắc chắn là không còn đúng nữa. Nhưng họ có thể phơi bày một cơ chế như vậy;)

Đối với người dùng, không có nhiều khác biệt.

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.