You are an architect, and you want to advance to more professional levels? Maybe you need to broaden your tools? Either way, learning a programming language would be helpful. In fact, there are many reasons to emphasize why it is important for architects to learn to code. However, after you decide on learning a programming language, problems arise! In the first place, there are many different choices and many different programming languages for architects to choose from. Secondly, each programming language has its specific vast set of features. Thirdly, each one works in a different environment and needs different tools. In another word, the topic “Architectural programming” is too deep to just dive into it. With this in mind, the first question that arises is: “Which programming language should architects learn?”
Programming languages for architectural programming
In other to start analyzing our choices, let’s first jump to the international Northeaster University. According to them, Python is the first in the top 10 most popular programming languages in 2021. Due to the simple syntax and large library of standards and toolkits, also in addition to integration with other programming languages, Python is easy to learn. However, the drawback of using python is the lack of ability to integrate with a smartphone application.
To clarify, in the author’s opinion, rich artificial intelligence frameworks are the most exciting feature of using python. That is to say, there are many talks on how to use AI through architectural programming to enhance the design process. For instance, here, at Hybevo, we do have some experience on how to use AI in conjunction with BIM for skyscraper’s form-finding. To clarify, you can learn more about how to use AI + BIM in this link.
What does python have for architects? Well, apart from being easy to learn, this programming language is available in most tools that architects use. Whether you are using Rhino 3D, Grasshopper 3D, or Autodesk Revit and Maya, all of them support python programming language.
Java is a programming language that needs the least implementation of dependencies to work. It was originally developed at Sun Microsystems and released in 1995. Important to realize, the primary goal of Java are as follows:
- Being simple
- Should be robust and secure
- Have to execute with high performance
- Must be dynamic
- needs to be portable
You can read more about the details on this page. Furthermore, Java 3D API (Application Programming Interface) is used for writing three-dimensional graphics applications. In addition, it gives the developer the ability to create and manipulate 3D geometries. However, The drawback of java is that the company charges a licensing fee to use the java development kit (JDK). Also, based on the author’s experience, it is not that easy to learn.
- Free to download and open source
- Interactive programs with 2D, 3D, PDF, or SVG output
- OpenGL integration for accelerated 2D and 3D
- For GNU/Linux, Mac OS X, Windows, Android, and ARM
- Over 100 libraries extend the core software
- Well documented, with many books available
C is one of the first programming languages that was deployed. that is to say, it served as a foundation for a newer programming language like Python and Ruby. Above all, it is easy to debug, test, and maintain. It has a complex syntax compared to modern languages. Moreover, it can run on any type of device, so it is commonly used for programming hardware.
C++ is a powerful programming language used for building applications with faster performance. Certainly, the key features of this language are its cross-platform hardware support and adaptability to a changing internal environment. Also, C++ works well for multi-device and multi-platform systems. Moreover, over time, programmers have written a large set of libraries and compilers for C++. On the other hand, it has complex syntax and an abundance of features that can make it complicated for new programmers.
For architects, much of Rhino 3D for windows is written in C++. Rhino for Mac is in C++ and Objective-C. Likewise, the rest of the Rhino is written in a .NET language, mostly C#. Certainly, if you want to write a new plugin for rhino you can use C/C++.
C-Sharp was originally designed by Microsoft as part of its .NET framework for building Windows applications. Firstly, its syntax is like C and C++. Secondly, Xamarin can be used for creating cross-platform apps. Thirdly, If you are interested in VR development or creating video games, C# is the most suitable one. In addition, most of the architectural software supports the C# programming language. For example, Autodesk usually gives API (application user interface) to its software like Revit. Also, Rhino 3D supports C# programming. Moreover, you will be able to develop new plugins for this software. lastly, game engines are new to the architectural industry. That is to say, there are now many practices on how to use game engines in architecture. If you are interested in these technologies, you definitely have to go with C#.
Ruby is a scripting language that’s commonly used for a web application framework. That is to say, its community is the friendliest and has the most helpful user. Also, it has a straightforward syntax. Furthermore, it was designed and developed in the mid-1990 in Japan. SketchUp allows using its API through Ruby programming language. Though it is available from within SketchUp, it cannot be used by itself.
Comparing Architectural Programming languages
Now that you are introduced to top programming languages that architects can use, it is time for you to check the features of each and compare them to one another.
|Easy to learn||✓||✓||✓||✓|
|Rhino 3D support||✓||✓||✓|
|Autodesk Revit support||✓||✓||✓|
|Autodesk Maya support||✓||✓||✓|
|Autodesk 3ds Max support||✓||✓||✓|
|Easy development environment setup||It has its own environment||✓||✓||It has its own environment|
|Easy integration into the design process||✓||✓|
|Virtual reality (VR) support||✓|
|Game engine support||✓|
From the table, as it can be seen, though there are different options available, architects really have only two choices. If you are a beginner, you either stick with python or C-Sharp. After all, you want to be able to use your knowledge in the industry-standard software and you want it to be easy.
One of the most important features that you should keep in mind is the integrated development environment or IDE. To clarify, if you are working with lines of code, you rather have an efficient working environment. Certainly, C# due to being part of a .NET package can already be used within Visual Studio. In contrast, even though python is very popular, the internal IDE is usually very hard to work with. Not to mention, setting up an external IDE is even harder. Regardless of all the things said, if you want to dive deep into artificial intelligence (AI), surely you must work with python.
Last words on architectural programming languages
To sum up, it is important to choose what programing language you will use. However, it should be noted that learning an architectural programming language does not necessarily mean that you will become a better architect. In other words, the architectural design process is a system. Certainly, learning a good programming language can vastly improve your tools and abilities.
Still, stuck? Let me say this: “If you have enough reason to learn a programming language and you are a beginner, then stick with either python or C#”. After that, It is all trial and error.