Hace 4 años | Por neog17 a technotification.com
Publicado hace 4 años por neog17 a technotification.com

Microsoft ha presentado un nuevo lenguaje de programación de código abierto llamado Bosque. Está inspirado en la sintaxis de TypeScript y la semántica de ML y Node.js. El principal objetivo de Bosque es construir un lenguaje de programación funcional que ayude a superar el paradigma de la programación estructurada.

Comentarios

squanchy

Los árboles no nos dejarán verlo.

D

#20

Por que no hay otro oficio que mientras las personas lo realizan, todavía se están sentando las bases y entendiendo las cosas.

Los carpinteros, arquitectos, abogados o médicos trabajan en profesiones donde las ciencias que hay detrás de las técnicas que ellos realizan, han madurado hace mucho tiempo. Por ejemplo, los seres humanos llevan miles de años construyendo edificios, o calculando, o curando a personas (o al menos intentándolo). También llevamos miles de años cocinando. Sin embargo, no llevamos tanto tiempo utilizando formulas para explicarle a un aparato de lógica, las reglas que tiene que seguir.

Además, si la experiencia no se te está acumulando, es que algo estás haciendo muy mal. Yo tengo ya mas de 15 años de experiencia programando y he pasado por todo tipo de lenguajes, plataformas y entornos, y en todos he aprendido todo tipo de cosas que siguen presentes a día de hoy.

Sólo el hecho de saber crear abstracciones lógicas extensibles y manteníbles y expresarlas en forma de programas estructurados (o funcionales, da igual) es una habilidad que uno entrena y mejora años tras años, y tras 15 años, yo no he parado de mejorarla.

A mi me da igual que mañana salga cualquier otro lenguaje, llevo años entrenando mi capacidad para expresar sistemas lógicos complejos formados por piezas muy bien escogidas y expresadas en funcional o estructurado, que funcionan en todo tipo de plataformas. Si el lenguaje es un impedimento para ti, creo que algo no estás haciendo bien.

D

#27 Eso que dices es intrigante, porque yo llevo veinte años aprendiendo C++ y cada día aprendo algo nuevo.
Lo mismo no estás profundizando de verdad en cada lenguaje que aprendes..

D

#35

yo llevo veinte años aprendiendo C++ y cada día aprendo algo nuevo.

Eso es imposible. C++ es una especificación que nos sentamos y nos la leemos en 3 tardes. No puedes estar 20 años aprendiendo cosas de C++, si quieres te paso el pdf de la spec.

Ahora bien, es posible que desde el desconocimiento, donde dices c++ quieres decir:

- programación estructurada
- algoritmos
- estructuras de datos
- sistemas operativos
- memoria virtual

Te lo digo por que es posible que esas cosas que dices seguir aprendiendo tras 20 años, probablemente nada tienen que ver con c++ (spec) y tienen mas que ver con fundamentos comunes a otras plataformas, lo cual es justo lo que yo he dicho, y a lo que en teoría me estás rebatiendo roll

Lo mismo no estás profundizando de verdad en cada lenguaje que aprendes..

Los lenguajes son especificaciones de sintaxis que mapean a un modelo conceptual que siempre viene heredado o de Fortran/Algol, o de Lisp o de Flow-matic. Que en resumen consiste en escoger entre programar usando funciones puras y composición de funciones, o bien programar usando estados intermedios sobre los que operan formulas inspiradas en algebra (aunque con algunos operadores distintos, y unas reglas completamente diferentes), que se ejecutan por un puntero de ejecución direccionable de forma directa o indirecta.

Creo que he profundizado algo, pero no sobre la spec de cpp o de ecmascript, sino sobre los fundamentos sobre los que se construye como concepto, o el sistema sobre el que funciona.

D

#50 Si tu eres capaz de leerte esto en tres tardes (y dominarlo), te doy mi más sincera enhorabuena:

https://www.google.com/search?q=complex+operations+in+C%2B%2B&ie=utf-8&oe=utf-8&client=firefox-b-1-e

Obviamente eres bastante más inteligente que la media.

D

#51 No entiendo para que necesitas hacer esa busqueda en google.

si te interesa la spec de cpp, mira aquí:

https://github.com/cplusplus/draft

El draft sobre el lenguaje lo puedes ver aquí:

https://github.com/cplusplus/draft/blob/master/papers/n4567.pdf

Pero como digo, es cortísimo. Cpp es un lenguaje bastante simple. Creo que las cosas que dices aprender de cpp tras tantos años tienen mas que ver con el sistema operativo o la memoria, que con el lenguaje en si

D

#52 Te he puesto un enlace a la web de la organización que regula el estándar, y como verás hay bastante cositas.

Me parece que estás hablando del conjunto de instrucciones estándar del lenguaje, el cual es relativamente simple (al igual que el lenguaje C).

Un lenguaje no es "el conjunto de instrucciones".

Tienes que aprender literalmente el manejo de cientos de librerías si quieres ser un programador decente (sobre todo las librerías estándar) , a eso tienes que sumarle el saber implementar algoritmos decentemente, el saber cuando has de liberar la memoria, punteros, iteradores, creación y destrucción de objetos, templates, etc.

Además en C++ puedes hacer programación estructurada, OOP, funcional, declarativa o literalmente lo que te de la gana.
De hecho C++ es una de los lenguajes de programación que más paradigmas admite.

Uno de los problemas de C++ es que admite absolutamente todo lo que puede admitir un lenguaje de programación (el invertir del mismo se tiró años metiendo dentro del mismo más y más funcionalidades).

Por cierto : Me enlazas un PDF de más de mil páginas... Sigo pensando que debes ser súper dotado para aprender eso en tres tardes.
Te sigo diciendo lo mismo: No hace falta que salgas de C++ para conocer absolutamente todos los paradigmas, de programación existentes.

Puedes estar con C++ veinte años y saber cada día ua cosa nueva.

D

#53 literalmente me estás dando la razón, admitiendo que el lenguaje da igual. Todos esos paradigmas de los que hablas están en c++ y en muchos otros lenguajes

Si sigues el hilo hacia arriba, verás que literalmente me has dado la razón.

C++ además es un lenguaje cuya plataforma es el sistema operativo, razón de más para que te dé igual cambiar de lenguaje.

D

#20 La solución es Cobol y C. Llevan 50 años sin cambiar y todavía dar de comer a mucha gente.

D

¿y esto que significa? "ayude a superar el paradigma de la programación estructurada"

¿han reinventado el goto?

Rasban

#13 La programación funcional. Sin bucles for ni while ni gotos.

D

#13 "Si creías que Scala te jodía la vida átate los machos que te vas a cagar"

D

#24 Manda un email a Linus Torvards con eso que dices y nos cuentas su respuesta.

s

#24 Me viene a la mente "Algoritmos + estructura de datos = programas", Niklaus Wirth

D

#55 100% de acuerdo.

D

#13 en el equipo en el que estoy ese objetivo se consiguio moviendo el proyecto a la programacion desestructurada. Todo un exito. Los resultados ya tal

D

#16 Si, pero a este aborto podian haberlo llamado PAJA

D

#16 Pues es una tendencia cada vez más fuerte. Al poner un nombre quieres que sea original pero a la vez reconocible. Y para ello la opción más fácil es el español.

Ya solo falta que le den una pronunciación parecida al español, ¿apuestas por como pronunciaran el nuevo lenguaje? Yo apuesto por "boskiu".

i

#16 Calla calla...que aún recuerdo el "Windows Vista".

Como el Bosque sea otra mierda...ya podremos decir eso de que "El Árbol les ocultó la Vista del Bosque", o que el árbol no les dejó ver el bosque.

Por cierto, una de las mayores cagadas que Microsoft hizo hace años fue cargarse el comando "deltree" que permitía eliminar un Árbol de directorios, ficheros y subdirectorios en Windows 2000. Tocó cambiar unos cuantos Batchs en aquella época. Historias de abuelo cebolleta.

ur_quan_master

más madera al hype funcional.. En un par de años al baúl de los recuerdos.

Xtampa2

#8 Porque los lenguajes funcionales que se usaban hace dos años estan ahora en ese baúl de los recuerdos, ¿verdad?

i

#8 Err..No. La velocidad de escribir código con programación funcional es una pasada.

En modo funcional:

final BigDecimal sum =
numbers.stream()
.filter(number -> number.compareTo(BigDecimal.valueOf(25)) > 0)
.map(number -> number.multiply(BigDecimal.valueOf(0.8)))
.reduce(BigDecimal.ZERO, BigDecimal::add);

Lo mismo pero de toda la vida de dios:

BigDecimal sum = BigDecimal.ZERO;
for (BigDecimal number : numbers)
}

En el modo funcional reduces los Bugs lógicos a casi cero. Entre otras cosas porque utilizas métodos ya existentes y testeados.
En el modo de toda la vida de dios si se te resbala un igual, o un +, o mueves un } la puedes liar sin querer. Y si creas un método cruza los dedos de testearlo en profundidad. Luego está el tema de la legibilidad que en el ejemplo anterior en modo funcional lees linea a linea y no necesitas loopear para entender qué hace el código (como si ocurre en el tradicional).

Si a esto le añades que en el ejemplo anterior puedes concatenar filtros y mapeos, la longitud del código mejora frente a concatenar Ifs o actualizar variables. Ambos procesos bastante susceptibles de ser fuentes de Bugs.

Por otra parte está el hecho de que programas contra Streams, y ya comienzas a entrar en el mundo Reactivo, que ha venido para quedarse.

D

#37 #8 por no hablar de las ventajas de rendimiento por el hecho de que internamente los resultados de las funciones se pueden cachear al ser inmutables, o que es más fácil de paralelizar en diferentes hilos (núcleos) la ejecución del programa.

h

#8 El hype es usar funcional donde no hace falta funcional y hacer una web chorra con un lenguaje funcional porque sí, pero donde los lenguajes funcionales son fuertes como streaming de datos (se puede usar con big data), procesamiento paralelo, conmutadores donde no quieres mutar los datos o cambiar el valor del estado ahí no tiene rival.

La cosa es usar la mejor herramienta posible para cada cosa y no ser un fanboy de x tecnología.

ur_quan_master

#41 muy de acuerdo con eso.

D

Éramos pocos y parió la abuela

parrita710

#4 Pues estaba poniéndome los zapatos que tengo que montarme en el coche, me alegro que te interese mi vida. Pero la paranoia es toda tuya.

D

#5 No hagas dos cosas a la vez , como te repite tu madre ... por los problemas que tienes, ya sabes

m

#6 A un periodista no, pero tú puedes insultar a quien te plazca, ¿o cómo va esto? Porque he echado un vistazo a tu historial por curiosidad y todos tus comentarios son para faltar al respeto, descalificar a alguien o para ir corriendo a algún admin porque algo no te gusta.

aznar-zoido-acuden-ver-procesion-exhibe-virgen-fajin-franco/c012#c-12

Hace 4 años | Por --596443-- a publico.es

Siempre es bueno dejar por escrito las taras mentales de los pseudo progres

Algunos más de los últimos 4 días:

vox-ficha-periodista-hermann-tertsch-como-candidato-europeas/c022#c-22
Hace 4 años | Por Ratoncolorao a 20minutos.es

get_c_v.php?id=26821451
campanas-electorales-instrumento-fetiche/c01#c-1
Hace 4 años | Por ZelosWider a actualidad.rt.com

no-puede-ser-feminista-derechas/c07#c-7
Hace 4 años | Por antony6789 a youtube.com

alberto-pozas-exdirector-interviu-citado-ante-juez-revelacion/c010#c-10
Hace 4 años | Por --267175-- a publico.es

alberto-pozas-exdirector-interviu-citado-ante-juez-revelacion/c06#c-6
canales-tdt-espana-ver-online-desde-cualquier-parte-formato-m3u8/c02#c-2
Hace 4 años | Por --560091-- a github.com

brutal-informe-saca-luz-peor-puede-llegar-pasar-carcel/c01#c-1
Hace 4 años | Por ilturco a elconfidencial.com

lapsus-periodista-maria-casado-saca-musculo-ante-camara-emite/c01#c-1
Hace 4 años | Por ilturco a elindependiente.com

podemos-proponemos-600-euros-mes-10-millones-personas-impuesto/c074#c-74
Hace 4 años | Por xizor a elmundo.es


Hasta un troll debería tener un mínimo de dignidad, hombre.

Trigonometrico

#23 Prueba a usar el icono que hay debajo de los comentarios que se llama "Permalink", el que está al lado de la flecha de los votos negativos.

m

#36 Buen consejo, se agradece

dudo

Yo del scratch no me muevo...

D

#30 A mi tampoco me mueven de HyperCard.

demostenes

El bosque es lo que hay entre la Windows de mi home y la Office.

f

No tienen ya F#, pa qué otro?

tsumy

Mmm... necesitaría verlo en prod. Seguiré fiel a mi nuevo amigo TS, aunque teniendo que hacer caminos raros para tener inmutables

https://medium.com/@ezequiel/immutability-and-builders-with-typescript-b69a51c94e8c

D

#3 Yo tengo en prod Kotlin a JS y va riquísimamente. Todo inmutable.

No es que me desagrade TS

u

#46 Se entiende bien, pero de primeras leí abeto y como la cosa va de bosques me hizo gracia..

sahueso

Siempre he dicho que si Microsoft hubiera incluido en todos sus Windows un programa sencillo para aprender a programar (algo asi como Paint o Wordpad) mucha más gente se hubiese interesado por la programación. Al menos habria entendido los principios más basicos, sobre todo los más jovenes. Yo eso lo descrubí en la Universidad a pesar de haber tenido ordenador desde adolescente. Creo que habría tenido incluso más sentido que el propio Paint.

Pero bueno, MS aún está a tiempo porque la informatica sigue siendo el futuro. Esperemos este proyecto salga bien y dure mucho.

s

#31 Incluía en MS-Dos primero gwbasic (basica en los IBM pero el mismo programa) y el qbasic. En los windows hizo el visual-basic pero de pago e incorporó versiones de VBasic en sus paquetes de oficina tanto para scripts (de fácil virificación) como más decente en MsAccess pero un monstruo pesado. Es decir era el qbasic incluso en los primeros windows que funcionaban sobre msdos. Luego todo era de venta con licencias etc..

LLort_II

"que ayude a superar el paradigma de la programación estructurada."

:---DDD

Trigonometrico

#4 Yo no pertenezco a ninguna pandi.

frankiegth

Como de costumbre conviene recordar que 'Código abieto' no es necesarimente 'Software Libre'.

Si el código fuente 'se puede ver' pero 'no se pude tocar' no es 'Software Libre', es un mero escaparate.

Para evitar desagradables sorpresas leeros la licencia que aplican los de Redmond a 'Bosque' antes de tener que lamentar incendios.

u

#40 Te leí de código abeto y pensé "si, claro, tiene sentido"

lol

frankiegth

#45. Me da sensación de que los teclados inalámbricos se van comiendo las letras. En #40 quise decir que hay que tener mucho cuidado con los proyectos de 'CÓDIGO ABIERTO' porque no son 'Software Libre' por mucho que los vistan de piel de cordero.

saqueador

No se donde está el nuevo paradigma, es un lenguaje funcional con sintaxis ya vista.

D

Otro refritango

bahamut06

Va a ser gracioso escuchar a los no espanoles pronunciando bosque como boscue.

D

El logo es el sobaco de Anna Gabriel

D

#2 Has tenido que llamar a la pandi ¿eh ?
Si es que os tenemos más que calados

Dasold

#2 Solución que yo tomé hace tiempo: