Computer Vision News - October 2020
Introduction Julia is a dynamically typed, high-performance language designed for usage in research environments such as clusters, multiple GPUs and different platforms utilising the LLVM. An interesting concept of the language is the multiple dispatch. Let’s talk more about it for a minute, before going forward. Most of the researchers are familiar with the object-oriented paradigm of Python. Using this idea, one can express the world (and imitate the real world) through the definition of objects, inherit identities of those objects using methods, etc. Julia is nevertheless based on a more functional design. In comput er science terms,multiple dispatch is defined as the “generalization of single dispatch polymorphism where a function or method call is dynamically dispatched based on the derived type of the object on which the method has been called” (thanks Wikipedia). In a gentler approach, let’s imagine a function that modifies itself (dynamically) depending on the type of the argument. Let’s say that we want to add floats and integers. To do that, we could create two different functions. Using multiple dispatch, behaviours dependent on the argument type combinations are associated with some abstracts. Now, when a function is invoked -depending on the arguments- a different method is dispatched (i.e. single dispatch). Themagic power of Julia is that themethod isn’t just checking the first argument type. It will check every type of every argument before it decides which method to follow ( multiple dispatch ). Pretty clever, huh? New Programming Language 22 A gentle introduction to Julia Hello everyone! :) Thismonthwe’ll try something different. A new programming language. I can hear you already saying: “Wait, who needs another one?” and probably you are right. Julia is something like a domain-specific language in a sense. It’s designed to be dynamic, fresh, combining easy syntax with extreme speed. Let’s explore how it achieves that and a fewbasics towhet your appetite (and follow-up later with how to apply it for imaging and deep learning). by Ioannis Valasakis (@wizofe)
Made with FlippingBook
RkJQdWJsaXNoZXIy NTc3NzU=