Modeling languages are tools that will help us picture things that could be too complex to comprehend or to represent whit no visual aid. We can use these tools to break down a complex problem or project into understandable parts in which we can focus on.
Modelling Languages are computer languages that very often provide graphical aid; they obey their own rules and have some sort of organized system that will define the steps to picture something by their rules.
Modelling languages have 4 main categories:
- System modeling language
- Object modeling languages
- Virtual reality modeling language
- Data modeling language
System Modeling Language (SYSML):
System modeling language is a language that focuses in decomposing of objects, it breaks them down to see what components make the object, this will be made with each of the resulting components too until we reach a desired level of atomization. The relationships that that the entities will have with one another will be visible by lines connecting them, they will be all joining and pointing to the “father” object to show that they are components of that object. Some objects will also be able to do things, so it is shown as subsystems of the object as seen in the example below.

Object modeling language:
This language focuses more on the relationships between objects than their components; yes it also breaks down the main program into parts, but these parts will now have attributes and functionalities that affect only them. This language determines what relationship an object has with another object, will it interact with it or will the first object create a bunch of other objects? This language will provide types of relationships with objects such as the method of interaction, the number of certain objects involved in the interaction and extra variables present etc. Object modeling language actually evolved and turned into what we know today as one of the most popular language: UML (unified modeling language).

Virtual Reality Modeling language (VRML):
This language is as its name suggests, more focused into three dimensional designs. This language is very different from the other languages because it actually needs you to create a texture or 3d object in order to visualize something. It is majorly used to view buildings, landscapes, textures etc. and its composition is very similar to HTML. This means that for software development, unless you really like 3D, you may not want this modeling language to start up a project, in the other hand if you are an architect or videogame developer, this could be the tool for you.

Data modeling language:
This language is similar to the object modeling language, but this time the language can actually be defined with just text, it can also be created visually as the example below, but the main advantage is that it can be understood without visual aid, making it easy to process. It is separated into entities and sub-entities where the cropped lines mean optional sub-entities, the bolded lines mean a parent-child relationship and the normal lines mean just an attribute of the entity. We can see an example below

Because of the nature of data modeling language, we can turn this drawing into the following text

The different kinds of modelling languages offer a good variety of methods to picture a problematic or complicated system, each one with its own advantages and flaws. Recently however the UML (unified modelling language) has become the most famous one of them all, at least for tackling software development problems. I personally find UML to be the most complete and well-rounded modelling language, it can be used in a lot of problems because of its versatility; of course if the problem pictured with another modelling language becomes simpler it would be best to use that instead of UML.