Content deleted Content added
m Maintain {{WPBS}}: 1 WikiProject template. Keep majority rating "Start" in {{WPBS}}. Remove 1 same rating as {{WPBS}} in {{WikiProject Computing}}. Tag: |
|||
(41 intermediate revisions by 25 users not shown) | |||
Line 1:
{{Talk header}}
{{WikiProject banner shell|class=Start|1=
{{WikiProject Computing|importance=Low|free-software=yes|free-software-importance=Low|software=yes}}
}}
==Logo==
The "logo" listed on this page is actually scanned from a 1940s ad for the [Mercury (automobile)|Ford Mecury]. It's not the logo of the programming language project. -- [[User:De Guerre|De Guerre]] 05:43, 8 April 2007 (UTC)
Line 7 ⟶ 12:
:::I'm afraid I can't counter that due to the [[WP:NOR]] rule, but back in the day, I was in the office next to the guy who scanned the picture and put it on the official web page. --[[User:De Guerre|De Guerre]] ([[User talk:De Guerre|talk]]) 23:08, 17 February 2008 (UTC)
::::You are probably right about the source of the image but the fact that it appears on the language's main page means that the mercury project has chosen it as their logo and it is fair use for us to use it in the article to identify is as such. Please correct me if I am wrong. [[User:4zimuth|4zimuth]] ([[User talk:4zimuth|talk]]) 03:57, 19 February 2008 (UTC)
==Examples==
The article could use a few more examples to illustrate Mercury's syntax. If anyone has any ideas on example programs that illustrate Mercury's functional/logical nature please post them. For now I'll add the Fibonacci numbers program from Ralph Becket's tutorial. [[User:4zimuth|4zimuth]] ([[User talk:4zimuth|talk]]) 20:00, 17 February 2008 (UTC)
==Fair use rationale for Image:Mercury (programming language) logo.jpg==
[[Image:Nuvola apps important.svg|70px|left]]
'''[[:Image:Mercury (programming language) logo.jpg]]''' is being used on this article. I notice the image page specifies that the image is being used under [[Wikipedia:Fair use|fair use]] but there is no [[Wikipedia:Fair use rationale guideline|explanation or rationale]] as to why its use in '''this''' Wikipedia article constitutes fair use. In addition to the [[Wikipedia:Image copyright tags/Fair use|boilerplate fair use template]], you must also write out on the image description page a specific explanation or rationale for why using this image in each article is consistent with [[WP:FU|fair use]].
Please go to [[:Image:Mercury (programming language) logo.jpg|the image description page]] and edit it to include a [[Wikipedia:Fair use rationale guideline |fair use rationale]]. Using one of the templates at [[Wikipedia:Fair use rationale guideline]] is an easy way to ensure that your image is in compliance with Wikipedia policy, but remember that you must complete the template. Do not simply insert a blank template on an image page.
If there is other fair use media, consider checking that you have specified the fair use rationale on the other images used on this page. Note that any fair use images lacking such an explanation can be deleted one week after being tagged, as described on [[Wikipedia:Criteria for speedy deletion#Images.2FMedia|criteria for speedy deletion]]. If you have any questions please ask them at the [[Wikipedia:Media copyright questions|Media copyright questions page]]. Thank you.<!-- Template:Missing rationale2 -->
[[User:BetacommandBot|BetacommandBot]] ([[User talk:BetacommandBot|talk]]) 14:43, 8 March 2008 (UTC)
== Examples of difficulties introduced by declarativeness? ==
"can make certain programming constructs (such as a switch over a number of options, with a default) harder to express"
Prolog:
(
Day = saturday, !, OpenHours = (8 - 15)
;
Day = sunday, !, OpenHours = (9 - 13)
;
OpenHours = (8 - 17)
)
Mercury: For the same amount of compiler checking as the above, one could use an if-then-else structure:
( if Day = saturday then
OpenHours = (8 - 15)
else if Day = sunday then
OpenHours = (9 - 13)
else
OpenHours = (8 - 17)
).
[Actually, for the above simple example one would probably use the functional form of if-then-else, i.e. OpenHours = ( if ... then (8 - 15) else if ... then (9 - 13) else (8 - 17) ).]
The above doesn't seem a good example of extra difficulty. I'm sure there better examples (maybe failure-driven I/O ?); can someone supply one? <small><span class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Pjrm|Pjrm]] ([[User talk:Pjrm|talk]] • [[Special:Contributions/Pjrm|contribs]]) 12:04, 1 February 2009 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
:My guess is that something like this Prolog code might have been meant:
day_openhours(saturday, 8-15) :- !.
day_openhours(sunday, 9-13) :- !.
day_openhours(_OtherDay, 8-17). % possibly add a check that the first argument is in fact a day
:It's not very pretty, but it gets the job done, is deterministic, and is friendly to clause indexing (i.e., it can possibly compile to smart code that's more efficient than an if-else cascade). Without the cuts, the "default" rule would have to contain some kind of "not one of the days above" condition. That would mean more---redundant!---code, which might justify the "harder to express" judgement. [[Special:Contributions/77.117.184.155|77.117.184.155]] ([[User talk:77.117.184.155|talk]]) 19:04, 2 December 2009 (UTC)
::I find the Prolog construct cuts-in-all-cases-except-the-last more readable than the Mercury equivalent. But that's just my opinion which of course falls foul of [[WP:OR]]. But there is no issue of expressiveness. The claim "harder to express" needs removing or a reliable source. [[User:Pgr94|pgr94]] ([[User talk:Pgr94|talk]]) 10:57, 3 December 2009 (UTC)
Mercury: What you really want is something like this:
(
Day = saturday,
OpenHours = (8 - 15)
;
Day = sunday,
OpenHours = (9 - 13)
;
( Day = monday
; Day = tuesday
; Day = wednesday
; Day = thursday
; Day = friday
),
OpenHours = (8 - 17)
).
This is a switch whose third case is a multi-cons-id case, This gets compiled efficiently, expresses the computation clearly and (in the right context) uses the determinism checker to ensure that all days are covered exactly once. It can also be run in reverse where the OpenHours is ground and Day is free, where it would be nondeterministic. <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/210.84.17.212|210.84.17.212]] ([[User talk:210.84.17.212|talk]]) 01:56, 12 February 2010 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
== "Good" principles ==
It sounds a bit iffy to say that it's designed with "good" software engineering principles. This sounds like it's claiming that compiled, static-typed languages are always better than interpreted, dynamic-typed languages. -[[User:Qeny|Qeny]] ([[User talk:Qeny|talk]]) 00:40, 30 April 2009 (UTC)
Nothing (other than their inescapable humanity) prevents a computer programmer from employing good software engineering principles without the help of a strong static type system. However, for those of us that would rather have help, these guys have 'designed' the language with good 'software engineering principles' in mind. I do not think the word 'good' is strong enough to imply exclusion anyhow. Good does not mean better. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/173.191.159.38|173.191.159.38]] ([[User talk:173.191.159.38|talk]]) 02:06, 8 October 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
== Is the Mercury project dead? ==
The website seems to be down more often that it is up (4 out of 5 attempts failed this month). The website looks dated and lacklustre. The forums/mailing lists are full of spam. Shame really, because it looks like an interesting language. [[User:Pgr94|pgr94]] ([[User talk:Pgr94|talk]]) 14:51, 26 February 2010 (UTC)
:The current stable version dates from 2006 and the compiler does not compile with recent versions of [[gcc]] as supplied with modern linux distributions. [http://www.mercury.csse.unimelb.edu.au/download/release.html] [[User:Pgr94|pgr94]] ([[User talk:Pgr94|talk]]) 06:19, 27 February 2010 (UTC)
The project is definitely not dead, Melbourne Uni has at least a dozen postgrad + final year undergrad + staff working on the compiler, however i've been told by some friends working on the compiler that it is very difficult (read: impossible) to bootstrap as chunks of the build process assume that a working mercury implementation is available. <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/131.170.170.135|131.170.170.135]] ([[User talk:131.170.170.135|talk]]) 05:36, 13 May 2010 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
:Bootstrapping is really easy and works on any recent Linux, Windows or MacOS X System, please see: [https://github.com/Mercury-Language/mercury/blob/master/README.bootstrap README.bootstrap] for bootstrapping instructions. [[User:Sebgod|Sebgod]] ([[User talk:Sebgod|talk]]) 09:41, 26 April 2014 (UTC)
'''Now (2013), three years later''' has there been any progress? <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/78.54.98.110|78.54.98.110]] ([[User talk:78.54.98.110|talk]]) 19:56, 14 June 2013 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
: Looks like [http://www.mercurylang.org/ the project has moved], which may explain why the old website hasn't been updated. [[User:De Guerre|De Guerre]] ([[User talk:De Guerre|talk]]) 06:59, 10 July 2013 (UTC)
: Yes, the project moved as no-one at the University was currently working on it (we all left the University). No it's not dead, although with only a handful of active developers development can be slow. Mercury is also used, and supported, commercially. ([[User:PaulBone|PaulBone]] ([[User talk:PaulBone|talk]]) 02:51, 29 October 2014 (UTC))
== Release of the Day ==
Both the official website and the wikipedia page claim a daily snapshot, but the latest snapshot was built September 3rd, which at the time this was written was well over a month ago. This cannot be accurately classified as a daily snapshot. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/173.191.159.38|173.191.159.38]] ([[User talk:173.191.159.38|talk]]) 23:03, 7 October 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
== What's with the Prolog interjections? ==
The way this article reads it's like someone wrote a puff piece for Mercury and someone else wrote margin notes with arrows pointing to circled text defensively saying "BUT PROLOG CAN DO THIS TOO!". This makes Wikipedia look like its editors belong on the short bus. <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/66.249.20.178|66.249.20.178]] ([[User talk:66.249.20.178|talk]]) 07:39, 31 December 2010 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
: Um, no, it really doesn't seem that way at all. I think you are projecting a little. How is that short bus treating you? <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/86.141.142.230|86.141.142.230]] ([[User talk:86.141.142.230|talk]]) 20:30, 24 April 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:: Looks OK to me. The language is a descendant of Prolog, it's unsuprising that it mentions it, and I'm not seeing 'but prolog can do this too'. Maybe this comment's out of date. [[User:Anniepoo|Anniepoo]] ([[User talk:Anniepoo|talk]]) 00:00, 30 March 2017 (UTC)
|