Page 1 of 1

Visual Prolog binary as .NET Core assembly

Posted: 12 Jun 2019 17:25
by rameshsuri
Can Visual Prolog produce a .NET core assembly executable? If I use console only utility and not any kind go graphical stuff, the does the exe that the visual prolog generate would run on .NET core?

If it does, then this would be awesome. Because then you basically have a way to run Visual Prolog programs in Linux & Mac also without much efforts (Sure you might need windows to compile though). Again, my programs are going to Command line stuff/Console applications without any GUI or any system call specific to Windows.


Re: Visual Prolog binary as .NET Core assembly

Posted: 13 Jun 2019 7:54
by Thomas Linder Puls

Nor can it compile for Linux or macOS, but some have successfully run Visual Prolog programs on Wine.

Re: Visual Prolog binary as .NET Core assembly

Posted: 15 Jun 2019 5:20
by nbarthwal
I would like to advice you to look into this, as a business use case.

In the world of web services, Visual Prolog would make an excellent candidate for implementation. Also if you target a platform like .NET Core, you get cross platform compatibility automatically. Also, with Microservices, even user cases where there are already existing services in other languages, one can write additional services in Visual Prolog because Microservices supports language heterogeneity.

Functional languages are anyway gaining popularity for web services and no reason why Prolog should stay behind. I presented a talk on my Functional languages are excellent for implementation ( but the same reasons are valid for Prolog as well.

Re: Visual Prolog binary as .NET Core assembly

Posted: 17 Jun 2019 10:07
by Thomas Linder Puls
Thank you, for your advice :-).

You can already write web services in Visual Prolog (micro or something else as you like).

The .net platform does not require you to use a specific programming language.

But ... the .net platform has a built-in mandatory type system, which any programming language on the .net platform must use/obey/support. This includes the usage/structure/semantics of polymorphism/generics, objects, classes, inheritance, constructors, delegates, etc.

So the "programming language freedom" on the .net platform is rather limited. Visual Prolog would either have to
  • live on a remote island far away from the .net continent, or
  • be completely redesigned (and thus not be Visual Prolog).

Re: Visual Prolog binary as .NET Core assembly

Posted: 17 Jun 2019 11:31
by Paul Cerkez
Thanks Thomas for that explanation. I was wondering about the same thing (but have been WAY too busy to start investigating.)

Re: Visual Prolog binary as .NET Core assembly

Posted: 18 Jun 2019 6:20
by nbarthwal
Thanks Thomas! But the problem currently is use of Windows. Most services that I know of want to use Linux (or some form of containers) and currently there is no way of doing it.

The other way is VP to be supported in Linux. Again, GUI is not that critical. I know VP used to have Linux version till 5.x but I think 6.0 onwards that got stopped. Any plans to resuming a Linux version?

Re: Visual Prolog binary as .NET Core assembly

Posted: 18 Jun 2019 9:26
by Thomas Linder Puls
It is correct that we had support for some Unix variants back in vip5.

But we didn't use the Unix version ourselves and subsequently it was out of focus and thus under-considered, under-developed, under-tested, under-bug fixed, ... All in all it was just waste of resources on a product of low quality. And that is why we stopped it.

But Linux support has been considered a couple of years ago, when some large customer realized that they should pay (I think it was something like) €200.000 per year for Microsoft licenses. (I believe the price was later found to be significantly lower, by choosing another licensing model. But that is another story, we considered Linux back then).

The conclusion was in brief:
  • It is relatively affordable to produce the compiler and runtime (at least for Intel I386 CPU family)
  • It is relatively affordable to produce a basic library
  • It is completely unimaginable that we should be able to make the entire PFC (etc) as it is today work on Linux.
I.e. is not possible to create a PFC Linux version that would make the several million lines of code in the relevant product work on Linux.

Linux versions of our programs does not come from a Linux compiler. It will require huge rewrite.

So while it would be relatively affordable to produce the kind of Linux support you are talking about, it would be a completely different story to get our (income producing) running on Linux. And then we would back in the same situation as in the vip5 day: we spend (i.e. waste) resources on a bad product.

All in all: you should not expect Linux support.

Re: Visual Prolog binary as .NET Core assembly

Posted: 23 Jun 2019 15:29
by nbarthwal
Can you provide me with the old ViP 5.x for Linux (without warranties) ?

Re: Visual Prolog binary as .NET Core assembly

Posted: 24 Jun 2019 12:00
by Thomas Linder Puls