Friday, July 31, 2015

5 năm nữa và 15 dự đoán tương lai của lập trình

Chúng ta cùng nhìn vào quả cầu ma thuật để tìm xem tương lai lập trình sẽ đi về đâu trong 5 năm tới.


 dự đoán
Xu hướng công nghệ đang tiến rất nhanh, và các công cụ để xây dựng những công nghệ đó cũng liên quan mật thiết. Nếu bạn không ngẩng cao đầu để nhìn xa hơn những dự án hiện tại của mình thì có thể chính bạn rơi vào cái hố của lạc hậu.


Nhằm giúp bạn chuẩn bị cho một tương lai thay đổi một cách rất nhanh chóng, chúng ta cùng đưa ra các dự báo về lập trình trong vòng 5 năm tới sẽ ra sao. Tuy những dự báo này mang tính chủ quan và đôi khi không thật thuyết phục nhưng dù sao vài dự báo trong số nà chắc chắn sẽ thành sự thật.
JavaScript cho mọi thứ

JavaScript sẽ không chỉ là ngôn ngữ trong thế giới lập trình, nó dường như trở thành ngôn ngữ tất yếu. JavaScript tồn tại trong trình duyệt, là ứng dụng thống trị mọi máy tính hiện nay. Còn máy chủ thì sử dụng nó với các công cụ như Node.js.

JavaScript sẽ càng trở nên phổ biến hơn nữa trong các lĩnh vực khác. Nhất là đối với các nhà phát triển ứng dụng di động, vì họ muốn có được tốc độ xử lý nhanh như các ứng dụng HTML5. Có thể kết quả không gọn nhẹ như mã thực nhưng JavaScript đủ tốt và đủ tính di động để triển khai trên web.
Trình duyệt không chỉ thống trị trên điện thoại, mà trên mọi nền tảng. Chrome OS và Chrmoebook càng khiến cho các hệ điều hành trở nên lỗi thời. Tại sao phải lo lắng về lớp này lớp nọ khi mà JavaScript và trình duyệt có thể làm được mọi thứ rồi?

GPU sẽ là CPU tiếp theo

Game thủ thích card đồ hoạ, và những người dùng còn lại thì chạy theo game thủ. GPU ban đầu chủ yếu được sử dụng để xử lý các quy trình đồ hoạ nhưng các ứng dụng ngày nay không mấy liên quan đến khả năng xử lý hình ảnh nhưng đều được viết lại để tận dụng kiến trúc song song của GPU. Các nhà vật lý học sử dụng GPU để nghiên cứu vật chất; các nhà thiên văn học sử dụng GPU để giả lập dải ngân hà; các nhà sinh vật học lấy dữ liệu thông qua GPU để nghiên cứu về mật độ phân bổ sinh học. Những ứng dụng như vậy chỉ có thể trở nên phổ biến khi các bộ biên dịch nhận diện và có thể tận dụng được sức mạnh của GPU. Các công cụ chuyên ngành làm được điều này ở một chừng mực nào đó nhưng việc tận dụng GPU để làm nhiều việc khác sẽ ngày càng phổ biến hơn với người dùng thông thường. GPU không còn bó buộc vào xử lý đồ hoạ và các ứng dụng chuyên dụng nữa.

Android có mặt trên mọi thiết bị

Khi trình duyệt không giành được phần thắng thì Android sẽ ở ngay sau. Các nhà thiết kế máy chụp hình đang bị điện thoại có ống kinh tốt đe doạ. Mang Android vào máy chụp hình, bạn có thể chạy Instagram trên một chiếc máy ảnh Nikon. Cũng đã có tủ lạnh Android, dàn máy chơi nhạc Android trên xe hơi, TV chạy Android, thậm chí cả tai nghe chạy Android. Vài người than rằng giao diện UI quá phức tạp nhưng đó chỉ là một điểm nhỏ mà thôi. UI có thể được đơn giản hoá. Nếu Android chạy nền thì nền tảng này sẽ thống trị.

Ngoài ra, các nhà sản xuất PC cũng đang cân nhắc lại việc chạy hệ điều hành nào. Có thể chạy Android trên Windows và để cho người dùng sử dụng ứng dụng Android trên desktop. Vài PC chạy chương trình giả lập Android, còn vài nhà sản xuất khác đang tạo ra các thương hiệu kiểu như PC Plus. Một khi Android qua mặt PC thì có thể nó sẽ kết hợp với trình duyệt để đẩy ứng dụng Windows vào dĩ vãng.

Nguồn mở sẽ tìm cách lấn sân

Đối với những thành công mà nguồn mở mang lại, có thể kể đến như Android, Ubuntu hoặc MySQL, vẫn còn một vấn đề vướng mắc là doanh thu để hỗ trợ phát triển. Mã nguồn mở giúp ích cho tin tặc nhưng không có nhiều ví dụ về các công ty tạo một hệ sinh thái nguồn mở ổn định để các nhà lập trình có thể yên tâm kiếm tiền.

Rất nhiều công ty nguồn mở phân phối phiên bản được cho là tốt hơn so với phiên bản nguồn mở chính thức. Và những thứ tốt hơn đó lại là bí mật mã nguồn mà các nhà lập trình bên ngoài không sờ tới được. Cuộc sống là vậy. Tại sao bạn lại phải mua một con bò nếu bạn được miễn phí sữa? 

Internet of things - nhiều nền tảng

Một tác động phụ của Android (và Linux) khi chiếm lĩnh thế giới là càng ngày càng có nhiều thiết bị tham gia vào Internet of things. Trong nhiều nền tảng xuất hiện thì thứ quan trọng nhất sẽ là xe hơi. Định vị và mua sắm chỉ mới ở giai đoạn khởi đầu. Khi xe tự lái xuất hiện, các nhà phát triển sẽ có nhiều cơ hội hơn để kiếm tiền dựa vào tính năng địa điểm và thông tin.

Điều cốt yếu là phải định hình ra được tính năng nào là cần thiết cho mảng nào. Trong khi các hệ điều hành như Android đưa ra một nhân hợp nhất thì mỗi nền tảng sẽ cần có những tính năng tuỳ biến riêng. Đồ chơi robot có thể cần bộ lọc nội dụng để cung cấp nội dung phù hợp với lứa tuổi. Nhiệt kế sẽ muốn tương tác được với dịch vụ dự báo thời tiết. Tạo ra những API như vậy với tính năng phù hợp sẽ là yếu tố quyết định.

Ứng dụng web WordPress sẽ nổi lên

Sai lầm lớn nhất của chính quyền Obama là tạo các trang web bảo hiểm y tế từ đầu. Bây giờ chẳng ai làm kiểu đó. Tại sao phải ôm việc vào thân khi bạn có thể thêm một plug-in vào WordPress? Nếu bạn thích tự làm, bạn có thể làm với Joomla hoặc Drupal. Điểm đáng nói ở đây không phải là nền tảng nào, mà là có rất ít lý do để bạn tạo ứng dụng web từ đầu, vì nhiều tính năng có sẵn trong framework rồi, bạn chỉ việc lấy ra dùng.

Câu truyện này càng thú vị hơn khi bạn có thể chỉnh sửa mã nguồn. WordPress có công cụ biên tập tích hợp nên bạn có thể phát triển ngay trong WordPress. Không có trình sửa lỗi debugger nhưng bạn có thể giải quyết được chuyện này. Nếu WordPress có thêm một trình duyệt cơ sở dữ liệu tốt như PHPMyAdmin và có thêm vài công cụ sửa lỗi cơ bản thì quy trình phát triển sẽ nhanh hơn nhiều.

Plug-ins sẽ thay thế chương trình hoàn chỉnh

Các ứng dụng web cơ bản không phải chỉ là ứng dụng tận dụng sức mạnh của các snippet mã nguồn có trong một framework lớn hơn. Photoshop từng là engine thống trị về xử lý hình ảnh một phần là vì hệ sinh thái plug-ins của nó rất phong phú. Bây giờ, các ứng dụng như MagicHour tạo cho plug-in càng đơn giản hơn nữa. Hầu hết các nền tảng chính đều đưa ra API plug-in tốt, và nền tảng tốt nhất là nền tảng có hệ sinh thái lớn nhất với hàng ngàn module, thư viện và plug-ins.

Một hệ sinh thái phát triển có nghĩa là nhà lập trình sẽ viết nhiều snippet hơn và ít ứng dụng hơn. Một mã nguồn đúng hướng sẽ mạnh mẽ hơn cả triệu lần so với một ứng dụng tự viết hấp dẫn với hàng megabyte nhị phân. Một snippet nhỏ có thể nâng mọi thứ trong hệ sinh thái lên. Một ứng dụng lớn phải tự thân nó làm được mọi thứ.

Dòng lệnh muôn đời

Trong khi chuột máy tính tỏ ra dễ dàng hơn cho công việc nhưng sự thật là còn rất nhiều người vẫn sử dụng các công cụ soạn thảo văn bản và cửa sổ dòng lệnh. Vì vậy, trái với ý nghĩ của bạn, dòng lệnh vẫn sẽ tồn tại. Thức chất, nhiều công cụ hiện đại cũng chỉ làm việc qua cửa sổ dòng lệnh.

Dòng lệnh rất linh động và quá phổ biến nên không thể thay thế được. Giao diện đồ hoạ GUI đẹp đẽ, dùng chuột, kéo thả… rất tốt nhưng các nhà lập trình vẫn chuộng văn bản hơn.

Dễ dàng mô tả chính là yếu tố quan trọng mà cửa sổ dòng lệnh tồn tại được, và nó sẽ còn tồn tại vững bền bởi vì nó đơn giản và mạnh mẽ. Nếu bạn có một đoạn mã nguồn thì bạn có thể mở rộng nó và gắn nó với các đoạn mã khác dễ dàng.

Lập trình sẽ không dễ hơn

Trong suốt 50 năm qua, các nhà lập trình phải cố gắng để giúp người khác học được cách lập trình, và trong 50 năm đó họ đã thành công, nhưng chỉ ở những mức cơ bản nhất mà thôi. Do vậy mà vài nhà lập trình muốn đơn giản hoá lập trình đến mức ai cũng có thể học được.

Nhưng thực chất, lập trình đúng nghĩa có nghĩa là hiểu được những con số ẩn phía sau đang nhảy múa xung quanh chiếc hộp nhỏ. Có nghĩa là hiểu được những quy chuẩn để tạo ra phần mềm và để phân vùng trách nhiệm, để phần mềm có thể chạy một cách gọn gẽ. Dạy cho mọi người biết được thế nào là vòng lặp không phải là tồi nhưng đó chưa phải là cách tạo ra nhiều lập trình viên hơn.

Outsource và insource sẽ không thay đổi

Một dự đoán “chuẩn” là mọi công việc lập trình đều sẽ được đưa sang các quốc gia có chi phí rẻ.

Luật kinh tế rõ nét này vẫn cho thấy những công việc mang tính “tay chân” sẽ được những công cụ tự động hoá thay thế và các công việc sáng tạo “thực sự” sẽ dành cho những ai hiểu biết kinh doanh.

Cả hai dự báo trên có thể sẽ đúng. Các đội ngũ nhân viên outsource sẽ có thêm việc với mức lương thấp, song song đó là sự xuất hiện của nhiều công cụ tự động hoá. Có một số trang web thuê mướn nhân viên outsource giá rẻ với quy mô toàn cầu. Hiện cũng đã có một số trang web giúp doanh nghiệp có thể outsource từ 0 đến 60 lập trình viên mà không cần thuê nhân viên nào. Những công ty chuyên outsource sản phẩm sẽ thấy được ích lợi của việc outsource thay vì thuê mướn nhân viên với chi phí đắt đỏ nhưng không giúp được nhiều  cho việc kinh doanh.

Các nhà quản lý vẫn chưa phân biệt được tính khả thi giữa bản mockup và lập trình thực

Một trong những thảo luận đau đầu nhất là lắng nghe những người không phải là lập trình viên để làm theo yêu cầu của họ. Đôi khi, những yêu cầu đó có thể thực hiện được, nhưng thường thì nhà thiết kế và nhà lập trình không tìm được giải pháp chung vì người này muốn điều này nhưng người kia cho rằng không khả thi về mặt kỹ thuật.

Việc xung đột này có thể mất nhiều năm mới có thể giải quyết được, nhưng cách đơn giản hơn là thuê những nhà lập trình trẻ tuổi. Không thể nắm bắt được những công nghệ mới là một trong những lý do lớn khiến có sự phân biệt về tuổi tác. Giải pháp duy nhất là tìm một người lập trình nào đó khoảng tầm 22 tuổi.

Nhiều công ty tìm cách thuê mướn những tài năng trẻ vì họ làm việc như điên để tạo ra phần mềm ổn định, vừa đủ tính năng.

No comments:

Post a Comment