ToC for today's professional prolog programmer book

Job fair would be great – if there would be a pool of Prolog developers that could develop to there …

Companies, large and small, need programmers and choose indeed their language based on availability of a large pool of programmers in the market – and Prolog clearly can’t compete there – now and in the foreseeable future.

At this stage I am arguing (with little success, i guess) that Prolog experts should perceive a clear incentive to educate others to become expert Prolog programmers – having more programmers is good for them, for the community and for the market at large.

A large pool starts with the beginning = educating students with the basics they need to understand how to be programming in Prolog.

Keep in mind anyway that starting to code “correctly” is minimum learning for 6 months then let’s say 2 years to get some skills then you can start being “efficient” …

Edit
Moreover (to my point of view) to make it grow, it is important to stop saying that Prolog is dedicated to a certain domain. It is the use of a programming language and the expertise that you acquire that makes it fit to what you want to do with it

… as well as the library around it, … and this latest point is also about what skilled programmers want to bring to the community with a return which will valorize their reputation.

I am not sure if this always is the case.

Lets take Rust as example:

I don’t think its diffusion started through students and academia – but, through the Mozilla foundation who looked at solving a real and critical problem in browser development – at a time where browsers more and more became a platform for arbitrary execution of code.

From Mozilla it went to a foundation and then to professionals in other organizations, such as Google and the Linux foundation, who started to explore and eventually adopt the language.

Students followed once profs started to see adoption and started to teach it …

I argue that Prolog could go through a similar path if a commercial “killer” use case could be identified that attracts the attention of professionals solving commercial problems – who identify prolog as signficantly superior than other offerings for those use cases

Sorry to say that i don’t consider Rust as a top language … knowing that you have 10 to 20 new languages every year including Go and company …

It doesn’t really matter whether its a great language or not – what matters is its diffusion and adoption path … and apparently, there are many different ways languages get adopted.

And, the question is how could Prolog be (better) commercialized, if you will, amongst professional developers.

Dan

Rather than “commercialized”, a better terminology should be “supported” or “promoted”.

Otherwise better sell Prolog to a GAFAM and stop having a free product … then you will have a “commercialized” product.

You can also look at Python whose father is now part of Microsoft’s team which lets little illusion about where it will end up … in the same style you can look at where C++ comes from …

Edit
Being a contributor is also a way to valorize your reputation (and so your own value as a programmer) while at the same time extending Prolog capabilities and market reach …

I agree – i took it a bit to far with the commercial terminology.

I came to like the commercial point of view though – choices, including developers language choices, have to create value – when all is considered – and its a good way to look at things, since once value is well recognized it can become self sustaining at scale.

Absolutely, and what is Prolog’s USP … is the question …

I think a USP is best evaluated within a commercial, organizational and technological setting …

Being open source, having a community, and even being standardized is great but not enouugh of a key differentiator within a context …

Dan

Btw, the free in open source isn’t enough to drive a decision –

Do you know why Munich decided to switch back to MS-Office … after spearheading open software …

The thing is that making MS-Office bis is just totally silly … same as OpenOffice which is since the beginning a total non sense …

When you want to succeed, you need to propose something different or better, not try a mee-too on a product that is already established.

As a city they should first have thought in terms of service rather than copying “as is” … otherwise you fail on the cost of ownership … and this is a question that is not just political or in terms of engineering.

This discussion reminded me of this previous one Crowd-Contributing a Prolog Cookbook ... an embryonic kernel which I see was also started by @grossdan

While I’m as keen as everyone for a nice SWI-Prolog cookbook, I have to confess I never contributed to skeleton document at Prolog Cookbook - Google Docs partly because Swish is a way better way to do this.

Problem with Swish is, I’ve lost track of all the notebooks I’ve created there, let alone know how to access those of over people. So a simple ToC for what’s on Swish would be a good start.

There is a link from the SWI-Prolog homepage “Wiki” at SWI-Prolog Wiki facilities but there doesn’t seem to be any content when I log in. So I guess that would be the natural place to start developing the cookbook.

Another issue with Swish is that by design there is quite a bit you can’t demo there, basically anything that requires OS interaction.

As long as you created all notebooks under the same account (or, just from the same machine), they are easy to find. Next you can make one or more notebooks that link them all together.

That is a bit defunct :frowning: The content is on GitHub - SWI-Prolog/plweb-www: Submodule of plweb.git that contains the (wiki) web-pages and mainly updated through github.

1 Like

I’ve used an open source wiki http://moinmo.in/ written in Python for my own notes, so can say from personal experience that setting up a wiki is really easy. As always, the hard-part is attracting quality content and fighting off spam.

A problem at the moment is there’s a lot of information on Prolog scattered all over the place, some of which is linked to from the “Tutorials” menu, but much of it isn’t aimed at SWI-Prolog newcomers.

I think it would be really handy for beginners to get direction to specific Swish notebooks with examples in whatever their area of interest is. “Curated content” I think is the jargon term I’m looking for.

The technique can be solved. Finding someone with the skills to take ownership for such a project is the hard part. There are surely people around that have these skills. The reward seems too small though. I fear the market is too small to do this as a commercial project. Finding a sponsor might be an option?

Hi @jan

While I don’t see myself having the skills (yet), I would love to own such an activity.

But i think you are right – having tried more than once to motivate list members to get involved and contribute, and failed, – there may just not be enough of an incentive to contribute.

And my premise that experts should see value in increasing the skill level in the community also doesn’t seem to hold water – although, I personally, feel compelled to do so and can justify it through self-interest as well …

Dan

2 Likes

I’m happy to volunteer time. I’ve already done quite a bit of content I can simply move to wiki pages, and do some moderating.

2 Likes

DCG is an important topic but (as a sub-language) probably quite marginal when it comes to developing a commercial system.

I want to see topics covered that compels (here’s the word again) – professional developers choose Prolog as a language of choice in commercial settings.

These are the new areas of capability not covered in past introductory publications, such as tabling, continuation, and other that Jan had mentioned, etc.

What can you do with them – how can they provide you will great solutions to problems – how does Prolog become a compelling choice with these in the mix in terms of developers productivity, satisfaction, cost and time to market, as well as customer satisfaction and reduced total cost of ownership – to name a few key values relevant in commercial settings …

Dan

You seem to need marketing material. It is still a bit unclear who is the audience. If your goal is to take “seasoned developers” and convince them that they should pick up a new ancient language because reasons, this is not gonna happen (but I would love to be surprised!).

You need to get them while they’re young. For that, start a cabal and begin a massive “viral marketing campaign” where you and your fellow conspirators create enough decent quality content that shows that Prolog is, indeed,

What you need in order to succeed, roughly in order of importance:

  • It should not be obvious that this is, indeed, a coordinated campaign;
  • You must reference and cite each other without making it too conspicuous;
  • You should tell success stories and if you don’t exactly have them, you might need to chose which parts of the real stories to tell and which to downplay or skip.

When it comes to convincing young programmers with “real world data”, the bar is quite low. It should be possible to collect and present the kind of data that would be good enough. When it comes to technical details, you can either talk around them or suggest that people dig in and read the docs. Don’t forget to post your materials to as many online forums as you can, using high-rep users if possible to do the posting for you.


There, you have it. This is a rough outline of how you can approach your problem.

Hi Boris,

thank you for your suggestions.

Having worked on a commercial startup venture myself for some time now, based on my experience, I do see the sequence of events differently – and marketing is not a first step, nor is it the key to success.

  1. you have to first show compellingly the commercial value, to the programmer and to the programmers customer, that you can get from the use of Prolog.

And in particular, given the new feature set that “refreshes” Prolog from it’s “ancient” roots to a modern language with modern language feature.

  1. you have to make Prolog accessible to professional developers with lowest friction possible.

Currently, the documentation of features are very hard to understand – even for someone working 3 years already with Prolog – that’s a significant barrier of entry – making it highly unlikely to get adoption

  1. you have to make visible the ecosystem in which Prolog is used and can operate in – and show that it fits with key commercial needs

Jan’s current effort around ROS is a great example …

  1. I fully agree with you that then marketing can make a difference, including success stories and the like – if the (commercial) value proposition is first clearly identified, articulated and then targeted and barrier/friction of entry is significantly reduced.

Dan