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.
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.
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.
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?
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 …
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 …
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.
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.
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.
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
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 …
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.
Here are some thoughts and I try to stop as I don’t want to be on this carousel.
Do not underestimate the power of (perceived) familiarity. Any language that looks anything like C will have a much better chance of not being immediately discarded. (ifs, fors, whiles, enums, functions, that kind of stuff)
Do not underestimate how difficult it is to find people who have both a firm theoretical foundation and are experienced programming practitioners. I am not saying there aren’t any, but it is just very difficult to get hold of them.
Do not overestimate the importance of your choice of a programming language or a technology in the current state of affairs. Yes I do believe that they are very important, but I don’t know that there would be enough good empirical research that would inform us when it comes to making the decisions.
These are my opinions and nothing else. I am always excited to know more about the last point I made (how the tools we use influence how we work).
I think the broader relevant area is macros – and, quite like LISP – it could be an important selling point.
For example one of Scala’s selling point is embedded DSLs – which touches on the non-functional requirements you indicated, such as making code more readable, reuse more systematic, etc – perhaps this can be positioned equally well for Prolog with DCG a classical example.
I still believe that one unique selling proposition of (SWI-)Prolog is programmer ergonomics. I have a rough idea of existing scientific research that would hint towards this. In order to show it so that I personally am satisfied I would need time and resources that I do not know how to access. Either way, the end result will not be that “Prolog is the best language for A and B and C” but rather “here are some results that show how humans can be more efficient in understanding and expressing their intent (hehe) while building a complex system”. Coincidentally some of Prolog’s existing features might (or might not) be part of this.
I am not sure what you are arguing for or against …
Let me get back to my original question:
What does it take to provide a clear entry point into (SWI) Prolog for a professional programmer working on commercial solutions.
I suggest making accessible a list of novel features included in (swi) Prolog along with a compelling value proposition …
Can this be done – or is (swi) prolog, along with all other Prologs, a lost cause for broader adoption – and only useful for teaching and academic research into logic programming techniques.
I personally, think that Prolog has tremendous potential when its value proposition is clearly articulated and barrier of entry significantly reduced – not(only) for the beginner – but for the professional developer.