你好。这篇文章是我们与专业软件开发人员交谈的系列文章的一部分,询问他们以编写代码为生是什么感觉,并可能在此过程中获得对软件开发行业的一些见解。

今天,我们将前往美丽的丹麦,与Embarcadero MVP Glenn Dufke 交谈。Glenn 经常被发现无畏地挑战人们对 Delphi 的先入之见,他阐述了语言的好处以及它可以解决每个人的问题的方式。如果我自己还不是 Delphi 的拥护者,我认为 Glenn 可以单枪匹马地改变我的想法并让我用Delphi编程!您会在各种在线活动(如TCoffeeAndCode以及信息安全论坛和一系列令人印象深刻的其他地点)中遇到Glenn 。

格伦,感谢您参加采访  

感谢邀请我 - 我的工作超负荷了,抱歉耽误了一段时间!

关于你是谁和你做什么的简短自我介绍是什么?

我经营自己的咨询公司 GlennKonnekt,提供软件开发、嵌入式解决方案电子设计和工业自动化领域的服务。

您 a) 最常 b) 经常使用哪种 Embarcadero 产品?

Delphi是我白天使用最多的工具。

您是如何和/或为什么成为开发人员的?

除了编写软件,我还为嵌入式和工业自动化设置设计电子产品。我想知道如何通过编写软件来让事情“工作”。

挑战很有趣,有很多事情需要考虑,而且了解硬件和软件部分可以更容易地解释最终导致所有差异的细节。

Glenn,努力工作,俘获开发者的心

您认为您将永远不再从事编程吗?如果是这样,接下来会是什么?

不,我不知道。这是一个不断变化的领域,很多事情都在不断发生。然而,如果我要改用其他东西,那可能会开始一个小汉堡店,提供你能买到的最好的自制汉堡。

是什么让您开始使用 Delphi/C++ Builder?

这有点巧合。当我最初接触一些编程时,在我对它的全部内容有更清晰的了解之前,发生在我 7 岁左右的带有 BASIC(实际上是 Commodore 许可的 Microsoft BASIC 2.0)的 Commodore 64 上。9 点左右,我在从我爷爷那里继承的 Amiga 500 上试用了 HiSoft Pascal。我仍然没有完全走远,因为我没有手册或任何东西来指导我。

当我长大一点时,大约 11 岁,我对 PC 的工作原理以及软件如何进入机器使其工作非常感兴趣。幸运的是,我兄弟的一个朋友刚从计算机科学课程毕业,他们在那里学习了 Delphi(大约 2001 年),他给了我一份 Delphi 6 试用版的副本,不久之后我就收到了一份 Delphi 7 Enterprise 的副本。由于当时我们家里没有互联网(56k 很常见,ISDN 适合那些负担得起的人,而 ADSL 刚刚进入市场但价格昂贵),我被困在帮助文件中,其中教会了我最多。我还设法找到了几本书,包括Marco Cantú 的Mastering Delphi 7 。

在这期间,我也在研究 C/C++,因为有人告诉我“那是真正的程序员使用的东西”,但它并没有成为我的大脑中的一部分。今天,使用其他编程语言对我来说并不困难,但 Object Pascal 是所有语言中最简洁、最具表现力的,并且是我尽可能默认使用的语言。值得庆幸的是,与其他环境和平台相比,C++ Builder 确实使编写或使用 C++ 库变得更加容易。

如果您可以给正在考虑从事软件开发人员职业的学生一些建议,那会是什么?

获取一份最新的 Delphi 版本和一本关于 Delphi 的最新书籍。Delphi 是一种非常宝贵的工具,可以教授良好的编程习惯。

你编程的时候使用制表符……还是空格?

如果我们在谈论驯服蛇,那就是标签。对于 Object Pascal,我也使用制表符,但更多的是为了格式化和一致性,因为编译器并不关心。也就是说,我关心我的代码的外观和呈现方式。对我来说,代码本身就是艺术,在某种程度上反映了开发人员的心态。

作为开发人员,您度过的最美好的一天是什么?

当看到您已经工作了几个月的代码时,它们很好地结合在一起并按预期工作。当然,它不是没有错误,但它们足够快以解决问题。

作为开发人员最糟糕的事情是什么?

当事情不起作用或由于缺少有关给定任务的信息而遇到挫折时。

你知道的最酷的开发技巧是什么?

使用虚拟机处理所有事情,不要让所有最新的 [代码] 库、语言和技术堆栈弄乱你的大脑。坚持一些,比如 Delphi,并在其中变得出色——教授和分享知识,这就是你开始成长的地方。有一个很好的 NAS 备份解决方案,可以进行自动快照,比如带有 ZFS 文件系统的 TrueNAS

在家工作、在办公室工作、在开放式计划/共享空间工作?你更喜欢什么,为什么?你可以选择吗?

我有自己的小办公室。我更喜欢这种风格,但有时我也喜欢与一个小团队在共享办公室工作。

格伦的办公室

告诉我们一些您认为我们可能不知道的有趣事情。

我是个爱猫的人,我的办公室检查员 Caesar 经常过来拥抱我。他是当地避难所的救援人员。作为一个青少年,我花了很多个晚上对我编写的编译应用程序进行逆向工程 [到汇编语言],以更好地了解发生了什么。这也让我对编译器的工作方式感兴趣,我目前正在研究我自己的编译器。

如果你可以挥动“修复科技行业”的魔杖,你会改变什么?

确保 ElectronJS 和任何关于 JavaScript、nodejs 和 Rust 的东西只是历史上的一个脚印。听起来很明显,这些技术以惊人的速度导致安全问题并堆积在技术垃圾填埋场,而不是提高软件的质量,它正在下降。

你去过硅谷吗?如果是这样,是怎么回事?如果没有,你有没有想过?

不幸的是,我没有。我去过的离硅谷最近的是旧金山机场。当然,至少参观一次会很有趣,但我不像以前那样对硅谷充满热情。我相信整个美国还有其他更有趣的、技术方面的领域。

你见过任何著名/知名的科技人物吗?他是谁?进展如何?

我遇到了来自 Delphi/C++ Builder 社区的各种人物,有多个退出的企业家和数以百万计的人。归根结底,他们是人类,我以善意和尊重的态度对待他们。我很想见的人当然是埃隆·马斯克,作为丹麦同胞,有一天会见安德斯·海尔斯伯格。

如果您可以说服某人考虑使用 Delphi 或 C++ Builder,您的方法是什么,您会怎么做?

您想编写易于阅读的优秀代码,同时能够跨平台重用代码吗?然后,Delphi就成了[工具]了。。

您希望自己发明/设计哪种技术产品,为什么?

JavaScript——但我可能会给它起别的名字,如果我设计了它,开发世界就不会像现在这样受苦了。它是目前最常用(和滥用)的脚本语言之一,用于在浏览器中开发高级内容,有些人认为它以“本机”应用程序的形式存在于桌面和移动设备上——我认为这是完全错误的。

如果语法基于 Object Pascal 的一个子集,那么糟糕的语言设计就不会存在,并且会使为浏览器编写应用程序变得更加容易。

在我们摆脱 JavaScript 之前,Web 和浏览器不可能进一步发展。Google 尝试了一些 Dart 语言,但它也有糟糕的设计选择和令人痛苦的语法(为什么他们没有意识到大括号语言和区分大小写很糟糕?)。TypeScript 是对已经损坏的东西的临时修复,WebAssembly 也是如此,尽管我们至少可以编写一个 wasm 编译器并使用 Object Pascal 作为我们选择的编程语言来编写更好的代码并仍然在浏览器中运行它。也就是说,WebAssembly 还相对年轻。

凯撒,办公室检查员

如果可以重来,你还会做开发者吗?为什么?

这种问题总是很难回答,因为它总会承载着当下的一些反思。我可能会,是的。我脑子里有太多的想法。

你一天喝多少咖啡,够喝吗?

太多了。我至少喝一壶,也许两壶,这并不少见。我是一名咖啡鉴赏家,我很欣赏一杯好咖啡,它是我转化为代码的燃料。

您是一个编码到深夜的夜鹰,还是一个早起并进入或遵守某种常规办公时间的早起人?

大多数情况下,我更喜欢在晚上和晚上工作。有和平与宁静,我可以开始思考好的解决方案。我确实尝试在白天保持固定的时间表。

在您的职业生涯中,您是否曾经“熬夜”来处理绝对必须完成的事情?

我有,几次。有时需要交付时间关键的修复程序,或者需要整理大量的想法。但是,我尽量避免通宵。

你被问到的最愚蠢的问题是什么(这些都不算数!)

你知道 X 还是 Y - 这个人已经看过我早些时候列出的简历。

您为与客户的合作报价吗?如果你这样做了,没有透露任何会让你不舒服的东西,你使用什么样的过程?

我更喜欢按小时工作。有时客户会要求报价,但在这种情况下,我会尽量详细说明我的工作范围。

您如何阻止客户/项目经理/经理“功能蔓延”?

我会说,我们需要先发布这个版本,然后才能开始开发更多功能。把它拿出来并具体说明什么是必不可少的

你在编码时听音乐吗?如果是这样,你能告诉我们一些曲目/艺术家/表演吗?

我有一个广泛的精选曲目列表,我在编码时会听。从我自己收藏的芯片音乐,从 Lukhash 的现代曲目到由 Metrik、London Elektricity、Wilkinson、Grafix、Seba、Netsky、Logistics、High Contrast、Degs、Pendulum、State of Mind、Apex 提供的液体鼓和贝司……请阻止我,我可以一直走下去!音乐之美一般来说,它会根据您想要完成的事情触发您大脑中的某些区域。

Caesar 正在审查您的代码,但他不确定是否对此满意

您是否使用任何方法或技术,例如敏捷、Scrum、看板、TDD?如果是这样,为什么?如果不是,为什么?

正如Jens Fudge所教导的,一点看板和更多的 TDD

你跟踪错误吗?如果你这样做,你有什么建议?

当然是!我鼓励每个人都这样做!

我使用各种系统,包括 Jira、Github 问题跟踪器、Gitlab 问题跟踪器、Bitbucket 问题跟踪器。我认为这很重要,尤其是当有时会重新引入错误时。

这种情况在我工作过的一些小团队中发生过不止一次。像 git、mercurial 或 subversion 这样的源代码控制系统与问题跟踪系统一起是关键。

你有没有经历过非常顺利的技术面试——如果是这样,你对别人有什么建议?如果你经历了一场灾难性的面试,出了什么问题,你需要一个拥抱吗?

做你自己。

优秀的软件开发人员:

分享他们的知识——教学是成长和培养社区的关键

一个糟糕的软件开发人员:

倾向于自己做所有事情并且不分享他们的知识

iPhone、Android、其他——为什么?

我两个都有,不过我更喜欢安卓。好吧,这在技术上是不正确的,因为我正在涉足postmarketOS,这是一个用于移动设备的成熟的 Linux 发行版。

对于开发人员:PC 还是 Mac?为什么?
个人电脑; 我需要一些我可以扩展和维护自己的东西——Mac 只是价格过高的 PC,采用不同的外壳。

你希望被人记住的一件事是什么?

将 Delphi 带回受人尊敬的语言和开发环境,成为TIOBE编程语言排行榜的前 3 名

最好的开发者/黑客/技术/极客电影是什么?

我在这个类别中有多个最喜欢的:1995 年的黑客、拆除行动、反垄断、黑客帝国、割草人、战争游戏、Tron Legacy、Johnny Mnemonic。

任何开发人员都不应该没有:

Delphi的副本

如果拍一部关于你生活的电影,你想让谁扮演你?

强尼·李·米勒

你有一个人们可以访问的网站,如果有,它是什么?

博客:https : //code-kungfu.com
公司网站:https : //gkon.dk

如果您使用 Twitter,您的 Twitter 句柄是什么?
@B1tSmurf

您首选的潜在客户联系方式是什么?

发送电子邮件,然后安排在线会议或面对面会议。我更喜欢人们首先通过某种形式的文字联系。



使用 RAD Studio、Delphi 或 C++Builder 缩短开发时间并更快地进入市场。
设计。编程。编译。部署。

Embarcadero专访丹麦Delphi程序员格伦-杜弗克Glenn Dufke相关推荐

  1. 强烈推荐 DELPHI 程序员用 KOL+MCK

    以下资料均来自互连网: VCL 库是Delphi程序员熟知的,她几乎成了Delphi RAD技术的代言人. VCL拥有世界上最大最丰富的控件资源涵盖了软件开发的各个方面,远远超过其他开发工具,是每个程 ...

  2. Delphi程序员代码编写标准指南

    Delphi 6 程 序 员 代 码 编 写 标 准 指 南 一.序言 二.通用源代码格式规则 2.1 缩格 2.2 页边空格 2.3 Begin-End 配对 2.4 代码文件中通用符号含义 三.O ...

  3. 专访|从程序员到架构师:交流和分享最能让技术人进步

    (尧飘海:网易蜂巢首席架构师,负责容器云计算平台建设.曾负责过网易博客.游戏.易信,开源项目Pomelo研发工作,热爱开源和技术交流.) 到2016年,云计算发展已有十个年头. 十年前,亚马逊点燃了一 ...

  4. Delphi程序员的“Unity3D”:开源跨平台游戏开发引擎Castle Game Engine(CGE)

    官方网站:https://castle-engine.io/features.php Delphi牛人开发的3D/2D开源游戏引擎支持: 跨平台(Linux,Windows,Mac OS X,Free ...

  5. 原Borland Delphi研发部程序员Joe C. Hecht讲述自己离开Borland公司作为个体户程序员独立单干接活谋生的故事

    你好.这篇文章是我们与专业软件开发人员交谈的系列文章的一部分,询问他们以编写代码为生是什么感觉,并可能在此过程中获得对软件开发行业的一些见解. 今天我们要和 Joe C. Hecht 交谈,他也被称为 ...

  6. 25 岁的老 Delphi,还值得程序员入手吗?

    Delphi 25岁了!尽管它不再是很多 Windows 开发的明显选择,但它的"长寿"证明了其性能之高.回想起来,为什么 Delphi 当初未能占领 Windows 开发市场的更 ...

  7. 我坦白!我是第五位飞上太空的程序员游客

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 查尔斯·西蒙尼(Charles Simonyi)是软件史上的传奇人物.他高中时就开发出程序卖给政府,大学期间则 ...

  8. delphi query 存储为dbf_在Delphi程序中维护DBF数据库

    下载本文示例代码 p> 由于Delphi开发的易用性和快速 性,很多原来使用Foxpro和VisualFoxpro编程的程序员转向了Delphi.但由于工作上或其它的原因,原来的应用系统尤其是应 ...

  9. 是程序员就应该知道的东西

    程序员可以分为很多种,像Unix程序员.Windows程序员,或是C++程序员.Delphi程序员,等等.今天我想谈的是Web程序员,一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西 ...

最新文章

  1. php获取服务器文件路径,php获取服务器路径
  2. phoneGap+jquery mobile项目经验
  3. 怎么预约鸿蒙系统,华为鸿蒙2.0系统-鸿蒙2.0系统预约-艾艾软件园
  4. csrf防御 java_一分钟了解【CSRF攻击与防御】
  5. 利用IP组播技术传输视频信息
  6. Django中ORM常用字段及字段参数
  7. 计算机考研C语言题库
  8. 正确去掉Win7快捷方式小箭头
  9. 【C语言】练习3-8 查询水果价格
  10. centos7安装mplayer+smplayer
  11. 年会特辑丨池龙:上海“一网通办”政务服务模式分享
  12. lumen php命令,Lumen创建自定义make命令
  13. 云计算机英语怎么说,云用英语怎么说
  14. c语言中用age表示年龄的词语,age和aged表示年龄的区别
  15. 微信答题赚钱每题5元,搞兼职还不如做项目!
  16. 彩虹表破解Hash算法
  17. STM32F107的时钟设置由25M修改成8M
  18. 前端开发的基础生产力素养(后期不定期更新)
  19. 隔壁老王,我就服你了!
  20. STC8051 系列>>STC15W408AS系列单片机

热门文章

  1. 高科技企业:投资创新企业是高科技公司的必选
  2. 数字图像处理3rd - Chapter 1 - 2
  3. img图片转码base64使用(简单版)
  4. 云原生系列技术(四):DevOps技术
  5. 支付退款流程设计_Niushop微信支付配置、微信退款配置、微信转账配置操作流程...
  6. C语言实现cuckoo hash
  7. 销售经理应具备哪些技能
  8. jira字段配置(域配置)_到期日、时间跟踪等根据需要自行配置
  9. 任务8、打印杨辉三角形
  10. git小记-git默认是忽略大小写的