TensorFlow 真的比 Git 更受关注吗?根据 Stack Overflow 的趋势统计工具,网站中打上 tensorflow 标签的问题现在比 git 的更受欢迎: 那这个数据是否有什么意义?虽然 tensorflow 获得了更多的关注,但 git 是开发者中最流行的开发工具之一 —— 无论是否在机器学习技术社区内。事实证明,这个趋势工具可以衡量每个标签下面的新问题数量,但这只是反映现象的一半情况。如果我们可以比较每个标签获得的网页浏览量百分比和问题的百分比:
所以发生了什么事?不妨看回图表,即使 tensorflow 标签下的问题每个季度都会创建得更多,但 git 标签下的问题获得的浏览数至少是 tensorflow 标签的 6 倍。 我们可以看看 .net vs firebase、c++ vs r 以及 .net vs typescript 的类似趋势:
因此你可以在这里看到,衡量新问题的数量只能反映一半的现象。如果你是 Stack Overflow 博客的粉丝,你会发现即使他们在很多地方都用到了这个页面浏览量的百分比。 所以结论就是,要观察 Stack Overflow 上相关技术的趋势不能单看一个指标,或许某种技术在某个指标下的分数很高,但这只能反映这种指标下的现象,要做到综合评估,就需要综合看待各项指标。像上面的情况,关于新技术的问题数量肯定是会不断增加的,但不能表明比较老的技术就呈现“疲软”的状态,因为浏览它们的用户依旧有很多,问题少的原因可能是绝大部分的问题都有答案了。相对而言,新技术仍处于“踩坑-填坑”阶段,自然就会产生更多的新问题。 其他有趣的比较top 5 标签:Java, JavaScript, Python, C#, Android, PHP
JavaScript 框架:AngularJS vs Angular, React, Vue
机器学习
即将崛起的语言:Swift, Go, Haskell, Kotlin, Rust
相关代码获取每季度的页面浏览量(Pageviews)#standardSQL
WITH historic_views AS ( SELECT *, '201703' q FROM `fh-bigquery.stackoverflow_archive.201703_posts_questions`
UNION ALL
SELECT *, '201706' q
FROM `fh-bigquery.stackoverflow_archive.201706_posts_questions`
UNION ALL
SELECT *, '201709' q
FROM `fh-bigquery.stackoverflow_archive.201709_posts_questions`
UNION ALL
SELECT *, '201712' q
FROM `fh-bigquery.stackoverflow_archive.201712_posts_questions`
UNION ALL
SELECT *, '201803' q
FROM `fh-bigquery.stackoverflow_archive.201803_posts_questions`
UNION ALL
SELECT *, '201806' q
FROM `fh-bigquery.stackoverflow_archive.201806_posts_questions` ), top_tags AS ( SELECT value FROM UNNEST(( SELECT APPROX_TOP_COUNT(tags, 5000)top
FROM `fh-bigquery.stackoverflow_archive.201803_posts_questions`
WHERE NOT tags LIKE '%|%')) WHERE count > 10), views_per_tag AS ( SELECT tag, COUNTIF(DATE(creation_date) BETWEEN DATE_SUB(PARSE_DATE('%Y%m', q), INTERVAL 3 MONTH) AND PARSE_DATE('%Y%m', q)) questions
, SUM(view_count) views_cum, PARSE_DATE('%Y%m', q) q FROM historic_views, UNNEST(SPLIT(tags, '|')) tag GROUP BY tag, q
), views_per_q AS ( SELECT *, views_cum - LAG(views_cum, 1) OVER(PARTITION BY tag ORDER BY q) views FROM views_per_tag
), percents AS ( SELECT *
, 100*views/SUM(views) OVER(PARTITION BY q) views_percent
, 100*questions/SUM(questions) OVER(PARTITION BY q) questions_percent FROM views_per_q WHERE views IS NOT null
AND tag IN (SELECT value FROM top_tags)
)SELECT *FROM percents 值得注意的趋势差异#standardSQL
WITH toptags AS (
SELECT *
FROM `fh-bigquery.stackoverflow.201806_stacko_tags_views`
WHERE q='2018-06-01'
AND tag NOT IN ('string', 'git', 'sql')
AND views_percent>0.05
)
SELECT a.tag, b.tag btag, a.views_percent - b.views_percent
FROM toptags a
JOIN toptags b
ON a.tag!=b.tag
AND a.views_percent>b.views_percent
AND a.questions_percent< b.questions_percent
ORDER by 3 DESC |