这是知乎上的一个问题(www.zhihu.com/question/61… 我随手写了几句,转到此处。
结论是不会
计算器和计算机筛选了算盘,催生了新的职业,掌握新技能的人筛选了默守陈规的人。
被筛选的是没有跟随技术开展的人。
人工智能的开展,只会让程序员的日子越来越好过,而不是被筛选。
首先这会引领大批的程序员投身人工智能范畴,人力朝着更能促进生产力开展的方向去流动是社会进步的体现。
其次,人工智能会改变传统的东西链,生态,产品形态,程序员的工作方式,会让程序员以愈加高效、智能、高质量的方式去工作。
所以咱们不用忧虑是否被筛选,而是要坚持好奇心,坚持进取心。大部分人不能引领潮流,可是至少不要被潮流丢弃。
举个例子
举一个和我工作比较相关的例子,我每天都在和各式各样的图表打交道,咱们运用图表的方式是根据需求,定制各种装备。以最近开源的VisActor为例,假如咱们想运用图表库或许表格组件库咱们要做什么呢?
传统流程
-
拜访网站 ,www.visactor.io/vchart或许www.visactor.io/vtable
-
检查demo
- 检查各种文档
- 上手测试
熟悉图表的各种装备,对照文档来学习(demo 来自www.visactor.io/vchart/demo…)。
const goldenMedals = {
2000: [
{ country: 'USA', value: 37 },
{ country: 'Russia', value: 32 },
{ country: 'China', value: 28 },
{ country: 'Australia', value: 16 },
{ country: 'Germany', value: 13 },
{ country: 'France', value: 13 },
{ country: 'Italy', value: 13 },
{ country: 'Netherlands', value: 12 },
{ country: 'Cuba', value: 11 },
{ country: 'U.K.', value: 11 }
],
2004: [
{ country: 'USA', value: 36 },
{ country: 'China', value: 32 },
{ country: 'Russia', value: 28 },
{ country: 'Australia', value: 17 },
{ country: 'Japan', value: 16 },
{ country: 'Germany', value: 13 },
{ country: 'France', value: 11 },
{ country: 'Italy', value: 10 },
{ country: 'South Korea', value: 9 },
{ country: 'U.K.', value: 9 }
],
2008: [
{ country: 'China', value: 48 },
{ country: 'USA', value: 36 },
{ country: 'Russia', value: 24 },
{ country: 'U.K.', value: 19 },
{ country: 'Germany', value: 16 },
{ country: 'Australia', value: 14 },
{ country: 'South Korea', value: 13 },
{ country: 'Japan', value: 9 },
{ country: 'Italy', value: 8 },
{ country: 'France', value: 7 }
],
2012: [
{ country: 'USA', value: 46 },
{ country: 'China', value: 39 },
{ country: 'U.K.', value: 29 },
{ country: 'Russia', value: 19 },
{ country: 'South Korea', value: 13 },
{ country: 'Germany', value: 11 },
{ country: 'France', value: 11 },
{ country: 'Australia', value: 8 },
{ country: 'Italy', value: 8 },
{ country: 'Hungary', value: 8 }
],
2016: [
{ country: 'USA', value: 46 },
{ country: 'U.K.', value: 27 },
{ country: 'China', value: 26 },
{ country: 'Russia', value: 19 },
{ country: 'Germany', value: 17 },
{ country: 'Japan', value: 12 },
{ country: 'France', value: 10 },
{ country: 'South Korea', value: 9 },
{ country: 'Italy', value: 8 },
{ country: 'Australia', value: 8 }
],
2020: [
{ country: 'USA', value: 39 },
{ country: 'China', value: 38 },
{ country: 'Japan', value: 27 },
{ country: 'U.K.', value: 22 },
{ country: 'Russian Olympic Committee', value: 20 },
{ country: 'Australia', value: 17 },
{ country: 'Netherlands', value: 10 },
{ country: 'France', value: 10 },
{ country: 'Germany', value: 10 },
{ country: 'Italy', value: 10 }
]
};
const dataSpecs = Object.keys(goldenMedals).map(year => {
return {
data: [
{
id: 'id',
values: goldenMedals[year].sort((a, b) => b.value - a.value)
},
{
id: 'year',
values: [{ year }]
}
]
};
});
const duration = 2000;
const spec = {
type: 'bar',
padding: {
top: 12,
right: 100,
bottom: 12
},
data: dataSpecs[0].data,
direction: 'horizontal',
yField: 'country',
xField: 'value',
seriesField: 'country',
axes: [
{
animation: true,
orient: 'bottom',
type: 'linear',
visible: true,
grid: {
visible: true
}
},
{
animation: true,
id: 'axis-left',
orient: 'left',
width: 130,
tick: { visible: false },
label: { visible: true },
type: 'band'
}
],
title: {
visible: true,
text: 'Top 10 Olympic Gold Medals by Country Since 2000'
},
animationUpdate: {
bar: [
{
type: 'update',
options: { excludeChannels: ['x', 'y'] },
duration
},
{
channel: ['x', 'y'],
options: { excludeChannels: ['width'] },
duration: 500
}
],
axis: {
duration: 500,
easing: 'linear'
}
},
customMark: [
{
type: 'text',
dataId: 'year',
style: {
textBaseline: 'bottom',
fontSize: 200,
textAlign: 'right',
fontFamily: 'PingFang SC',
fontWeight: 600,
text: datum => datum.year,
x: () => {
return vchart.getChart().getCanvasRect()?.width - 50;
},
y: () => {
return vchart.getChart().getCanvasRect()?.height - 50;
},
fill: 'grey',
fillOpacity: 0.5
}
}
],
player: {
type: 'continuous',
orient: 'bottom',
auto: true,
loop: true,
dx: 80,
position: 'middle',
interval: duration,
specs: dataSpecs,
slider: {
railStyle: {
height: 6
}
},
controller: {
backward: {
style: {
size: 12
}
},
forward: {
style: {
size: 12
}
},
start: {
order: 1,
position: 'end'
}
}
}
};
const vchart = new VChart(spec, { dom: CONTAINER_ID });
vchart.renderAsync();
// Just for the convenience of console debugging, DO NOT COPY!
window['vchart'] = vchart;
- 应用到项目中
根据实践的项目需求定制功用。
是不是可以更智能一点呢?
咱们做了这些基础研制之后,觉得假如和人工智能结合,图表的应用流程可以有更简洁的方式,也许用户只需要告诉咱们他们想要什么就可以了。咱们设想了一个初级的原型:
例如,咱们想运用下面的产品销售额数据,展现不同区域各产品销售额:
产品名称 | region | 销售额 |
---|---|---|
可乐 | south | 2350 |
可乐 | east | 1027 |
可乐 | west | 1027 |
可乐 | north | 1027 |
雪碧 | south | 215 |
雪碧 | east | 654 |
雪碧 | west | 159 |
雪碧 | north | 28 |
芬达 | south | 345 |
芬达 | east | 654 |
芬达 | west | 2100 |
芬达 | north | 1679 |
夺目 | south | 1476 |
夺目 | east | 830 |
夺目 | west | 532 |
夺目 | north | 498 |
运用以下代码,取得图表spec:
const csvData=`产品名称,region,销售额
可乐,south,2350
可乐,east,1027
可乐,west,1027
可乐,north,1027
雪碧,south,215
雪碧,east,654
雪碧,west,159
雪碧,north,28
芬达,south,345
芬达,east,654
芬达,west,2100
芬达,north,1679
夺目,south,1476
夺目,east,830
夺目,west,532
夺目,north,498`
const describe='帮我展现不同区域各产品销售额'
const { spec, time } = await (vmind.generateChart(csvData, describe)); //图表智能生成,传入您的csv格局的数据和图表描绘,回来图表spec和图表动画时长
接下来,咱们就可以运用VChart制作生成的图表。 在绘图前咱们需要为 VChart 预备一个具有高宽的 DOM 容器。
<body>
<!-- 为 vchart 预备一个具有巨细(宽高)的 DOM,当然你也可以在 spec 装备中指定 -->
<div id="chart" style="width: 600px;height:400px;"></div>
</body>
接下来,咱们创建一个VChart
实例,传入刚刚生成的spec和 DOM 容器的 ID:
// 创建 vchart 实例
const vchart = new VChart(spec, { dom: 'chart' });
// 制作
vchart.renderAsync();
生成的图表如下:
咱们还可对图表提更多的要求,例如:
const describe='帮我展现不同区域各产品销售额,运用折线图,region做x轴'
const { spec, time } = await (vmind.generateChart(csvData, describe)); //图表智能生成,传入您的csv格局的数据和图表描绘,回来图表spec和图表动画时长
生成的图表如下:
目前咱们发布了可以供开发者体验的npm包,开放了有限的功用,可以经过www.visactor.io/vchart/guid…
检查运用方法。
咱们觉得这个实践很有趣,也代表了未来的开展方向。会继续投入并输出。
简单总结
作为一个可视化研制,我不会觉得人工智能会让我赋闲,反而会促进咱们朝着更好的方向开展。
相关链接: VisActor 官网www.visactor.io/
github:github.com/VisActor