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?
Respuesta
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.
En realidad, tampoco funciona "de forma nativa" en versiones de 32 bits de Windows; tales ejecutables solo pueden ejecutarse en NTVDM. Pero +1 –
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. –
Jaja, esa es en realidad la primera vez que lo escucho llamar "caja de castigo", +1 por hacer mi día. – paxdiablo
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.
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.
Esto parece responde la pregunta opuesta ....? –
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. –
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 Sí, estoy de acuerdo con usted – eee
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
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í).
Ja, ja, Enchilada. Es Embarcadero :-) –
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 –
+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. –
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.
¿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). –
@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. –
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
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.
- 1. ¿Qué hay de malo con este uso de offsetof?
- 2. ¿Qué hay de malo con mi algoritmo?
- 3. ¿Qué hay de malo en mi uso del buscador de la biblioteca estándar de C++?
- 4. ¿Qué hay de malo con este clon()?
- 5. ¿Qué hay de malo con ToLowerInvariant()?
- 6. android ¿qué hay de malo con openFileOutput?
- 7. ¿Qué hay de malo con el uso de una declaración etiquetada en el código global?
- 8. ¿Qué hay de malo con el uso de funciones en línea?
- 9. ¿Qué hay de malo con el uso de un marco que tiene muchas dependencias?
- 10. ¿Qué hay de malo con el uso de ThreadStatic en lugar de un contenedor DI?
- 11. ¿Qué hay de malo con el uso de 'javascript: history.go (-1)'?
- 12. ¿Qué hay de malo con esta consulta de MySQL?
- 13. ¿Qué hay de malo en OverlappingInstances?
- 14. Ejemplos o tutoriales sobre el uso de libjpeg-turbo TurboJPEG
- 15. ¿Hay alguna manera de obtener versiones antiguas del compilador Borland's Turbo C++ de forma gratuita?
- 16. ¿Qué hay de malo en este código
- 17. ¿Qué hay de malo con esta configuración de enrutamiento Global.asax?
- 18. ¿Qué hay de malo con esta simple metaclase de python?
- 19. ¿Qué hay de malo con mi coffeescript en Stripe?
- 20. ¿Qué hay de malo con mi sintaxis SQL aquí?
- 21. ¿Qué hay de malo en usar Thread.Abort()
- 22. Android ¿Qué hay de malo con este parche 9?
- 23. ¿Qué hay de malo con el uso de una matriz primitiva como un parámetro de tipo real en Java 5?
- 24. ¿Qué hay de malo en el mapeo bidireccional?
- 25. ¿El uso excesivo de DataTable es malo?
- 26. ¿Qué hay de malo en este uso de la ubicación nueva []? do
- 27. ¿Qué hay de malo en pasar el iterador de C++ por referencia?
- 28. ¿Qué hay de malo con este programa C que utiliza la palabra clave extern?
- 29. decodeURIComponent vs unescape, ¿qué hay de malo en unescape?
- 30. ¿Cómo compilar OpenCV con libjpeg-turbo?
Porque las computadoras ya no tienen un "botón turbo". – rook
Es lo que usan para enseñar en las universidades indias, junto con algunos libros de referencia realmente horribles ("Let Us C", etc.). –
@Paul R, jaja! Lo bueno es que ahora tienen SO en lugar de esos libros. –