Lập trình viên Flash không phải là Anti-iFan

Ủng hộ và chống – đó là 2 mặt của một vấn đề. Nó cũng như sự biện chứng không thể tách rời. Có người yêu thì cũng có người ghét Apple. Và đối với Adobe cũng không có ngoại lệ. Topic này đã khá dài và nóng, và theo tôi phần lớn các comment của 2 bên đều chỉ cố gắng bảo vệ cho sản phẩm, công nghệ mà mình yêu thích mà hầu như không đưa ra một lý do nào có tính thuyết phục cho quan điểm của mình.

IPhone là một sản phẩm của Apple và tất nhiên họ có quyền quyết định sẽ hỗ trợ công nghệ gì trong đó. Tất nhiên là khi không hỗ trợ những công nghệ phổ biến – cụ thể là Flash thì Apple trong vai trò là một nhà sản xuất phải có những giải thích hợp lý đối với thượng đế của họ – các iFans – người dùng sản phẩm của iPhone. (chắc hẳn các iFans cũng sử dụng Flash khi dùng MAC OS chứ ?) . Tuy nhiên cách giải thích của Steve Jobs dường như không đủ sức thuyết phục, chính vì thế mới có hàng cái topic hot như thế này

Ở đây chúng ta nên tập trung vào 2 vấn đề chính:
1 – Flash cho nền tảng mobile
2 – Flash cho nền tảng desktop

Nếu không phân biệt ra 2 platform (nền tảng) rõ ràng thì không có tranh cãi mà chỉ có cãi nhau, thậm chí cãi nhau bằng lý sự cùn.

Thứ nhất: Về nền tảng mobile

Đến thời điểm hiện tại thì các phiên bản Flash Player cho Mobile vẫn chỉ là Flash Lite – phiên bản mới nhất là Flash Lite 3.1 và nó cũng chỉ hỗ trợ đến Action Script 2.0 mà thôi. So với Action Script 3.0 thì Action Script 2.0 lại hạn chế rất nhiều, giới lập trình viên Flash không mặn mà lắm với ActionScript 2.0. Điều này có nghĩa là nếu bạn duyệt một Flash Site được viết bằng ActionScript 2.0 thì phần lớn sẽ không có sự khác biệt khi duyệt trên desktop và Mobile. Ngoài ra các mini Flash Game viết bằng Action Script 2.0 gần như là chơi được hoàn toàn trên mobile. Tôi không khẳng định có sự tương thích 100% giữa các game, flash site viết bằng Action Script 2.0 trên desktop và trên Mobile, lý do là có một số APIs (Application Programming Interface) của Flash Player trên desktop không tồn tại trên Flash Player Lite cho Mobile và cấu tạo bàn phím của cả 2 cũng khác nhau khá nhiều.

Khi nhận được một yêu cầu làm web hay game đòi hỏi sự tương thích giữa desktop và Mobile, tôi thường tách ra 2 phiên bản – một cho desktop và một cho Mobile. Với mỗi phiên bản, tôi sẽ báo rõ cho client (khác hàng) những khác biệt và hạn chế. Đơn giản đây là 2 nền tảng khác nhau, 2 loại thiết bị khác nhau nên phần mềm sẽ phải có sự khác nhau. Phần lớn người sử dụng không biết điều này, và cũng do để tiết kiệm chi phí nên khi đặt hàng các sản phẩm Flash, họ thường bỏ qua đề nghị làm thêm các phiên bản cho mobile. Điều này mang đến những trải nghiệm khá tồi tệ khi người dùng sử dụng cùng một sản phẩm Flash trên Mobile và desktop (tất nhiên là họ sẽ so sánh) . Cũng phải nói thêm về mặt kỹ thuật – do bộ nhớ và năng lực xử lý của mobile devices cũng có giới hạn nên việc cần phải làm riêng một phiên bản cho mobile là điều cần thiết – nhất là chuyện optimize (tối ưu hóa) việc sử dụng bộ nhớ.

Như vậy, công nghệ Flash, cho đến thời điểm này vẫn tồn tại quá nhiều thứ cho cả giới lập trình và người sử dụng, và cả các công ty muốn đưa Flash vào sản phẩm của mình. Adobe cũng thừa biết điều này, cho nên họ đang ngày đêm hoàn thiện Flash Player 10.1 – phiên bản Flash Player tương thích với cả mobile devices và desktop. Cho đến khi có phiên bản chính thức, chúng ta hãy hi vọng Adobe sẽ làm tốt.

Và tôi xin hỏi những người chê bai Adobe, những người dùng iPhone, iPad hô hào không cần duyệt Flash – các bạn sẽ phản ừng ra sao nếu phiên bản tiếp theo của Flash Player hoạt động trơn tru trên các nền tảng như Android, Symbian ?

Thứ hai: nền tảng desktop

Những người làm việc với Flash – cụ thể là các lập trình viên Flash đều biết chuyện yếu kém của Flash Player – đó là vấn đề memory leak (rò rỉ bộ nhớ) và nguyên nhân gây treo máy khi “mở nhiều tab” là có thật. So với các công nghệ khác như Java, .NET thì rõ ràng đây là sự thua thiệt của Flash. Tuy nhiên các lập trình viên có kinh nghiệm đều cố gắng tránh điều này và sản phẩm họ làm ra đều chạy tốt. Tất nhiên cái gì cũng phải tồn tại những khuyết điểm – Flash cũng không nằm ngoài ngoại lệ này. Quan trọng vẫn là khả năng của lập trình viên chứ không phải là công nghệ quyết định tất cả.

Cá nhân tôi không chê Apple, cũng không ghét Steve Jobs. Tôi cũng đã từng hy vọng rất nhiều việc Flash sẽ được đưa vào iPhone, iPad vì đơn giản đó là những sản phẩm gây hứng thú và việc trải nghiệm các sản phẩm Flash trên đó sẽ là rất tuyệt vời.  Tuy nhiên cách phản ứng mù quáng của các iFans và những người ghét Adobe làm tôi rất băn khoăn. Tôi chỉ tự hỏi là khi các bạn chê bai nó, các bạn có hiểu biết gì Flash chưa hay chỉ hùa theo phong trào ?

Giới công nghệ đã từng nghĩ là Flash sẽ chết từ thời DHTML mới ra đời, rồi đến Java FX, Silverlight … và nay là HTML5. Tuy nhiên công nghệ Flash vẫn tồn tại đấy thôi. Chuyện HTML5 có “giết” được Flash không thì tương lai sẽ trả lời.

Một thời gian ngắn làm ở một công ty chuyên về Mobile Game – cụ thể là họ làm game cho iPhone, tôi thấy họ đang viết lại khá nhiều Game vốn đã được viết trên Flash. Các lập trình viên của họ cặm cụi chuyển từng dùng code được viết từ Action Script 2.0, 3.0 sang objective C cho iPhone và gặp rất nhiều khó khăn. Tôi dừng ở đây và không bình luận thêm nữa.

Bài viết này được tôi post ở forum tinhte.com – Link tranh luận tại đây

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s