This is an example of a very well researched article, containing many very good links to further information.
It is unfortunate, though at the same time understandable, that the best contributors are always too modest to post about their own work on this list.
They typically set too high a standard for themselves.
I wish users like m00nlight would post more. It's a short article, but one can tell that a lot of work and care has been dedicated to it.
It is unfortunate, though at the same time understandable, that the best contributors are always too modest to post about their own work on this list.The impact something has is the multiplication of (a) the inherent quality of the thing itself and (b) the effectiveness with which the thing is shared with others. (This is why universities combine both research and teaching.) IIUC then ATM high-value contributions are getting lost because they are not spread effectively? If true this would be a big problem!
I do not understand this reasoning: the fact that someone places a high standard on the quality of a thing does not imply that the person is unwilling to share it in early stages. I would reason the other way round: since the quality of a thing may improve under feedback from others, a person with high quality standards would share her work often.
Good point! What concrete steps can we take to make these high-quality contributions more visible? I will give my 2cts below but I also want to hear your ideas on this.I wish users like m00nlight would post more. It's a short article, but one can tell that a lot of work and care has been dedicated to it.
We have already identified that improvements are needed in the following three areas:- Packs It should be very easy to share Prolog code & documentation with others. The current SWI Pack system is a good starting point but needs to be extended upon. Based on community suggestions I've compiled a Wiki page about this.
- Tutorials Much of the Prolog wisdom of the present and past can be more successfully transmitted to the new generation. Currently I see the work of Ulrich and other Pure Prologgers on StackOverflow as the best example of how this can be done effectively today. (I include an example of what I mean for those that may not be aware of what's going on over at SO. The example is randomly chosen, there are literally hundreds of high-quality posts like this.) Since SO is question-based, it is not the best place to publish a more lengthy tutorial. In the summer I want to write a Semantic Web tutorial in SWISH. Since many existing tutorials are already Web-based we may be able to turn them into SWISH notebooks as well. Since they can be edited, it should be easy for others to fix/extend them.
Even before that, the primitive reactions he often got when sharing his work were too much of a distraction from the work he is doing, so he simply stopped posting on the SWI mailing list.
Many high-quality posters stopped participating when the SWI mailing list was moved to a Google group. I find this extremely unfortunate. In particular, we have lost one of the world's most famous and highly regarded Prolog programmers, Richard O'Keefe, certainly at least in part also due to this move. My first suggestion is therefore to move back to a mailing list that has a chance to attract such contributors again.
People are more willing to share high-quality material when at least a significant fraction of the community is actually capable of understanding and appreciating it, and then discusses it in a way that lives up to its quality.
We have already identified that improvements are needed in the following three areas:- Packs It should be very easy to share Prolog code & documentation with others. The current SWI Pack system is a good starting point but needs to be extended upon. Based on community suggestions I've compiled a Wiki page about this.
One issue I noticed is that everyone calls this "packs", but the link on the homepage is still labeled (Downloads ->) "Add-ons". My first suggestion is to call the link Downloads->"Packs" or "Packs (add-ons)", or something in that direction.
Hi Markus,Even before that, the primitive reactions he often got when sharing his work were too much of a distraction from the work he is doing, so he simply stopped posting on the SWI mailing list.Sorry to hear that. My explanation would be that SWI attracts a more heterogeneous group of programmers than other Prologs. Some users want to work on improving the declarative aspects of the language, while others want to build a cool Web site (and all usage scenario's in between these two extremes).
Users in the latter group may not always understand some of the stuff that is brought up by users in the former group. This is not really a problem IMO, as long as people appreciate that many theoretic contributions are required in order to, for instance, build better Web sites.
Like little children, many Prolog users currently enjoy eating the raw dough.
My hope is that when they grow up, they will appreciate the finished pizza in the form of the fully baked pure Prolog constructs that we are making available.
Sorry to hear that. My explanation would be that SWI attracts a more heterogeneous group of programmers than other Prologs. Some users want to work on improving the declarative aspects of the language, while others want to build a cool Web site (and all usage scenario's in between these two extremes).
Users in the latter group may not always understand some of the stuff that is brought up by users in the former group. This is not really a problem IMO, as long as people appreciate that many theoretic contributions are required in order to, for instance, build better Web sites.
I strongly agree with Wouter here. I thought I'd stay quiet, but since this is coming up now, I want to weigh in.
Hi Michael,
On Saturday, March 26, 2016 at 3:47:27 PM UTC+1, Michael BEN YOSEF wrote:
Sorry to hear that. My explanation would be that SWI attracts a more heterogeneous group of programmers than other Prologs. Some users want to work on improving the declarative aspects of the language, while others want to build a cool Web site (and all usage scenario's in between these two extremes).
Users in the latter group may not always understand some of the stuff that is brought up by users in the former group. This is not really a problem IMO, as long as people appreciate that many theoretic contributions are required in order to, for instance, build better Web sites.
I strongly agree with Wouter here. I thought I'd stay quiet, but since this is coming up now, I want to weigh in.
Hi Julio Di Egidio, do you mean a challenge like this:
On Monday, March 28, 2016 at 3:33:54 PM UTC+1, Jan Burse wrote:
Hi Julio Di Egidio, do you mean a challenge like this:
If you look at many of the other Prologs out there then you will likely encounter a different -- and in many ways better -- tone there, because the audience is oftentimes much more homogeneous. If a community is homogeneous then it is no wonder why communication is effortless: the parties involved largely share the same set of competencies and values.Hi Michael, Julio, Markus, others,You say that you agree with me, but let me elaborate a bit on what I meant to say :-P
Compared to that, the SWI community is almost like the rough neighborhood in Prolog Town ;-) It is used by commercial, hobbyist, and academic users alike, all with their own preconceptions and ways of expressing themselves. As such, it is only natural that not all discussions are at the same level of proficiency. At the same time, SWI is one of the most promising attempts to bring Logic Programming to a wider audience. It offers CLP(FD), CHR etc. in combination with multi-threading, a HTTP server, JavaScript quasi-quoting, etc. You can build large-scale applications that run as a Web Service, integrate with existing infrastructures and that have thousands of users, while benefiting from using declarative approaches.The benefit of having a heterogeneous user base IMO is that it provides better opportunities to transfer knowledge about Logic Programming from one user group to another. I think that this is what we should focus on in SWI.
Challenging what exactly?
your emphasis remains on declarative
, which is what has been criticised here (and not just by me).
?- time((fibluc(100, X, Y), fibluc(N, X, Z))).
% 11,337,988 inferences, 3.092 CPU in 3.100 seconds (100% CPU, 3666357 Lips)
I cannot reproduce this result neither for SWI 7.3.19, 7.2.3 and 6.5.2. What sense would it make
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.3.19-1-g61ad21b-DIRTY)...
Using his second version
?- time((fibluc(100, X, Y), fibluc(N, X, Z))).
% 10,070,701 inferences, 4.728 CPU in 4.738 seconds (100% CPU, 2130238 Lips)
X = 354224848179261915075,
Y = Z, Z = 792070839848372253127,
N = 100 ;
% 1,415,320 inferences, 0.615 CPU in 0.619 seconds (99% CPU, 2301332 Lips)
false.
The first version (with tail recursion) takes too long:
?- between(30,50,I), time((fibluc(I, X, Y), fibluc(N, X, Z))), writeln(I), fail.
% 3,555,184 inferences, 1.777 CPU in 1.782 seconds (100% CPU, 2000351 Lips)
30
% 4,159,367 inferences, 2.049 CPU in 2.073 seconds (99% CPU, 2029484 Lips)
% 900,317 inferences, 0.477 CPU in 0.482 seconds (99% CPU, 1889168 Lips)
31
% 20,585,667 inferences, 15.887 CPU in 15.934 seconds (100% CPU, 1295733 Lips)
% 59,988,012 inferences, 122.686 CPU in 123.458 seconds (99% CPU, 488955 Lips)
38
% 186,506,766 inferences, 411.913 CPU in 415.725 seconds (99% CPU, 452782 Lips)
% 1,408,922 inferences, 0.678 CPU in 0.681 seconds (100% CPU, 2076652 Lips)
39
... still running...
--
You received this message because you are subscribed to the Google Groups "SWI-Prolog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swi-prolog+...@googlegroups.com.
Visit this group at https://groups.google.com/group/swi-prolog.
For more options, visit https://groups.google.com/d/optout.
Al least for monotonic sequences, I would rather discourage newbies (ab)using of CLP(FD)...
The test case aka challenge is about changing
the mode of a predicate via CLP(FD).