Framework Hunter D

     
 
Nivel de nerdiness
Recientemente me hice una prueba para medir que tan nerd soy. Aquí está el resultado:
I am nerdier than 84% of all people. Are you nerdier? Click here to find out!
De cualquier manera, siempre he pensado que no tiene nada que ver que tan nerd es uno con la capacidad para desarrollar buen software.
@ 10:53 AM EDT [ Comments [0] ]
 
 
 
 
PHP CMS vs Java CMS
Encontré la siguiente comparación entre CMSs desarrollados en Java y en PHP:
One question that keeps being asked about IndicThreads.com is that how come you are running on PHP when you are supposed to be a Java J2EE portal?
Honestly, we would have loved to be on Java and be able to experiment on the site using Java software and also keep generating in house articles about how we manage IndicThreads using X component and how we upgraded to Y server and so on.
However going with a Java Content Management System (CMS) wasn't the best option for us at the time we launched and I am not sure if it still is. While creating IndicThreads, we tried out and compared several CMSs from the Java as well as the PHP stable. Based on those learnings, below is an attempt to list some of the points that I think make PHP CMSs a better choice than the Java ones:
  • Evolved: The PHP CMSs seemed far more evolved. Mambo, PostNuke, Drupal all have huge communities and have been around for quite some time. They are also running on thousands of sites and so are very well tested.
  • Ease of Use: PHP CMSs are remarkably easy to use. In 15 minutes time, even a PHP illiterate person can get a site going . I doubt if that can be done with a Java CMS.
  • Hosting: Java hosting is not only costly but it is also a specialized segment. Not many hosting providers understand how Java J2EE web applications are deployed. Apache + PHP is so common that even the small hosting companies are good at it and can fix issues in no time.
  • Sleek: Some Java CMSs are 10 times bigger and more complex than the popular PHP ones. If you know HTML, you can more or less figure out how a PHP CMS is working. That also makes tweaking the CMS a fairly simple task.
  • Community: The community around Java is one of its strong points but PHP CMS also have huge community bases and so getting help from fellow users is simple.
  • Non Issues: Even if we presume that PHP cannot match Java in terms of scalability, object orientation.... it wouldn't matter much to most website creators. Having a good, simple, feature rich, easy to host and maintain site, are the things that matter most.
As of today, the PHP CMSs seem to have convincingly beaten the Java ones.
Maybe while the Java world was engaged in talking of high end, super techie stuff, with the words 'enterprise', 'transactions' and 'SOA 'embedded in every sentence, the PHP guys actually went out and created a lot of simple yet very useful software.

En mi opinión la comparación es bastante objetiva y actual. He visto que hay mucho software desarrollado en PHP y muchos de ellos de bastante calidad, incluso existen productos open source desarrollados con PHP que no tienen una contraparte en Java. ¿Cuales son las causas de esto?
Por ejemplo el portal de Hibernate usa coWiki y phpBB para su foro. Los productos alternos en java son confluence y jive (ambos con costo) respectivamente. Aunque ninguno de estos productos se puede considerar un CMS pero sirven para ilustrar el tema.
Me gustaría conocer más sobre PHP para contestar la pregunta anterior.
Esta es una respuesta parcial a mi pregunta:

The difference between the Java and PHP communities seems to be their focus. The Java community seems to have a great deal of focus on reusable APIs and backend software (Tomcat, Geronimo, Struts etc.) while the PHP community seems to be focused on more complete products (Mambo, Drupal, Gallery, Kplaylist). That?s why, when I need a complete product to avoid coding it myself I usually end up with PHP based solutions. This is probably already changing a bit inside the Java community and we are seeing more unpolished products like Magnolia, eXo and Liferay. As it matures I think they will be able to compete easily with PHP based solutions.

¿Existiran frameworks de alto nivel como Tapestry, Spring Framework e Hibernate para PHP?
¿Es el lenguaje (PHP) lo bastante expresivo para no necesitar frameworks como los de Java?

@ 11:13 AM EST [ Comments [10] ]
 
 
 
 
Presentacion acerca de IoC y AOP
Estoy elaborando una presentación de IoC y de AOP para mis compañeros de trabajo, sin embargo no se cuales deberían ser las traducciones adecuadas para algunos terminos. ¿Alguien sabrá de bibliografía en español sobre estos temas?
@ 03:31 PM EDT [ Comments [5] ]
 
 
 
 
Presentacion de Tapestry

Aquí encontrarán el material para una presentación técnica de Tapestry utilizado para dar una introducción a los nuevos integrantes del equipo.

Al principio este fue un trabajo de recopilación. Esta última versión contiene casi el doble de láminas que la primera.

Contiene información detallada de las "tuercas y tornillos" del framework así como ejemplos y algunos "tips". Espero que alguien más le sea de utilidad.

@ 11:23 AM EST [ Comments [1] ]
 
 
 
 
Ante la inminente llegada de java 1.5

C# como lenguaje de programación es más evolucionado que Java. No entiendo cual fue la razón para que Sun no evolucionara el lenguaje en todos estos años. Con la versión 1.5 la evolución por tanto tiempo esperada es una realidad. A continuación, un breve resumen de las nuevas características:

Generics. No estoy muy a favor, mi punto de vista puede ser controversial. En este momento no puedo visualizar todas las ventajas y el cambio de paradigma que puede implicar. Quizás en algunos meses cambie de parecer.

Enhanced for loops. Una muy buena idea copiada de C#. En lugar de escribir:

void cancelAll(Collection c) { 
    for (Iterator i = c.iterator(); i.hasNext(); ) {
        TimerTask tt = (TimerTask) i.next();
        tt.cancel();
    }
}
en 1.5 solo basta con:
void cancelAll(Collection c) {
    for (Object o : c)
        ((TimerTask)o).cancel();
}
Esto representa sola una nueva sintaxis y el bytecode generado debe ser equivalente.

Autoboxing/Unboxing. También copiada de C#. Permite la conversión de tipos escalares (int, double, float, etc.) en su contraparte en objeto (Integer, Double, Float, etc.) y viceversa. Todavía no está definido como será la conversión cuando el objeto es null. Una de las alternativas es que se convierta a 0, lo que puede ser fuente de errores.

Typesafe enums. Otra buena idea copiada de C, C++ y C#. Hasta este momento usamos org.apache.commons.lang.enum.Enum con la desventaja de que no hay un chequeo a tiempo de compilación.

Static imports. Es similar al import de paquetes con la diferencia de que importa los varaiables de clase (estáticas) en lugar de las clases de un paquete.

Metadata. A ser comentado en otra ocasión.

Liguero:

@ 01:21 PM EDT [ Comments [1] ]
 
 
 
 
Hibernate vs Cayenne
Recientemente en la lista de correos de usuarios de Tapestry alguien pregunto que framework de ORM era mejor preguntando en especifico entre Cayenne e Hibernate.
Probablemente mi respuesta fue muy ligera y sin compromiso. Ambos frameworks son bastantes buenos.
La respuesta depende de las necesidades y experiencias previas de cada uno. Hace algunos años estuve muy involucrado con WebObjects. Una de las partes mas poderosas de WO es EOF (Enterprise Objects Framework). Cayenne esta basado en EOF por lo que no me costo ningun problema en utilizarlo en una aplicacion web.
El problema principal de Cayenne es que no soporta optimistic locking. Adicionalemente no puede ser integrado con Session Beans ni utilizarse para implementar Entity Beans del tipo Bean Container.
Recientemente para un proyecto necesitabamos utilizar un ORM en lugar de Entity Beans y utilizando un Session Bean como Facade. Por tal razon escogimos Hibernate.
Despues de haber leido el manual mi expresion fue Wow!. Nunca habia visto tal cantidad de opciones de mapeo. Para su integracion utilizamos el plugin de xdoclet, de tal manero que no quitamos el trabajo de escribir los XMLs de mapeo. Sin embargo, tuve que leer el manual varias veces para comprender bien como utilizarlo. Ademas tuve que examinar el fuente del plugin de xdoclet ya que algunos tags no estan bien documentados y otros no estaban ni documentados. Ahora bien regresando a la pegunta original de cual es mejor ORM? Sin duda alguna Hibernate. Sin embargo la curva de aprendizaje fue algo prolongada y la de Cayenne practicamente no existió.
@ 02:27 PM EDT [ Comments [3] ]
 
 
 
 
Inicio
El objetivo principal de este weblog es la compartición de ideas y experiencias en el desarrollo de software del día a día.
La compañia para la que trabajo esta involucrada en la integracion de sistemas y generalmente utilizamos tecnologias J2EE y una serie de productos tanto comerciales como los llamados Open Source que muchas veces denominan incorrectamente como freeware.
Las herramientas que utilizamos son:
  • Ant
  • Junit
  • Cactus
  • Weblogic
  • Tapestry
  • Intellij Idea
  • Eclipse
  • Hibernate
  • Cayenne
  • XDoclet
  • WinCVS
  • Dreamweaver
  • Araix Merge
  • Tangosol Coherence

Y las tecnologias son:
  • Java
  • J2EE
  • Web services
@ 02:11 PM EDT [ Comments [799] ]
 
 
 
 
 
« October 2008
SunMonTueWedThuFriSat
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
       
Hoy

[RSS Newsfeed]

Valid XHTML or CSS?

[This is a Roller site]
Theme by Rowell Sotto.
 
© Framework Hunter D