5

Is there an organization similar to W3C that creates standards for programming languages?

If so, are there any programming languages, like browsers would using W3C standards, that implement these standards?

I have done my own research and I have been unsuccessful thus far hence the question. The answers and most of the comments so far are very useful but essentially I'm looking for a language or list of languages that have an open and reliable licensing system.

I think W3C has been the most successful at this up until now with HTML so I am looking for a language that has a similar licensing structure. Java has certain specifications like the EE servlet specification which has providers like Tomcat implement it but then at the end of the day that is still an Oracle owned standard isn't it?

gnat
  • 21,442
  • 29
  • 112
  • 288
ThreaT
  • 217
  • 2
  • 9
  • You mean like the [Java Community Process](https://www.jcp.org/en/home/index) or [WG21](http://www.open-std.org/jtc1/sc22/wg21/)? –  May 11 '14 at 17:02
  • If Oracle were to ever make Java licenses unaffordable anymore then would there be alternative languages (besides OpenJDK) that could be used instead? Just like one could change their browser if it started charging them to use it and still keep programming HTML and viewing HTML pages? – ThreaT May 11 '14 at 17:05
  • 2
    I'm fairly sure [C](https://en.wikipedia.org/wiki/C11_%28C_standard_revision%29) and [C++](https://en.wikipedia.org/wiki/C%2B%2B11) are standardized by the [ISO](https://en.wikipedia.org/wiki/International_Standards_Organization). There's also the [IEEE](https://en.wikipedia.org/wiki/Ieee) which is probably best known to programmers for their [floating point standard](https://en.wikipedia.org/wiki/IEEE_754). I don't know if this is the sort of standard you had in mind though. – Doval May 11 '14 at 17:06
  • 2
    Do not assume that standards are always a good thing. The cumbersome and overly democratic ANSI standards process turned COBOL into a dead language as changes were blocked by large installations that did not want to upgrade code to meet any new standards. Perhaps CORBA is the worst example as conflicting software vendors pushed for their own implementation to be the standard resulting in parts of the standard being impossible to implement. – James Anderson May 12 '14 at 01:35
  • http://meta.stackexchange.com/tags/list-questions/info – gnat May 12 '14 at 08:09

3 Answers3

9

It’s questionable whether there is any other organization similar to the W3C; it really depends on your definition for similarity.

There are standards organizations in the strict sense (W3C is not a standards organization but an industry consortium) that define standards for programming languages, most importantly ISO, working together with the IEC in this area. They have a joint technical group, which has subcommittee SC 22 for “programming languages, their environments and system software interfaces”, which has created several standards.

There are other players in the field, too, like the ECMA association, which works on a few languages, such as JavaScript, which they call ECMAScript.

There are also many languages that have not been standardized, so that the closest equivalent to a standard is a vendor’s or language designer’s description or manual.

Jukka K. Korpela
  • 2,387
  • 17
  • 14
  • 1
    Almost. ISO (International Organization for Standardization) and >IEC (International Electrotechnical Commission)< have Joint Technical Committee JTC1 which has Subcommittee SC22 which adopts standards developed by working groups. http://www.open-std.org/JTC1/SC22/ IEEE is involved in other standards, notably 802.* Ethernet and WiFi, 754/854 floating point, and 1003 POSIX. – dave_thompson_085 May 11 '14 at 23:50
  • @dave_thompson_085, right, thanks, corrected. – Jukka K. Korpela May 12 '14 at 05:54
  • So would **ISO/IEC 11756:1999** (http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=29268) be the specification I'm looking for? If so, do you know of any languages that implement it? – ThreaT May 12 '14 at 15:39
  • @ThreaT, that’s a standard for a specific language, “M”, also known as “MUMPS”. There is no hint of the type of programming languages that you are interested in. – Jukka K. Korpela May 12 '14 at 16:05
  • I read the title of the standard mentioned. To get help with what you are looking for, consider explaining what you are looking for. From the comments, it seems that it is very different from what you asked. I find it somewhat absurd to ask whether there are languages that implement a specific standard for a programming language. – Jukka K. Korpela May 12 '14 at 16:39
  • Why would you find it absurd if it exists as pointed out in your answer? – ThreaT May 12 '14 at 18:33
  • Languages do not implement languages. – Jukka K. Korpela May 12 '14 at 18:54
  • Where do you get that from? – ThreaT May 12 '14 at 19:59
7

There are no standards organizations specifically for programming languages.

ANSI (American National Standards Institute), ISO (International Standards Organization)(I think) exist to write standards. When someone wants to put a standard together for something, they put a pitch together and present it to the organization. If the organization agrees that it is time, they will help run the standard-writing and balloting process.

ANSI standards exist for FORTRAN and Ada. The Ada standard is unusual in that it is a joint standard, with identical standard number, between ANSI and the US Department of Defense (ANSI/MIL-STD-1815A, if memory serves me). Ada started as a DoD effort, and a decision was made to pursue ANSI standardization as well, to gain wider exposure for the language. (This was successful, to a degree. Ada is heavily used in commercial, non-military work, in Europe.)

ANSI and ISO standards exist for PASCAL. They define different, slightly incompatible languages. I don't recall the details now.

C++ is covered by an ANSI standard. Something similar almost happened for C++. During the ANSI effort, the European contingent tipped their hand that they were planning on making the ISO standard different, because of some issues that they felt the ANSI committee was not addressing adequately. To their credit, the ANSI C++ committee, after saying "Say WHAT!?", backed up and addressed the issues.

There is an ANSI standard for FORTH.

ECMA (European Computer Manufacturers Association) has also done a few standards for languages.

John R. Strohm
  • 18,043
  • 5
  • 46
  • 56
  • 4
    The original standards for FORTRAN, COBOL and C were developed by ANSI, specifically subcommittees under committee X3, now renamed INCITS, and then became ISO/IEC standards under JTC1 SC22 (see comment on other answer): 1539, I forget, and 9899 respectively. ANSI and X3/INCITS then replaced their versions with the equivalent ISO/IEC versions, which have subsequently been updated. C++ was standardized first as ISO/IEC 14882, similarly adopted by ANSI and INCITS and updated. FORTH was standardized under ANSI/X3, but is now being updated outside ANSI&ISO http://www.forth200x.org/ – dave_thompson_085 May 12 '14 at 00:06
3

It's very unclear to me what you mean with "standards", but there is for example the Java Language Specification which determines how a JVM should work and thus provides a guideline for people that want to write their own JVM implementation.

Jeroen Vannevel
  • 5,736
  • 6
  • 18
  • 27
  • See [wikipedia](http://en.wikipedia.org/wiki/Java_(programming_language)): GNU GPL – Jeroen Vannevel May 11 '14 at 18:32
  • Java *is* the Java Language Specification. It is the implementation of that specification. What people can do is create their own JVM which should adhere to the rules of this specification but can perform them in a different manner. – Jeroen Vannevel May 11 '14 at 18:38
  • I am not a lawyer, whatever I say shouldn't be trusted. I would be guessing for "no", though. – Jeroen Vannevel May 11 '14 at 19:18
  • This is what concerns me. Taken from wikipedia: The JCP's executive board has been characterized as a "rubber stamp organization" since Oracle acquired Sun Microsystems, the original developer of the language.[10] The Apache Software Foundation resigned its seat on the board in December 2010 because Oracle was unwilling to license the Technology Compatibility Kit for Apache's version of Java.[11] – ThreaT May 11 '14 at 19:57
  • @ThreaT you ask about languages in general, but in comments you seem to be getting bogged down in specifics on Java and Oracle. What is your question that you are *really* trying to ask? –  May 11 '14 at 20:17
  • 1
    @MichaelT: I'm trying to find an **open standard/specification** that actually has programming languages that implement it. – ThreaT May 11 '14 at 20:38
  • 1
    @ThreaT you might want to consider asking on [Software Recommendations](http://softwarerecs.stackexchange.com) with the specific requirements. That said, consider that the ECMAScript specification is BSD licensed... though I'm still confused about what you are looking for. Languages just *are*. Implementations are licensed. Libraries are licensed. Certification that a given something is something is licensed. –  May 11 '14 at 21:17
  • "Java" is a copyrighted name. Oracle will not permit you to use the name Java unless your implementation passes the full conformance test suite. (Other than that, they haven't shown any significant reluctance to letting folks create additional implementations.) For other languages, it's generally been a matter of peer review trying to hold them up to ridicule and steer users away from them when they depart from the published standards in unreasonable ways. That difference in approach is one of the reasons Java is a bit more reliably portable than many. – keshlam May 11 '14 at 21:36