text:
Talk:OCaml

Neutrality contested
A fair portion of this page reads a lot like an advert, between the "colorful" descriptions, performance quotes from one of its developers, and thinly veiled trash talk about other languages... there's a lot of good information in here, but reading this article left me with a pretty bad taste. I notice some of the other discussion bits talking about what the "C/java/perl/python passerby" would think, so here you have it. Sorry if this comes off badly, but a lot of this article looks like a sales pitch to me- the programming examples section, however, is quite good; nice work there. -Sovereign —Preceding unsigned comment added by 137.112.133.101 (talk) 04:16, 7 September 2009 (UTC)

 * I just took a quick look at the intro and opening sections of the article and I'm not sure I see what you're talking about. In particular, I think the references to other languages are purely factual and not at all "trash talk" (e.g., Java does require explicit type annotations, dynamic language do suffer a performance penalty from runtime safety checks). Could you cite specific POV passages? If the performance quote is problematic, we could cite the performance measurements reported here. There's also some benchmark numbers ("Ray tracer language comparison") reported by Flying Frog Consultancy, but their site is blacklisted by Wikipedia for some reason. Clconway (talk) 01:16, 8 September 2009 (UTC)

 * I don't see the problem either. I can't immediately see anything in the article that isn't objectively correct. OCaml is a pretty well-designed language, so the article does come across as quite positive -- and what's wrong with that? Unless more support can be provided for the assertion of non-neutrality, I'll remove the tag in a few days. --David-Sarah Hopwood ⚥ (talk) 04:22, 25 September 2009 (UTC)

 * Here comes number three... There is NOT a problem with the neutrality of this article. Personally, I don't much like the OCaml language (I'm a Java/Scala developer) but I do not have a problem with this particular DESCRIPTION of OCaml.  It seems fair and unbiased to me.  It would be nice to add a small "Drawbacks of OCaml" section, written by someone who uses OCaml extensively AND uses at least two other common languages (ex: C/C++/Java/Perl/Python/Objective-C/Ruby/Erlang/Haskell/Scala) -- I suggest this issue be resolved at this time, as the vote now stands 3 to 1 in support of sufficient neutrality. _ _ - Brymancer (talk) 20:25, 8 November 2009 (UTC)

 * A good place to start for drawbacks might be Brian Hurt's blog post "How OCaml Can Be Improved" (née "Why OCaml Sucks"), which is a constructive critique of the language from an experienced OCaml programmer. There's also OCaml Language Sucks by Sam Steingold, which is a bit less measured. Probably the biggest drawback—one that is recognized by the language designers—is that OCaml has poor support for multiprocessing. Jon Harrop has written a lot on this subject, but his website seems to be on the WP blacklist. Clconway (talk) 17:03, 9 November 2009 (UTC)

 * POV tag removed. A 'criticisms' section would be a good addition, but I don't think there's any need to wait for that to be written before removing the tag. --David-Sarah Hopwood ⚥ (talk) 03:36, 26 November 2009 (UTC)

Too complicated examples
I don't think it is very pedagogical to start off the examples with the quicksort algorithm. To get a feel of the language the first example should be extremly simple. I suggest a small program that sums the numbers 1 to 10.

Bottles of beer
Um, isn't x bottles of beers wrong? Shouldn't it be x bottles of beer?
 * -- thanks gmarceau

The new version of bottle-of-beer uses the "and" keyword, as well as extra indentation. I fell this make the code unnecessarily intimidating to a passer by, who, we assume, doesn't already know Ocaml. In languages other than Ocaml "and" is usualy a boolean operator, and indentation is usually used to indicate flow of control, rather than to indicate lexical scope. Avoiding these two constructs make the meaning of the rest of the code easier to guess (don't you think?). -- gmarceau 03:07, 14 Sep 2004 (UTC)

 * I like my bottles of beer example better, it is shorter and much more obvious, and also demonstrates tail recursion. Is there any consensus on which is clearer? I we keep the new one we should probably explain it better, especially the ^ operator. --Nick Nolan 04:59, Sep 14, 2004 (UTC)

 * Again, I am thinking of this in term of a passer-by who doesn't know Ocaml, and who is more likely to be familliar with one of C/Java/Perl/Python. The new version might be longer, but it showcases some idioms done in Ocaml, such as string slicing, pattern matching and procedure invocation. Hopefully, it's all guessable. I fell that (^) is guessable simply because 3 of the 4 popular languages each have a different symbol for string concats.

 * By using a tail recursion in place where a simple for-loop would do, the cannonical passer-by could reasonably guess that Ocaml is an twisted academic language which shy away from mundane "normal" loops. The for-loop is simply make Ocaml look less intimidating.

 * On the other hand, I agree that tail recursion deserves a demonstration, with a link to its wikipedia article. Can we think of a third example? -- gmarceau 15:38, 14 Sep 2004 (UTC)

Unless we mention that Haskell was derived from ML, the see-also link to Haskell doesn't appear relevent to the reader. How about "Haskell is a non-strict member of the ML-familly"?
 * The Inria people went to great length to support Posix functions and the associated coding style. I think the ocaml reimplementation of printf is the best example of that effort, particularly because many high-level programming languages miss it. The technical discussion of the distinction between a system call, a C library call or an Ocaml reimplementation should not detract from the main point, which is that Ocaml support a standart-Posix coding style. Maybe some rewording is warranted? --gmarceau 14:07, 24 Jun 2004 (UTC)

 * Regarding POSIX, I've just done some rewording in which one of the changes was from "POSIX functions" to "familiar functions". I think this captures the essential fact (OCaml provides features which will be familiar to C programmers as well as all the neat functional stuff), without making the incorrect claim that OCaml's Printf.printf is the same as the POSIX function of the same name.

 * In that case, why does the introduction say "Like all descendants of ML, OCaml is ... strictly evaluated ... ."? 202.180.83.6 04:27, 10 January 2006 (UTC)

 * Is belonging to the ML family same as being a descendant of ML, I don't know. The page on Haskell programming language says: "The direct predecessor of Haskell was Miranda from 1985." And the page on Miranda programming language says: "Miranda is a non-strict purely functional programming language developed by Professor David Turner as a successor to his earlier programming languages SASL and KRC, using some concepts from ML and Hope." Perhaps Miranda and Haskell belong to the ML family in law. At least the syntax and the type system are similar. --TuukkaH 05:39, 10 January 2006 (UTC)

As far as I know, Ocaml is not used as an introductory language in Pisa University. Could you please cite your source for this information?

 * I am not the author of the phrase but I can say that in Pisa Ocaml has been used in the very first (theoretical) course on programming for a couple of years some time ago - then they switched to java. Ocaml is still used as a meta-language for an advanced - but obligatory for one of the two second-level degrees - course on programming languages held by prof. Levi: http://www.di.unipi.it/~levi/corsoLP/pagina.html

 * The first non mathematical course I took on my first year at Pisa University was "Programmazione 1" where OCaml was used to give a first explanation of type systems, grammars, automata and operational semantics. This is a preliminary version of the program for that very course for the year 2009/2010 http://compass2.di.unipi.it/didattica/inf/share/corsi/corso.asp?id=3041&cds=INF31&anno=2009

Website
I don't see why we label ocaml.org as the "unofficial" website, and caml.inria.fr as the "official" website -- the former site says nothing about its unofficial status. Also, caml.inria.fr describes the CAML language family -- I think www.ocaml.org, which is specifically about Ocaml, should be listed first. Neilc 07:28, 11 Jul 2004 (UTC)

 * The reason ocaml.org is labelled "unofficial" is that it is unofficial. This is a simple and straightforward fact.  It is also very outdated (the most recent news item is the release of 3.07!).  Do you really think we should be giving prominence to a site that is not being actively maintained, over one which contains the up-to-date information straight from the horse's mouth?

 * (FWIW, as of March 2005 this no longer the case; ocaml.org now redirects to the official site.)

The ocaml.org website has been completely redesigned (2013) and has far more up to date content than the old caml.inria site. As such, I propose to re-order the links on the right sidebar to put ocaml.org *before* caml.inria.fr. Would anyone object to this? Eventually the caml.inria site will be marked as deprecated, at which time, I'll propose that we remove that link (but not yet). AmirMC (talk) 17:36, 6 February 2014 (UTC)

"Ocaml" to "O'Caml programming language" move
Why was this page moved? I can think of nothing else called "Ocaml" which might potentially warrant disambiguation, and policy dictates that pages reside where they'd most commonly be looked for; cf. Fortran. Moreover, the language is Objective Caml, OCaml, or Ocaml; it is pronounced "O'Caml," but never spelled as such in text (barring one appearance at the head of this article, which should really be clarified). I am moving it back for the time being; feel free to make your case here. Austin Hair 01:35, Aug 16, 2004 (UTC)

 * Agreed. Unless somebody points out to a good reason for the move, the page should be repatriated. David.Monniaux 08:08, 16 Aug 2004 (UTC)

 * I don't agree that "it is never spelled as [O'Caml]". Look at http://www.ocaml.org/, for example: the title of the page is "Welcome to the O'Caml language". Admittedly the <title> is "The OCaml Language", but it seems either spelling is acceptable. However, the "Ocaml" form seems significantly less common -- IMHO it should not be the title of the article. Neilc 08:21, 16 Aug 2004 (UTC)

 * Granted, that blanket statement was (as most are) inexcusably inaccurate; nonetheless, "O'Caml" is probably the least common form, and certainly not the preferred one. I do agree that OCaml is where this article should rightfully lie, but as that page has a four-edit history, I chose to simply repatriate (to borrow David's term) the article and wait for consensus to be reached before asking for admin intervention.  Austin Hair 12:16, Aug 16, 2004 (UTC)

 * What ocaml.org says is irrelevant, because that is not the official site. The form used on the official site is OCaml.  A better choice for this article, IMO, would be the full name, "Objective Caml".

 * As explained by Xavier Leroy at the OCaml Meeting, the right name is OCaml —Preceding unsigned comment added by 137.194.26.111 (talk) 16:22, 15 April 2011 (UTC)

Requested moves
How about the following: This would avoid debate over the spelling of "OCaml" vs. "Ocaml" vs. "O'Caml". Whether "...programming language" should be part of the title is a matter of discussion; we should go with whatever is the standard for programming language articles. --MarkSweep 02:33, 29 Apr 2005 (UTC)
 * 1) Move Ocaml to Objective Caml programming language.
 * 2) Move Talk:O'Caml programming language to Talk:Objective Caml programming language.
 * 3) Fix redirects etc.

 * Actually there's no need for a debate over the spelling: it's OCaml, as mentionned in the FAQ on the language's site: We write Caml and OCaml.

is more generic than #!/usr/bin/ocamlrun ocaml
 * 1) !/usr/bin/env ocaml

On Commercials in this article
Looking at the article in its present state, there are 16 external (non-wikipedia) OCaml-related links in it. Seven of them point to http:// www.ffconsultancy.com, and all of them seem to have been made by a user from the IP 80.229.56.224, which resolves to jdh30.plus.com.

Doing a bit of research, this is the machine of the owner of ffconsultancy.com, Dr. Jon Harrop. This brings up the question whether we actually see here a violation of What_Wikipedia_is_not rules, as this article might be abused for self-promotion and advertising issues. Doubly so, as there is quite some consensus of Jon Harrop showing quite undue behaviour on the usenet as well as some mailing lists, alienating large parts of the functional community.

I therefore strongly suggest deleting all references to ffconsultancy.com from the article.

 * Motion seconded, carried, and implemented. --MarkSweep (call me collect) 22:58, 26 October 2005 (UTC)

I just re-added many of the links before I read this. I am happy to have the direct links to commercial products removed (the OCaml book and Presenta) if this is against Wikipedia policy (note that Wikipedia references many other books though - perhaps we should add a references section?). However, I see no sense in removing links to free software written in OCaml that happen to be available from the same site, particularly the maze generator, ray tracers and example programs from scientific computing. I have also added some links to other OCaml-related pages. If I can provide any useful information, please contact me (the objection was made by Thomas Fischbacher). - Jon Harrop .

I just updated the page a little more, replacing the link to an OCaml book with a link to INRIA's page of OCaml books (that includes my own). I have also added links to other Wikipedia pages about companies that use OCaml (not including Flying Frog Consultancy ;-). MarkSweep, can you explain the logic behind keeping many relatively-unknown OCaml programs like DrGeoCaml but removing what is possibly the most famous OCaml program, FFTW? It seems like a great shame to omit a link to this fantastic piece of software! - Jon Harrop

I've reintroduced the reference to FFTW. Many people don't realise this program is written in OCaml because it generates C and Fortran, this is probably why it was deleted first time. To anyone who wants to confirm this the FFTW website mentions it in the FAQ section. - Jrthorpe

Reorganization
Jon Harrop recently reorganized most of the features and "philosophy" text in this article into a list form. I don't think this is a good way to present the article; an encyclopedia is supposed to explain things, but a bullet-list of features just presents a collection of facts. A lot of work is needed on this article, but I think our model should be the excellent Python article.

I remerged the improvements to links and other small things that were included, but let's think through the main body of the article a little more. --Mike Lin 08:11, 31 October 2005 (UTC)

I agree that the article needs a lot of work but I think undoing my alterations is another step in the wrong direction. The old text that is at best misleading and at worst factually incorrect. I'll go through some of it:

"ML-derived languages are most well known for their strict type systems" - conventional nomenclature is static type systems, not "strict", and it should link to the Wikipedia page on static typing (as mine did). If you need more information on conventional nomenclature then I suggest my book on OCaml (proof read by Xavier Leroy, the lead developer of OCaml).

"Like Python and Perl" - I think OCaml should be discussed in its own right with links to relevant Wikipedia articles on its features (i.e. it should not include yet another subjective discussion of topics that already have dedicated pages with more detail). Many languages (e.g. SML, Lisp, BASIC) provide a top-level, why liken OCaml to Python and Perl?

"Many high-level programming languages, even when compiled to native code, achieve slower performance than might be possible with C/C++ because of runtime type and safety checks" - this discussion of the performance hindrance of dynamic typing does not belong on the OCaml page.

"OCaml's strict type system renders runtime type mismatches impossible" - Strong typing checks for type mismatches. Static typing checks for them at compile time. It may be worth noting that not all OCaml programs are type safe.

"OCaml's strict type system eliminates a large class of programmer errors that may cause problems at runtime" - Static typing!

"the OCaml compiler can infer types, greatly reducing the need for manual type annotation" - you can always have your types inferred in OCaml, so I had replaced "greatly reducing" with "eliminating".

"as they do in Java" - again, I dislike random references like this. Type inference has already been discussed more thoroughly elsewhere, so we should reference that page and not cut and paste it or write a worse version here.

"A preprocessor and macro language named Camlp4 which permits syntactical extensions" - camlp4 can also be used incrementally in a top-level. I have a nice camlp4 example that perhaps I should post in the Code Examples section.

"Applications..." - if we are not allowed to cite what is possibly the most famous piece of software written in OCaml (FFTW), I see no point in having the "Applications" and "Programs written in OCaml" sections. Perhaps these should be removed and replaced with a practical discussion on applications which stand to benefit the most from the use of OCaml. However, that is likely to be a biased and subjective view which (AFAIK) is against Wikipedia policy.

"Natural science..." - now that my links have been removed (not by Mike Lin, AFAIK), this subsection conveys no useful information. It should either be removed or the links replaced with more appropriate ones.

Finally, I had added a discussed of some of the most important points in the context of OCaml (e.g. safety, brevity, modules, pattern matching, separate compilation) but these have all been removed by Mike. Although I think a list is easier to digest that paragraphs of text, I wouldn't have minded so much if my list had been replaced with paragraphs of text. However, I see no merit in Mike having removed my corrections and additions. - Jon Harrop

 * Valid points mostly. I just think your thoughts should be reorganized in an expository paragraph form; no one wants to or will read bullet points of unrelated technical facts. Consider my revert an invitation to add your changes back in a better way. --Mike Lin 18:28, 31 October 2005 (UTC)

 * Well, bullet points are much easier to read than paragraphs of texts. I see it as a chance when it is possible to do so. It is always possible to expand them as dedicated sections with a title, without having to rewrite the whole paragraph or the whole article. That's not because most scientific articles are written in a way which makes them more difficult to read in order to make them look deeper that it's a good thing to do. Even better than bullet points are diagrams, with colors, but that's even more work. --Martin.jambon 19:03, 3 November 2005 (UTC)

 * I have to concur with Jon and Martin here. Sometimes a list is the best way to describe things. I find Jon's bullet-points much easier to follow than a dense paragraph of text, and splitting the feature list into bullet points makes it much, much easier to explain individual features. — Haeleth Talk 19:22, 3 November 2005 (UTC)

 * Jon's list is very easy to read and understand as long as you already know everything that's on it, as I think each of us do. But approach this from someone without much PL background just trying to obtain general knowledge about OCaml: you are presented with a bullet list of technical terms with terse, one-sentence quasi-explanations.

 * Let me stress that by no means is the current paragraph-form content of this article satisfactory. But we do need prose explanations that don't assume mastery of PL jargon (see WP:manual of style and WP:guide to layout). Again I refer to the excellent articles on Python and Java as models. --Mike Lin 20:40, 3 November 2005 (UTC)

Thanks for joining in, guys. So we all agree that a bullet point list is better for us language-heads. I agree with Mike that prose is the best way to give a fuller explanation, especially for people not so familiar with different languages. So I suggest that we replace the current "Philosophy" with a bullet point list giving links to the full, generic explanations of each feature/property of the language and we can then elaborate in an OCaml-specific way on particular features (e.g. ways to leverage OCaml's static type checker) in prose. The Wikipedia guidelines do say that articles should be unbiased, so I think it would be better for us to be completely objective and, particularly, avoid subjective discussion of the philosophy behind OCaml, at least to begin with. - Jon Harrop

 * I think that sounds like a reasonable compromise; let's see how it looks. As for the "Philosophy" section, I think something of the sort belongs; for example, I liked Gerd Stolpmann's ideas about the basic motivations underlying the language, which I'm reproducing here for reference (obviously not saying we should use this literal text).

In the first place, O'Caml is a research language where scientists enhance ML in a sound way, and implement it such that it is practically usable. The article mentions the "strict type system" several times, but that remains mysterious and somehow ensures that there are no runtime errors. Actually, there is a lot of theoretical work behind that. The type system is actually a calculus that has some properties (e.g. there is always a principal type if you don't use subtyping - which explains something, in particular that the compiler can always deduce a type if possible at all). At least, I would expect that such an article lists the most important properties of type checking and evaluation (the article does not even mention that O'Caml is an eager language).

If O'Caml has a revolutionary aspect, this can only be that the developers do not allow that practical benefits destroy theoretical soundness, and that O'Caml is nevertheless extremely well-suited for practical problems at the same time. If that was the motto of the article this would have my consent.

Gerd

 * --Mike Lin 20:15, 4 November 2005 (UTC)

Links to books
I just added links to four different books on OCaml. In order to prevent "link spam" I removed the one remaining link to freely-available code and information about OCaml (the ray tracer) from our company site. - Jon Harrop

Thanks
I just wanted to say thanks to everyone who's contributed since my request, especially Mike Lin for his recent overhaul. The page is vastly better now! One small point, the page says "Code generated by OCaml's native code compiler can, in fact, approach the performance of C/C++ on algorithmic tasks". Actually, for many non-trivial programs, OCaml is often much faster than C++, e.g. it can be $$10^4 \times$$ faster for set union. - Jon Harrop

 * tr1::auto_ptr solves any reasonable worry over copying, and you really should check with more than one implementation of std::set_union, you know. There are probably even (non-standard) functions for calcuating set unions that are significantly faster than OCaml. Referential transparancy is nice, but not a pancea. I have no argument about the prettyness of the code though :) 202.180.83.6 04:23, 10 January 2006 (UTC)

Immutable sets could be implemented in C++, of course. They would probably be much more complicated to implement but should be at least as fast as OCaml's built-in Set module (this would be an interesting exercise). However, it is interesting to compare the provided functionality, namely OCaml's Set module and the STL. Finally, auto_ptr is a long way from garbage collection. - Jon Harrop

Checked exceptions
The article on exception handling on one hand describes how there are external checkers to see that all exceptions are handled in OCaml, and on the other hand says that OCaml has checked exceptions. I don't know OCaml, but my guess is that the language as it is doesn't have checked exceptions. You could clarify the situation in both articles. Thanks. --TuukkaH 22:14, 15 December 2005 (UTC)

Libraries
I just made a minor edit to the "wide variety of libraries" line. It sounded a little odd to me, considering the breadth of other stdlibs available with, say, Java. Was this warranted? Scotto 20:55, 13 January 2006 (UTC)

Firstly, I think we should either say "wide variety" or just "variety", there is no point in saying "moderate variety". In this specific context, I believe OCaml provides strictly more functionality than Java (and C, C++ etc.) in terms of arbitrary precision arithmetic (i.e. rationals). OCaml's stdlib also provides a lot of other functionality not found in the standard libraries of other languages (e.g. immutable sets, lazy evaluation, streams, lexing, parsing, unix calls). Ultimately, we should probably enumerate the features provided by OCaml's stdlib and give links to other external libraries rather than argue about whether or not to use the word "moderate". -- Jon Harrop

 * With perl4caml, OCaml's libraries are a strict superset of Perl's libs, which I'd say makes them pretty extensive. Richard W.M. Jones 09:21, 6 March 2006 (UTC)

Case
I just made a minor edit to the Triangle (graphics) example, "simple.ml". At least on Unix systems it is important to get the case right: +lablGL instead of +lablgl. Cragwolf 02:26, 7 June 2006 (UTC)

Agreed. I'm using Debian, which installs both lablgl and lablGL. Presumably other distros don't? Jon Harrop

 * I installed from source, and that process installs lablGL as default, although I suppose you could configure it to install lablgl. Cragwolf 00:53, 9 June 2006 (UTC)

Move to Objective Caml
New proposal: move to Objective Caml. This is the full name, according to.

Survey

 * Add *Support or *Oppose followed by an optional one-sentence explanation, then sign your opinion with  ~

 * Support Qwertyus 19:02, 20 July 2006 (UTC)
 * Support Mike Lin 20:11, 20 July 2006 (UTC)

Discussion

 * Add any additional comments

This article has been renamed as the result of a move request. Vegaswikian 22:30, 28 July 2006 (UTC) --Vegaswikian 22:30, 28 July 2006 (UTC)

On example code and OOP
The article is just plain great for introducing anyone to this wonderful language. I myself used it as a launch point three months ago and I just completed an 3000-line compiler as a term essay using ocaml. A big thanks to all contributors!

Now, what I am writing here about is the example code snippets in the text. To my understanding, the major difference between OCaml and the previous camels is that big 'O' at the beginning of the name. However, code snippets in the article do not show any of ocaml's object oriented features. After writing my compiler and using absolutely none of the OOP features of OCaml, I do wonder how they are so important to make Caml into OCaml. If I knew how the OO paradigm is used in ocaml I'd go write an example myself, but I don't, so I ask of someone more knowledgeable than me to do so. Again, thanks guys for a great article! --Michalis Famelis (talk)  16:04, 29 July 2006 (UTC)

Thanks! Most of the examples came from my book, although I see that Qwertyus has deleted half of them (was that deliberate?). Perhaps we should add an interpreter as an example? PS: I also do not know when and where OOP is useful in OCaml. -- Jon Harrop

 * I moved all non-Objective Caml-specific examples to Categorical Abstract Machine Language. Qwertyus 21:23, 30 July 2006 (UTC)

 * I think that was a bad idea. Caml is a dead language. Those examples were written and tested in OCaml. Objects are not the only difference between Caml and OCaml. -- Jon Harrop

 * It appears to me that there is no object-oriented code at the moment. (The OpenGL examples don't show the paradigm.)  Could someone add an example?  129.27.202.101 07:51, 28 September 2007 (UTC)

Applications
The languages used in Classes Préparatoires in France are many, and depend on the type of Classes Préparatoires considered. However, Objective Caml is not used in any significant way: speciality Computer Science courses are taught in Caml Light (official requirement, as far as I know), non-speciality Computer Science courses in scientific Classes Préparatoires are given in a mix of Maple and Java (no official requirements there), while Computer Science in commercial Classes Préparatoires is done in Pascal. --ToohrVyk 13:53, 14 October 2006 (UTC)

Hello world
In the example it state "compile to byte code" Should that really state byte code and not machine code?

Thanks. —Preceding unsigned comment added by 85.229.8.234 (talk) 03:31, 3 September 2007 (UTC)

 * "Byte code" is correct.  is the byte code compiler;   is the native code compiler. It makes no difference which you use for this example. Clconway 21:27, 3 September 2007 (UTC)

Factorial
I don't know enough OCaml to be 100% sure, but shouldn't the last line in the Birthday Paradx Example end with two semi-colons? ""

Also, the factorial example gives an error when I try it:

""

BioGeek 22:46, 29 January 2007 (UTC)

The birthday paradox snippet is a script designed to be run from file. My factorial example requires you to load the Num module, the details of which are given in the section I wrote. -- User:jdh30

Quicksort
Quicksort implementation in article is not proper: slow and runs out of stack space really fast. The proper way to implement quicksort would be something like

let rec qsort ?(acc=[]) = function | [] -> acc | [h] -> h :: acc | h :: tl -> let part1, part2 = List.partition ( (<) h) tl in         qsort ~acc:(h :: qsort ~acc:acc part1) part2

The original algorithm puts the whole built tree on stack, this one basically keeps there one branch only. —Preceding unsigned comment added by 91.152.71.47 (talk) 18:44, 23 August 2010 (UTC)

OpenGL triangle
The rotation matrix should be reset before drawing each frame, otherwise errors accumulate. See http://caml.inria.fr/pub/ml-archives/caml-list/2007/04/c8c30ba5b7e7f446cbb789cd50c052eb.en.html. I fixed it. --Martin 20:39, 12 April 2007 (UTC)

This example still suffers from a worse problem: the animation is a function of the CPU time elapsed rather than the real time, so the speed of the animation is dictated by the load on the computer. Given the current climate of people deleting my contributions from Wikipedia, I'm just going to refer anyone wanting good code to the original source, the visualization chapter from [http:// www.ffconsultancy.com/products/ocaml_for_scientists/visualisation/ OCaml for Scientists] which is (C) Flying Frog Consultancy Ltd. 2005. Jon Harrop 21:20, 13 April 2007 (UTC)

Link spam
I've been trying to add my OCaml book to the "books" section of this page but Wikipedia are threatening to blacklist me and ban me from editing. If anyone knows how to fix this then I'd appreciate it... -- User:jdh30
 * This is fixed easy enough: don't advertise yourself.

 * Regarding your cite: First, please demonstrate why this particular facts need citation, and how your own (self-published?) book as a source meets WP:A. Femto 12:02, 9 April 2007 (UTC)

 * The same reason that my PhD thesis warrants citation for work relating to my research, these are the only sources for this information. To the best of my knowledge, there are no other resources detailing optimization in OCaml to the extent that my book does. Jon Harrop 12:59, 9 April 2007 (UTC)

 * The point is that what you write in your thesis or your books provides no encyclopedic verifiability beyond what you can write here as a common editor, the same person. Leave it to independent editors to determine whether your work warrants citation, per Wikipedia's neutrality policy, it's not yours to decide. Besides, if there are no other resources, your work might be original research on which Wikipedia's content should not rely at all. Who publishes your work, who reviewed, who confirms that you're a well-known, professional researcher in your field? Until this is established, you should refrain from attributing content to yourself, especially since you earlier added links that may be considered blatant advertising. Femto 14:48, 9 April 2007 (UTC)

 * Yes. I am not contesting the fact that I added too many links from Wikipedia to our site (I won't do it again). I am contesting the fact that I was reverting Requestion's vandalism (that was directed specifically at my work and not at links to books in general). I doubt a revert warrants the editorial process.
 * As for my personal credibility, all the information you want is available on our company site. Our company publishes my books. OCaml for Scientists was proof read by Xavier Leroy (the lead developer of OCaml) and testimonials from many other readers are on the book's web page. The internal examiner for my PhD was Professor Alan Windle, who described my work as "scholarly". The whole thesis is freely available on-line at the URL that Requestion deleted. Jon Harrop 15:26, 9 April 2007 (UTC)

Books
I noticed that the link to the "Books about OCaml" page on the official OCaml site no longer works (it now just leads to the home page). That's unfortunate, as linking only to that page seemed to be a reasonable solution to me. In the absence of that I agree with parts of both sides of this argument, in that we need to link to all of the books or none of them. But is there such an index to OCaml books page on ocaml-tutorial.org? Say, that's a wiki...hint, hint. --Mike Lin 13:37, 9 April 2007 (UTC)

 * Yes. I'm much happier to see equal treatment of external links. I've deleted the broken link BTW. I think this article already has too many miscellaneous links at the bottom so I'm not going to add another one to a books page. Readers can Google for them. Jon Harrop 15:26, 9 April 2007 (UTC)

 * Would this be a replacement link? http://caml.inria.fr/about/books.en.html Since it's not WP's purpose to be such a directory, an external link to the official page would be clearly preferable to a listing in the article. Femto 15:01, 9 April 2007 (UTC)

 * That book list is out of date: it lacks Practical OCaml and OCaml for Scientists. Probably better to not even refer to a list of books. People can find them easily enough using Google or the OCaml-specific Wiki that Mike cited. What if I put an up-to-date book list on ffconsultancy.com? ;-) Jon Harrop 15:26, 9 April 2007 (UTC)

Functors
Why does Functors link to function object in the article? As stated in the parens a functor in ocaml is a parametric module and not some kind of function object like a closure. —Preceding unsigned comment added by 139.18.147.97 (talk) 22:49, 16 October 2007 (UTC)

eagerness
AFAICS The article does not say that OCaml is eager or lazy at all. AaronNGray (talk)

 * OCaml is strict/eager/call-by-value, which makes it completely unremarkable, as this is by far the most common choice in mainstream programming languages. The standard support for laziness through lazy/force may be notable. Clconway (talk) 01:29, 24 November 2007 (UTC)

Pronounce?
Anyone know how to pronounce 'ocaml'? Perhaps this info should be provided. (Originally asked by 75.145.118.157) Clconway (talk) 01:37, 12 November 2008 (UTC)

 * The pronunciation is "oh-Camel". Clconway (talk) 01:39, 12 November 2008 (UTC)
 * Added a note to the beginning of the article. Clconway (talk) 13:10, 12 November 2008 (UTC)

Killer apps?
Are there any "killer apps" written by OCaml code yet. There should be. Said: Rursus (☻) 14:16, 1 January 2009 (UTC)

 * I think the notion of "killer app" isn't applicable here: a "killer app" is usually an application that drives users towards a platform/OS. The only programming language I can think of that really has a "killer app" is Ruby and Rails: people use Ruby (whatever its advantages/disadvantages) in order to gain access to the Rails framework. The most well-known open source applications written in OCaml are probably Coq, Ocsigen, and Hevea. None of them are "killer" in this sense. In my little corner of the world CIL is close to being a "killer app"—it is far and away the nicest, easiest way to write analyses for C programs and you have to use OCaml to take advantage of it. (But, of course, my little corner of the world is very, very little. Not very "killer".) Clconway (talk) 17:31, 2 January 2009 (UTC)

 * I believe haXe and mtasc are well-known too, and they are written in OCaml. Spidermario (talk) 14:32, 2 September 2009 (UTC)

Stuff removed from Boolean data type article
The following section was removed from the article Boolean data type: begin removed text

Ocaml has a  type that has   and   values.

Like other enumerated types, a value of this type uses a word of memory.

end removed text Is there a place for this text in the Objective-Caml-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 23:49, 30 December 2009 (UTC)

Benchmark data
Adrianwn recently changed
 * Xavier Leroy has cautiously stated that "OCaml delivers at least 50% of the performance of a decent C compiler", and benchmarks have shown that this is generally the case. (Cite: Computer Language Benchmarks Game)

to
 * ... but at least some benchmarks have disproven this claim.

Indeed, it seems the results at the linked page show slowdowns between 2x and 325x (with most slowdowns being 7x or less). I believe the results of the Computer Language Benchmarks Game are dynamic and subject to change. I assume the original wording was correct when it was first inserted and in the meantime somebody uploaded some very clever C implementations.

I think the current wording is too strong, since the benchmarks are, by their own admission, a flawed comparison. I'm going to leave a link to the benchmarks in the "See Also" section, but refrain from characterizing the results in the body of the article. Clconway (talk) 17:32, 13 April 2010 (UTC)

 * If I understand Xavier's claim correctly, what he really means is more like: if you take a C program in the subset of C that is comparable to OCaml (e.g., no nasty pointer casting/arithmetic) and transliterate it into OCaml, then the overhead you'll pay (e.g., in array bounds checks, etc.) is about 50%. Understood this way, it's a fairly weak claim. Clconway (talk) 17:41, 13 April 2010 (UTC)

 * I agree with you that those microbenchmarks don't provide any real evidence for such a general claim as made by Xavier, and the weaker claim is even more difficult to prove. In fact, I propose that the complete paragraph is removed:
 * the benchmark part: see above
 * "Some functions in the OCaml standard library are implemented with faster algorithms than equivalent functions in the standard libraries of other languages." – this statement is rather dubious and vague: some functions in some implementation are faster then the same functions in some implementation of some other language
 * the implementation of set union: at the very least, this needs references and more detailed description of the parameters (e.g. what standard library implementation, what version number)
 * I thought about improving it when I edited the benchmark part, but I wasn't sure how, so I left it the way it is. – Adrianwn (talk) 06:27, 14 April 2010 (UTC)

 * These are all good points. We shouldn't go too far though. One of OCaml's trademarks is that it really is quite efficient for a high-level language. Maybe it's hard to state that in a verifiable way. Clconway (talk) 12:06, 15 April 2010 (UTC)

 * Unfortunately, this is even harder to verify than just comparing it with the performance of C, because a representative selection of high-level languages would have to be compared to OCaml. Now try to find non-OR sources for that ;-) But I see your point. We could write that the language has been designed with performance in mind, and give examples for design aspects that facilitate efficiency and how those aspects were exploited in certain implementations. After all, in the end it depends on the implementation in question, not just on the language itself. Adrianwn (talk) 06:14, 16 April 2010 (UTC)

Name: OCaml

 * The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.

The result of the move request was: moved. No prejudice against anther move request to an alternative styling per MOS:TM, although I think "OCaml" is ok. ErikHaugen (talk | contribs) 23:45, 4 August 2011 (UTC)

Objective Caml → OCaml – At the OCaml Users Conference 2011, Xavier Leroy agreed to use the name OCaml (and not any other variants with apostrophes etc) as the One True Name. Richard W.M. Jones (talk) 16:13, 15 April 2011 (UTC)

 * Do you propose to move the article? Clconway (talk) 17:09, 16 April 2011 (UTC)
 * Yes. --Rinaku (talk) 22:13, 4 August 2011 (UTC)

This page should be moved to OCaml given that the official developer say that this is the official name. Source: http://caml.inria.fr/ocaml/name.en.html — Preceding unsigned comment added by 77.209.179.53 (talk) 19:38, 1 August 2011 (UTC)
 * The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

Opa Language
Opa was recently added then removed from the "Derived Languages". I think Opa is notable and legitimately related (see, []), but I'm not sure it's really "derived". AFAICT, it the compiler was implemented in OCaml, the developers come from the OCaml community, and language extensions can be written in OCaml. Clconway (talk) 17:56, 10 October 2011 (UTC)

 * I think there are two questions there:
 * Is OCaml important to Opa (programming langauge)?
 * Is Opa important to OCaml?
 * Given the chronology, I expect that the second depends essentially on the first. If the first holds, then the Opa article probably wants a link to OCaml. I don't see that compiler implementation in OCaml is sufficient to demonstrate this - compilers do after all have to be implemented in 'something''. Is there a reason why OCaml was chosen for this? Are the principles of Opa similar to those of OCaml? Is the technical implementation close between them, such that they're a natural fit?  Are their languages as seen by application developers close to each other?  If OCaml "is just good at writing compilers" though, that wouldn't be enough.
 * The second constraint is harder - such relations should not be assumed to be commutative, as they often aren't. Is its use to implement Opa a significant aspect of OCaml itself?  Is Opa "OCaml for web apps"?  Is OCaml application syntax close to Opa syntax?
 * Andy Dingley (talk) 19:34, 10 October 2011 (UTC)

Higher-order functions and type inference
When testing OCaml example code for the newly-added section OCaml, I obtained answers from my Linux OCaml 3.12.1 interpreter that seemed counter-intuitive to me. # let inc (x : int) : int = x + 1 ;;                     (* some toy int->int function to be operated on by higher-order fcts. *) val inc : int -> int = # let twice (f : 'a -> 'a) = fun (x : 'a) -> f (f x) ;;  (* 1st higher-order function *) val twice : ('a -> 'a) -> 'a -> 'a = # let add2 = twice inc ;;                                (* apply it to (inc) *) val add2 : int -> int = # twice;;                                                (* demonstrate that type of (twice) didn't get instatiated by applying it to (inc), as expected *) - : ('a -> 'a) -> 'a -> 'a = # let fourtimes = twice twice;;                          (* apply (twice) to itself to obtain 2nd higher-order function *) val fourtimes : ('_a -> '_a) -> '_a -> '_a = # let add4 = fourtimes inc;;                             (* apply that to (inc) *) val add4 : int -> int = # fourtimes;;                                            (* demonstrate that type of (fourtimes) does get instatiated by applying it to (inc), why is that?! *) - : (int -> int) -> int -> int = # twice;;                                                (* type of (twice) still uninstantiated, as expected *) - : ('a -> 'a) -> 'a -> 'a =

I wonder if it is ok that the type of fourtime changes after it has been applied to inc (3rd line from below). Could any OCaml expert check whether this is coherent with the language definition, and if yes, explain in the higher-order fct section, why? Jochen Burghardt (talk) 11:19, 14 June 2013 (UTC)

 * For ulterior references, the problem was the value restriction: with the previous definition of "fourtimes", "fourtimes" was not polymorphic but had type "('_a -> '_a) -> '_a -> '_a". The underscore prefix in the type "'_a" indicates that this type is weakly polymorphic. In other words, "'_a" is not a polymorphic type variable but a temporary placeholder for an unknown at this time type. Applying "fourtimes" to "inc" told the compiler that this unknown type "'_a" was in fact "int". To fix this problem, a classical solution is to rewrite the definition of fourtimes to "let fourtimes f = (twice twice) f" in order to let the type system know that "fourtimes" is a function with no hidden mutable state. Octachron (talk) 14:58, 15 July 2016 (UTC)

Facebook and hack usage
I see in their repo many cpp source files, where can i find ocaml files?--Darktrym (talk) 19:17, 14 March 2015 (UTC)

struct group_info init_groups = { .usage = ATOMIC_INIT(2) };

struct group_info *groups_alloc(int gidsetsize){

struct group_info *group_info;

int nblocks;

int i;

nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;

/* Make sure we always allocate at least one indirect block pointer */

nblocks = nblocks ? : 1;

group_info = kmallocæ — Preceding unsigned comment added by 128.234.180.123 (talk) 14:31, 21 July 2019 (UTC)

Wiki Education assignment: Public Writing
— Assignment last updated by Doshir (talk) 15:17, 3 October 2022 (UTC)

title: Talk:OCaml


text:
Bull Durham

Bull Durham is a 1988 American romantic comedy sports film. It is partly based upon the minor-league baseball experiences of writer/director Ron Shelton and depicts the players and fans of the Durham Bulls, a minor-league baseball team in Durham, North Carolina.

The film stars Kevin Costner as "Crash" Davis, a veteran catcher from the AAA Richmond Braves, brought in to teach rookie pitcher Ebby Calvin "Nuke" LaLoosh (Tim Robbins) about the game in preparation for reaching the major leagues. Baseball groupie Annie Savoy (Susan Sarandon) romances Nuke but finds herself increasingly attracted to Crash. Also featured are Robert Wuhl and Trey Wilson, as well as "The Clown Prince of Baseball", Max Patkin.

Bull Durham was a commercial success, grossing over $50 million in North America, well above its estimated budget, and was a critical success as well. Sports Illustrated ranked it the #1 Greatest Sports Movie of all time. The Moving Arts Film Journal ranked it #3 on its list of the 25 Greatest Sports Movies of All-Time. In addition, the film is ranked #55 on Bravo's "100 Funniest Movies." It is also ranked #97 on the American Film Institute's "100 Years...100 Laughs" list, and #1 on Rotten Tomatoes' list of the 53 best-reviewed sports movies.

Plot
The single-A Minor League Baseball team the Durham Bulls are dealing with another sparsely attended losing season, with one thing working for them; Ebby Calvin LaLoosh, a hotshot rookie pitcher known for having a "million dollar arm, but a five cent head," who has potential to become a major league talent. "Crash" Davis, a 12-year veteran in minor league baseball, is sent down as the team's catcher to educate LaLoosh and control his haphazard pitching. Crash immediately begins calling Ebby by the degrading nickname of "Meat", and they get off to a rocky start.

Thrown into the mix is Annie, a "baseball groupie" and lifelong spiritual seeker who has latched onto the "Church of Baseball" and has, every year, chosen one player on the Bulls to be her lover and student. Annie flirts with both Crash and Ebby and invites them to her house, but Crash walks out, saying he's too much of a veteran to "try out" for anything. Before he leaves, Crash further sparks Annie's interest with a memorable speech listing the things he "believes in", ending with, "I believe in long, slow, deep, soft, wet kisses that last three days... Good night". Despite some animosity between them, Annie and Crash work, in their own ways, to shape Ebby into a big-league pitcher. Annie plays mild bondage games, reads poetry to him, and gets him to think in different ways (and gives him the nickname "Nuke").

Crash forces Nuke to learn "not to think" by letting the catcher make the pitching calls (memorably at two points telling the batters what pitch is coming after Nuke shakes off his signs, leading to both players hitting home runs), and lectures him about the pressure of facing major league hitters who can hit his "heat" (fastballs). Crash also talks about the pleasure of life in the major league, which he briefly lived for "the 21 greatest days of my life" and to which he has tried for years to return. Meanwhile, as Nuke matures, the relationship between Annie and Crash grows, until it becomes obvious that the two of them are a more appropriate match, except for the fact that Annie and Nuke are currently a couple.

After a rough start, Nuke becomes a dominant pitcher by mid-season, adding to the Bulls' good fortunes and, in the end, he is called up to the major leagues. This incites jealous anger in Crash, who is frustrated by Nuke's failure to recognize all the talent he has. Nuke leaves, Annie ends their relationship, and Crash overcomes his jealousy to leave Nuke with some final words of advice. The Bulls, now having no use for Nuke's mentor, release Crash. Crash then presents himself at Annie's house and the two consummate their attraction with a weekend-long lovemaking session. Crash then leaves Annie's house to seek a further minor-league position.

Crash joins another team, the Asheville Tourists, and breaks the minor-league record for career home runs. Nuke is seen one last time, being interviewed by the press as a major leaguer, reciting the clichéd answers that Crash had taught him earlier. Crash then retires as a player and returns to Durham, where Annie tells him she's ready to give up her annual affairs with "boys." Crash tells her that he is thinking about becoming a manager for a minor-league team in Visalia. The film ends with Annie and Crash dancing in Annie's candle-lit living room.

Background
The film's name is based on the nickname for Durham, North Carolina, since 1874, when W. T. Blackwell and Company named its product "Bull" Durham tobacco, which soon became a well-known trademark. In 1898, James B. Duke purchased the company and renamed it the American Tobacco Company. By this time, the nickname "Bull City" had already stuck.

The film's writer and director, Ron Shelton, played minor league baseball for five years after graduating from Westmont College in Santa Barbara, California. Initially playing second base for the Baltimore Orioles' farm system, he moved from the Appalachian League to California and then Texas before finally playing AAA baseball for the Rochester Red Wings in the International League. Shelton quit when he realized he would never become a major league player. "I was 25. In baseball, you feel 60 if you're not in the big leagues. I didn't want to become a Crash Davis", he said.

He returned to school and earned a Master of Fine Arts in sculpture at the University of Arizona before moving to Los Angeles to join the city's art scene. However, he felt more kinship in telling stories than in creating performance art. His break into filmmaking came with scriptwriting credits on the films Under Fire and The Best of Times.

According to Justin Turner, the bull in right field that was hit for a home run in the film is actually in left field at Durham Bulls Athletic Park.

Production
According to Shelton, "I wrote a very early script about minor league baseball; the only thing it had in common with Bull Durham was that it was about a pitcher and a catcher." That script was titled The Player To Be Named Later; a single anecdote from that script made it into Bull Durham. For Bull Durham, Shelton "decided to see if a woman could tell the story" and "dictated that opening monologue on a little micro-recorder while I was driving around North Carolina." Crash was named after Lawrence "Crash" Davis but was modeled after Pike Bishop, the lead character William Holden played in The Wild Bunch: a guy who "loved something more than it loved him." Annie Savoy's name was a combination of the nickname ("Annies") that baseball players gave their groupies and the name of a bar; she was a "High Priestess [who] could lead us into a man's world, and shine a light on it. And she would be very sensual, and sexual, yet she'd live by her own rigorous moral code. It seemed like a character we hadn't seen before." After Shelton returned to Los Angeles from his road trip, he wrote the script for Bull Durham in "about twelve weeks."

Filming began on October 5, 1987, and wrapped on November 30, 1987, after 56 days of filming. When Shelton pitched Bull Durham, he had a hard time convincing a studio to give him the opportunity to direct. Baseball movies were not considered a viable commercial prospect at the time and every studio passed except for Orion Pictures who gave him a $9 million budget (with many cast members accepting lower-than-usual salaries because of the material), an eight-week shooting schedule, and creative freedom. Shelton scouted locations throughout the southern United States before settling on Durham in North Carolina because of its old ballpark and its location, "among abandoned tobacco warehouses and on the edge of an abandoned downtown and in the middle of a residential neighborhood where people could walk". According to NO BULL: The Real Story of the Rebirth of a Team and a City by Ron Morris, Shelton decided because the city was "run down with vacated tobacco warehouses and boarded up downtown storefronts" it made a "down-and-out, minor-league town that represented his story well." The Imperial Tobacco Warehouse, which is currently owned and has been renovated by Measurement Incorporated, was used as a filming location. The Queen Anne style James Manning House, built in 1880, was used for Annie Savoy's romantic encounters.

Shelton cast Costner because of the actor's natural athleticism. Costner was a former high school baseball player and was able to hit two home runs while the cameras were rolling and, according to Shelton, insisted "on throwing runners out even when they (the cameras) weren't rolling". He cast Robbins over the strong objections of the studio, who wanted Anthony Michael Hall instead. Shelton had to threaten to quit before the studio backed off.

Producer Thom Mount (who is part-owner of the real Durham Bulls) hired Pete Bock, a former semi-pro baseball player, as a consultant on the film. Bock recruited more than a dozen minor-league players, ran a tryout camp to recruit an additional 40 to 50 players from lesser ranks, hired several minor-league umpires, and conducted two-a-day workouts and practice games with Tim Robbins pitching and Kevin Costner catching. Bock made sure the actors looked and acted like ballplayers and that the real players acted convincingly in front of the cameras. He said, "The director would say, 'This is the shot we want. What we need is the left fielder throwing a one-hopper to the plate. Then we need a good collision at the plate.' I would select the players I know could do the job, and then we would go out and get it done."

Box office
Bull Durham debuted on June 15, 1988, and grossed $5 million in 1,238 theaters on its opening weekend. It went on to gross a total of $50.8 million in North America, well above its estimated $9 million budget.

Critical response
The film was well-received critically. On Rotten Tomatoes, the film has an approval rating of 97%, based on 72 reviews, with an average rating of 8.00/10. The website's critical consensus reads, "Kevin Costner is at his funniest and most charismatic in Bull Durham, a film that's as wise about relationships as it is about minor league baseball." On Metacritic, the film has a weighted average score of 73 out of 100, based on 16 critics, indicating "generally favorable reviews". Audiences polled by CinemaScore gave the film an average grade of "B+" on an A+ to F scale.

According to a Los Angeles Times poll of 100 film critics, Bull Durham was the second most acclaimed film of 1988, second to only to the documentary The Thin Blue Line.

In David Ansen's review for Newsweek, he wrote that the film "works equally as a love story, a baseball fable and a comedy, while ignoring the clichés of each genre". Vincent Canby praised Shelton's direction in his review for The New York Times: "He demonstrates the sort of expert comic timing and control that allow him to get in and out of situations so quickly that they're over before one has time to question them. Part of the fun in watching Bull Durham is in the awareness that a clearly seen vision is being realized. This is one first-rate debut".

Roger Ebert praised Sarandon's performance in his review for the Chicago Sun-Times: "I don't know who else they could have hired to play Annie Savoy, the Sarandon character who pledges her heart and her body to one player a season, but I doubt if the character would have worked without Sarandon's wonderful performance". In his review for Sports Illustrated, Steve Wulf wrote, "It's a good movie and a damn good baseball movie". Hal Hinson, in his review for The Washington Post, wrote, "The people associated with Bull Durham know the game ... and the firsthand experience shows in their easy command of the ballplayer's vernacular, in their feel for what goes through a batter's head when he digs in at the plate and in their knowledge of the secret ceremonies that take place on the mound". Richard Corliss, in his review for Time, wrote, "Costner's surly sexiness finally pays off here; abrading against Sarandon's earth-mama geniality and Robbins' rube egocentricity, Costner strikes sparks".

Legacy
Bull Durham was named Best Screenplay of 1988 by New York Film Critics' Circle. The film became a minor hit when released, and is now considered one of the best sports movies of all time. In 2003, Sports Illustrated ranked Bull Durham as the "Greatest Sports Movie". In addition, the film is ranked number 55 on Bravo's "100 Funniest Movies." It is also ranked #97 on the American Film Institute's "100 Years...100 Laughs" list, and #1 on Rotten Tomatoes' Top Sports Movies list of the 53 best reviewed sports movies of all time. Entertainment Weekly ranked Bull Durham as the fifth best DVD of their Top 30 Sports Movies on DVD. The magazine also ranked the film as the fifth best sports film since 1983 in their "Sports 25: The Best Thrill-of-Victory, Agony-of-Defeat Films Since 1983" poll and #5 on their "50 Sexiest Movies Ever" poll. In June 2008, AFI revealed its "Ten top Ten"—the best ten films in ten "classic" American film genres—after polling over 1,500 people from the creative community. Bull Durham was acknowledged as the fifth best film in the sports genre. The real life Durham Bulls, playing in the single-A Carolina League at the time of the film's release, would later see the team open a new ballpark (Durham Bulls Athletic Park) in 1995, and would be promoted to the triple-A International League in 1998.

In 2003, a 15th anniversary celebration of Bull Durham at the National Baseball Hall of Fame was canceled by Hall of Fame president Dale Petroskey. Petroskey, who was on the White House staff during the Reagan administration, told Robbins that the actor's public opposition to the US-led war in Iraq helped to "undermine the U.S. position, which could put our troops in even more danger." Costner, a self-described libertarian, defended Robbins and Sarandon, saying, "I think Tim and Susan's courage is the type of courage that makes our democracy work. Pulling back this invite is against the whole principle about what we fight for and profess to be about."

For years, Ron Shelton has contemplated making a sequel and remarked, "I couldn't figure out in the few years right after it came out, what do you do? Nuke's in the big leagues, Crash is managing in Visalia. Is Annie going to go to Visalia? I've been to Visalia. That will test a relationship ... It was not a simple fable to continue with – not that we don't talk about continuing it, now that everyone's in their 60s".

Actor Trey Wilson, who played Durham manager Joe Riggins, died of a cerebral hemorrhage at age 40, seven months after this film's release.

Awards and honors
Academy Awards
 * Best Original Screenplay – Ron Shelton (nominated)

Golden Globe Awards
 * Best Actress – Musical or Comedy – Susan Sarandon (nominated)
 * Best Original Song – "When a Woman Loves a Man" (nominated)

Writers Guild of America Award
 * Best Original Screenplay – Ron Shelton (won)

Boston Society of Film Critics
 * Best Film – (won)
 * Best Screenplay – Ron Shelton (won)

Los Angeles Film Critics Association
 * Best Screenplay- Ron Shelton (won)

National Society of Film Critics
 * Best Screenplay – Ron Shelton (won)
 * Best Supporting Actor – Tim Robbins (3rd Place)

1988 New York Film Critics Circle Awards
 * Best Screenplay – Ron Shelton (won)
 * Best Supporting Actor – Tim Robbins (4th Place)

Other honors
In 2000, the American Film Institute placed the film on its 100 Years...100 Laughs list, where it was ranked #97. And in 2008, AFI included Bull Durham on its Top 10 Sports Films list as the #5 sports film.

Home media
Bull Durham was originally released on DVD on October 27, 1998, and included an audio commentary by writer/director Ron Shelton. A Special Edition DVD was released on April 2, 2002, and included the Shelton commentary track from the previous edition, a new commentary by Kevin Costner and Tim Robbins, a Between The Lines: The Making Of Bull Durham featurette, a Sports Wrap featurette, and a Costner profile. A "Collector's Edition" DVD celebrating the film's 20th anniversary was released on March 18, 2008, and features the two commentaries from the previous edition, a Greatest Show on Dirt featurette, a Diamonds in the Rough featurette that explores minor league baseball, The Making of Bull Durham featurette, and Costner profile from the previous edition.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Bull Durham


text: File:Sentimental Hygiene album cover.jpg


text:
Great White North

Great White North may refer to:
 * "Great White North", a recurring SCTV sketch featuring Bob and Doug McKenzie
 * The Great White North (album), a comedy album by Bob and Doug McKenzie (Rick Moranis and Dave Thomas)
 * Great White North Records, former Canadian independent record label
 * This Great White North, a weekly radio show featuring independent Canadian music on KOOP-FM 91.7 in Austin, TX

title: Great White North


text:
Anastasia Myskina

Anastasia Andreyevna Myskina (Анастасия Андреевна Мыскина ; born 8 July 1981) is a Russian former professional tennis player. Myskina won the 2004 French Open singles title, becoming the first Russian woman to win a major singles title. Due to this victory, she rose to No. 3 in the Women's Tennis Association (WTA) rankings, becoming the first Russian woman to reach the top 3 in the history of the rankings. In September 2004, she reached a career-high ranking of No. 2.

1999–2001
Myskina was born in Moscow and turned professional in 1998, the year in which she broke into the WTA top 500. She won her first WTA title in Palermo in only her second appearance in the main draw of a WTA Tour tournament. She made her debut in a Grand Slam tournament at the US Open and the Fed Cup (playing doubles). In 2000, Myskina scored first career top-20 victory over No. 17 Barbara Schett en route to the Sopot semifinal. She debuted at Roland Garros (which she would later win) and Wimbledon. She played in the Sydney Olympics and reached her first Tier I quarterfinal in Zürich, where she lost to world No. 1 Martina Hingis. Myskina was plagued by injury that forced her to miss the Australian Open. As a result, she fell out of the top 100. She then had a solid indoor performance, reaching the quarterfinals in Leipzig and the semifinals in Moscow, her first career Tier I semifinal.

2002
2002 was a breakthrough season for Myskina. She scored her first top-10 win over defending champion Jelena Dokić in Rome, and entered so the top 20. Myskina reached back-to-back grass-court finals in Birmingham and Eastbourne, and rose to No. 15 in the rankings. She won her first Tier II Brasil Open title in Salvador, Bahia, and another runner-up finish in Leipzig confirmed her spot in WTA Tour Championships. She finished the 2002 season in the top 15 for the first time in her career.

2003
Myskina obtained an invite to play the Hong Kong Ladies Challenge and reached the Australian Open quarterfinals (her first Grand Slam quarterfinal appearance of six). After claiming the title in Doha and defeating friend Elena Likhovtseva in the first all-Russian final in WTA history, she cracked the top 10. Established her place among the game elite with a win in Sarasota, Myskina also had mediocre results during the summer season were followed by a quarterfinal appearance at the US Open, back-to-back titles in Leipzig (defeating No. 1 Kim Clijsters and No. 2 Justine Henin) and Moscow, which was her first Tier I title. She became the first Russian woman to win the Kremlin Cup), and she made the finals in Philadelphia. Myskina qualified for the Tour Championships. She earned more than US$ one million in prize money, and finished the year in the top 10 for the first time in her career.

2004: French Open champion
2004 was Myskina's best season. Myskina successfully defended her Doha title, afterwards becoming the second Russian woman to break into the top 5, the first was Natasha Zvereva, who rose to No. 5 in the world in May 1989. The highlight of Myskina's 2004 season was a victory at the French Open, where she saved match points in the fourth round against Svetlana Kuznetsova, then defeated former world No. 1 players Venus Williams and Jennifer Capriati, en route to a 6–1, 6–2 victory over compatriot Elena Dementieva in the first all-Russian Grand Slam final, thus making her the first female Russian to win a Grand Slam singles title. Prior to her French Open victory, she had never made it past the second round at Roland Garros. Following her win in Paris, she rose to No. 3 in the rankings. She reached the final in San Diego, breaking Maria Sharapova's 14-match winning streak that included Wimbledon and beat Vera Zvonareva 17–15 in a third set tie-break, saving nine match points, winning the longest final set tie-break in WTA Tour history. She lost in the 2004 Athens Olympics semifinal to Justine Henin, having led 5–1 in the final set. She rose to a career-high No. 2 in the rankings. Myskina recovered from the tough loss to win the Kremlin Cup for the second straight year, and beat No. 2 Lindsay Davenport for the first time in five meetings en route to doing so. She finished on the top of her group at the WTA Championships, and scored her second win over a world No. 1 by again beating Davenport, but lost in the semifinals to the eventual champion Sharapova. Myskina led Russia to its first Fed Cup title, winning eight out of nine matches played, including winning all of her three matches in the final. Finished the season as world No. 3, a career-best year-end rank for a female Russian, and won over US$2 million in prize money, having scored ten top-10-wins during the 2004 season.

2005
2005 brought Myskina mixed fortunes. She spent the first half of 2005 poorly, due to personal issues regarding her mother's health. Myskina surrendered her Doha and Roland Garros titles in the very first round, and became the first Roland Garros champion to lose in the opening round. Bringing an 8–10 win–loss record to the beginning of the grass court season, Myskina managed to turn it around at Wimbledon by reaching her career-first quarterfinal at the event with three comeback wins over Jelena Janković (from a 1–5 final set deficit), and over Dementieva (being 1–6, 0–3 down and facing match points in the second set tiebreak). She fell out of the top 10 in August. She then won her tenth career title in Kolkata beating lower-ranked opponents. She also beat the Wimbledon champion Venus Williams in Fed Cup semifinals, but then lost both of her matches in the final. Myskina finished inside top 15 for the fourth straight time.

2006
2006 was another disappointing season for Myskina. Having had several chances to return to the top 10, she failed to convert any of them. In Warsaw, she suffered her worst defeat in terms of the rankings on WTA Tour level, falling to a wildcard, Agnieszka Radwańska, then ranked No. 309. At Roland Garros, Myskina defeated 2005 quarterfinalist Ana Ivanovic in the third round before losing to the eventual champion Justine Henin in the fourth round.

She showed splashes of her old form during the grass season, having reached the Eastbourne final beautifully, losing to Justine Henin-Hardenne in a close final concluded in a third set tiebreak. She made the Wimbledon quarterfinals, but lost to eventual champion Amélie Mauresmo in three sets. She had solid performance at the first two majors, making the fourth round on each occasion. After Wimbledon, her game completely fell apart. Along with second straight runner-up finish at the Tier IV event in Stockholm, she did not manage to win a single match in North America, going 0–3 during the US Open Series. The downfall reached its nadir when she became the first person to lose a Grand Slam match against future world No. 1, Victoria Azarenka, at the US Open, having entered the event under an injury cloud carried over from New Haven. Anastasia sat out for a majority of the indoor season with a foot and toe injury, pulling out of Stuttgart and her home tournament in Moscow. She returned to play in Zürich, but lost to then unknown Swiss qualifier Timea Bacsinszky, 3–6, 3–6.

2007: Struggles with injuries, final year
Myskina only played two singles matches, having been injured. She lost both of those matches; including to Meghann Shaughnessy at the French Open, only winning one game.

Playing style
Myskina was a baseline player who combined excellent defensive skills with aggressive shot-making abilities. Her two-handed backhand was powerful, and was hit flat and with consistent depth, and was responsible for many of the winners she accumulated on court. Her forehand was also strong, especially when hit inside-out, and could be devastating when Myskina was in good form, but a lack of control sometimes led to a high number of unforced errors when employing this shot. Her serve was reliable, although not particularly strong, with her average first serve being delivered at 95 mph, meaning that she did not ace frequently, although her serve speed had been recorded as fast as 107 mph. Her second serve was weaker, typically being delivered at 70 mph, and was susceptible to attack by aggressive players. When Myskina was nervous, her second serve became less reliable, leading to a relatively high double fault count. Myskina's greatest strengths as a player were her exceptional speed and court coverage, detailed and precise footwork, anticipation, and ability to improvise as and when the situation required. She also possessed delicate touch, and was able to incorporate drop shots and lobs effectively into points, and frequently hit winners with these typically defensive shots. Due to her doubles experience, she was also an adept volleyer when she chose to approach the net. Myskina's greatest weakness was her inconsistency, which was exacerbated by her fiery temper that was described as "volcanic" by some commentators.

Endorsements and apparel
Myskina was endorsed by Nike for clothing and apparel, and Head for rackets.

Personal life
Myskina dated HC Dynamo Moscow hockey player Aleksandr Stepanov.

In October 2002, she had a series of photos taken for GQ magazine by the photographer Mark Seliger for a spread in the October 2002 edition of GQ, in which one approved photo of her fully clothed was published. After she won the French Open in 2004, some photographs from the shoot, in which she appeared topless, were published in the Russian magazine Medved (Bear).

In August 2004, she filed a US$8 million lawsuit against GQ for allowing her topless photographs to appear in Medved without her consent. On 19 June 2005, U.S. District Judge Michael Mukasey, later United States Attorney General, ruled Myskina could not stop the distribution of the topless photos, because she had signed a release. She had claimed that she did not understand the photo release form and that she was not fluent in English at the time.

Myskina has three sons, born in 2008, 2010, and 2012.

When she was interviewed about parenting with Tennis.com she said: "Being a mother is so different; it’s not that it’s quieter or faster, it’s just different. Being a mom is tough. You understand what’s good for you and the babies, while tennis is just a game. It’s fun because you have a different life when you step on the court but when the baby is sick you go crazy. When I lost a match it was really bad time, now I know it was a great time, so being a mom is tougher." She also made a lot of statements about tennis more benefiting girls than boys: "I think this is absolutely not a male sport. I don't want to offend any male tennis player, but ... our game is not a team game, a sport for egoists. And if women somehow cope, then men – they are so weak. I am for team sports! Friendship, mutual assistance is the best that the team can give."

Record against top 10 players
''Myskina's record against players who have been ranked in the top 10. Active players are in boldface.''

Top 10 wins

 * She has a record against players who were, at the time the match was played, ranked in the top 10.

Other
She appeared in the first season of ice show contest Ice Age.

Awards and honours

 * ITF World Champion: 2004.
 * National
 * Знак ЗМС России (до 2007).png Sports title "Merited Master of Sports of Russia" (2004).
 * Заслуженный тренер новый.jpg Sports title "Merited Coach of Russia" (2021).
 * Orden of Friendship.png Order of Friendship (2009).

title: Anastasia Myskina


text:
The Great White North (album)

The Great White North is a Canadian comedy album by the fictional television characters Bob and Doug McKenzie (portrayed by actors Rick Moranis and Dave Thomas), released in 1981 by Anthem Records (ANR-1-1036) and distributed in the United States by Mercury Records (SRM-1-4034). The title is a nickname for Canada, also used as the title of a Second City Television (SCTV) sketch featuring Bob and Doug. This album's release tied in with SCTV at the height of the characters' popularity, and a still from the show is on its cover. In its sleeve is a newspaper parody called The Daily Hoser.

The complete story of how Anthem Records' Perry Goldberg fought to get the Great White North album made is at Billboard Canada: https://ca.billboard.com/fyi/how-gut-feeling-made-million-bob-doug-mckenzie

Sales
At least one million copies of the album were sold in North America, 350,000 of these in Canada alone, which earned a triple-platinum certification from the Canadian Recording Industry Association.

The Great White North entered the RPM Canadian album charts at #3 on 12 December 1981 and rose to the #1 position the following week where it remained until 23 January 1982. Overall, RPM ranked the album #40 of albums released in Canada during 1981. It peaked at number 8 on the American Billboard 200 album chart in 1982.

"Take Off"
The song "Take Off" (identified on the album as "the hit single section"), features guest vocalist Geddy Lee of Rush, an elementary schoolmate of Moranis. In it he utters the line, “Yeah, um, I, you know, ten bucks is ten bucks”, after a reminder of his deal with the brothers' lawyer. It was a hit, peaking at number 16 on the Billboard 100 singles chart in March 1982, five spots higher than Rush's most popular U.S. song, "New World Man", released a year later. It reached #14 on the Cash Box chart and #5 on WLS-AM in Chicago. On Canada's CHUM Charts it was No. 1 for 2 weeks.

Awards
In 1982, this album received the Juno Award for Comedy Album of the Year.

In 1983, it was nominated for the Grammy Award for Best Comedy Album, but lost to Richard Pryor: Live on the Sunset Strip.

Side 1

 * 1) "This is our album, eh?" - 3:40
 * 2) "The Beerhunter" - 2:23 This sketch is a beer-drinking game based on The Deer Hunter: Russian Roulette with beer cans.
 * 3) "School Announcements" - 1:52 This sketch features Doug (Thomas) as a school vice-principal who encourages his charges to "have a beer and talk" at his office.
 * 4) "The Miracle of Music" - 0:41 Doug plays the Great White North theme by blowing across beer bottles containing varying levels of liquid.
 * 5) "Peter's Donuts" - 3:02 Bob and Doug sit inside a donut shop as their vehicle gets towed, due to being parked on the street because the shop has very few parking spaces.
 * 6) "Gimme A Smoke" - 2:00
 * 7) "Take Off" - 4:46 This track features singing by guest vocalist Geddy Lee of Rush
 * 8) "Coffee Sandwich" - 2:26

Side 2

 * 1) "Welcome to Side Two" - 0:58
 * 2) "Doug's Mouth" - 3:33
 * 3) "Elron McKenzie" - 2:28 A clergyman gives a sermon on the evils of killing "bugs".
 * 4) "Black Holes" - 2:06 There is a backwards message on this track.
 * 5) "You Are Our Guest" - 2:14 The duo's exaggerated accents pronounce "are" and "our" as homophones for comedic effect.  Listeners play the "guest" by reading the enclosed script.
 * 6) "Ernie's Mom" - 1:54
 * 7) "The Twelve Days of Christmas" - 4:46 A comedic rewrite of the popular Christmas carol; the duo only makes it as far as Day 8 before deciding the song has run long enough.
 * 8) "Ralph The Dog" - 3:11
 * 9) "Okay, This is the End, eh?" - 1:57
 * 10) "Honest" - 0:31

Side 2 of the original vinyl album also includes a very brief unlabeled track of Bob McKenzie (Moranis) saying the two words "black hole" and then laughing just before the "You Are Our Guest" segment. This is a callback to the fourth track on side 2 called "Black Holes", in which Bob insists the spaces between tracks of a vinyl album are black holes.

Reviews
Liam Lacey's review of the album in The Globe and Mail concluded on a negative sentiment, noting the production was "entertaining listening - about twice. Other hosers are going to find it extremely confusing."

In popular culture
Track #7, "Take Off" is featured in The Simpsons Season 13 episode, "The Bart Wants What It Wants".

"Take Off" is also featured in Ash vs. Evil Dead Season 2 episode, "DUI".

Featured among other classic artists, track #15, "The Twelve Days of Christmas" also appears on a compilation album entitled, A Rock 'n' Roll Christmas II.

"The Twelve Days of Christmas" is included on Dr. Demento Presents: The Greatest Christmas Novelty CD of All Time.

title: The Great White North (album)


text:
Ancillary statistic

In statistics, ancillarity is a property of a statistic computed on a sample dataset in relation to a parametric model of the dataset. An ancillary statistic has the same distribution regardless of the value of the parameters and thus provides no information about them. It is opposed to the concept of a complete statistic which contains no ancillary information. It is closely related to the concept of a sufficient statistic which contains all of the information that the dataset provides about the parameters.

A ancillary statistic is a specific case of a pivotal quantity that is computed only from the data and not from the parameters. They can be used to construct prediction intervals. They are also used in connection with Basu's theorem to prove independence between statistics.

This concept was first introduced by Ronald Fisher in the 1920s, but its formal definition was only provided in 1964 by Debabrata Basu.

Examples
Suppose X1, ..., Xn are independent and identically distributed, and are normally distributed with unknown expected value μ and known variance 1. Let

 * $$\overline{X}_n = \frac{X_1+\,\cdots\,+X_n}{n}$$

be the sample mean.

The following statistical measures of dispersion of the sample
 * Range: max(X1, ..., Xn) − min(X1, ..., Xn)
 * Interquartile range: Q3 − Q1
 * Sample variance:
 * $$\hat{\sigma}^2:=\,\frac{\sum \left(X_i-\overline{X}\right)^2}{n}$$

are all ancillary statistics, because their sampling distributions do not change as μ changes. Computationally, this is because in the formulas, the μ terms cancel – adding a constant number to a distribution (and all samples) changes its sample maximum and minimum by the same amount, so it does not change their difference, and likewise for others: these measures of dispersion do not depend on location.

Conversely, given i.i.d. normal variables with known mean 1 and unknown variance σ2, the sample mean $$\overline{X}$$ is not an ancillary statistic of the variance, as the sampling distribution of the sample mean is N(1, σ2/n), which does depend on σ 2 – this measure of location (specifically, its standard error) depends on dispersion.

In location-scale families
In a location family of distributions, $$(X_1 - X_n, X_2 - X_n, \dots, X_{n-1} - X_n)$$ is an ancillary statistic.

In a scale family of distributions, $$(\frac{X_1}{X_n}, \frac{X_2}{X_n}, \dots, \frac{X_{n-1}}{X_n})$$ is an ancillary statistic.

In a location-scale family of distributions, $$(\frac{X_1 - X_n}{S}, \frac{X_2 - X_n}{S}, \dots, \frac{X_{n - 1} - X_n}{S})$$, where $$S^2$$ is the sample variance, is an ancillary statistic.

In recovery of information
It turns out that, if $$T_1$$ is a non-sufficient statistic and $$T_2$$ is ancillary, one can sometimes recover all the information about the unknown parameter contained in the entire data by reporting $$T_1$$ while conditioning on the observed value of $$T_2$$. This is known as conditional inference.

For example, suppose that $$X_1, X_2$$ follow the $$N(\theta, 1)$$ distribution where $$\theta$$ is unknown. Note that, even though $$X_1$$ is not sufficient for $$\theta$$ (since its Fisher information is 1, whereas the Fisher information of the complete statistic $$\overline{X}$$ is 2), by additionally reporting the ancillary statistic $$X_1 - X_2$$, one obtains a joint distribution with Fisher information 2.

Ancillary complement
Given a statistic T that is not sufficient, an ancillary complement is a statistic U that is ancillary and such that (T, U) is sufficient. Intuitively, an ancillary complement "adds the missing information" (without duplicating any).

The statistic is particularly useful if one takes T to be a maximum likelihood estimator, which in general will not be sufficient; then one can ask for an ancillary complement. In this case, Fisher argues that one must condition on an ancillary complement to determine information content: one should consider the Fisher information content of T to not be the marginal of T, but the conditional distribution of T, given U: how much information does T add? This is not possible in general, as no ancillary complement need exist, and if one exists, it need not be unique, nor does a maximum ancillary complement exist.

Example
In baseball, suppose a scout observes a batter in N at-bats. Suppose (unrealistically) that the number N is chosen by some random process that is independent of the batter's ability – say a coin is tossed after each at-bat and the result determines whether the scout will stay to watch the batter's next at-bat. The eventual data are the number N of at-bats and the number X of hits: the data (X, N) are a sufficient statistic. The observed batting average X/N fails to convey all of the information available in the data because it fails to report the number N of at-bats (e.g., a batting average of 0.400, which is very high, based on only five at-bats does not inspire anywhere near as much confidence in the player's ability than a 0.400 average based on 100 at-bats). The number N of at-bats is an ancillary statistic because This ancillary statistic is an ancillary complement to the observed batting average X/N, i.e., the batting average X/N is not a sufficient statistic, in that it conveys less than all of the relevant information in the data, but conjoined with N, it becomes sufficient.
 * It is a part of the observable data (it is a statistic), and
 * Its probability distribution does not depend on the batter's ability, since it was chosen by a random process independent of the batter's ability.

title: Ancillary statistic


text:
Wikipedia:Articles for deletion/Nine Acre Field

This page is an archive of the discussion surrounding the proposed deletion of the page entitled Nine Acre Field.

This page is kept as an historic record.

The result of the debate was to delete the article.

''A worthless little playing field in Wrexham, North Wales that is being sold by the borough council to fund schooling. The sale of the field is opposed by many people, the sanity of whom is questioned.''

 * Seems rather POV, and if needed at all could be included in Wrexham. -- Arwel 19:35, 21 May 2004 (UTC)
 * Speedy delete? Deus Ex 19:59, 21 May 2004 (UTC)
 * Delete. Unremarkable playing field, does not belong in wikipedia. Thue 20:08, 21 May 2004 (UTC)
 * Delete. This is just a local government selling a piece of property, with nothing else to give notability. -- Cyrius|&#9998 20:16, May 21, 2004 (UTC)

This page is now preserved as an archive of the debate and is no longer 'live'. Subsequent comments on the issue or the deletion should be placed on other relevant 'live' pages. Please do not edit this page.


text:
Multimedia PC

The Multimedia PC (MPC) was a recommended configuration for a personal computer (PC) with a CD-ROM drive. The standard was set and named by the Multimedia PC Marketing Council, which was a working group of the Software Publishers Association (SPA, now the Software and Information Industry Association). The MPMC comprised companies including Microsoft, Creative Labs, Dell, Gateway, and Fujitsu. Any PC with the required standards could be called an "MPC" by licensing the use of the logo from the SPA.

Background and reception
CD-ROM drives were just coming to market in 1990, and it was difficult to concisely communicate to a consumer all the hardware requirements for using "multimedia software", which mostly meant "displaying video synced with audio on a PC via a CD-ROM drive". The MPC standard was supposed to communicate this concisely, so a consumer buying hardware or software could simply look for the MPC logo and be assured of compatibility.

The MPC program had mixed results primarily because of the vast number of PCs sold under different brands, and once Windows became ubiquitous on PCs, specifying minimum or recommended Windows versions and features was often clearer to consumers than the MPC nomenclature. As the standardized term failed to catch on, and as the Software Publishers Association turned away from consumer software in the late 1990s, interest in the MPC standard vanished. The problem of software labeling continues, especially in the field of computer games, where a multitude of 3D video cards has been manufactured with an extremely wide range of capabilities, and no common industry labeling standard to let consumers know whether their card is powerful enough to run a particular game.

No further specification beyond MPC Level 3 in 1996 was published; the Multimedia PC Marketing Council dissolved not too long afterward.

MPC Level 1
The first MPC minimum standard, set in 1991, was:
 * 16 MHz 386SX CPU
 * 2 MB RAM
 * 30 MB hard disk
 * 256-color, 640×480 VGA video card
 * 1× (single speed) CD-ROM drive using no more than 40% of CPU to read, with < 1 second seek time
 * Sound card (Creative Sound Blaster recommended as closest available to standard at the time ) outputting 22 kHz, 8-bit sound; and inputting 11 kHz, 8-bit sound
 * Windows 3.0 with Multimedia Extensions.

MPC Level 2
In 1993, an MPC Level 2 minimum standard was announced:
 * 25 MHz 486SX CPU
 * 4 MB RAM
 * 160 MB hard disk
 * 16-bit color, 640×480 VGA video card
 * 2× (double speed) CD-ROM drive using no more than 40% of CPU to read at 1×, with < 400 ms seek time
 * Sound card outputting 44 kHz, 16-bit CD quality sound.
 * Windows 3.0 with Multimedia Extensions, or Windows 3.1.

MPC Level 3
In 1996, MPC Level 3 was announced:
 * 75 MHz Pentium CPU
 * 8 MB RAM
 * 540 MB hard disk
 * Video system that can show 352×240 at 30 frames per second, 16-bit color
 * MPEG-1 hardware or software video playback
 * 4× CD-ROM drive using no more than 40% of CPU to read, with < 250 ms seek time
 * Sound card outputting 44 kHz, 16-bit CD quality sound
 * Windows 3.11 or Windows 95

title: Multimedia PC