Obie F. dice en The Rails Way que ellos siempre usan edge rails
en
sus proyectos. Yo no lo hago pero creo que sà me voy a pasar a edge
porque
me parece que el coste de mantener las aplicaciones actualizadas a la
última
versión de rails es menor asÃ.
¿Cuántos de vosotros usais edge en los proyectos?
Yo suelo empezar con edge, si durante lo que dura el desarrollo sale
versión
estable, actualizo a ella(no suele haber mucho problema) y ahà me quedo
hasta que se acabe el proyecto (o se lance la primera versión).
Además de esta manera si durante el desarrollo aparece alguna
funcionalidad
especialmente útil (como ahora la internacionalización por ejemplo) se
puede
intentar actualizar al nuevo edge sin que pete casi nada.
Pues nosotros intentamos trabajar siempre en la última versión estable
(Ya hemos pasado a 2.1.1)
Trabajar con la edge lo hemos hecho (Antes de que saliera la 2.0),
pero actualmente y con el tamaño del proyecto preferimos currar sobre
la última estable e ir actualizando versión a versión (pasamos de 2.0
a 2.0.1, 2.0.2, 2.1 y ahora 2.1.1).
Y ya que hablamos de Edge… que os parece el tema del thread safe de
la 2.2? Podremos por fin dejar de tener 50 mongrels + nginx/apache +
HaProxy?? Servirá con tener 2 o 3 mongrels y listos? Que opinais?
Alguien lo ha probado?
Y ya que hablamos de Edge… que os parece el tema del thread safe de la
2.2? Podremos por fin dejar de tener 50 mongrels + nginx/apache + HaProxy??
Servirá con tener 2 o 3 mongrels y listos? Que opinais? Alguien lo ha
probado?
Este tema hay que seguirlo de cerca. El que ha hecho AR thread-safe es
un tipo del equipo de JRuby y es que ellos son los primeros que estan
listos para aprovecharlo.
Estuve en la charla de Thomas E. en Berlin y dijo que la diferencia
de coste de lanzar thread/proceso no la considera significativa, pero
si que lo es el consumo de memoria. Dijo que una aplicacion hello
world en glassfish, 1000 peticiones, 10 usuarios concurrentes,
consumia del orden de 200 MB actualmente, y rondando los 50 MB con la
2.2.
Yo creo que en general JRuby se percibe como algo un poco “foraneo”,
pero estan haciendo meritos la verdad que si.
Lo que no tengo clara aun es la implicacion para las aplicaciones
Rails en termindos generales. Si uno programa multi-proceso esta la
mar de tranquilo, si uno programa en multi-thread entonces tu propia
aplicacion ha de ser thread-safe. No se si JRuby sigue emulando la
separacion de interpretes de algun modo, pero si nos vamos a
thread-safe eso eventualmente cambiara. Alguien se lo ha mirado con
mas detalle?
Por cierto que hay una entrada de blog reciente de Charles quejandose
un poco de las ampollas que ve que levanta una “J” en el nombre: http://blog.headius.com/2008/09/elephant.html.
Obie F. dice en The Rails Way que ellos siempre usan edge rails en
sus proyectos. Yo no lo hago pero creo que sà me voy a pasar a edge porque
me parece que el coste de mantener las aplicaciones actualizadas a la última
versión de rails es menor asÃ.
¿Cuántos de vosotros usais edge en los proyectos?
Regresando al libro de Obie “The Rails Way” además se comenta que edge
cuenta un buen grado de estabilidad y realiza la observación que decidir
por
cuál revisión es más arte que ciencia y que depende del proyecto que
estamos desarrollando; comienza con la última revisión disponible y
actualiza siempre y cuando lo necesite.
Actualmente utilizo edge en mis proyectos. IMHO tiene más pros, si
tienes
una revisión mala, siempre tienes otra a tu disposición, ó bien puedes
ir a
la comunidad principal [1] y con suerte convertirnos de usuarios a
contribuidores.
Yo suelo empezar con edge, si durante lo que dura el desarrollo sale
versión estable, actualizo a ella(no suele haber mucho problema) y ahà me
quedo hasta que se acabe el proyecto (o se lance la primera versión).
O sea que crees que mejor usar edge durante el desarrollo pero quedarse
en
la última estable una vez se sale a producción?
Pero un proyecto no muere cuando se sale a producción… habrá que irlo
manteniendo porque si no pasar de rails 2 a rails 5 años más tarde puede
ser
bastante doloroso, no? No crees que es mejor mantenerse siempre en la
última? O quizá prefieres estar a la última pero actualizar cada vez que
sale otra estable…
Además de esta manera si durante el desarrollo aparece alguna funcionalidad
especialmente útil (como ahora la internacionalización por ejemplo) se puede
intentar actualizar al nuevo edge sin que pete casi nada.
Sobre todo lo importante es tenerlo todo bien cubierto de tests para
saber
si algo peta con el nuevo edge…
El día 6 de septiembre de 2008 21:52, Jaime I. [email protected]
escribió:> O quizá prefieres estar a la última pero actualizar cada vez que
sale otra estable…
Yo soy de esa opinión: si un proyecto sigue abierto creo que merece la
pena esforzarse por, como mínimo, mantener su compatibilidad con la
última versión estable. Pero claro, eso puede suponer una inversión y
la última decisión no siempre está en nuestras manos
Durante el desarrollo suelo usar la última versión estable, a no ser
que edge incorpore alguna mejora que me corra prisa aprovechar.
Concluyo lo mismo. Ahora bien si el proyecto es a un largo plazo,
digamos 8
meses ó un año valdrÃa la pena esforzarse con Edge y estar a la
expectativa
del útimo release estable para la puesta en producción de nuestro
proyecto,
pero como comentaba Raúl Murciano siempre y cuando tengamos la decisión
en
nuestras manos.
Pero si el desarollos es corto, hablo de 4 a 6 semanas por ejemplo,
vale realmente la pena trabajar con edge y despues usar la última
estable? Puede pasar que durante esas semanas no haya salido ninguna
version estable i tengamos nuestra aplicación en edge usando nuevas
funcionalidades de Rails. Entonces que version estable se utiliza?
Yo por norma general utilizo la última estable, y sà durante esas
semanas de desarrollo aparece una estable actualizo y punto.
Aunque Rails tiene una colección de tests bastante extensa puede que
haya implemetaciones que cambien. Sino, se llamarÃa estable no?
Eso si, yo creo que es importante que nuestro proyecto si que tenga
una buena colección de tests porque asà actualizar entre versiones es
menos doloroso.
del útimo release estable para la puesta en producción de nuestro proyecto,
pero como comentaba Raúl Murciano siempre y cuando tengamos la decisión en
nuestras manos.
En el caso de Rails puede ser interesante usar edge porque es estable,
pero en el desarrollo de software esto no es siempre verdad. No me
refiero unicamente a si el código es estable o no, si no a la API en
si. Ejemplos? Merb y Datamapper. Estar en edge en esos proyectos puede
ser un gran problema.
Pero si el desarollos es corto, hablo de 4 a 6 semanas por ejemplo, vale
realmente la pena trabajar con edge y despues usar la última estable?
Puede pasar que durante esas semanas no haya salido ninguna version estable
i tengamos nuestra aplicación en edge usando nuevas funcionalidades de
Rails. Entonces que version estable se utiliza?
Yo por norma general utilizo la última estable, y sà durante esas semanas
de desarrollo aparece una estable actualizo y punto.
Aunque Rails tiene una colección de tests bastante extensa puede que haya
implemetaciones que cambien. Sino, se llamarÃa estable no?
En realidad las versiones estables de Rails difieren muy poco en esencia
respecto a edge, casi se podrÃa decir que cada x tiempo se pone una
etiqueta
a edge para que vaya habiendo puntos de referencia, pero poco más. Es
decir,
edge es generalmente igual de ‘estable’ que cualquier release con tag
propia.
Gracias Juanjo por el link. Edge puede llegar a ser más estable que
incluso
la última versión liberada, no lo digo yo sino DHH :
" So please do take control of your own release schedule. It’s perfectly
fine to start off with a released version, but don’t dream up dragons
and
demons lurking in a newer version of edge. Most of the time, edge is of
considerably higher quality than the last released version because we’ve
been committing loads of bug fixes since then. Take advantage of that
when
you can. "
En el caso de Rails puede ser interesante usar edge porque es estable, pero
en el desarrollo de software esto no es siempre verdad. No me refiero
unicamente a si el código es estable o no, si no a la API en si. Ejemplos?
Esta claro. Siempre que haya compatibilidad en la API, y el software
disponga de tests, la mejor opción es usar el último snapshot que pase
los
tests.