Sitio Web ISO/IEC y Cobro de estándares C y C++


El Estándar ISO C (ISO/IEC 9899) y el Estándar ISO C++ (ISO/IEC 14882) no se publican en línea; en su lugar, se debe comprar el PDF para cada uno de esos estándares. Me pregunto cuál es la lógica detrás de esto... ¿no es perjudicial para los lenguajes de programación C y C++ que la especificación autorizada para estos lenguajes no esté disponible libremente y no se pueda buscar en línea? ¿No fomenta esto el uso de fuentes de información posiblemente inexactas y no autorizadas con respecto a estos idiomas?

Aunque entiendo que se ha invertido mucho tiempo y esfuerzo en el desarrollo de los estándares C y C++, todavía estoy algo desconcertado por la elección de cobrar por la especificación. La Especificación Base de OpenGroup, por ejemplo, está disponible de forma gratuita en línea; ganan dinero cobrando por la certificación. ¿Alguien sabe por qué los comités de normas ISO no obtienen sus ingresos certificando el cumplimiento de las normas, en lugar de cobrar por estos documentos? Además, ¿alguien sabe si el sitio web del comité de normas ISO de aspecto atroz se hace intencionalmente para que se vea de esa manera? Es como si no quisieran que la gente visitara y comprara la especificación.

Una última cosa... los estándares C y C++ se describen generalmente como"estándares abiertos"... si bien me doy cuenta de que esto significa que a cualquiera se le permite implementar el estándar, ¿debería revisarse esa definición de "abierto"? Parece que cobrar por el estándar en lugar de hacerlo abiertamente disponible contrario al espíritu de apertura.

P.d. Tengo una copia de la ISO/IEC 9899:1999 e ISO/IEC 14882:2003, así que por favor no haga comentarios sobre ser barato ni nada... aunque si usted está tentado a decir tales cosas, es posible que desee considerar la escuela secundaria, pregrado, y los estudiantes de posgrado que podrían no tener todo ese dinero extra. Además, es posible que desee considerar el hecho de que el sitio web de ISO es realmente incompleto y ni siquiera le dicen el costo hasta que proceda a la Checkout... realmente no anima a uno a ir y obtener una copia, ¿verdad?

Editar / Comentar
Se me ocurre que si los comités de normas ISO obtuvieran sus ingresos de la certificación, incentivaría cambios más pequeños pero más frecuentes en la norma en lugar de revisiones muy grandes con poca frecuencia. También incentivaría la creación de un estándar implementable (dudo que el comité ISO C++ hubiera introducido la "exportación" en primer lugar si obtuvo sus ingresos de la certificación).

He encontrado una solución a una de las molestias de no tener el PDF en línea.... He subido mi copia de los estándares en mi Google Docs, por lo que todavía puedo acceder a ella desde cualquier ordenador sin llevarlo.

Author: Michael Aaron Safyan, 2010-04-29

8 answers

Por si sirve de algo, Herb Sutter escribió un artículo que toca este tema, y hay un poco de discusión en los comentarios:

Como él menciona, "abierto" no significa necesariamente "sin costo". En cuanto a los estudiantes u otras personas con medios financieros limitados que podrían querer versiones gratuitas de los documentos, tenga en cuenta que:

  1. muchas referencias que los estudiantes pueden querer (o incluso estar obligados a acceder) no son libres
  2. para la mayoría del trabajo, los estándares simplemente no son un requisito: hay mucha documentación disponible gratuitamente que es más que adecuada para gran parte del trabajo que casi cualquier persona podría querer hacer con C o C++
  3. los borradores de documentos se pueden descargar libremente en muchos casos; si bien no son el estándar, las versiones finales del borrador son muy cercanas y podrían ser lo suficientemente buenas para muchos utilizar.

Si te tomas en serio la programación en C o C++, te sugiero que tengas una copia de los estándares (aunque no diría que es un requisito). También sugeriría que no debería haber una expectativa de que serían libres, al igual que para cualquier ocupación o profesión, las 'herramientas del oficio' generalmente no son libres, ya sean objetos físicos como martillos, o información como manuales o especificaciones.

De hecho, yo diría que un buen conjunto de las referencias serían preferibles a un conjunto de estándares, si solo pudiera tener uno u otro o si estuviera comenzando (probablemente querría un par de estándares diferentes para C++, mientras que Harbison & Steele es todo lo que se necesita para C).

No me malinterpretes, no me opongo a que estén disponibles gratuitamente (y estoy feliz de que actualmente sean bastante baratos), pero no creo que haya ninguna razón para esperar que sean gratuitos.

Las respuestas a la pregunta, "¿Dónde encuentro ¿los documentos estándar actuales de C o C++?", tienen punteros a versiones baratas y versiones de borrador libres. También tenga en cuenta que el estándar C99 actual (con TC1 y TC2 incorporados) está disponible para su descarga gratuita:

Hay una nota que N1124 "es un documento de trabajo WG14, pero refleja el estándar consolidado en el momento de su publicación".

 18
Author: Michael Burr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:22

Es desafortunado, pero puedo ver por qué es así.

Los organismos de normalización deben autofinanciarse: la idea que subyace al cobro de las normas es que aquellos que se benefician de ellas pagan por su producción. Como estos organismos de normalización son organizaciones intergubernamentales (no empresas constituidas como Open Group), no tienen una carta para estar en el negocio de proporcionar certificación, por lo que no pueden financiarla de esa manera.

 8
Author: caf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 05:14:05

¿Alguien sabe por qué los comités de normas ISO no obtienen sus ingresos certificando el cumplimiento de las normas, en lugar de cobrar por estos documentos?

A esta puedo responder: No hay dinero para hacer allí. A excepción de EDG, nunca hubo un compilador C++ conforme al estándar. E incluso si cobraban por proveedores que lo intentaban (y los proveedores eran lo suficientemente estúpidos como para que evaluaran a sus compiladores obviamente no conformes), además de GCC (¿quién pagaría por ello?) hay muy pocos vendedores para ganar dinero.

En cuanto a la tarifa: Al menos en un momento el mejor trato fue comprar el estándar C++03 encuadernado como un libro.

 7
Author: sbi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 06:03:59

Aunque entiendo que se ha invertido mucho tiempo y esfuerzo en el desarrollo de los estándares C y C++, todavía estoy algo desconcertado por la elección de cobrar por la especificación. La especificación Base de OpenGroup, por ejemplo, está disponible de forma gratuita en línea; ganan dinero cobrando por la certificación. ¿Alguien sabe por qué los comités de normas ISO no obtienen sus ingresos certificando el cumplimiento de las normas, en lugar de cobrar por estos documentos?

No puedo hablar por la motivación exacta, pero tenga en cuenta que ISO es una enorme organización. No solo estandarizan los lenguajes de programación, sino también las dimensiones de los contenedores, los enchufes, los tamaños de los programas y un millón de otras cosas. También están, mucho más que las organizaciones de normalización más especializadas, muy centradas en la estabilidad, incluso a costa de una gran cantidad de burocracia y procesos de trabajo muy lentos.

Me imagino que hay un par de razones por las que cobran por el documento:

  • financia parte del trabajo de la organización, y {[12]]}
  • no lo ven como un problema. ISO en general realmente no se ocupa mucho de los estándares para ser utilizados por los individuos. La mayoría de sus estándares están destinados a grandes empresas para trabajar con otras grandes empresas. Para aquellos, pagar unos pocos dólares significa nada , e incluso puede ser visto como una prueba de calidad.
  • la organización es bastante antigua. No siempre fueron capaces de simplemente distribuir un documento PDF. Lo más probable es que la regla de cobrar una tarifa por los documentos se originó en los días en que tuvieron que imprimirse y enviarse a usted.
  • no estás comprando el documento de la propia ISO, sino de organismos nacionales específicos, como ANSI. Esto debería darte una idea de cuán grande es ISO, y cuán grande es una red que tiene que financiar. De hecho, el precio de la norma varía ampliamente entre los países, lo que me lleva a creer que el precio lo fijan los organismos nacionales individuales, en lugar de centralmente por ISO.
  • un estándar ISO es bastante pesado. Es el cuerpo de estándares, y si algo está estandarizado por ISO, puede generalmente estar bastante seguro de que se ha trabajado, considerado desde todos los ángulos y realmente funciona en la práctica. Pocas organizaciones tienen este historial. Mira el trainwreck que es cada "estándar"del W3C. Mira la gran cantidad de RFC horriblemente subespecificados que conforman Internet.
  • carga para la certificación de compiladores de C++ no es probable que sea una empresa muy rentable. No hay muchos compiladores compatibles, y varios de los compiladores que existen están escritos de forma gratuita, como proyectos de código abierto. Podrían verse obstaculizados significativamente por tener que pagar miles de dólares en tarifas de certificación (y tendrían que ser miles de dólares para compensar los ingresos perdidos de miles de usuarios que descargan el estándar). ¿Estás dispuesto a sacar a los nuevos compiladores del negocio usted puede ahorrar $20 o lo que cobran? ¿G++ alguna vez habría despegado si hubieran tenido ese tipo de barrera de entrada? ¿El compilador de Clang de LLVM? Diablos, Microsoft estaría dispuesto a pagar esta cuota año tras año, cuando podría {[6] } simplemente centrarse en. NET?

Una última cosa... los estándares C y C++ se describen generalmente como"estándares abiertos"... si bien me doy cuenta de que esto significa que a cualquiera se le permite implementar el estándar, si esa definición de "abierto" ser revisado? Cobrar por el estándar en lugar de hacerlo abiertamente disponible parece contrario al espíritu de apertura.

No, usan la definición correcta. No están cobrando por el estándar. Puede implementar un compilador de C++ de forma gratuita, sin pagar regalías ni costos de licencia. El estándar está disponible abiertamente. Simplemente no está libremente disponible. Pero sin duda abiertamente. Cualquiera puede acceder a él. No tienes que serlo. asociado con ISO, o trabajar para una empresa específica (o cualquier empresa en absoluto). No tienes que ser ciudadano de un país específico o trabajar en el gobierno o tener un tío que trabajó en el comité de estándares. Está disponible abiertamente para cualquier que esté dispuesto a entregar unos pocos dólares, menos de lo que cuesta un buen libro de texto de C++.

Es el documento por el que cobran. No es el estándar. El estándar es gratuito y abierto. El documento no es gratuito.

Realmente, hay no debería haber nada nuevo en esto. ¿Por qué crees que el movimiento de Código Abierto hace una distinción tan grande de" libre como en cerveza "y"libre como en libertad"? Porque opensource no implica necesariamente free of charge. A menudo, el software de código abierto es gratuito, pero no tiene por qué serlo, y no siempre lo es.

¿Entonces también cree que el nombre de "código abierto" debe cambiarse?

Ya Tenemos una palabra que significa "libre". Es "gratis". Un estándar que se distribuye gratis de carga podría llamarse "gratis". "abierto" significa otra cosa. ¿Por qué quieres cambiar el significado de "abierto" para que signifique lo mismo que "libre"?

 6
Author: jalf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 22:00:35

Para no tolerar la piratería o mantenerme como un modelo a seguir, es bastante fácil obtener una copia.

Simplemente Googlear "iso 14882 pdf" producirá un enlace confiable. Por ahora, los resultados están siendo enturbiados por las copias del FCD C++0x. Pero las últimas veces que necesitaba una copia, encontré una gratuita alojada en google.com .

En cuanto a los estudiantes universitarios, recuerdo hacer tareas en laboratorios de computación al azar donde no tenía mis archivos a mano. Hit Google y tengo la referencia dentro de un minuto.

Ni siquiera sé a dónde va esa tarifa, que varía tanto de un proveedor a otro. El comité de normas está bien compensado por sus empleadores. La cantidad en dólares es demasiado aleatoria para ser un impuesto.

Una vez compré un estándar (bueno, mi empleador lo compró): IEEE 1275 Open Firmware. Eran algo así como 2 200 de Documentos de Ingeniería Global después de comprar. Vino como una fotocopia barata en papel de fotocopiadora normal. No creo que fue incluso retractilado, y ciertamente no vino con ningún tipo de cubierta. Cortes constantes de papel. Agregué una carpeta de tres anillos y juré no volver a hacer eso. (Ah, y el estándar fue retirado y suplantado por basura Intel inferior.)

Mirando el sitio de GED ahora, cobran 3 30 por un PDF legal de C++03 y 3 373 -! 567 (!) para copias fotocopiadas sin encuadernar de varias ediciones aparentemente idénticas.

 5
Author: Potatoswatter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 05:46:15

Estoy involucrado con ISO desde 2004 y esto es lo que he aprendido hasta ahora. ISO no es una organización comercial, y por lo tanto no tiene miembros que paguen. Otros organismos de normalización como OMG se financian a través de las tarifas que las organizaciones pagan a cambio de ser miembro (y ejercer su influencia). La ISO no funciona así: está compuesta por Organismos Nacionales, que son representantes de sus respectivos países. Por lo tanto, cobrar por las normas es la única manera que tienen para financiar su propio trabajo.

Además, y también debido al hecho de que ISO no es comercial, ISO no hace certificación. El negocio de la certificación (que es un gran negocio) es explotado por empresas privadas como parte de sus servicios en torno a las normas ISO, pero no la propia ISO.

Por último, las normas ISO no están destinadas a ser compradas por particulares. Están dirigidos a organizaciones y tienen un precio acorde.

Espero que esto ayude.

 3
Author: CesarGon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-01 18:36:13

"Abierto" tiene varios significados.

En este caso, puede obtener tantas copias de los estándares como desee, sin importar quién sea. Puede implementarlos libremente, sin ninguna dificultad adicional. Usted puede, si lo desea, unirse al Comité y trabajar en él usted mismo, e influir en él de esa manera. En todos estos aspectos está abierto.

Ahora, necesitará dinero para obtener copias del estándar. No estoy seguro de sentarme en el comité, pero a efectos prácticos, al menos habrá gastos de ir a reuniones.

Personalmente, no creo que sea tan útil insistir en que "abierto" también significa "libre". Hay una clara distinción entre abierto y cerrado (en el que puede tener problemas para obtener una copia, o no poder usarla libremente, o para influir en su desarrollo), y confundir esto con si cuesta dinero confundirá las cosas.

También está el problema de que el proceso de estandarización cuesta dinero que tiene que vienen de alguien, incluso considerando la enorme cantidad de trabajo voluntario. Deber ¿viene de los impuestos? Eso es lo que la alternativa se parece a mí, ya sea impuestos o honorarios de personas y organizaciones que utilizan los estándares.

Finalmente, no lo veo como un problema real. Los Estándares no son realmente útiles para la mayoría de la gente. Son inútiles a menos que el lector ya conozca el idioma, y ni siquiera son muy buenas como referencias generales. No son para el lector casual. Las personas que realmente tienen un uso para ellos probablemente estarán dispuestos a gastar unos cuantos dólares en ellos, y eso irá a apoyar el proceso de elaboración de normas.

 2
Author: David Thornley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 19:54:15

Está abierto como en "sin restricciones en cuanto a quién puede participar."Cualquiera puede unirse al comité de C++. Es un proceso abierto.

 1
Author: stonemetal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-01 19:07:31