Ver Mensaje Individual
  #3  
Antiguo 18-03-2009
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Reputación: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Es muy bueno. Pero empieza por el lado equivocado. Ultima generacion para que? Que mercado? Que tipo de aplicaciones?

Ok, pero para no ser tan pedante aqui voy:

No olvidar lo que esta fuera del PC!

Ahora me he dado cuenta lo MUY importante que es tener buen equipo externo al PC como tal:

- Silla ergonomica! (actualmente tengo una imitacion de una Aereon)
- Teclado ergonomico: El de MS es el mejor! EN SERIO!
- Monitor tan grande o tantos como se puedan
- Hacer ejercicio... en eso si estoy quedaito

Tener un simple esquema de desarrollo

Esto es lo que mas me ha impactado. Basicamente mi esquema es:

- Hago unit-testing (menos de lo que deberia, pero lo hago)
- Uso subversion & hosteo el repositorio en internet (gratis & bueno: http://xp-dev.com/)
- Una herramienta de manejo de bugs, tareas, etc...(trac es bueno, ahi otros. Uso FogBugz)
- Un automatizador (scripts al menos, pero estoy contemplando comprar FinalBuilder http://www.finalbuilder.com/. Es la berraquera total.
- Buen editor de texto! Para windows uso Context y en Mac TextMate. Lo importante es tener un editor que sea orientado a desarrollo. Es raro, pero me parece la herramienta mas util de todo lo que se tiene por ahi (luego del subversion).

Y eso es todo. Aun me falta pero lo anterior es facil de asimilar.

Hacer mas con menos

Para equipos pequeños de desarrollo/desarrolladores individuales es importante disminuir la carga de cosas que hay que hacer. Escribir codigo apenas cuenta el 10-20% del tiempo. Luego reducir el debugging & luego todo lo demas (manejar el correo, pendejadas de marketing, comunicaciones, vainas legales & comerciales, etc...). Trato ultimamente de ir eliminando o reduciendo las actividades extras que me distraen de mi trabajo actual. Un sitio que me ha sido util en este campo: http://freelanceswitch.com/

Disminuir el numero de herramientas

Antes, instalaba de todo, probaba de todo, iba con lo "ultimo". Ahora no. Ahora trato de reducir mi conjunto de herramientas. Me es particularmente dificil porque hago desarrollos trasversales a varios lenguajes, bd, & cosas asi (me especializo en integracion de sistemas!).

Y los jugetes son...

Por ultimo, los juegetes, a ver si por fin voy al grano:

- Siempre he manejado versiones de "servidor" o "estacion de trabajo" para windows: NT 4, Windows 2000/2003/20008. Por derecha son mas estables, rapidos, eficientes y todo eso. De forma sutil aqui & alla pero para mi es lo suficiente notable.

- Un virtualizador de OS es crucial: Actualmente VirtualBox. Prefiero VMWARE pero estoy corto de $$$

Esto es MUY importante por el asunto de testeo de aplicaciones, ademas en una maquina virtual esta todas las herramientas de desarrollo y eso significa que puedo copiar mi entorno a otro equipo sin reinstalar ni relicenciar ni nada y ya estoy en marcha. Me ha salvado mas de una vez cuando un virus, el disco se daña o simplemente me dio por reinstalar el windows.

- Como anecdota rara, uso VS 2008, Komodo Edit (pa' Python) & Delphi. Pero la verdad estoy buscando solo seguir con Delphi & Python. La razon? Estoy convencido que .NET no es una plataforma productiva para lo que busco (aplicaciones agiles, faciles de distribuir, rapido desarollo, etc...). Mientras en muchos aspectos .NET le da vueltas a Delphi, y sinceramente me parece mas estable el VS 2008, no veo que exista opcion en mi caso: Estoy buscando un mercado que es el tipico de lo que encuentras en www.download.com y como veran, lo que esta ahi es puro & duro C++/Delphi.

Lo raro de la anecdota es que se puede decir que soy mucho mejor en .NET - y pienso seguir siendolo -& mas novato en Delphi. Lo curioso es que siendo novato en Delphi soy mas productivo!

- Un Mac. Maldita sea, el fanboy se me infecto. Estoy realmente asombrado con el OS X - que tiene un monton de fastidiosas cosas como que los atajos del teclado son otros & el que no siempre se maximizan las ventanas & esas cosas - pero es muy estable, el soporte *nix esta bueno para cuando lo necesito.

Pero principalmente, y donde falla miserablemente el linux - sorry! - es que hay aplicaciones en Mac que realmente ahorran pasta, o son innovadoras de verdad.

Le he sacado buen jugo al Pages para cosas de publicidad, cartas, facturas & eso, y en especial el Keynote. Estoy convencido que el Keynote me hizo ganar el concurso. Es tremendo, en serio. Y el GarageBand que cosa!. Y cosas aqui y alla. Es como manejar linux*, solo que chevere .

* Digo, en caso de estacion de trabajo si es notable la diferencia. En despliegue o servidor, un linux. O solaris, que me guta mas. Pero por nada realmente diferenciador, solo me parece.

----
Por otro lado estoy desarrollando para el iPhone, asi que mi caso era de usar o usar mac.

Pero de poderse, definitivamente recomiendo un mac. De no poderse, una estacion de trabajo SUN- tremenda calidad-. O una dell... pero clon naaaaaaaa

- En el marco web recomiendo al 100% python + django. Es tremendamente productivo, y el soporte de plugins & librerias es tremendo.

Me gusta en librerias de JS Mootools.

- No estoy convencido ni con Flex ni Silverlight ni nada de eso. Aun estan muy crudos en *mi* opinion. Ademas, segun como se puede deducir en www.download.com & por reviews y todo eso si uno va a hacer una app *no web* entonces es mejor hacerla nativa con lo que sea haga en el OS que ataques.

Es muy tentandor tratar de darle la vuelta (ej: Java) pero vez tras vez, tras vez se ha probado que es un error - excepto en aplicaciones de IT o de distribucion limita o vertical-. Si vas a atacar windows, usa herramientas windows. Si Mac, usa Coccoa. Si Linux, usa Gnome o KDE. Si web, usa Web!

Pero como plataforma para hacer *complementos* me parece muy bueno. Pero no para hacer aplicaciones en terminos generales.

Y con respecto a moviles? iPhone. Es una estupidez en estos momento otra cosa.


Ajemm.... y donde carajos esta la *ultima generacion*?

Pero de lo que preguntas no hay una verdadera *ultima* generacion. Todo eso es la vieja generacion, si mucho tecnologia de hace mas de 2 años.

Donde esta la ultima?

- Multi-core? Vean Erlang.
- Multi-touch?
- Escalabilidad instantania, cloud computing? Google AppEngine es lo mas accesible hoy por hoy, en mi opinion

Verdad... donde esta la ultima?
----
PD:
Que conste que es mi opinion y el unico que -a veces- puede disentir con *exito* conmigo es mi mismo
__________________
El malabarista.
Responder Con Cita