Như những người khác đã đề cập, đó là vấn đề đánh đổi và có kiến thức đúng đắn.
Cạm bẫy duy nhất bạn có thể muốn xem xét là: bạn đề cập trong câu hỏi của bạn rằng bạn thấy web có "đa nền tảng" là một lợi thế. Nhưng nó thực sự? Hãy nghĩ về nó theo cách này: nếu bạn phát triển một cái gì đó cho máy tính để bàn, bạn cần xác định danh sách các nền tảng và các yêu cầu của chúng để hỗ trợ.
Đừng nhầm lẫn, nó giống nhau cho web. Và mặc dù nó đã đơn giản hơn rất nhiều so với trước đây, nếu bạn thiết kế một ứng dụng công cộng rộng rãi, bạn sẽ phải đối phó với mọi phiên bản có thể có của mọi trình duyệt web ngoài kia. Và nếu đó là một ứng dụng doanh nghiệp nhiều hơn, thì hãy tự chuẩn bị và chuẩn bị để phác thảo các yêu cầu nền tảng trình duyệt được hỗ trợ của bạn rất chính xác.
Đừng nghĩ rằng bạn sẽ tránh có các bản hack dành riêng cho nền tảng ở đây và ở đó nếu bạn xây dựng một cái gì đó quan trọng.
Và sau đó là những phần thú vị. Điều gì là tốt nhất? Các trình duyệt tự cập nhật gần như trong suốt rất thường xuyên như Chrome? Hoặc những ứng dụng triển khai bảo mật chỉ cập nhật hàng tháng và các tính năng chính mỗi thời kỳ đồ đá (như IE)? Câu trả lời không rõ ràng như bạn nghĩ, bởi vì một số cập nhật "minh bạch" thường xuyên này có thể phá vỡ mã của bạn và bạn sẽ cần phải làm theo điều này và phản ứng kịp thời. Hoặc theo dõi phiên bản beta và dev trước khi phát triển và thử nghiệm. Đối với tất cả các trình duyệt mà bạn dại dột nói rằng bạn muốn hỗ trợ (chúc may mắn).
Oh và chúng ta đừng quên cân nhắc UI. Bạn cũng phải đối mặt với niềm vui khi quyết định xem bạn muốn có một giao diện người dùng nhất quán ACROSS tất cả các nền tảng mục tiêu của bạn hay một giao diện người dùng nhất quán VỚInền tảng mục tiêu của mỗi máy chủ. Xem tất cả các nút nhỏ mà bạn có thể xem trên các trang web? Bạn có muốn chúng giống hệt nhau ở mọi nơi hoặc tích hợp với môi trường được sử dụng bởi người dùng của bạn không? Tất nhiên vấn đề này không phải là mới và tồn tại đối với các mô hình phát triển khác, nhưng dường như nó quan trọng hơn ở đây, và phụ thuộc vào loại người dùng bạn nhắm mục tiêu và những gì họ mong đợi. Người dùng cuối công khai sẽ có xu hướng muốn bạn tích hợp với nền tảng của họ - nhưng vẫn sẽ muốn bạn "wow!" chúng với những thứ lạ mắt - trong khi người dùng doanh nghiệp sẽ muốn một cái gì đó trông giống như một ứng dụng máy tính để bàn. Và nền tảng di động đã có một chiều hướng mới cho tất cả điều này.
Đối với 2 đoạn cuối, đôi khi, một ý tưởng phổ biến là đóng gói trình duyệt web được cấu hình sẵn với trình cài đặt của bạn, sau đó kết nối với ứng dụng web của bạn (được lưu trữ cục bộ hoặc trên web). Thật tuyệt vời vì bạn kiểm soát tần suất cập nhật và bạn có thể "đóng băng" trạng thái và bạn biết chính xác những gì cần hỗ trợ và kiểm tra. Ngoài ra, bạn có thể thêm các nội dung thú vị như tiện ích mở rộng dành riêng cho người dùng. Chẳng hạn, việc đóng gói Chromium "đóng băng" bằng các Tiện ích mở rộng Chrome nhỏ mà bạn đã phát triển để giúp việc sử dụng ứng dụng web của bạn dễ dàng hơn đối với các loại người dùng khác nhau có thể cực kỳ tốt. Mặt khác ... bây giờ bạn phải chịu trách nhiệm nếu vi phạm bảo mật xảy ra do bạn đóng băng chu kỳ phát hành và ứng dụng của bạn sẽ không được hưởng lợi từ việc cải thiện tốc độ (nếu có).
Giống như nhiều thứ, đó là một cái rìu hai lưỡi.
Lưu ý: Tôi có khuynh hướng mạnh mẽ đối với web vì về cơ bản là một đống lớn các công nghệ nửa nướng (và tôi lịch sự ở đây), xuống các lớp OSI, trên đó chúng tôi tiếp tục thêm các lớp rác rưởi che giấu các vấn đề bên dưới mà không thực sự giải quyết hoặc sửa chúng.
Điều đó đang được nói, tôi ủng hộ web vì bản chất phổ biến của nó như là một nền tảng. Tôi nghĩ rằng động thái của công ty bạn (có lẽ) là đúng. Nó phụ thuộc vào thị trường mục tiêu của bạn và các nền tảng bạn nhắm đến, rõ ràng. Nếu bạn muốn trưng bày một cái gì đó như một dịch vụ, thì có lẽ bạn nên đi (mặc dù điều đó cũng không cần thiết). Nếu bạn không, thì có lẽ không có nhiều lý do cho nó.
Hmm, và mong đợi một số phát triển thú vị trong tương lai bây giờ khi các biến thể nhẹ hơn của các hệ điều hành hiện tại tiếp tục sinh sản cho môi trường di động (netbook, điện thoại thông minh, PDA, máy tính bảng, sách điện tử ...), chú trọng hơn vào việc sử dụng các trình duyệt nhúng nhẹ. .. nhưng với tất cả các chia sẻ mới của họ về kết xuất giao diện người dùng.
Về các công nghệ dựa trên plugin ... Tôi muốn nói tránh xa chúng. Họ sẽ tăng cường sức mạnh cho ứng dụng của bạn, nhưng sẽ hạn chế thâm nhập thị trường. Trong một số trường hợp, bạn sẽ thấy nó là một điểm cộng về mặt hỗ trợ đa nền tảng, cho đến khi một nền tảng mới đột nhiên từ chối hỗ trợ chúng. Các tiêu chuẩn web có ở đây vì một lý do (hãy cẩn thận đừng quá phấn khích về mọi thứ trong HTMl5, hoặc nó có thể sẽ nổ tung trên mặt bạn).
EDIT: những thứ khác để xem xét ...
Tuyển dụng
Rất khó để tìm các nhà phát triển web có kiến thức. Bạn có thể nghĩ rằng có một đàn trong số họ, nhưng họ bị lạc trong một nhóm lớn những người khá bất tài, những người nghĩ rằng đã quản lý để viết 700 dòng JavaScript / ECMAScript để thực hiện một số xác thực trong biểu mẫu của họ là kết thúc và là tất cả những gì có thể đạt được về các kỹ năng cấp cao.
Tôi không đùa, gần đây câu hỏi đầu tiên của tôi cho tất cả các cuộc phỏng vấn phát triển web là làm thế nào để khai báo một biến, và sau đó có khác nhau giữa việc sử dụng var
hay không (tùy thuộc vào cách họ trả lời). Thật là chán nản. Tôi thấy việc tìm một nhà phát triển web trung bình hoặc nâng cao khó hơn rất nhiều so với tìm một nhà phát triển máy tính để bàn trung bình hoặc nâng cao.
Nhận thức
Sẽ không ai coi bạn là nghiêm túc khi bạn nói "Tôi là nhà phát triển web". Nó dành cho một lớp con lập trình viên, nhà phát triển, phải không? Những người bạn bỏ qua và chế giễu từ xa, và đừng tham gia khi họ đi lấy cà phê. :)
Điều này rõ ràng là không đúng sự thật, nhưng nó xuất phát từ thực tế là bạn phát triển cho một môi trường chủ yếu được quản lý cho bạn. Các trình duyệt sửa lỗi đánh dấu bị vặn, kiểu vặn vít của bạn và thậm chí sẽ sửa kịch bản bị vặn cho một số trong số chúng, và tối ưu hóa nó cho bạn nếu bạn muốn. Và nếu bạn là một nhà phát triển web, mọi người sẽ không cho rằng bạn có đầu mối về lập trình cấp thấp hơn, vì vậy bạn phải là một thằng ngốc hoàn toàn, phải không?
Và sau đó họ nhận ra ECMAScript phức tạp đến mức nào, nhưng sẽ từ chối xem xét ý kiến của họ. Bởi vì đó là web. Chúng tôi không thích nó về bản chất, chúng tôi chỉ thích những gì nó cho phép chúng tôi làm.