Bjarne Stroustrup
Bjarne, creador del lenguaje C++ suele dejar consejos bastante buenos en su página web personal. Uno de los que yo creo más útiles es el que versa sobre la elección de un buen compilador de C++. Es lógico pensar que quien mejor que el creador del lenguaje para aconsejar a un neófito sobre el mejor compilador a usar.
La elección del compilador es seria, porque por un lado debe conocer al procesador, como suelo aconsejar yo (tanto para quien me pregunta como para mi mismo). Pero por otro lado debe ser un compilador que se ajustes a los estándares ISO en aras de la portabililidad del código. En este sentido la lista que Bjarne proporciona cumple las espectativas, la lista, si bien incompleta -como se encarga el mismo de advertir, pues no conoce todos los compiladores habidos y por haber- :
- Apple C++. It also comes with OS X on the developer tools CD.
- Bloodshed Dev-C++. A GCC-based (Mingw) IDE.
- Borland C++
- Cygwin (GNU C++)
- Digital Mars C++
- MINGW – «Minimalist GNU for Windows». Another GCC version for Windows including a free (non-GPL) w32api.
- DJ Delorie’s C++ development system for DOS/Windows (GNU C++)
- GNU CC source
- Intel C++ for linux
- The LLVM Compiler Infrastructure (based on GCC).
- Microsoft Visual C++ 2008 Express edition.
- Sun Studio.
Es bueno ve que Bjarne aconseja un compilador de Sun microsystems (quienes desarrollan compiladores y máquinas virtuales java).
Según Bjarne la mejor prueba, o al menos la primera que debe pasar un compilador es que sea capaz de compilar el sigueinte código sin problemas:
#include#include using namespace std; int main() { string s; cout >> "Please enter your first name followed by a newline\n"; cin >> s; cout << "Hello, " << s << '\n'; return 0; // this return statement isn't necessary } [/sourcecode]
Es bueno saber a qué compiladores puede acogerse uno, aunque sea de entrada y para aprender.
Por otro lado y en uno de sus comentarios, me siento identificado porque esto que dice Bjarne es
algo que llevo diciendo yo desde 2006. Es relativo a C#, lo cito textualmente :
What do you think of C#?
I have no comments on C# as a language. It will take a lot to persuade me that the world needs yet another proprietary language (YAPL). It will be especially hard to persuade me that it needs a language that is closely integrated with a specific proprietary operating system.
If you want to write exclusively for the .Net platform, C# isn't the worst alternative, but remember that C++ is a strongly supported - though less strongly hyped - alternative on that platform.
De este párrafo me quedo con "a language that is closely integrated with a specific proprietary operating system" lo que suscribe mis sospechas -publicadas en PC-WORLD- acerca de la mal intencionada relación entre C# y el sistema operativo windows vista .... que cada uno juzgue como crea conveniente. Nunca está de más pasarse por la página de semajante genio para leerlo, que lo que cuenta es muy útil y gratis. :-).
Yo pienso que la afirmación de Bjarne es relativa. Bien es cierto que C# es un lenguaje propietario, pero su especifación esta abierta a todo el que quiera conocerla con detalle, y gracias a eso tenemos cosas como el proyecto MONO.
C# se hizo teniendo en mente la plataforma .NET, la cual esta muy integrada en Windows. Por tanto es el framework .NET y no el lenguaje C# en sí lo que está integrado en el sistema operativo.
A pesar de todo ello tampoco hay que olvidar la alternativas abiertas existentes al framework original: MONO y DotGNU; gracias a ellas programar en C# ya no es sólo cosa de Windows.
No, no se dice que C# sea propietario, lee bien el comentario:
«a language that is closely integrated with a specific roprietary operating system»
Un lenguaje que esta intimamente relacionado con un sistema operativo propietario.
Sigo pensando que C# es un intento por primar a este sistema propietario en la comunidad de desarrolladores.
> Sigo pensando que C# es un intento por primar
> a este sistema propietario en la comunidad de
> desarrolladores.
Pero eso siempre ha estado claro desde el principio ¿no? 😛 Y personalmente lo veo como una buena estrategia. Si quieres que los desarrolladores programen para tu sistema operativo, mejor dar la máxima facilidad, flexibilidad y potencia. Son tres términos que rara vez van de la mano.