Portál AbcLinuxu, 31. května 2024 08:00
VALA 26.2% PYTHON 24.0% C 18.5% RUST 17.5% C++ 7.3% JAVASCRIPT 4.0%Jazyky s nižším než jednoprocentním zastoupením jsem vynechal. Na výpočet jsem použil tento jednoduchý skript v Ruby:
require 'net/http' require 'uri' url = "https://github.com/unrelentingtech/awesome-gtk" table = [{lang: "vala", pattern: "#vala[\s<]", count: 0, percent: 0}, {lang: "c", pattern: "#c[\s<]", count: 0, percent: 0}, {lang: "c++", pattern: "#c\\+\\+[\s<]", count: 0, percent: 0}, {lang: "python", pattern: "#python[\s<]", count: 0, percent: 0}, {lang: "haskell", pattern: "#haskell[\s<]", count: 0, percent: 0}, {lang: "go", pattern: "#go[\s<]", count: 0, percent: 0}, {lang: "javascript", pattern: "#gjs[\s<]", count: 0, percent: 0}, {lang: "lua", pattern: "#lua[\s<]", count: 0, percent: 0}, {lang: "crystal", pattern: "#crystal[\s<]", count: 0, percent: 0}, {lang: "julia", pattern: "#julia[\s<]", count: 0, percent: 0}, {lang: "nim", pattern: "#nim[\s<]", count: 0, percent: 0}, {lang: "rust", pattern: "#rust[\s<]", count: 0, percent: 0}] def populate_count(data, url) html = Net::HTTP.get(URI.parse(url)) data.each do |h| h[:count] = html.scan(/#{h[:pattern]}/).count end end def populate_percent(data) sum = 0 data.each {|h| sum += h[:count] } data.each {|h| h[:percent] = h[:count] * 100.0 / sum } end def print_percent(data) new = {} data.each {|h| new[h[:lang]] = h[:percent] } new.sort_by {|k,v| -v }.each do |k,v| printf("%-20s%.1f%%\n", k.upcase, v) if v > 1 end end populate_count(table, url) populate_percent(table) print_percent(table)V Poli hašů je nejdříve vyplněn počet výskytů u jednotlivých jazyků za použití regulárních výrazů a poté je spočteno jejich procentuální zastoupení. Vložené -v do metody sort_by seřadí hodnoty haše sestupně, v bez mínus vzestupně.
Tiskni Sdílej:
takže to vala je napůl go napůl c# a napůl vobyč cčko :O :D
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.