La forma del código tasa de bitcoin en la India

Las fortalezas de Python, a través de R, son una base mucho mayor de desarrolladores y soporte de lenguaje para escribir programas grandes (R es realmente un lenguaje de scripting). Sí, Python tiene un ecosistema de paquetes que admite todo el espectro de dominios de aplicaciones, esto no es relevante para analizar una invasión exitosa del nicho de mercado de R (pero es relevante para atraer a nuevos desarrolladores que aún se deciden).

Sí, hoy R tiene casi todos los mejores paquetes de análisis estadístico y una gran parte de las cosas de vanguardia. Pero los paquetes se pueden volver a implementar (el código C se puede copiar y pegar, el R código mapeado a Python); no hay magia involucrada. Leading edge tiene una vida útil corta, y lo que demuestre ser útil puede duplicarse; el mercado para el código de vanguardia en un mercado maduro (por ejemplo, análisis de datos) es pequeño.

Un grupo de brillantes jóvenes académicos que buscan hacerse un nombre verán que los árboles principales del bosque R han sido derribados. Los árboles en el bosque de mentalidad de análisis de datos de Python siguen en pie; todo lo que se necesita es que algunas personas quieran ser conocidas como la persona que implementó el paquete Python que todo el mundo usa para el análisis XYZ.

El flujo de desarrolladores que comienzan con R disminuirá, los usuarios R ocasionales no tendrán nada que perder si prueban otro idioma cuando llega el proyecto correcto (otro idioma en el CV se ve bien y Python es un mercado más grande). Habrá grupos donde todos usan R y continuarán usando R porque eso es lo que todos los demás en el grupo usan. En diez-Veinte años a partir de ahora, los desarrolladores podrían estar trabajando en un pueblo fantasma.

Cuando comencé a trabajar en un libro, con el objetivo de cubrir todos los datos de ingeniería de software disponibles al público, valía la pena remitir a los lectores a un libro (o dos) que deberían leer para aprender las técnicas adecuadas. La “R en acción” de Kabacoff se acerca más al libro que tenía en mente como introducción básica, pero no había nada que abarcara una gama más amplia de temas; así que terminé escribiendo algo; Encontré “The R book” de Crawley, para ser el mejor libro sobre el tema.

Lo que sucedió en la práctica fue que el material de ingeniería de software se trabajó durante uno o dos años, al darse cuenta de que se necesitaba material de análisis estadístico a medida, se saquearon los datos existentes para crear los capítulos necesarios; después de que esto fue liberado, el trabajo volvió al material de ingeniería de software (usando datos no procesados ​​y recién adquiridos), y por supuesto los capítulos anteriores saquearon datos de los que aún no se han trabajado en capítulos.

En el número 2, es bootstrapping. Muchas técnicas ampliamente utilizadas solo dan respuestas precisas si los datos tienen una distribución normal / gaussiana y el uso de estas técnicas puede implicar una gran cantidad de movimientos de brazos que implican afirmaciones acerca de que los datos tienen una distribución lo suficientemente buena como gaussiana. Este movimiento de brazos era necesario antes de que las computadoras estuvieran disponibles, porque las técnicas manuales prácticas requerían una distribución gaussiana. Ahora tenemos computadoras y técnicas que no requieren ninguna distribución en particular, y que en algunos casos son técnicas más potentes que las diseñadas para la implementación manual.

¿Qué técnicas no son generalmente útiles? Las diversas pruebas que contienen alguna combinación de los nombres de Wilcoxon, Mann y Whitney ya han pasado su fecha de caducidad. Al buscar en la fuente del libro veo que estos nombres aún aparecen en uno o dos lugares; esto es una resaca de las primeras versiones de hace muchos años (cuando estaba siguiendo a la manada desorientada) y pronto desaparecerá.

Pasé mucho tiempo vigilando datos inflados a cero (datos que contienen más valores cero que los esperados por las distribuciones de probabilidad comunes). Vi cuatro / cinco trabajos que contenían tramas de datos que parecían inflados a cero y les envié un correo electrónico a los autores que solicitaban los datos (que amablemente me los enviaron). Ninguno de los datos resultó ser cero (no estoy seguro de lo que los autores pensaban acerca de que se le pidieran datos que alguien pensó que no tenían inflado). Esto no significa que Ingeniería de software los datos no están inflados a cero, solo que no son comunes.

Cuando hablo con los desarrolladores sobre el libro, constantemente me preguntan ‘¿qué es la ingeniería de software empírica?’. Mi explicación usa la frase ‘basada en la evidencia’, que todos parecen comprender inmediatamente. Es contraproducente tener un título que deba ser explicado, así que he cambiado el título a “basado en evidencia Ingeniería de software usando R “.

¿Cuál es el propósito de un capítulo sobre el código fuente en un libro basado en evidencia? Ingeniería de software? El código fuente es obviamente un componente esencial de los temas discutidos en los otros capítulos, pero ¿qué es tan particular de código fuente que no podría decirse en otro lugar? Después de haber pasado la mayor parte de mi vida profesional estudiando el código fuente, primero como escritor de compiladores y luego involucrado en el análisis estático, ¿acabo de ser impulsado por un archivo adjunto al tema?

Mi punto de vista de código fuente es muy diferente de la mayoría de los otros desarrolladores: cuando los desarrolladores hablan de código, pasan la mayor parte del tiempo hablando de cómo hacen las cosas, cuando hablo de código, paso la mayor parte del tiempo hablando de cómo otros desarrolladores hacen cosas (soy un escritor mestizo de código). La visión estrecha de los desarrolladores de código les impide ver imágenes más grandes. Tomo una visión de código de Gricean y me abstengo de utilizar términos de marketing sin sentido como la facilidad de mantenimiento, la legibilidad y la capacidad de prueba.

Bjarne Stroustrup alguna vez fue tratado como el dictador benévolo de por vida de C ++ (durante la producción del primer estándar de C ++ algunas personas fueron etiquetadas como grupos de Bjarne); Las cosas han cambiado desde entonces, pero la ‘vieja guardia’ está tratando de regresar. Sugiriendo que la gente debería basar su pensamiento en un libro publicado hace casi 25 años (“El diseño y la evolución de C ++” de Stroustrup, un libro muy interesante que bien vale la pena leer) crea una imagen bastante atrasada. Los consultores aburridos buscan trabajar en nuevas e interesantes ideas. Los veteranos deben parecer modernos para atraer seguidores (incluso si las ideas son ideas antiguas con una capa nueva de pintura).

Java, el lenguaje, es propiedad de Oracle, la compañía (no nos involucremos demasiado en lo que poseen, tenemos derechos de autor, etc.). Oracle no es tímido al pedirle a las personas tarifas de licencia. Java ahora tiene un ciclo de lanzamiento de 6 meses (al menos la versión de Oracle, hay implementaciones de código abierto) y el soporte gratuito solo se aplica a la versión actual; pagar una tarifa de licencia compra soporte para versiones anteriores a los 6 meses. En el corto plazo, la solución más barata es que las compañías paguen por el soporte.

Recientemente, Guido van Rossum se retiró del puesto de Bento Dictator For Life de Python. Uno de los trabajos de un dictador benévolo es mantener un cierto grado de coherencia lingüística, lo que implica evitar que las ideas de mascotas de las personas se agreguen al idioma. ¿Esto significa que Python lentamente se volverá cada vez más hinchado? Tal vez, pero creo que un problema más probable es un fork de lenguaje, implementaciones múltiples de idiomas ligeramente diferentes (al principio) que pretenden ser Python.

banner