2010-10-13 12 views
10

Siempre encuentro que algunas personas (la mayoría de la India) usan el turbo C. No encuentro ningún motivo para usar un compilador tan obsoleto ... Pero no sé qué razones debo dar para tratar de decirles que usa el compilador moderno (gcc, msvc, ...).¿Qué hay de malo con el uso del turbo C?

+12

Porque las computadoras ya no tienen un "botón turbo". – rook

+6

Es lo que usan para enseñar en las universidades indias, junto con algunos libros de referencia realmente horribles ("Let Us C", etc.). –

+1

@Paul R, jaja! Lo bueno es que ahora tienen SO en lugar de esos libros. –

Respuesta

20

Turbo C es un producto solo para DOS. Esto significa que ya no se ejecuta "de forma nativa" en las versiones de 64 bits de Windows, y debe ejecutarse dentro del cuadro de pena de compatibilidad de XP.

+3

En realidad, tampoco funciona "de forma nativa" en versiones de 32 bits de Windows; tales ejecutables solo pueden ejecutarse en NTVDM. Pero +1 –

+0

Es por eso que pongo "nativamente" entre comillas. Puede ejecutarlo en Windows de 32 bits sin pensar demasiado en ello, pero no así en 64 bits. –

+10

Jaja, esa es en realidad la primera vez que lo escucho llamar "caja de castigo", +1 por hacer mi día. – paxdiablo

1

La razón más importante por la que debe usar un compilador C decente es el rendimiento. Como GCC optimiza el código agresivamente, los programas compilados tendrían el rendimiento decenas de porcentajes más altos que antes.

0

Turbo C es mucho más fácil de configurar &, se ejecuta en las máquinas antiguas de DOS. También es compacto en tamaño. Supongo que ese es el motivo.

Sin embargo, toma una pequeña ventaja de los procesadores modernos.

+7

Esto parece responde la pregunta opuesta ....? –

+3

Los compiladores más antiguos y simples que no optimizan de manera agresiva pueden ser instructivos para un curso de construcción de compiladores donde el objetivo es obtener resultados que funcionen, pero no necesariamente de manera eficiente. Puede ver la salida de Turbo C y aprender cómo se asignan las variables, se construyen los bucles, etc. –

13

Si bien hay muchas razones para no usar Turbo C (es antiguo, es anterior a las normas, genera código de 16 bits, etc.), no es válido para responder a preguntas como "¿Cómo hago X en Turbo C? " con "Solo use GCC". Eso sería como alguien preguntando "¿Cómo hago X con mi Toyota 1992?" y tu diciendo "Solo compra un auto nuevo".

Las personas que usan Turbo C probablemente lo estén haciendo porque es un requisito, no porque no conozcan nada mejor. Lo más probable es que sea para una clase de programación en la que las tareas que entreguen deben funcionar en ese compilador. Cuando estaba clasificando las asignaciones de C++, no importaba qué compilador utilizaran los alumnos, pero tenían que compilar y ejecutar correctamente con el compilador que estaba utilizando.

+1

+1 Sí, estoy de acuerdo con usted – eee

+2

En realidad, le daría una respuesta doble. El primer consejo sería una sugerencia para pasar a un mejor compilador, si es posible (con una explicación de por qué es una buena idea). El segundo sería una respuesta real en caso de que no pudieran moverse. Hay muchos precedentes en SO para responder preguntas como "¿Cómo escribo un sistema operativo en COBOL?" con una respuesta como "¡No seas idiota!" (pero con más tacto, por supuesto). – paxdiablo

7

Yo diría que el soporte y el cumplimiento de las normas serían los dos grandes problemas para mí.

Buena suerte, incluso encontrar Borland/Inprise/Borland/Codegear/Embarcadero, o como se llaman hoy en día. Aún más felicitaciones si logras que admitan que estos productos existen (aunque en algún momento los obtuve del museo Borland en BDN).

Rendimiento puede ser importante, pero la gran mayoría de las aplicaciones que escribo pasar el 90% de su tiempo de espera para el usuario (no hago la secuenciación del genoma, análisis SETI o el plegamiento de proteínas - el mercado es bastante pequeño).

Honestamente, si tengo la opción entre dos productos gratuitos (donde obviamente el dinero no es un problema), siempre seleccionaré el mejor (que sería GCC para mí).

+2

Ja, ja, Enchilada. Es Embarcadero :-) –

+0

Me divertí, pero en serio, todavía están allí e incluso puedes descargar Turbo C de su página de inicio: http://edn.embarcadero.com/article/20841 –

+0

+1 para el cumplimiento de las normas. También agregaría un argumento de que Turbo C es muy específico en estos días, y si quiere obtener soporte de sus pepeadores, es probable que Turbo C no sea el camino a seguir. Algo normal como GCC o alguna abominación de Microsoft. –

3

Turbo C genera código X86 de 16 bits. Es genial cuando se está desarrollando en un procesador x86 de 16 bits.

He estado allí. Hecho eso.

Las razones pragmáticas para cambiar son: gcc está en desarrollo, con errores de corrección. Se implementa en sistemas operativos modernos y chips modernos de forma nativa.

+0

¿Alguien desarrolla nuevos productos hoy en día con arquitectura x86 de 16 bits? Parece que el micro mundo de gama baja está dominado por MCU de microchip, Atmel, Cypress, Freescale y TI, todos los cuales utilizan sus propios núcleos (notablemente diferentes). –

+0

@Nick T, probablemente no, pero me puedo imaginar piratear los viejos. Tal vez incluso cosas como poner tablas enteras en FPGA, incluyendo un 8086 "suave", para poder ejecutar cosas heredadas. –

+3

Algunos productos integrados basados ​​en PC todavía están disponibles, y a veces es necesario actualizar el código. Reemplazar una PC incrustada que tiene un hardware personalizado conectado no es tan fácil como reemplazar una PC de escritorio. – supercat

2

También fue mi primer compilador (hace 4 años), aunque cambié a gcc lo suficientemente pronto cuando me enteré de que no seguía los últimos estándares y confiaba en funciones que se consideraban obsoletas o malas prácticas. Estas fueron suficientes razones para que yo haga el cambio.

Cuestiones relacionadas