What is the point of ex5 libraries?

 

I've been messing with libraries, trying to get them to work for some ideas for the market, but I noticed a few things that would make that impossible (aside from them not allowing the export of classes, which can be somewhat solved in very convoluted ways): the functions in them get imported to an EA as with DLLs, but they are not really included in the compiled code, so if I remove (or change location) the library ex5 and mq5 files the EA doesn't run (if it finds the mq5 it gets compiled). Moreover, they can't get included as a resource like with indicator ex5 files.

So, if any other user were to use a library from the market and try to put the resulting product in the market (if that is even possible, because of the imports and the publishing checks), any customer would need to also download the library for it to work, and if the library is not free, that restricts by a lot who would be willing to pay for either the EA (as a buyer) or for the library (as a developer).

What does even happen when you run out of activations in a paid library? Do all of your programs that use it get unusable?

Then my question is, paying for libraries, aside from its (temporal?) use for programs that you can only make for yourself to use, what is it worth for? What's the point of them? Am I missing something in how any of this works or is there really no other use for them?

 
Manuel Alejandro Cercos Perez: I've been messing with libraries, trying to get them to work for some ideas for the market, but I noticed a few things that would make that impossible (aside from them not allowing the export of classes, which can be somewhat solved in very convoluted ways): the functions in them get imported to an EA as with DLLs, but they are not really included in the compiled code, so if I remove (or change location) the library ex5 and mq5 files the EA doesn't run (if it finds the mq5 it gets compiled). Moreover, they can't get included as a resource like with indicator ex5 files. So, if any other user were to use a library from the market and try to put the resulting product in the market (if that is even possible, because of the imports and the publishing checks), any customer would need to also download the library for it to work, and if the library is not free, that restricts by a lot who would be willing to pay for either the EA (as a buyer) or for the library (as a developer). What does even happen when you run out of activations in a paid library? Do all of your programs that use it get unusable?

Then my question is, paying for libraries, aside from its (temporal?) use for programs that you can only make for yourself to use, what is it worth for? What's the point of them? Am I missing something in how any of this works or is there really no other use for them?

Market products cannot be used to make other Market products. That goes for Libraries as it does for Indicators. Market products are for personal use only, not comercial use (hence, cannot be used for other Market products).

Market Libraries can, however, be used by their customers with their own personal code. They are the equivalent of the closed source libraries that can be found all over the the web (both free and for sale), for many of the other programming languages and their respective environments and specialised commercial applications. Think for example, about the closed source libraries available for Microsoft, Apple, Adobe and many other comercial projects.

 
Fernando Carreiro #:

Market products cannot be used to make other Market products. That goes for Libraries as it does for Indicators. Market products are for personal use only, not comercial use (hence, cannot be used for other Market products).

Market Libraries can, however, be used by their customers with their own personal code. They are the equivalent of the closed source libraries that can be found all over the the web (both free and for sale), for many of the other programming languages and their respective environments and specialised commercial applications. Think for example, about the closed source libraries available for Microsoft, Apple, Adobe and many other comercial projects.

That does make sense (that market products can't make other market products). It still limits much of what can be done in libraries in this context (as in most cases, you would be better off just giving an EA that implements the library functionality instead).

I don't have experience with those closed source libraries though, what is an example of them? So if you make a program with a closed source library (Microsoft etc), you can't sell/share it and it's only for personal use? (I would have thought you could do that given a commission, or in their marketplaces or something similar)

 
Manuel Alejandro Cercos Perez #: I don't have experience with those closed source libraries though, what is an example of them?

How about the WinAPI? It's not exactly a static library, but a dynamic one. but it serves as a simple example of which most MQL coders have heard of or used.

Manuel Alejandro Cercos Perez #: So if you make a program with a closed source library (Microsoft etc), you can't sell/share it and it's only for personal use?

Each commercial library enforces it's own licensing requirements. Many allow for comercial use.

Manuel Alejandro Cercos Perez #: (I would have thought you could do that given a commission, or in their marketplaces or something similar)

The Market here on this website works differently and has different rules and requirements.

 
I also thought later about commercial game engines (and how they allow commercial use with conditions)... I guess the issue then with mql closed-libraries is one of lost potential, maybe they don't plan on making different license enforcement/rules for the market, or its too difficult or complex, or it would require to also change how programs with libraries compile...
Reason: