当前位置: 首页 > 科技观察

编程和音乐真的一样吗?

时间:2023-03-17 20:13:53 科技观察

在过去的几十年里,对音乐创作和编程都感兴趣的计算机科学家设法将两者结合起来。人工智能创作的音乐与专业音乐家创作的音乐几乎没有区别。许多专业开发人员对音乐有着真正的热情,并且许多音乐家都涉足编程,这已经不是什么秘密了。例如,ElvisCostello是一位多产的英国音乐家,被誉为“他那一代最优秀的词曲作者”,在他的音乐事业起飞之前的70年代,他曾经营过一台IBM360。你可以看出为什么人们对这两个领域都着迷:因为作曲和编写算法之间有很多共同点。从表面上看,两者可能看起来截然不同,但开发具有创造性的一面,而作曲则具有机械性的一面。那么,编程和作曲之间的相似之处是什么?您的心中已经有了音乐让我们先来看看作曲和编程之间的相似之处。1.他们都是按照以下逻辑规则来作曲的,就像编程一样,需要古希腊人所谓的三技能。即:语法:扎实地理解基础知识——乐谱和编程语言规则的理论或知识。逻辑:您需要能够创建“逻辑推理”。在作曲或编码音乐时,您需要遵循逻辑规则才能使“移动的片段”协同工作。修辞:与语法和逻辑一样,您需要说服您的听众和新方法的用户接受标准做法。不遵循组合和开发的基本原理,任何事情都不会奏效。一个写得不好的程序会充满错误,就像病态的和弦结构会在一段音乐中造成不和谐一样。2.他们从小事中创造美要成为一名伟大的钢琴家,您必须首先练习和完善基础知识:简单、重复的音阶和琶音。要成为一名优秀的开发人员,您需要花费大量时间确保即使是最简单的表达式也能优雅且正确地编码。从小事开始,你逐渐构建大事,所以:3.你需要能够看到小事,就像作曲家必须考虑管弦乐队的不同乐器以及它们如何组合在一起发展一样开发人员需要保持抽象“当他们开始构建程序架构时,他们的脑海中就会出现“大局观”。这两个学科都需要建立更大更好的东西。4.自我表达是关键音乐和软件开发都需要创造力和自我表达:都需要发展自己的风格并创造出令人兴奋的新事物。5.你需要涉足技术音乐家和开发人员会花很长时间思考他们的创作将如何与其他产品交互并呈现在“最终用户”手中。作曲家可以添加重音来指示管弦乐队成员想要演奏的风格。吉他手可能会考虑使用外部硬件(放大器、效果器等),或者他们希望在录音室中制作歌曲。同样,开发人员需要牢记他们的最终产品将如何被其他人在何种设备和何种环境中使用。6.两者都涉及合作和个人主义莫扎特花了很多时间独自思考他的下一个乐谱,但即便如此,他仍需要与他人合作——即与他指挥的音乐家合作。同样,最成功的开发人员绝对不是纯粹的内向者:他们需要与最终用户、经理和UX设计师等进行协作。我不是音乐开发者!虽然两者有很多共同点,但一些反驳意见值得一听。并非每个开发人员都能成为下一个贝多芬!1.这个比喻只是我们开发者炫耀的一种方式吗?正如CodingHorror博客的作者所说,开发人员将他们的手艺与绘画、音乐或其他艺术形式进行比较,与其说是一种隐喻,不如说更像是一种自夸。当然,我们都希望我们正在构建的应用程序与格什温的音乐一样出色,或者我们刚刚设计的网站与迈尔斯·戴维斯的《Kind of Blue》一样具有影响力。但老实说,这是完全不同的,不是吗?2.编程是为了解决问题当你被要求设计一个应用程序时,通常是为了解决一个问题,例如,特定的业务或消费者问题。开发者擅长解决这样的问题,但这真的能和音乐相提并论吗?从最纯粹的角度来看,作曲是纯粹的感情和情绪的爆发和表达。3.编程与音乐有着截然不同的目的当你开发任何一种工具时,最终目标都是让最终用户能够做一些特定的事情。假设您正在构建一个商业应用程序——您的创建应该是为了方便最终用户的日常工作。相比之下,音乐没有特定的“目的”,它只是一种超越纯粹的享受。我们仍然无法确定它们的重要性:虽然组合和开发显然有一些共同点,但也有许多不同的地方。我们所知道的是,开发者和音乐家都可以丰富我们的生活,给我们一些我们不知道自己需要但现在离不开的东西。翻译链接:http://www.codeceo.com/article/programming-similar-to-music.html英文原文:IsProgrammingSimilartoComposingMusic?