QuickSearch [abandonado]

Proyecto abandonado que pretendía ser una alternativa rápida a las bases de datos para situaciones sencillas
Empecé el desarrollo de QuickSearch (QS) por la misma razón por la que llevé a cabo el resto de mi actividad pública: auto-promoción de mis habilidades (de programación). Básicamente, esperaba que mi esfuerzo por adelantado fuese eventualmente compensado por los beneficios asociados con que clientes potenciales supiesen fácilmente de aspectos relevantes acerca de mí. También y teniendo en cuenta el carácter de dominio público de mi actividad online, un objetivo secundario era hacer una contribución desinteresada que alguien más pudiese eventualmente disfrutar.

Las motivaciones específicas para empezar este desarrollo fueron mostrar mi:
  • flexibilidad en el frente del entorno/lenguaje y buenas habilidades de aprendizaje. Hay que tener presente que usé C puro para este desarrollo, un lenguaje con el que apenas tenía experiencia y que es notablemente menos amigable que la mayor parte de las alternativas modernas.
  • habilidad para desarrollar programas informáticos muy eficientes, en la medida que su principal característica era ser apreciablemente más rápido que sistemas de bases de datos estándar, más complejos.
  • experiencia con sistemas (complejos) de cero. Estaba desarrollando todo el algoritmo completamente de cero e, incluso en su versión más simple e ignorando mis carencias en la programación en C, este desarrollo era muy complejo.
  • actitud de que el lenguaje de programación no importa demasiado. Desarrollé rápidamente un conjunto de pequeños códigos en diferentes lenguajes, los adaptadores, para proporcionar un interfaz amigable del usuario entre cada uno de esos lenguajes y el ejecutable de QS. Esta era, sin duda y con mucha diferencia, la parte menos importante del desarrollo.

Tras acabar lo que consideré que era una versión preliminar suficientemente buena, lancé QuickSearch 0.5. Aún estaba muy restringido e incluso tenía bastantes errores, pero las principales características que había planeado ya estaban presentes. Era muy rápido, portátil y amigable del usuario. Incluso creé una versión restringida en PHP que reemplazó la mayor parte de las connexiones a la BBDD (MySQL) de customsolvers.com durante algo así como un año.

Su código fuente principal no era público, pero cualquier persona interesada debería haber tenido suficiente con: los ejecutables (para Linux y Windows), una parte relevante de su código fuente en C que incluía algunos métodos accesorios (mejor: mostraba cómo adapté mi experiencia en lenguajes modernos a C) y todos los códigos de los adaptadores (es decir: un algoritmo bastante sencillo que desarrollé y luego convertí a otros varios lenguajes más o menos sobre la marcha).

El retorno de esta inversión de esfuerzo fue similar a lo que he conseguido con la mayor parte de mi otra actividad pública: inexistente o incluso negativo. También aquí y tras haber trabajado de forma bastante dura al comienzo, el desarrollo estuvo siendo retrasado de manera sistemática hasta que, finalmente, fue cancelado. Fue algo como lo siguiente: 1) esfuerzo relevante a mi coste exclusivo; 2) poco o ningún interés, generalmente centrado en detalles irrelevantes y/o malentendidos; 3) la falta de apoyo, compresión, beneficios, etc. hace las extensiones/mejoras cada vez más difíciles; 4) este abandono práctico refuerza las reacciones tendentes a malinterpretar/negativas hacia mí; 5) lo dejo (oficialmente) por prácticamente cualquier razón (el ejecutable tenía problemas con la última versión de Ubuntu).

Algunas muestras de las antedichas actitudes tendentes-a-malentendidos/contra-mi-intención:
  • ¡¡Esperar una aplicación completamente funcional y lista para ser usada!! ¡¡Gratis!! ¡¡A mi costa!!
    Mi negocio no es vender (o regalar) programas informáticos, sino desarrollarlos. Se supone que toda mi actividad pública debe ser entendida como una auto-promoción y desde un punto de vista del código/programación, afrontar problemas, características destacables. Idealmente, la intríseca falta de recursos y el esfuerzo no remunerado deberían ser también tenidos en cuenta.
  • ¡¡Preocuparse principalmente por aspectos irrelevantes como los adaptadores de QS!! ¡¿Por qué?! ¡¿Porque ves muchos repositorios con etiquetas que se refieren a diferentes lenguajes de programación y piensas que eso es relevante independientemente de cualquier otra cosa?!
    Los adaptadores no eran más que el resultado de un conjunto de conversiones requiriendo muy poco esfuerzo que llevé a cabo más o menos sobre la marcha. También creé el simple código original muy rápidamente. ¡La única motivación de este (mini-)desarrollo era precisamente demostrar su propia baja importancia! (¿Piensas que hay alguna dificultad real en usar lenguajes de programación modernos para un desarrollador experimentado como yo? ¡Mira lo fácilmente que puedo aprender/programar en cualquiera de ellos!).
  • ¡¡No saber/preocuparse por la única cosa que realmente importa aquí: el código C (+ rápida adaptación a él desde mi experiencia con entornos modernos)!!
    Sólo con que una persona con conocimiento real hubiese perdido algo de tiempo en el código C público, extraído ideas relevantes acerca de mi actitud/habilidades y usado ese entendimiento para tomar una decisión coherente (querer trabajar conmigo o no) habría sido un resultado excelente.

En resumen: decidí acabar el proyecto de QuickSearch porque claramente no era el medio para conseguir el único objetivo que me importa. Para saber más acerca de yo habiendo intentado, dado, esperado, entendido, etc., no habiendo obtenido nada en compensación (aparte de muchísimo conocimiento/experiencia de alta calidad, aunque no precisamente gracias a las actitudes sensatas de otros) y haberme rendido, echa un vistazo a Final 2.0.