Xếp hạng ngôn ngữ lập trình RedMonk: Tháng một năm 2017

Dưới đây, Techtalk xin được giới thiệu đến các bạn Bảng Xếp Hạng ngôn ngữ Lập Trình do RedMonk thực hiện. Bảng xếp hạng là sản phẩm kế thừa công trình trước tiên của Drew Conway và John Myles White, cùng thông báo tổng hợp đến từ nhiều trang web lớn như GitHub và Stack Overflow, từ đó phản ảnh quan điểm cả theo hướng code (GitHub) lẫn bàn thảo (Stack Overflow). Bảng Xếp Hạng không phải là con số thống kê chừng độ sử dụng chính xác hoàn toàn, mà nhằm biểu thị quan hệ tương quan giữa trao đổi tiếng nói (Stack Overflow) và chừng độ dùng tiếng nói (GitHub) trong gắng mở ra insight cho các khuynh hướng ngôn ngữ tiềm năng trong ngày mai.

Quy trình thu thập dữ liệu

thoạt tiên , RedMonk trực tiếp lấy dữ liệu từ trang Explore của GitHub. Không lâu sau đó, GitHub lại ngưng công bố xếp hạng lên đây. Tuy nhiên, năm 2014, RedMonk có tìm được nguồn dữ liệu mới với dataset công khai là GitHub Archive trên Google BigQuery.

Query của RedMonk đếm các ngôn ngữ repo (bao gồm cả repos phân nhánh) bằng cách tổng hợp tổng số event được tạo.

Query này chạy từ 2016 đến tận tháng sáu 2016 . Tuy nhiên, RedMonk một lần nữa cần phải điều chỉnh lại query do đổi thay trong cấu trúc bảng của GitHub Archive đổi thay trong API của GitHub gây ảnh hưởng lên dữ liệu ngôn ngữ của GitHub Archive. Những đổi thay này đã mang đến thời cơ để RedMonk đánh giá nguồn dữ liệu của mình.

Quy trình đã cải tiến

Tháng sáu 2016, GitHub Google công bố thêm một data set thứ hai cho các repo cấp phép công khai. RedMonk Mới đầu có tìm hiểu bảng tiếng nói trên dataset này để làm nguồn dữ liệu tiềm năng mới. Nguồn dữ liệu này có lợi thế cung cấp nhiều ngôn ngữ cho một repo dựa rên tổng số byte được mội ngôn ngữ sử dụng, loại thông tin theo lý thuyết sẽ biểu đạt tiếng nói chuẩn xác hơn chỉ thuần tuý thống kê ngôn ngữu chính của repo.

Tuy nhiên, RedMonk lại nhận thấy kết quả từ dữ liệu này lại kém tối ưu hơn, bởi các lý do:

  • Dữ liệu này chỉ gồm các repo có cấp phép, một phần nhỏ hơn rất nhiều so với lượng public repo của GitHub Archive.
  • Hơn nữa, quy trình nhận mặt giấy phép cũng rất khó khăn , càng giới hạn nguồn dữ liệu khả dụng hơn nữa.
  • Nhận định tiếng nói của data set mở rộng vượt quá quy chuẩn từ trước đến nay của RedMonk, bao gồm cả những thứ như file config và hệ thống typesetting.
  • rốt cuộc, có thể thấy kết quả do query này mang lại khó lòng đồng bộ với dữ liệu tiếng nói trước đó từ GitHub cũng như dữ liệu từ Stack Overflow.

RedMonk cũng có một thời gian ngắn tìm hiểu project GH Torrent . Tuy data set thú nhận này có thể là một nguồn dữ liệu hay cho các cá nhân tò mò, nhưng vấn đề giấy phép lại không cho phép họ sử dụng tại thời khắc này.

Như vậy, quanh đi quẩn lại, RedMonk cũng quay về GitHub Archive. Tuy vẫn không cách nào truy cập cùng một kiểu dữ liệu ngôn ngữ như trước đó, nhưng họ lại có thể query tiếng nói phê chuẩn pull request. Query này giống với query mà GitHub từng sử dụng để xây dựng 2016 State of the Octoverse .

RedMonk sau đó cố vô cùng “cải tạo” query mới càng so sánh được với quy trình trước càng tốt.

  • tiếng nói được dựa trên ngôn ngữ repo gốc. Tuy vẫn có tội được nhắc đến bên dưới, nhưng vẫn có thể đồng bộ được với phương pháp trước đó của RedMonk.
  • RedMonk đã loại ra các repo phân nhánh (forked).
  • RedMonk sử dụng lịch sử đã tổng hợp để quyết định xếp hạng (tuy cách này chẳng thể được thực hiện duyệt một query độc nhất vô nhị nữa – dựa trên đổi thay trong cấu trúc bảng)

đổi thay chính là phần dữ liệu GitHub trong bảng xếp hạng ngôn ngữ giờ đây dựa trên pull request, chứ không phải repo. Như vậy, RedMonk không thể tái hiện thông báo xếp hạng như trước, nhưng kết quả nhìn chung vẫn được “cải tạo” lại để có thể đồng nhất với những đợt dữ liệu trước và là phương thức tổng hợp tốt nhất họ có được. May mắn thay, cách làm này cũng loại sim số đẹp viettel bỏ những phàn nàn thường thấy trước đó về cách xếp hạng: rằng các thông số do repo cung cấp có thể đánh giá quá cao tầm quan yếu của một ngôn ngữ cụ thể – thường thấy nhất là JavaScript.

The Net

Như vậy, trước sự thay đổi về quy trình như thế này, đặt ra câu hỏi thay đổi trong cách xếp hạng. thông tin xếp hạng của quý này so sánh với các đợt thông tin trước như thế nào? Có hai lời giải cho câu hỏi này: trước nhất, thay đổi trong phần thông báo xếp hạng GitHub; thứ hai, đổi thay trong thông báo xếp hạng tổng quan với kết quả Stack Overflow chưa bị ảnh hưởng tính vào trong đó. Trong cả hai trường hợp, đều phụ thuộc vào việc tiếng nói đó xếp ở vị trí nào trong top 20. tỉ dụ như, trong top 10 ngôn ngữ, xếp hạng làng nhàng chỉ thay đổi đáng kế với kết quả GitHub, nhưng không đổi thay quá 1-2 bậc. Tuy vậy, từ thứ hạng 10-20, trật tự của ngôn ngữ nhàng nhàng có thể thay đổi đến 5-7 bậc.

Khi RedMonk tính đến cả kết quả từ Stack Overflow, đúng như dự đoán, sự thay đổi có ảnh hưởng ít đáng kể hơn. Trong Top 10, các tiếng nói chỉ dịch chuyển khoảng 0,5 thứ bực. Và ngay cả với nửa sau, đổi thay xếp hạng chỉ ở mức 3 bậc.

Hiển nhiên, trong nhiều năm phân tích dữ liệu, đây có thể nói là thay đổi lớn nhất. Nhưng như đã đề cập ở trên, sau khi thử qua nhiều phương pháp thay thế, RedMonk cho biết kết quả học đưa ra đã tối ưu nhất giữa hai kiểu dữ liệu.

RedMonk kể lể như vậy để làm gì nhỉ, là để bạn biết được căn nguyên cho những lưu ý sau đấy:

  • Để có mặt trong bản phân tách, một tiếng nói phải quan sát được trong cả GitHub lẫn Stack Overflow.
  • RedMonk không khẳng định thứ tự này là biểu thị của mức độ dùng phổ quát trong thực tại, mà chỉ nhằm soát độ tương quan giữa hai dân số mà họ tin rằng có thể chỉ ra hướng sử dụng ngày mai của ngôn ngữ, từ đó suy ra giá trị của tiếng nói đó.
  • Có rất nhiều cộng đồng tiềm năng có thể được khảo sát trong dự án này. GitHub và Stack Overflow được chọn ở đây đầu tiên vì kích thước và thứ hai là vì lượng dữ liệu họ ban bố công khai rất cấp thiết cho dự án.
  • All numerical rankings should be taken with a grain of salt. We rank by numbers here strictly for the sake of interest. In general, the numerical ranking is substantially less relevant than the language’s tier or grouping. In many cases, one spot on the list is not distinguishable from the next. The separation between language tiers on the plot, however, is generally representative of substantial differences in relative popularity.
  • tuốt xếp hạng đánh số đều ít nhiều “gây war” một tý. RedMonk sếp theo đẳng cấp ở đây chỉ nhằm mang lại một ít lợi ích nho nhỏ cho các bên muốn tìm hiểu mà thôi. Nhìn chinh, xếp hạng theo số tỏ ra ít chính xác và bổ ích hơn thông tin xếp hạng tiếng nói theo nhóm hoặc theo tầng.
  • Hơn nữa, trật tự càng xuống thấp, càng có ít dữ liệu cấp thiết để đánh giá các ngôn ngữ này, nên đẳng cấp của các tiếng nói này cũng có độ tim cậy thấp hơn.

Như vậy, đây là phần kết quả cho quý đầu năm 2017.

(Click để phóng to)

Bênh cạnh biểu đồ trên (hơi khó nhìn, kể cả ở fullsize), RedMonk còn cung cấp bảng xếp hạng số bên dưới. Như bạn có thể thấy, kết quả dưới đây có một số tiếng nói hòa nhau (và sẽ được xếp đặt trên hay dưới dựa hoàn toàn theo alphabet. Vì có kết quả hòa, nên dưới đây sẽ là top 23 thay vì top 20.

1 JavaScript

2 Java

3 Python

4 PHP

5 C#

5 C++

7 CSS

7 Ruby

9 C

10 Objective-C

11 Scala

11 Shell

11 Swift

14 R

15 Go

15 Perl

17 TypeScript

18 PowerShell

19 Haskell

20 Clojure

20 CoffeeScript

20 Lua

20 Matlab

Có thay đổi từ GitHub hay không, thì JavaScript lẫn Java đều giữ nguyên vị trí ứng tại top đầu bảng xếp hạng. Sự thiếu chuyển dịch với JavaScript rất đáng để ý vì một số người cho rằng cách đo đạc theo repo sẽ đánh giá quá cao tầm quan trọng của JavaScript so với các tham số như pull request, một trong những thông số cơ bản cửa query mới. Đặc biệt, trong lịch sử xếp hạng của RedMonk, PHP lần trước hết tụt một hạng, nhưng vẫn cực kỳ phổ thông ngay cả ở vị trí thứ 4. Trong tất thảy ngôn ngữ ở top 10, Python được lợi nhiều nhất từ đổi thay đến quy tình xếp hạng trên GitHub: trong khi thay đổi nhàng nhàng chỉ là 1 bậc, Python nhảy để ba bậc, nhảy cóc lên trước cả PHP. Bên cạnh đó, đổi thay độc nhất vô nhị, đáng chú nhất trong top 10 là Ruby, từ 5 xuống 7.

Tuy nhiên, xuống thấp bên dưới, mọi thứ bắt đầu thích thú hơn. Một vài bình luận về các ngôn ngữ với thay đổi thứ hạng đáng chú ý, không theo trật tự cụ thể.

  • R : ngôn ngữ ngày càng được các chuyên gia thống kê, chuyên gia dữ liệu và các ngành nghề chuyên về phân tích chuộng, nhảy từ số 15 lên vững vàng tại vị trí 13 và rút cuộc lên đến thứ 12. Tuy nhiên lần này, ngôn ngữ lại bị tụt hai hạng xo với lần thống kê trước đó, xuống vị trí thứ 14. Lý do cho sự sút giảm này có thể kể đến sự thay đổi trong quy trình thu thập dữ liệu GitHub mới. Khác với đối thủ của mình ở hạng mục ngôn ngữ phân tách, Python (tăng 3 hạng), R bị giản đến 5 bậc ở phía GitHub, ngay cả khi xếp hạng ở phía Stack Overflow tăng một bậc. Tuy nhiên, sự kiện “nhỏ xíu” này không nói lên nhiều điều về tính hình mai sau của R; như PHP, ngôn ngữ này vẫn khá phổ quát dù có hơi chững lại.
  • Swift: hoàn toàn trái lại với R, Swift được hưởng lợi rất lớn từ các đánh giá GitHub mới, nhảy tám bậc từ 26 lên 16 trong bảng xếp hạng GitHub. Kể từ lúc RedMonk thực hành dự án này, Swift là ngôn ngữ leo đến top 15 nhanh hơn bất kỳ ngôn ngữ nào khác. diễn tả mạnh mẽ của ngôn ngữ xét theo mặt GitHub cho thấy rằng hướng đi rộng hơn, đa nền tảng đang phát huy ích lợi. Swift, đã, đang, và sẽ là một đối thủ đáng gờm.
  • Go : Tuy Go cũng được hưởng lợi từ mô hình xếp hạng mới, nhảy bốn hạng trong bảng xếp hạng GitHub, những vẫn chưa đủ sức theo kịp Swift (mà đã nhảy cóc lên cả Go). Xét theo phạm vi khăng khăng, xu hướng này không gây quá nhiều bất ngờ, vì Go không có sức hút mạnh mẽ như một công cụ phát triển áp dụng iOS, cũng không được định vị chung là tiếng nói front và back end như Swift đang hướng đến. Nói tóm lại, tuy đã có thể trụ lại, nhưng đẳng cấp 15 đã khá là ấn tượng cho kiểu tiếng nói infrastructure runtime rồi.
  • TypeScript : Trong số các tiếng nói thuộc nhóm đầu, TypeScript nhảy nhanh nhất trên bảng xếp hạn GitHub, lên đến 17 điểm. Bên cạnh cải thiện về vị trí trên Stack Overflow, TypeScript nhảy đến 9 bậc bên phía GitHub để tiến vào top 20. Tuy chưa rõ nguyên nhân đằng sau sự gia tăng đột biết này, nhiều người cho rằng Angular không ai khác chính là thủ phạm.
  • PowerShell : như đã nhắc đến ở trên, không ngôn ngữ thuôc nhóm trên nào có thể vượt mặt TypeScript trên bảng xếp hạng GitHub, ngoại trừ một ngôn ngữ phát triển… bằng nó. PowerShell nhảy từ vựng trí 36 lên 19, bằng với 17 điểm nhảy của TypeScript, và như thể đã cũng quá đủ để ngôn ngữ nhảy vào Top 20 từ vựng trí 25 trước đó. Tuy chưa thể chứng minh được lý do, nhưng thật ham thích là sự cải thiện đáng kể từ PowerShell đến trễ một quý sau khi ngôn ngữ được tung ra dưới dạng phần mềm nguồn mở. Giữa PowerShell và TypeScript, chưa kể đến tình trạng vững vàng của C#, Microsoft có lý do để ưng về quyết định đầu từ vào ngôn ngữ lập trình của mình.
  • Rust : Một trong những ngôn ngữ tiến nhanh nhất, nhảy từ vựng trí 47 lên 26 – đứng ngay sau Visual Basic. Chỉ vài tháng mà chúng ta đã có thể thấy được sự thay đổi đáng sợ như vậy. Theo số liệu của RedMonk, Rust tăng từ tiếng nói phổ quát thứ 46 trên GitHub lên thứ 18. Rất có thể trong ngày mai gần, Rust rút cục cũng có thể xoay chuyển thời thế và trở mình thành tiếng nói “đại trà” mới như nhiều người dự đoán.

Techtalk via RedMonk

Không có nhận xét nào:

Đăng nhận xét

0868.226.226