11 21 xu hướng lập trình "nóng" và "lạnh"

Các lập trình viên thường nhạo báng thế giới thời trang thay đổi xu hướng xoành xoạch. Váy dài rồi ngắn, điểm chấm có rồi không, cà vạt to rồi nhỏ. Còn trong thế giới công nghệ, sự chặt chẽ, khoa học và luật lệ chính xác không có chỗ cho sở thích theo mùa.

Điều đó không có nghĩa lập trình là nghề không có xu hướng. Điều khác biệt là những xu hướng lập trình được dẫn dắt bởi tính hiệu quả cao hơn, khả năng tùy biến nhiều hơn và dễ sử dụng hơn. Các công nghệ mới cung cấp một hoặc nhiều đặc tính này làm lu mờ các thế hệ trước. Đây là thế giới của tài năng chứ không phải đồng bóng.

Sau đây là danh sách những xu hướng “nóng” và “lạnh” trong giới lập trình viên hiện nay. Không phải ai cũng đồng ý danh sách này và đó chính là điều làm cho nghề lập trình luôn hấp dẫn: thay đổi nhanh chóng, tranh luận sôi nổi, trở lại đột ngột.

Nóng: Tiền xử lý (preprocessors)
Lạnh: Ngôn ngữ vạn năng (full language stacks)

Không lâu trước đây những người tạo ra ngôn ngữ lập trình mới phải xây dựng đủ mọi thứ nhằm biến mã lệnh thành các bit (0 hay 1) để đưa vào chip silicon. Sau đó, ai đó nghĩ ra ý tận dụng thành quả trước đó. Giờ lại có ý tưởng thông minh chỉ cần viết một bộ tiền xử lý biên dịch mã lệnh mới thành ngôn ngữ mã máy dựa trên tập thư viện và tập hàm API phong phú.

Các ngôn ngữ kịch bản như Python hoặc JavaScript từng bị giới hạn chỉ dùng cho các dự án nhỏ, nhưng giờ chúng đang là nền tảng phát triển ứng dụng quan trọng. Những người không thích JavaScript thì tạo ra CoffeeScript, một bộ tiền xử lý cho phép viết code mà không phải vất vả ngắt dòng. Có hàng tá các biến thể phân tích và đoán cú pháp theo cách khác nhau.

Groovy, một phiên bản đơn giản của Java không buộc phải ngắt dòng. Hàng chục ngôn ngữ như Scala hoặc Clojure chạy trên máy ảo Java (JVM), nhưng JVM thì chỉ có một. Máy ảo của .Net cũng cho phép chạy nhiều ngôn ngữ. Vậy nên đâu cần phải phát minh lại bánh xe!

Nóng: Docker
Lạnh: Hypervisor

Điều này không đúng lắm. Các hypervisor (hệ thống ảo hóa) có chỗ đứng của chúng, và nhiều môi trường đóng gói (docker container) chạy bên trong hệ điều hành trên hệ thống ảo hóa (hypervisor). Tuy nhiên, môi trường đóng gói nhỏ hơn rất nhiều so với “ảnh” máy ảo, dễ sử dụng và triển khai hơn.

Khi có thể, các nhà phát triển thích chuyển giao chỉ môi trường đóng gói, do dễ dàng tùy biến trong quá trình triển khai. Các công ty như Joyent đang tìm cách rút gọn môi trường đóng gói sao cho có thể chạy trên “hệ thống tối thiểu”, như lời họ nói.

Nóng: Nền tảng JavaScript MV* frameworks
Lạnh: Tập tin JavaScript

Rất lâu trước đây, mọi người học viết Javascript để bật lên hộp thông báo hoặc kiểm tra xem địa chỉ email nhập vào có chứa dấu @ hay không. Giờ các ứng dụng HTML Ajax (dựa trên JavaScript) tinh vi đến mức chỉ ít người có thể viết từ đầu. Sử dụng một nền tảng có sẵn và viết một ít mã tham chiếu để thực hiện logic nghiệp vụ thì đơn giản hơn. Hiện có hàng chục nền tảng như Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS… tất cả đều có thể xử lý các sự kiện và nội dung cho các ứng dụng web và trang web.

Ngoài ra còn có một số biến thể cung cấp nền tảng phát triển cho điện thoại thông minh và máy tính bảng. Các công nghệ như NativeScript, PhoneGap và Sencha Touch là một số lựa chọn để tạo ứng dụng theo công nghệ HTML5

Nóng: CSS framework
Lạnh: CSS tổng quát (Generic Cascading Style Sheets)

Đã có một thời, thêm một chút lôi cuốn cho trang web có nghĩa là mở tập tin CSS (Cascading Style Sheets) và điền vào câu lệnh như font-style: italic (kiểu chữ nghiêng). Giờ thì trang web không còn dùng những tập tin thô sơ như vậy nữa. Chỉ cần một thao tác chỉnh màu sẽ tác động khắp các trang. Mọi thứ được kết nối với nhau.

Đó chính là thế mạnh của các CSS framework như Sass và Compass. Chúng khuyến khích việc viết lệnh dễ đọc, ổn định bằng cách cung cấp các cấu trúc lập trình như biến thực, lồng nhau, kế thừa nhiều lớp… Có vẻ như không gì mới mẻ lắm về mặt lập trình, nhưng đó là bước tiến lớn về mặt thiết kế.

Nóng: SVG + JavaScript trên Canvas
Lạnh: Flash

Flash đã làm người ta phát cuồng nhiều năm qua, nhưng các nhà nghệ sĩ luôn thích kết quả đạt được. Việc dựng hình khử răng cưa rất tốt, và rất nhiều nghệ sĩ tài năng đã xây dựng hàng đống mã Flash tạo các hiệu ứng động và chuyển cảnh tinh tế.

Giờ thì JavaScript cũng có khả năng làm nhiều thứ như vậy, các hãng phát triển trình duyệt và các nhà phát triển đang hô hào “dẹp” Flash. Họ thấy các định dạng mới như SVG (Scalable Vector Graphics) tích hợp tốt hơn với lớp DOM (Document Object Model). SVG và HTML có rất nhiều thẻ, thường dễ dùng hơn đối với các nhà phát triển web. Rồi còn có tập hàm API lớn cung cấp bản vẽ công phu trên đối tượng Canvas, thường là với sự trợ giúp của bo mạch video. Kết hợp những điều trên khiến cho không còn nhiều lý do để sử dụng Flash nữa.

Nóng: Dữ liệu gần lớn (phân tích không cần Hadoop)
Lạnh: Dữ liệu lớn (cần Hadoop)

Không ngạc nhiên khi cụm từ “dữ liệu lớn” lan truyền trong giới quản lý, họ bắt đầu đòi hỏi những hệ thống dữ liệu lớn to nhất, mạnh mẽ nhất như thể họ mua một chiếc du thuyền hay tòa nhà chọc trời.

Điều buồn cười là nhiều vấn đề không đủ lớn để sử dụng các giải pháp dữ liệu lớn sang chảnh. Chắc chắn, mọi hành động lướt web của chúng ta đều bị các công ty như Google hay Yahoo theo dõi; họ có các cơ sở dữ liệu hàng petabyte (1015 bytes) hoặc yottabyte (1018 bytes). Nhưng hầu hết các công ty có cơ sở dữ liệu chứa gọn trong bộ nhớ RAM của máy tính thông thường. Ví dụ một máy tính với 16GB bộ nhớ RAM đủ chứa cả tỷ sự kiện (vài byte mỗi sự kiện). Với hầu hết các thuật toán, dữ liệu không cần phải được đọc vào bộ nhớ bởi vì có thể lấy từ ổ SSD.

Có những trường hợp cần thời gian xử lý nhanh của hàng chục máy chạy song song trên đám mây Hadoop, nhưng nhiều trường hợp có thể xử lý tốt chỉ với một máy duy nhất mà không phải rắc rối với việc phối hợp hoặc thông tin liên lạc.

Nóng: Spark
Lạnh: Hadoop

Việc Spark trở nên nóng lên làm cho mô hình Hadoop trở nên hơi cũ kỹ một chút. Spark vay mượn một số ý tưởng tốt nhất của phương pháp Hadoop để trích xuất ngữ nghĩa từ khối lượng lớn dữ liệu và thực hiện một vài cải tiến làm cho chương trình chạy nhanh hơn nhiều. Cải tiến lớn nhất có lẽ là cách Spark giữ dữ liệu trong bộ nhớ có tốc độ truy xuất nhanh thay vì đòi hỏi mọi thứ ghi vào hệ thống tập tin phân tán.

Nhiều người đang hợp nhất hai phương thức bằng cách sử dụng tốc độ xử lý của Spark trên dữ liệu được lưu trữ trong hệ thống tập tin phân tán của Hadoop. Chúng là đối tác hơn đối thủ của nhau.

Nóng: Trí tuệ nhân tạo/máy học (machine learning)
Lạnh: Dữ liệu lớn

Không ai biết cụm từ “trí tuệ nhân tạo” (AI) có nghĩa là gì, và điều đó có ích cho các nhà tiếp thị. Họ tóm lấy các thuật ngữ của trí tuệ nhân tạo và nâng tầm phức tạp của các thuật toán xử lý làm việc trên các file log và luồng click chuột của chúng ta. Dựa trên những thuật toán phức tạp có được từ nghiên cứu AI hàng nửa thế kỷ, chúng ta có cơ hội tốt hơn bao giờ hết để phát hiện tín hiệu trong mớ hỗn độn. Các công cụ đủ loại từ framework máy học đến tính toán nhận thức, cho đến Watson của IBM, nhờ đó giờ bạn có thể nhanh chóng giải quyết các vấn đề của mình. Mỗi công cụ có độ thông minh (máy) riêng, chúng hứa hẹn sẽ tiếp quản ngày càng nhiều việc phân tích dữ liệu và pháp y cho chúng ta.

Nóng: Game framework
Lạnh: Phát triển game từ đầu (native game development)

Đã có một thời phát triển game có nghĩa là thuê nhiều nhà phát triển để viết mọi thứ từ đầu bằng C. Chắc chắn tốn hàng đống tiền, nhưng kết quả mỹ mãn. Giờ không ai phung phí như vậy. Hầu hết các nhà phát triển trò chơi đã từ bỏ sự tự phụ trước đây và sử dụng các thư viện như Unity, Corona, hoặc LibGDX để phát triển game. Họ không còn viết lệnh C nhiều như lệnh gọi hàm thư viện. Có gì xấu hổ khi game không được viết từ đầu mà được làm ra từ cùng một nền tảng? Hầu hết các nhà phát triển đều thấy nhẹ nhõm và họ có thể dành thời gian hơn cho kịch bản, lời thoại, nhân vật và hình ảnh.

Nóng: Ứng dụng trang web đơn (Single-page Web apps)
Lạnh: Website

Có nhớ khi URL trỏ đến các trang web chứa đầy hình ảnh và văn bản tĩnh? Thật đơn giản khi đưa tất cả thông tin vào trong một nhóm các trang web riêng biệt gọi là website. Đội ngũ thiết kế vật lộn hàng giờ với sơ đồ site để làm sao cho nó thật dễ điều hướng.

Các ứng dụng web thế hệ mới là “mặt tiền” của các cơ sở dữ liệu lớn có đầy nội dung. Khi ứng dụng web cần thông tin, nó lấy từ cơ sở dữ liệu và đổ nó vào khung tại chỗ. Không cần đánh dấu dữ liệu với những thông tin cần thiết để phục vụ cho một trang web. Lớp dữ liệu hoàn toàn tách biệt với lớp trình bày và định dạng. Ở đây, sự xuất hiện của điện toán di động lại là một yếu tố khác: một trang web duy nhất, thiết kế đáp ứng làm việc như một ứng dụng – nhờ vậy tránh được sự thao túng các cửa hàng ứng dụng.

Nóng: Ứng dụng web di động (Mobile Web apps)
Lạnh: Ứng dụng di động thuần (Native mobile apps)

Giả sử bạn có một ý tưởng tuyệt vời cho nội dung di động. Bạn có thể vội vàng viết các phiên bản riêng biệt cho iOS, Android, Windows 8, và có thể cả hệ điều hành BlackBerry hoặc các hệ điều hành khác. Mỗi hệ điều hành yêu cầu một đội phát triển riêng dùng ngôn ngữ lập trình khác nhau. Sau đó, cửa hàng ứng dụng của mỗi nền tảng “làm luật” trước khi ứng dụng có thể đến được người sử dụng.

Hoặc bạn có thể xây dựng một ứng dụng HTML và đặt nó trên một website để chạy trên mọi nền tảng. Nếu có thay đổi, bạn không cần phải quay lại cửa hàng ứng dụng, cầu xin một đánh giá nhanh cho bản sửa chữa lỗi. Giờ thì lớp HTML dựng nhanh hơn và chạy trên chip nhanh hơn, phương pháp này có thể cạnh tranh với các ứng dụng thuần tốt hơn.

Nóng: Android
Lạnh: iOS

Chỉ vài năm trước đây những hàng người rồng rắn trước cửa hàng của Apple. Thời thế thay đổi. Tuy iPhone và iPad tiếp tục có người hâm mộ trung thành thích giao diện người dùng tinh vi, phong phú của họ, nhưng những con số bán hàng tiếp tục ủng hộ Android. Một số báo cáo còn nói rằng hơn 80% điện thoại bán ra là Androids.

Lý do có thể đơn giản như chi phí. Trong khi các thiết bị iOS vẫn còn khá đắt, thế giới Android đang tràn ngập với nhiều đối thủ cạnh tranh sản xuất máy tính bảng giá chỉ bằng một phần năm iPad. Tiết kiệm tiền luôn là một sự cám dỗ.

Một yếu tố khác có thể là mã nguồn mở. Bất cứ ai cũng có thể tham gia thị trường. Có máy tính bảng Android lớn và nhỏ. Có máy ảnh Android và thậm chí cả tủ lạnh Android. Nếu có ý tưởng, họ làm theo ý mình.

Tuy nhiên Apple cũng đang học hỏi Android. IPhone 6 có các kích thước màn hình khác nhau, và những hàng người đang bắt đầu xuất hiện trở lại.

Nóng: GPU
Lạnh: CPU

Khi phần mềm đơn giản và các lệnh được viết tuần tự, CPU là vua của máy tính vì nó làm hết mọi việc nặng nhọc. Giờ các trò chơi video đầy những thủ tục (hàm) đồ họa có thể chạy song song, card màn hình lên ngôi. Người ta có thể bỏ ra 500-600 USD hay hơn cho một card đồ họa (GPU) ưa thích, một số game thủ thứ thiệt còn sử dụng nhiều card đồng thời, hơn gấp đôi giá của nhiều máy tính để bàn cơ bản. Game thủ không phải là những người duy nhất khoác lác về card GPU của mình. Các nhà khoa học máy tính hiện nay đang chuyển nhiều ứng dụng song song sang chạy trên GPU nhanh hơn hàng trăm lần.

Nóng: Mã nguồn chương trình
Lạnh: Lý lịch

Chắc chắn bạn có thể tìm hiểu về một ứng viên bằng cách đọc một danh sách đầy những thành tựu bao gồm chức danh phó chủ tịch câu lạc bộ cờ vua. Nhưng đọc chương trình (code) thực sự của một ai đó thì phong phú và có nhiều thông tin hơn. Họ viết chú thích tốt hay không? Họ có mất quá nhiều thời gian chia nhỏ các lớp (class)? Chương trình có một kiến trúc thực sự và có chừa chỗ để mở rộng? Tất cả những câu hỏi có thể được giải đáp bằng cách nhìn qua chương trình của họ viết.

Đây là lý do tại sao tham gia vào các dự án mã nguồn mở ngày càng trở nên quan trọng hơn cho việc tìm việc. Việc chia sẻ mã của dự án độc quyền khó khăn, nhưng mã nguồn mở thì thoải mái.

Nóng: Thuê
Lạnh: Mua

Khi đưa ra doanh số bán máy tính và các thiết bị điện tử khác vào ngày Thứ Sáu Đen (Black Friday), Amazon quên tính các giao dịch rất có giá trị trên đám mây của mình. Cách đây không lâu, công ty đã ra mắt trung tâm dữ liệu và thuê nhân sự để vận hành hệ thống máy tính. Giờ thì họ cho thuê máy tính, trung tâm dữ liệu, nhân viên và thậm chí cả phần mềm theo giờ.

Không ai muốn rắc rối sở hữu bất cứ thứ gì. Đó là một ý tưởng tốt, ít nhất là cho đến khi trang web lan truyền và bạn nhận ra mình đang trả tiền cho mọi thứ. Giờ nếu như Amazon tìm ra cách để cung cấp điện toán đám mây với máy bay không người lái (drone), những xu hướng này sẽ hội tụ.

Nóng: Cloud phức tạp
Lạnh: Cloud đơn giản

Những ngày đầu của điện toán đám mây chứng kiến các nhà cung cấp nhấn mạnh sự dễ dàng nhấn một nút và có ngay một máy tính đang chạy. Đơn giản là vua.

Bây giờ việc chọn máy phù hợp và tìm ra chương trình giảm giá thích hợp có thể mất nhiều thời gian hơn là viết code. Hiện có hàng chục cấu hình máy có sẵn, và hầu hết các nhà cung cấp điện toán đám mây cũng có một số cấu hình cũ hơn.

Tất cả đều có những mức hiệu suất riêng biệt, vì vậy tốt hơn bạn nên đo lường/đánh giá để quyết định cấu hình nào hiệu quả nhất về mặt chi phí. Có đáng để tiết kiệm 12 cent mỗi giờ bằng cách thuê ít RAM hơn? Nó chắc chắn đáng giá nếu bạn nhân lên 100 máy trong nhiều tháng.

Làm cho vấn đề phức tạp hơn, các công ty điện toán đám mây cung cấp một số tùy chọn cho việc giảm giá bằng cách trả trước hoặc mua với số lượng lớn. Bạn cũng phải đưa chúng vào bảng tính. Đáng để đầu tư cho một khóa học trực tuyến về kỹ thuật tính toán chi phí đám mây.

Nóng: Dich vụ hạ tầng (IaaS)
Lạnh: Dịch vụ nền tảng (PaaS)

Ai mà chẳng muốn có thêm trợ giúp. Các nhà phát triển cũng vậy, thường thích có mọi hỗ trợ bổ sung khi làm việc với PaaS (Platform as a Service – nền tảng là dịch vụ). Có rất nhiều tính năng bổ sung, một số thực sự hữu ích.

Nhưng có một nỗi sợ: Nền tảng có nghĩa là gắn chặt. Đôi khi nó đáng để đánh đổi, nhưng đôi khi nó là cơn ác mộng. Lựa chọn IaaS (Infrastructure as a Service – hạ tầng là dịch vụ) cởi mở hơn. Nếu bạn không thích Ubuntu server của mình chạy chung hạ tầng trên mây (IaaS), bạn có thể cài đặt Ubuntu server trong trụ sở của mình để nó làm việc độc lập. Điều đó không dễ với PaaS.

Nóng: Giao diện web
Lạnh: IDE

Một thời gian dài trước đây người ta dùng trình biên dịch dòng lệnh. Sau đó, người ta tích hợp trình biên dịch với trình soạn thảo và các công cụ khác tạo ra mô trường tích hợp – IDE (Integrated Development Environment). Giờ thì IDE phải nhường chỗ cho các công cụ dựa trên trình duyệt, cho phép bạn chỉnh sửa mã nguồn, thường là của một hệ thống đang làm việc. Nếu không thích các chức năng của WordPress, bạn có thể sử dụng công cụ soạn thảo có sẵn của nó để chỉnh sửa code ngay tại chỗ. Microsoft Azure thì cho phép bạn viết mã JavaScript ngay trong cổng thông tin này. Những hệ thống này không cung cấp môi trường bẫy lỗi tốt, và khá nguy hiểm khi chỉnh sửa mã, nhưng ý tưởng này không tồi.

Bạn có thể bắt đầu Cloud9, Aptana và WebIDE của Mozilla, nhưng hãy tiếp tục khám phá. Các giao diện web đang ngày càng trở nên mạnh mẽ hơn. Ví dụ có thể xây dựng toàn bộ một dự án phân tích dữ liệu lớn trên website Azure của Microsoft.

Nóng: Node.js
Lạnh: JavaEE, Ruby on Rails

Thế giới máy chủ phát triển trên mô hình luồng cho phép hệ điều hành đáp ứng mọi hành vi ngông cuồng của các lập trình viên. Dù là vòng lặp dại dột hoặc tính toán lãng phí, hệ điều hành đều cân đối được hết bằng cách chuyển đổi giữa các luồng.

Sau đó Node.js xuất hiện cùng với mô hình lập trình gọi ngược JavaScript, và chương trình chạy thật nhanh – nhanh đến mức không ai nghĩ là có thể với một ngôn ngữ “đồ chơi” từng chỉ được dùng cho các hộp cảnh báo. Người ta chợt nhận ra không cần phân luồng tốn kém và Node.js cất cánh.

Node.js cũng được lợi trong việc mang lại sự hài hòa giữa trình duyệt và máy chủ. Cùng một mã lệnh chạy được trên cả trình duyệt và máy chủ cho phép các nhà phát triển hiện thực các chức năng ở cả hai nơi dễ dàng hơn. Kết quả, Node.js trở thành giải pháp hấp dẫn nhất trên Internet.

Nóng: PHP 7.0
Lạnh: PHP cũ

Trong quá khứ, PHP là cách thức đơn giản để làm nhanh vài trang Web động. Nếu cần một chút khác biệt, bạn có thể nhúng mã đơn giản giữa các thẻ HTML. Nó cơ bản đủ cho các nhà phát triển web, nhưng không đủ nhanh đối với các lập trình viên chuyên nghiệp.

Điều đó xưa rồi vì những người yêu thích PHP tại những công ty như WordPress và Facebook đang tranh đua để thực thi mã PHP nhanh hơn bao giờ hết bằng cách kết hợp công nghệ trình biên dịch Just-in-Time đã từng tạo ra Java có hiệu suất cao. Các công cụ hiện giờ như HipHop Virtual Machine và PHP 7.0 có tốc độ gần gấp đôi các phiên bản cũ.

Nóng: Học khi cần
Lạnh: Bốn năm dài

Các khóa học qua máy tính không còn mới, và mọi người đều được hưởng lợi ích của việc xem bài giảng video có nút tua nhanh, chậm lại hoặc yêu cầu giáo sư lặp lại điểm vừa rồi. Các diễn đàn trực tuyến cũng được cải tiến so với các phòng hội thảo cũ mỗi lúc chỉ có một người huyên thuyên chi phối cuộc thảo luận.

Không chỉ bản chất và công nghệ đằng sau khóa học trực tuyến mở toang lĩnh vực giáo dục, mà còn có sự linh hoạt để học bất cứ khi nào và bất cứ nơi nào người ta cần. Điều này đang làm thay đổi động cơ học tập khi người ta không còn phải đầu tư bốn năm học phí chót vót cho các khóa học với rất nhiều môn có thể có liên quan hoặc không liên quan đến cuộc sống của họ. Tại sao tham dự các khóa học về trình biên dịch trong khi bạn chưa biết mình có thực sự làm việc với một trình biên dịch nào đó hay không? Nếu sếp muốn chuyển từ cơ sở dữ liệu quan hệ với sang NoSQL, khi đó bạn có thể đầu tư thời gian cho một khóa học về các cơ sở dữ liệu hiện đại. Bạn có được thông tin mới nhất khi cần và não không bị lộn xộn với những khái niệm nhanh chóng lạc hậu.

FPT APTECH mở ra cho các bạn đam mê học tin học, học công nghệ thông tin chuyên sâu về học lập trình cơ hội được đào tạo Công Nghệ Thông Tin trong môi trường tiêu chuẩn chất lượng quốc tế ISO 9001

Học CNTT – Học Aptech – Học tại FPT

Thanh Phong
(theo PCWorldVN)

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96