Ars Technica está publicando una interesante serie de artículos (parte 1, parte 2 y parte 3, la cuarta y última se publicará próximamente) sobre las diferencias para un programador a la hora de programar en Windows o en Mac OS X. Para cualquiera que programe en alguno de estos entornos son unos artículos muy recomendables.
Antes de nada advertir que no son artículos de un fanboy diciendo lo guay que es Apple y lo malo que es Microsoft. Son artículos de un usuario de Windows, al cual le gusta Windows, le gusta programar para Windows y le gustaría seguir haciéndolo, pero que reconoce que es mucho más agradable, desde el punto de vista del programador, programar en Mac. Y la culpa de todo esto, según él, es de Microsoft, por no atreverse a romper con el pasado tal y como ha hecho Apple en varias ocasiones
So Windows is just a disaster to write programs for. It’s miserable. It’s quite nice if you want to use the same techniques you learned 15 years ago and not bother to change how you do, well, anything, but for anyone else it’s all pain. I thought before that Microsoft cared about people like me. But it doesn’t. And it makes programming on Windows painful. Microsoft is great at backwards compatibility—you can take really old programs and compile and run them on a brand new Windows—but terrible at design and terrible at providing a good experience.
Although Obj-C is much more dynamic than the languages typically used on other platforms, at the end of the day you can generally do something equivalent, just with a bit more typing. Equally, there are lots of GUI builders out there. And the MVC design pattern has become extremely widespread for both Web and GUI development alike. So what’s the big deal with Cocoa and Mac OS X?
There are several reasons that Apple’s rendition of all this is still superior. One, the entire system is put together pretty well. As simple as that: it’s a good concept, well executed. Application Kit has a clear overarching design philosophy, and the components that make up Cocoa are both capable and flexible. Apple’s position is, sensibly, that developers should be spending time on their applications, not dealing with the low-level minutiae of the GUI toolkit.
Llama especial atención la conclusión de que Apple tiene la superioridad en aspectos de desarrollo debido a que el autor cree que a diferencia de Microsoft, Apple si que usa las APIs que desarrolla en sus propios productos
Apple, on the other hand, does use its APIs. So Apple has a much better idea of what works well, and a much better idea of what the system ought to do and how it ought to work. Microsoft provides APIs to third parties and hopes that they’ll be OK; Apple provides APIs to itself, and when it’s certain that they work well, it lets third parties loose on them. If something’s good enough for Apple, it’s probably good enough for everyone else. There is some irony in this; in software development this concept of using your own software is known as «eating your own dogfood,» and it’s an idea that was, at one time, pushed strongly by Microsoft.
Aún falta la cuarta parte de la historia, donde el autor dirá, según lo que él piensa, los pasos que debería seguir Microsoft para corregir esta situación en la que ellos mismos se han metido con Windows.