“经理需要保持编码”:采访Stephen Chin



许多Java开发人员都知道Stephen Chin 。 有人从Java事件中看到了他的广播,有的-他与其他著名的Java专家的访谈,有的-有关Raspberry Pi上Java的报道。 但这是什么,在Twitter上,他@steveonjava-也就是说,即使使用用户名也可以显示他一生致力于这种语言的程度。

直到最近,他曾在Oracle任职,现在已移至JFrog。 这听起来可能出乎意料:当您的生活是Java时,离开Oracle? 但是第二个名字在俄罗斯Javists那里也是众所周知的,这要归功于Baruh joguch Sadogursky在那里工作。

很快,俄罗斯开发人员将能够在Joker会议上亲自见到Stephen和Baruch,但是到目前为止,Stephen告诉我们了很多事情,例如:

  • 他现在到底在做什么?
  • 开发人员成为经理的正确性如何?
  • 您可以将Raspberry Pi集群做成多大(为什么);
  • JavaFX还活着吗?
  • 摩托车对Java维权人士有何用处?

Oleg Chirukhin: JFrog从事CI / CD和其他行业,但俄罗斯的贾维斯尤其知道Baruch在那工作。 你可能认识他,对吗?

史蒂芬:是的,他和我是好朋友。 我在帽子之前认识他!

奥列格(Oleg):您现在是“开发人员关系高级总监”,巴鲁奇的职位被称为“开发人员倡导负责人”。 这到底是什么?

史蒂文: DevRel是很多不同的活动。 开发人员的拥护者包括这些人-像我和Baruch这样的人在会议上发表演讲。 这些也是针对开发人员的事件,在会议上与人们进行的交流,为开发人员创建内容等。 总的来说,现在我也与这一切联系在一起,我们将增加与社区合作的活动。

奥列格(Oleg):从您的LinkedIn个人资料来看,您的职业生涯非常有趣。 首先,您获得了计算机科学的学士学位,然后在管理领域工作了三年,然后是一年-编程,然后是管理。 你为什么在职业中有这样的曲折? 总的来说,大三生如此频繁地改变自己的活动领域有何合理性?

斯蒂芬:这很合理,那就是每个人都应该开始职业的方式! *笑*

我想说的是,对那些精通技术领域的人来说,常见的困难之一是,成为一名经理最容易实现职业发展。 但是,如果您长期从事管理工作,那么您的技能,对技术的理解以及总体而言,使您成为领导者的价值的那些东西就会停止发展。 因此,我坚信我们绝不能放弃技术。 继续创造,继续学习,继续发展。 对于职业而言,这只是最重要的。

如有必要,担任领导职务并帮助同事成长-太好了,我对此感到高兴。 但是后来我又卷起袖子,做了一些特定的事情。 我认为重要的是不要忘记这是您作为开发人员的主要技能。

奥列格(Oleg):将一个人的经理和程序员的技能结合起来很容易吗?
毕竟,这些是截然不同的领域。

斯蒂芬:是的,但是我只在我自己理解的领域内与管理层打交道。 我知道如何编写代码,如何进行测试,如何应用敏捷方法,因为我自己都学过这一切。 此外,我参与开发者倡导已经有好几年了,所以我在这方面也有技能。

我认为,大多数管理人员作为某个领域的专家来组织团队并为团队效力做出贡献时,他们是职业生涯中最富有成效的部分。 然后将他们提升为典型的中层管理人员,但这并没有带来太大的好处。 因此,我相信为了取得成功,有必要不要偏离您最初擅长的领域。

奥列格(Oleg):您曾经担任敏捷方法学厨师的职位。 我什至不敢建议这意味着什么。

史蒂芬:嗯,我们所有人一生都有错误! *笑*

在某个时候,敏捷方法论和DevOps基础结构对我来说开始运作良好。 我不仅开始帮助我的团队,而且还帮助公司中的其他团队,也开始帮助计划大型发布。 然后我甚至用Java编写了一个类似的工具。 公司开始使用它,并随着时间的推移开发它,因此,由于这个原因,我们得以摆脱Excel表格的地狱(如果您发现自己在其中,那将是一个可怕的地方)。

但是,使用方法论对我来说并不像技术那样有趣。 因此,最后,我再次回到了以前的事情。

Oleg:我知道您在JavaFX上工作了很多。 最初是什么促使您使用这项技术的?

史蒂文:这是一个非常有趣的故事。 甚至在JavaFX 1.0出现之前,我就在开发桌面小部件框架。 我向Sun的Joshua Marinacci发送了这个框架的原型,当时他是Java的传播者。 就个人而言,尽管我尊重他,但我并不认识他,所以我没想到会有任何回应。 但是他回答说,他喜欢这个主意,并建议尝试JavaFX,那在当时我完全看不到。 我有三天的假期(由于假期),在这三天中,我在JavaFX上重写了我的框架,然后Joshua再次发送了结果。

总的来说,这就是我开始熟悉JavaFX并出现WidgetFX的方式。 我认为您知道在此工具的历史上并不是一切都顺利,但是现在我认为使用AWT或Swing编写Java桌面工具是荒谬的。

奥列格:我完全同意。 没错,IntelliJ IDEA仍然使用Swing。

斯蒂芬:嗯,IDEA本身是在2000年代初期创建的。 当然,有些人致力于使用大量的遗留Java2D支持大型应用程序,在这种情况下,当然不必选择。 但是在我看来,对于新工具而言,使用已经使用了20多年的工具包是很疯狂的。

奥列格: JavaFX未来会有什么期望? 毕竟,现在她已经不再是JDK的一部分。

Stephen:嗯,JavaFX仍然是OpenJDK项目的一部分。 它已从Oracle程序集中删除,但是该程序集现在仍在商业化,因此损失很小。 我能说什么-使用Gluon的JavaFX构建。 顺便说一下,他们还参与了移动JavaFX,通常,它们为生态系统做了很多重要的事情。

Oleg:那么像您的WidgetFX这样的JavaFX项目呢?

斯蒂芬:具体来说,不再在WidgetFX上进行工作,但是社区还支持其他项目。 通常,JavaFX生态系统充满活力。 在许多情况下,JavaFX都是必不可少的,它使您可以编写很难在JavaScript中复制的内容。

奥列格(Oleg):您是否有Nighthacking项目-您能告诉我们吗?

斯蒂芬:甚至在我开始在Oracle工作之前,我就以Nightnighting的名义开始了一系列的采访。 我拿着装备的背包,参加了会议,并进行了录像采访,与您现在从我那里得到的采访类似。

我使用了各种服务在Internet上发布它们,但最终我决定使用Periscope,这是Chris Thalinger向我建议的。 这是发布采访和帮助人们了解新技术的绝佳平台。

另外,Baruch和我有一个想法,以DevOps为主题,以类似的格式创建程序。 我们计划在您的Joker会议上启动它,它称为DevOps Speakeasy。

奥列格:那太好了。 据我所知,您曾与我们认识的另一个Java开发人员Sebastian Dashner一起骑摩托车。

史蒂芬:是的,我们环游世界,我们在欧洲,在日本。 乍一看,摩托车似乎是一种奇怪的交通工具,但是当您需要在两周内访问不同城市的十个不同用户群体时,就像我们在日本所做的那样,摩托车非常有效。

Oleg:既然您在世界各地看到了很多Java用户组-世界不同地区的组之间在文化上有什么区别?

史蒂文:我认为相似之处多于差异。 大多数情况下,这些团体的存在是以牺牲极客本人为代价的,极客们将它们组织起来,也就是说,它们是在自愿的基础上运作的。 当我领导旧金山湾地区的一个用户小组时,我本人就认为这是帮助他人的一种方式,就像他们在我时代帮助我一样。 用户组使您可以共享知识,我真的很喜欢走进他们,社区的精神在其中跳动。 对于开发者的拥护者,最好是进行用户组。

Oleg:您有很多有关机器人技术,Raspberry Pi等的视频。 您是专业地做这件事,还是更多的业余爱好?

史蒂文:我开始从事机器人技术工作,因为在Oracle,我们有针对Raspberry Pi和其他嵌入式平台的Java项目。 然后我看到Raspberry Pi教孩子编程非常方便。 我做了很多事情,在各种会议上为孩子们举办了研讨会。 以前,我的女儿在这些研讨会上帮助过我,现在她自己进行同样的研讨会。 它将内置的传感器(例如光线传感器,加速度计)连接到Raspberry Pi,并显示了这些传感器非常简单的代码示例,从而教孩子们。 由于这些教训,新一代的程序员可能会在将来出现,他们对代码的兴趣很早就出现了。

奥列格(Oleg):也许有一天,她将在小丑中扮演。 Raspberry Pi仍然是最好的机器人平台吗? 他们说新版本非常过热,回想起Alexei Shipilev的推文。 尽管很难想象Shipilev会承受什么负载,但请告诉我们更多“正常”使用情况。



史蒂芬:对于那些从事这项业务的人来说,Raspberry Pi的优点是该系统非常容易安装:将其插入USB端口,插入常规SD卡,需要花费半小时才能完成所有工作。 就像我已经说过的那样,在Oracle我曾在一个从事商业嵌入式系统的团队中工作-尽管我本人也参与开发人员的倡导工作,但是我周围有很多人测试并设置了各种嵌入式平台。 因此,为了在商业系统上运行最简单的东西,需要花费数周的时间。

专为开发而非生产而设计的平台无法在许多领域使用,并且需要进行额外的测试。 出现各种问题,例如,可能没有用于显示的驱动程序,某些功能可能不起作用,平台本身经常不起作用(如果这些是原型)。 通常,人们已经习惯了这种情况:如果您有一个新平台,然后开始使用它,则需要花费大约一个月的时间。

英国的Raspberry Pi基金会使用相同的技术创建了一个易于在教育中使用,简单,高效且具有良好生态系统的平台。 对于那些希望在空闲时间进行一些简单项目的人来说,这特别有益-顺便说一句,我写了一有关Java和Raspberry Pi的

Raspberry Pi消除了其他嵌入式平台用户面临的大部分不确定因素,因此无需自己为平台开发组件。 因此,在Raspberry Pi上,您可以在空闲时间进行小型项目,而不必专业地完成。

奥列格(Oleg):多年来,Raspberry Pi的机械手方面是否有所变化? 我不是故意这样做的,但据我所知,Java默认具有GPIO。 是否有框架,或者硬件制造商自己提供支持?

史蒂文:有很多社区资助的项目,例如Robo4J:它是基于Raspberry Pi的物联网中的机器人平台。 带有GPIO访问的另一个出色项目是Pi4J。 它使用与其他所有人相同的C库(WiringPi),但是在它之上,它提供了一个非常有效的Java shell,具有出色的性能。

我进行了底层GPIO轮询以模拟模拟引脚。 通常在Raspberry Pi中,这很难做到,因为它不是实时操作系统。 Java包装器为JIT编译等添加了暂停。 但是借助底层的Pie4J库,我得以在Java控制器上使用模拟距离传感器。 通常,使用Raspberry Pi,您可以直接从Java做很多有趣的事情。 当然,除此之外,C,Python等还有一个庞大的生态系统。

Oleg:我看到人们从Raspberry Pi创建集群。 这有实际意义吗?

史蒂文:在Oracle Code One上,不久将有我参与的项目的演示,这是一个1024 Raspberry Pi的集群。

如您所知,组装10或20 Pi的集群并不困难,尽管这将花费大量时间。 如果群集的Pi超过1000,则存在功耗,从SD卡加载或通过网络加载,具有正确的网络拓扑结构和基础结构的问题-网络节点之间的消息不应成为计算的瓶颈。 此外,在一个房间内冷却如此数量的Pi并不是一件容易的事。 但是当我们克服所有这些困难时,它将成为世界上最大的Raspberry Pi集群。 顺便说一句,它将采用蓝色英国警察电话亭的形式-正如您自己所知,这是一部科幻电视连续剧。 希望我们没有侵犯任何人的版权。

这种集群就像是一条玩具火车和火车,但同时又可以模拟一个完整的铁路网络。 根据这种模型,真正的火车永远不会过去,这里的故事也一样:1024 Raspberry Pi集群甚至比一个具有数百个内核的现代GPU还要强大,但是该集群对于模拟大型系统的行为很有用。 此外,它对于某些高度并行化的任务也非常有用。 但是,SD卡的网络速度或读写速度经常会成为瓶颈。 对于复杂的算法,正是这些东西才是真正的限制。

Oleg:是的,这个集群可以用作训练模型,您可以尝试使用Kubernetes,Docker和一些JFrog产品进行部署。

史蒂芬:为什么不呢! *笑*

Oleg:您是Oracle的前雇员,并且从事Java已有很长时间了。 您如何看待语言的未来? 也许是用于GraalVM,Valhalla或类似的东西?

Stephen:随着Java的发布,不久将出现许多有趣的技术。 最重要的两个,您已经命名的一个是GraalVM。 这是下一代编译器基础结构。 我们正在谈论用Java和Java编写的编译器,该编译器可以使用多种语言,并且比常规的HotSpot更容易优化。 我认为从长远来看,此编译器将胜过其他JVM编译器,并成为Java体系结构的重要组成部分。

GraalVM的显着优势是AOT编译。 它对移动和嵌入式设备特别有用。 该代码是预先编译的,二进制文件已部署到设备,并且启动时间和所需的内存与C,Go和其他语言的代码相当。 此外,AOT编译允许更高效地使用微服务或无服务器体系结构,在此过程中,多个进程同时在多台服务器或同一台机器上的不同线程中执行。 如有必要,您可以为每个Docker容器或虚拟环境运行一个单独的JVM。 总的来说,对于当今诸如Java中的无服务器之类的东西,GraalVM几乎已变得不可或缺。

JVM团队正在研究的另一项有趣的新技术是Fibers。 它们允许您使用线程以传统方式创建Java应用程序,但同时具有与使用异步框架(例如Vert.x,Node.js或其他某种方式)相同的性能。

编程中始终存在矛盾:一方面,需要优化代码性能,另一方面,需要编写清晰且易于维护的代码。 具有线程的系统更易于阅读,更易于查找其中的错误。 异步系统允许您从代码中挤出额外的性能,因为每个线程已被充分利用,因为请求被拉入一个进程中。 但是,为了实现此优势,必须更改编程模型,系统变得难以维护。 光纤使使用线程编写代码成为可能,但同时具有异步框架的性能。

Oleg:实际上,OpenJDK已经进行了一些更改,以为Loom的到来做准备。 例如,在JEP 353:重新实现旧版套接字API

史蒂芬:据我所知,光纤和织机的基本基础设施正在实施中,但是它不会向用户开放,因为开发人员不希望人们直接与他们合作。 因此,现在我们正在研究光纤API。

Oleg:您是否使用Java的最新版本?

史蒂文:当然,我总是有最新版本。 还怎么 是的,我现在不在编写生产代码。 在使用原型或探索新的库和框架时,没有理由不使用最新版本的OpenJDK。 如果工作与系统一起投入生产,则可能很难快速切换到最新版本。

大型组织最难跨越Java 9前沿,然后出现了模块化,并带来了许多其他变化。 通常,项目所依赖的许多框架和技术尚未迁移到Java 9及更高版本,这也使得过渡变得困难。 如果此行通过,则进一步更新要容易得多,因为下一个版本(10、11、12,如果我不加混淆,很快就会是13)非常相似。 在兼容性方面,最大的变化是模块化。

Oleg:离开Java Enterprise。

史蒂芬:是的。

奥列格(Oleg):最后,您能否谈谈您在Joker找我们的新报告?

Stephen:当您与演讲者进行很多交谈时,您将遵循会议上介绍的应用程序,并且通常遵循行业趋势,您会发现围绕聊天机器人,无服务器,机器学习,人工智能的新技术总会引起多少炒作。或其他任何东西。 人们总是对此类事物感到兴奋,因为它们的新颖性,您始终希望尽快找到有关它们的所有信息。

但是,通常很难确定这种炒作背后是否确实有重要的突破,或者除了炒作之外没有其他东西。 在百搭演讲中,我想解决这个问题。 , , , , . , , .

Joker. - , — , . — , , DevOps Speakeasy. , -.

: . , , . , — -! , -.

Source: https://habr.com/ru/post/zh-CN467383/


All Articles