Translate

Mostrando las entradas con la etiqueta julia. Mostrar todas las entradas
Mostrando las entradas con la etiqueta julia. Mostrar todas las entradas

viernes, 1 de noviembre de 2019

Cual es el lenguaje más utilizado y el más moderno?

Es muy interesante saber cual es el lenguaje que más se usa hoy día, para poder aprenderlo si no lo sé y para saber por dónde anda el mercado.

Por eso dejo estas 2 imagenes que son por demás interesantes:


Otra cuestión es saber cual es el lenguaje más moderno de los más utilizados, porque es licito pensar que este tendrá mayor futuro : 




¿Cuál es el mejor y más nuevo lenguaje de programación?


Encontré dicha pregunta en quora, y la respuesta :

  • Julia (Influenciado por: Fortran, Lisp, Lua, Python, Perl, Ruby y MATLAB)
  • Kotlin (Influenciado por: JavaScript, Java, C# y Scala)
  • Elm (Influenciado por: Standard ML, F#, Haskell y OCaml)
  • Elixir (Influenciado por: LFE, Clojure, Erlang and Ruby)
  • Rust (Influenciado por: C#, Ruby, C++, Alef, Haskell, NIL, Cyclone, Limbo y Erlang)
  • Crystal (Influenciado por: C, Ruby, C# and Python)
  • Groovy (Influenciado por: Python, Java, Smalltalk, Objective-C y Perl)
  • R (Influenciado por: S, XLispStat, Common Lisp y Scheme)
  • Hack (por Facebook)
  • Go (Influenciado por: C, Python, Smalltalk, Alef, CSP, Modula, Pascal, Limbo y BCPL)
  • Dart (por Google)
  • Bosque (Nuevo lenguaje de programación de Microsoft)
  • Ballerina (Basado en Java, Javascript, Go, Rust, C#)
  • V (Basado en Go y Rust)

La verdad no conocía a Bosque, Ballerina y V. 

Más allá de dicha respuesta, a mi entender, todo depende de a que te vas a dedicar, por ejemplo: 

Si vas a hacer una aplicación base, base de datos, sistema operativos, aplicaciones de escritorio: 
  • V
  • Go 
  • Rust

Si te queres dedicar a ciencia de datos : 
  • Julia
  • R

Si queres hacer back-end de aplicaciones : 
  • Kotlin
  • Groovy
  • Bosque
  • Ballerina
  • Hack
  • Elixir

Aplicaciones front-end :
  • Elm
  • Dart

Me puedo equivocar, pero es mi opinión. 

Otra cosa, faltan lenguajes que siempre nuevos, como Scala, Idris, Swift o tantos otros...

Opinen!


martes, 28 de agosto de 2018

6 lenguajes de programación que debes estudiar para Data Science


Quiero compartir un artículo sobre los lenguajes de programación que debes aprender para ser el capo máximo de data science. Ya que este es mi blog y los gustos me los tengo que dar en vida, voy a atreverme a ordenar los lenguajes según la importancia con respecto al data science:

  • SQL
  • Python
  • R
  • Scala
  • Java 
  • Julia

En que me baso? en mi opinión, es decir, no puedo se menos científico. Peroooo, tengo una explicación. SQL esta en todos lados, y si el motor de base de datos es noSQL, algún lenguaje de consulta similar a SQL (con sus restricciones) va a tener por esa razón me parece imprescindible saber SQL. Python y R son los más famosos lenguaje en data science por lejos...

Scala y Java por la sacudida que esta dando Spark. Y Julia, porque es un lenguaje que viene creciendo.

Dejo link: https://dzone.com/articles/what-is-data-science-programming-top-7-languages?utm_source=Top%205&utm_medium=email&utm_campaign=Top%205%202018-08-243

domingo, 4 de junio de 2017

9 lenguajes que deberías aprender en el 2017


Muy pocas veces me encuentro con un articulo que dice que debemos aprender algo y coincido, normalmente son tecnologías ya consolidadas pero esta vez me encontré con un articulo que no le importo hacer futurología y tiro algunos nombres de lenguajes que son poco comunes en estas listas.

Los lenguajes que debemos aprender son:

  • Kotlin: como era de esperar, todo el mundo habla de él luego de convertirse en el lenguaje soportado por Android. 
  • Elm: Lenguaje funcional por demás interesante, permite compilar a html y javascript.
  • Julia: Similar a python pero dedicado a la ciencia. 
  • Elixir: Lenguaje funcional que hemos hablado ciento de veces en el blog.
  • Rust: Lenguaje de propósito general, que se parece mucho a C++
  • Crystal: Este si no lo conocía, se viene un post en breve. 
  • Groovy: En serio? yo creía que venia bajando su popularidad y de repente aparece en esta lista. 
  • R: Si haces algo con estadísticas debes conocer a R, es un lenguaje funcional dedicado a la estadísticas, que cada vez adquiere más adeptos. 
  • Go: El lenguaje de google viene lento pero seguro ganando mercado. 

Entre las cosas que me llamaron la atención puedo nombrar:

  • El 90% de los lenguajes nombrados tienen al menos un post en el blog! (tengo que hacer algo de publicidad)
  • Podríamos decir que la mitad o más son lenguajes funcionales, o que aplican técnicas de programación funcional, Entonces, a aprender funcional, no?


Por lo tanto decidí compartir este articulo:
http://www.rankred.com/new-programming-languages-to-learn/


jueves, 9 de julio de 2015

Seven More Languages in Seven Weeks: Languages That Are Shaping the Future

Alguna vez les hable del libro 7 lenguajes en 7 semanas, bueno las editorial The Pragmatic Bookshelf ha lanzado un nuevo libro con la misma temática. Los lenguajes a analizar son  Lua, Factor, Elm, Elixir, Julia, MiniKanren y Idris.

Y hasta tiene video y todo: 




Ya saben que regalarme!!

Dejo el link:
https://pragprog.com/book/7lang/seven-more-languages-in-seven-weeks


domingo, 20 de julio de 2014

Lista por comprensión


¿Recuerdan de las definiciones matemáticas de por ejemplo números pares o múltiplos que veíamos en la escuela? por ejemplo la definición de los números pares mayores a 10 sería así:

s = { 2 * x  | x  € N, 2 * x > 10 }

Esto se lee como los números pares (2*x) que pertenecen (€) a los números naturales (N) y que sean mayores que 10.  La parte anterior al separador se llama la función de salida, x es la variable, N es el conjunto de entrada y  2 * x > 10 es el predicado.




De esta forma se define la lista de forma compresiva. Es decir se puede conocer el valor de la lista dependiendo de la posición sin enumerar sus elementos. Esta definición se podría escribir en Haskell de la siguiente manera:

s = [ 2*x | x <- [0..], x*2 > 10 ]

Como vemos es muy similar a la definición matemática, solo que se define los números naturales como [0..] los dos puntos indican que esta lista es infinita. Cuando pensamos en una lista infinita, automáticamente relacionamos con un bucle que nunca termina o con un cuelgue de nuestro programa, esto es porque venimos del mundo imperativo pero cómo Haskell ejecuta las sentencias de forma perezosa, podemos modelar listas infinitas sin problema.

Podemos modelar diferentes listas sin ningún problema, por ejemplo  todos los números del 50 al 100 cuyo resto al dividir por 7 fuera 3 :

ghci> [ x | x <- [50..100], x `mod` 7 == 3]
[52,59,66,73,80,87,94]

La lista de dobles de los números naturales y que el cuadrado sea mayor a 3:

s = [ 2*x | x <- [0..], x^2 > 3 ]

Por suerte las listas por compresión, no son solo una característica de Haskell sino que se encuentra en diferentes lenguajes, voy a mostrar el ejemplo de la lista de dobles de los números naturales y que el cuadrado sea mayor a 3 en diferentes lenguajes:

Ceylon
{ for (x in 0..100) if ( x**2 > 3) x * 2 }

Clojure
 (take 20
   (for [x (range) :when (> (* x x) 3)]
     (* 2 x)))
 ;; ⇒ (4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42)

CoffeeScript
 (x * 2 for x in [0..20] when x*x > 3)

Elixir
for x <- 0..100, x*x > 3, do: x*2

Erlang
 S = [2*X || X <- lists:seq(0,100), X*X > 3].

F#
> seq { for x in 0..100 do
          if x*x > 3 then yield 2*x } ;;
val it : seq<int> = seq [4; 6; 8; 10; ...]

Groovy
s = (1..100).grep { it ** 2 > 3 }.collect { it * 2 }
s = (1..100).grep { x -> x ** 2 > 3 }.collect { x -> x * 2 }

JavaScript 1.7
 js> [2*x for each (x in [0,1,2,3,4,5,6,7]) if (x*x<5)]
 [0, 2, 4]

Julia
y = [x^2+1 for x in 1:100]

Perl 6
my @s = ($_ * 2 if $_ ** 2 > 3 for ^100);

Python
S = [2 * x for x in range(101) if x ** 2 > 3]

Scala
val s = for (x <- Stream.from(0) if x*x > 3) yield 2*x

Smalltalk
((1 to: 100) select: [:x|x*x>3]) collect: [:x|2*x]

Algunos lenguajes tienen diferentes formas de hacer lo mismo y para algunos lenguajes no uso todos los números naturales sino hasta el 100.

En resumen podemos decir que las listas por comprensión es una característica de algunos lenguajes con lo cual podemos definir listas de forma comprensiva.

Dejo link: http://en.wikipedia.org/wiki/List_comprehension

lunes, 3 de marzo de 2014

Julia, un lenguaje del futuro...


Julia es un lenguaje de programación conocido en el ámbito científico por su basta librería de funciones matemáticas, a la vez es un lenguaje de alto nivel y de alta perfomance. El lenguaje fue creado por Stefan Karpinski, estudiante graduado de la Universidad de California, que estaba involucrado en una herramienta simulación de redes que requería el uso de varios lenguajes de programación diferentes. Curiosamente, ninguno de los lenguajes usados podía hacer toda la tarea, todo el proceso. Por ello, Karpinski, junto con su compañero de universidad Viral Shah y  Jeff Bezanson del MIT, decidieron resolverlo diseñando un nuevo lenguaje que fuera compatible con prácticamente cualquier tarea. La meta de Karpinski y su equipo es construir un lenguaje único que haga todo bien.

La librería de funciones matemáticas, en gran parte estan escrita en Julia, pero también se integra con librerías maduras, las mejoras librerías de C y las librerías de Fortran para álgebra lineal, la generación de números aleatorios, procesamiento de señales y procesamiento de cadenas.

Entre las características de este lenguaje podemos nombrar:

  • Posibilidad de definir el comportamiento de una función con una combinación de tipos de argumentos
  • Sistema dinámico de tipos: tipos para documentar, optimizar y ejecutar rutinas
  • Buen desempeño, el cual se aproxima (estadísticamente) a lenguajes como C
  • Manejador de paquetes interconstruido
  • Macros como en LISP y otras funcionalidades de metaprogramación
  • Se pueden llamar funciones de Python usando el paquete PyCall
  • Llamada a funciones de C directamente. No se necesita nada más
  • Poderosas Shell que puede manejar otros procesos
  • Diseñado para computación distribuida y en paralelo
  • Corrutinas
  • Tipos definidos por el usuario que son rápidos y compactos
  • Generación automática de código especializado, eficiente, de acuerdo al tipo de argumentos
  • Conversiones elegante y extensibles para tipos numéricos y otros tipos
  • Soporte para Unicode
  • Licencia MIT : libre y de código abierto
Una de las características más notables de Julia es la performance de su compilador JIT, el cual es capaz de superar a lenguajes que tienen más historia. En la pagina oficial de Julia podemos ver un benchmark realizado que compara a Julia con otros lenguajes como Fortran, Python, R, matlab, etc. Como podemos ver a continuación Julia queda muy bien parado:



 IJulia, es un entorno gráfico e interactivo que permite combinar instrucciones Julia con funciones matemáticas, gráficos, multimedia todo en un solo documento. Ijulia utiliza el poderoso entorno IPython para su funcionamiento.
Julia ha ganado un espacio importante en el mundo científico con su amplia librería matemática y su velocidad. La pregunta es si seguirá ganando terreno en otros ámbitos. Ustedes que opinan?


miércoles, 4 de septiembre de 2013

Learn X in Y minutes

Una muy buena pagina para aprender lenguajes de programación, muestra un resumen de los lenguajes para que se puedan aprender rápidamente; entre otras cosas tiene:

  • Where X=c
  • Where X=clojure
  • Where X=coffeescript
  • Where X=Common Lisp
  • Where X=c#
  • Where X=dart
  • Where X=elisp  
  • Where X=elixir
  • Where X=erlang
  • Where X=F#
  • Where X=Go
  • Where X=Groovy
  • Where X=haskell
  • Where X=haxe
  • Where X=java
  • Where X=javascript
  • Where X=julia
  • Where X=LiveScript
  • Where X=lua
  • Where X=Matlab
  • Where X=Objective-C
  • Where X=perl
  • Where X=php
  • Where X=python
  • Where X=R
  • Where X=racket
  • Where X=ruby
  • Where X=Scala
  • Where X=Visual Basic
  • Where X=whip

Dejo link: http://learnxinyminutes.com/