个Ruby On Rail 创始人讨论软件开发( 四 )
许多软件工程师的这种自我厌恶完全是徒劳的 , 而且永远都不会解决 。软件开发是一个年轻的行业 , 如果我们再给它30年的ISO认证或任何严格的要求 , 我们将得出一个浪漫的工程概念 , 即它们在航空航天 , 电梯或桥梁中的工程…… 不是 。这是一个根本不同的领域 , 需要根本不同的方法 。
我们已经有了许多答案 。我们只是害怕拥抱他们 。例如 , 在传统工程估计中 , 很大一部分 。事情是根据估算和关键路径图进行的 , 因为这只是建造摩天大楼的方式 。倒入混凝土后 , 您无需重新配置定向塔的方式 。软件开发并非如此 。软件在许多方面都非常接近写作 , 游戏制作和电影的创作过程 。体验设计未知事物的过程 , 直到看到它 , 您才知道它是否好 。
看电影制作 。我们拍摄电影已有一百年了 。我们还没有弄清楚创作过程吗? 没有! 我们还没有 。您可以聘请出色的导演 , 出色的演员 , 但仍可以制作一部完全烂影片 。与建筑物相比 , 如果您选择了一个伟大的建筑师 , 一个伟大的工程公司和一个伟大的总承包商 , 那么您将到达一栋可以运转的建筑物 。您可能会犯一些小错误 , 但是基本结构是合理的 , 除非有人犯了一个完全疏忽的错误 。在电影制作 , 音乐 , 软件中 , 事情总是失败的 。即使知道如何构建事物的技巧的好人聚在一起并从事某些工作 , 他们仍然会失败 。
工程师对编程语言的强烈选择是他们的选择之一 。有没有好和坏的语言?是的 , 对于一个人 。对于个人而言 , 编程语言可能是好是坏 。我认为从客观的角度来看 , 它们的优劣也可以 , 但这种讨论几乎没有意思 。对我来说有趣的讨论是个人真理之一 。
例如 , 关于哪种语言能使编程语言变得更好的长期争论之一是您应该使用静态还是动态类型还是强类型还是弱类型的语言 。在Ruby中 , 您没有静态类型的语言 , 并且存在某些方法或方法不能很好解决的重构或错误 。另一方面 , 您有类似Java之类的东西 , 只是以最强类型语言的标准示例为例 , 它以不同的方式工作 。对于具有不同大脑的不同人 , 不同的语言或者不说话 。当您学习风格时 , 情况类似 。有些人在视觉上学习 , 有些人在听觉上学习 , 而这些样式对个人而言绝对是对还是错 。如果您是视觉学习者 , 那么尝试以听觉或触觉的方式学习对您来说是行不通的 。对我来说 , Ruby是一种比我尝试过的任何其他语言都要优越的编程语言 , 因为它像手套一样适合我的大脑 。
我们应该研究并接受来自不同大脑的个人真理 , 但我们不应该回避那些拥有不同大脑类型的人争论什么更好和什么不好 。意见冲突具有巨大的价值 。即使您有一个像我这样的人说Ruby是有史以来最伟大的语言 , 而另一个人说Java是有史以来最伟大的语言 。这些是我们应该接受的 。就像原子互相撞击一样 。然后我们得到光 , 我们得到能量 , 我们得到兴奋 。那很好! 工程师们非常讨厌冲突 , 以至于他们不能让两个人不同意而又不退缩并进行"权衡! 权衡取舍! 这取决于!' 。就像哭泣的叔叔一样 , 我认为这对学习 , 启发和任何事物都是完全相反的 。
当我辩论软件开发以及我的选择和观点时 , 我会全心全意地确定适合自己的方式 。观众可以决定自己更喜欢谁 。他们可以自己尝试 。他们可以看到我提出的关于我与Ruby的恋情的论点是否引起他们的共鸣 。如果没有呢? 谁来哄!
类型检查
数据被分为类型 , 每种编程语言都有自己的规则来决定您可以对哪种类型进行处理 。类型检查意味着强制执行这些规则 , 以便程序知道 , 例如 , 您应将分配给变量的值30视为数字还是两个字符的字符串 。语言是根据类型检查的时间进行静态或动态输入 , 而根据其完成方式则是强类型还是弱类型 。
【个Ruby On Rail 创始人讨论软件开发】(本文翻译自Wojtek Borowicz的文章《Computers Are Hard: building software with David Heinemeier Hansson》 , 参考:)
推荐阅读
- 苹果创始人乔布斯的传奇人生:造就了苹果的巅峰,其实没那么完美
- HTC创始人表态:不会放弃5G手机
- 创始人表态:不会放弃5G手机
- 教育圈又一独角兽暴雷,创始人卷款跑路,数10万家长被坑惨
- 对话今年爆火的外骨骼机器人创始人,从民房起步连续创业的追梦者
- 雷军:不惜一切代价做好产品体验
- 又一共享单车停运,创始人成功套现15亿,你的押金退了吗?
- 告别性能问题:Ruby 3.0正式发布
- 郭台铭也没想到,中国又崛起一家代工巨头,创始人是富士康女高管
- Neo创始人达鸿飞:DeFi发展仍处早期阶段 链上资产总量尚小