Hace 1 año | Por --639557-- a genbeta.com
Publicado hace 1 año por --639557-- a genbeta.com

La NSA o Agencia Nacional de Seguridad de Estados Unidos ha publicado una guía en la que anima a las organizaciones a cambiar los lenguajes de programación de C y C++ por alternativas "memoria segura", donde entran otros lenguajes como C#, Rust, Go, Java, Ruby o Swift. "La NSA recomienda que las organizaciones utilicen lenguajes seguros para la memoria siempre que sea posible y refuercen la protección mediante defensas de endurecimiento del código" dice el último comunicado emitido por el organismo.

Comentarios

Pacman

Java?

abnog

Si lo recomienda la NSA, ya sé lo que NO tengo que hacer.

f

#21 tu sabes que ni java ni rust son interpretados, verdad?

D

#11 No. Lo actualizan.

¿Quizás hablas de Java para hacer snippets web? Ese es un uso residual de Java. Siempre lo han sido. En la actualidad es uno de los lenguajes más usados.


Por cierto, quizás sin flash hoy el uso de Internet en el mundo sería sensiblemente inferior. Gracias a flash se llevaron las animaciones, los gráficos y los juegos a la web. Tampoco retrasó nada, su problema fue de agujeros de seguridad

meneandro

#4 Las prisas no son buenas...

Leni14

Razón de más para usar C y C++.

D

#45 OpenJDK. Java es libre desde hace eones, y ahora está el GraalVM en OpenJDK.

D

#12 Sin C no hay Unix,ni iOS, ni Android, ni Linux, ni BSD, ni Mac OS.

tul

#18 ni windows

Socavador

Es que así no hay quién espíe tranquilo...

Jesulisto

#8 C te enseña a pensar como un programador "de verdad", en el día a día puedes usar lo que sea pero hay un antes y un después de aprender y programar en C.

j0seant

#18 tampoco tendríamos los interpretes, compiladores o maquinas virtuales de otros lenguajes, ya que la grandísima mayoría están escritos en C/C++

D

#32 https://github.com/gorhill/uBlock/wiki/Does-uBlock-Origin-block-ads-or-just-hide-them%3F

Despejando dudas.

Sí, bloquea las peticiones. Lo mejor para ello es ir a los ajustes de UBo y descargar los recomendados y actualizarlos.

R

#41 Efectivamente, mucho es publico. Y hay java a patadas. https://netflix.github.io/

frg

#3 Espero más Rush en el kernel de linux. Solventa muchos de los problemas existentes con drivers de todo tipo y condición.

whatisthat

#24 A todo lo que te ha dicho #25 (que está bastante completo), habría que añadir que te has colado diciendo que JS no funciona como servidor, cuando hoy en día es una opción especialmente popular.
https://w3techs.com/technologies/details/ws-nodejs

Pero no solo como servidor; también se nutren de diferentes frameworks como electron para crear aplicaciones multiplataforma como el visual studio code, discord...
https://zeke.github.io/electron.atom.io/

D

#1 demasiado facilón para ser seguro

R

#21 El código de OpenJDK es GPL. Si hubiese una puerta trasera, sería visible en el código.

D

Esto es como si el lobo viniera a decirle al pastor como guardar las ovejas.

R

#59 para mi git es lo que realmente demuestra la genialidad de Linus como desarrollador.

e

#69 Si la NSA mete una puerta trasera en el compilador, cosa que recuerdo ya se ha hecho, estás en las mismas. Tienes un código binario con un troyano que se ejecuta fantásticamente.
El tema de meter puertas traseras te da lo mismo, sea con máquina virtual o con código compilado.

o

De Rust no tengo ni idea de como funciona, pero de Java lo que quieren es enchufar la puerta trasera en la maquina virtual que es de Oracle (curiosamente empresa americana que abre el culo si se lo pide la NSA) y controlar todo sin que puedas hacer nada por evitarlo. Se les ve el plumero a kilómetros de distancia.

t

#11 Confundes Java del lado cliente con Java del lado servidor.

Jajjajajjajajja

#11 Sin Flash jamás habríamos tenido a Cálico Electrónico o Xiaoxiao

c

#25 ninguna de esas empresas (y me atrevería a decir ni ninguna de la mayoría de "nuevas" empresas) montan un backend en java
Java es un gran lenguaje de servidor y probablemente el MAS utilizado para aplicaciones de alta demanda y rendimiento.

Java no es ni anticuado ni engorroso. En qué te basas para sostener esa afirmación?

Por qué dices que "solo interesa desde el punto de vista empresarial"?

D

#16 Lo importante es que era la única opción para poner gráficos y animaciones en la web.

¿lento? Vale.

Azrapse

Al margen de que esté hablando de putas La Tacones (NSA), el hecho es que Rust tiene el mismo escenario de uso que C/C++, pero su gestión de memoria es más robusta y no le deja al programador pegarse un tiro en el pie con tanto entusiasmo como C/C++ lo hacen. Y es igual de rápido.

Por muy buenos que hayan sido C/C++, y sean los cimientos de casi todo, son lenguajes anticuados, que han sido "actualizados" una y otra vez de la forma más ortopédica y frankenstein imaginable. Un programa moderno en C++ da asco leerlo, por la cantidad de "ruido" absurdo que conlleva hacer las cosas bien sin que ser vaya todo al garete en temas de librerías, referencias, gestión de memoria, etc.

Me recuerda a la programación en PHP y Javascript modernas, que para tener algo decente y robusto, te tienes que montar un pifostio en andamiaje y seguir unas prácticas a rajatabla. O si no, el caos.

yende

#176 Básicamente por dos motivos, el entorno de desarrollo es infernal y prácticamente únicamente se podía trabajar en Madrid y Barcelona.

Sangre de unicornio dice, tu estas chalao, nosotros por menos de tinta de impresora HP no movemos un dedo!

No viene a cuento pero me he acordado de estos http://cobolcowboys.com/ NOT OUR FIRST RODEO

infraser

#41 te falta muuucho mundo si te crees que el único por el cual se elige java es administrativo

f

#84 #83 #69 Pues mira, despues del primer comentario me entretuve buscando, y resulta que no se consideran ni compilados ni interpretados, justamente por que tienen parte de los dos procesos.

Por cierto, cuando hables a uno que presumiblemente no sabe del tema (como era mi comentario anterior), es mucho mas entendible por esa persona "se compila a medias" que "produce un bytecode, que vendria a ser un codigo intermedio, y blah-blah-blah". O sea que sí: para un no iniciado, java "compila a medias"

A

¿Pero Java no lleva 10 años obsoleto?

Yo me alegro de que cada vez se use menos en la web, por que vaya porculo cada vez que fallaba la versión concreta y exclusiva que había decidido utilizar el becario cutre para tál página de la administración. Entre flash y java retrasaron el avance de internet unos 10 años.

R

#25 la mayoría de los servicios de AWS tienen Java por detrás

D

#30 #69 ese código intermedio se acaba compilando "Just In Time" a código nativo, optimizándose según los puntos calientes en tiempo de ejecución. Por eso en muchas tareas es más rápido que lenguajes compilados como Go.

Pero si tan poco te gustan las máquinas virtuales, desde hace ya años Java se puede compilar "Ahead Of Time" a un ejecutable nativo, obteniendo ciertas ventajas y perdiendo otras, como la optimización JIT.

pedrobz

#60 #45 No tienes porque usar la JVM de Oracle... pero el 90% usa la JVM de Oracle, al menos, es lo que yo he visto en mi trabajo, en todos lados se usa esa máquina, en algún sitio he visto usarse la de IBM, por eso lo de 90%. Con un compilador tendría que atacar el código en el momento que compila, pero en un lenguaje interpretado solo tienes que atacar al intérprete o a la JVM, y lo puedes hacer en cualquier momento.

Todo esto asumiendo esa capacidad de atacar que tiene la NSA, que a efectos prácticos es muy dudoso, y salvo que tengas un nivel de seguridad de grado militar alto, con tener actualizada la JVM ya vale, porque van a ser mucho más importantes otros temas de seguridad como librerías de la app, asignación de permisos correctos y comunicación cifrada entre servicios etc. Me encanta la analogía de las lonchas de queso Gruyere, cada capa tiene agujeros, pero juntas es un bloque muy sólido, tener una JVM, un interprete o un código compilado es solo una loncha de muchas.

Ovlak

#161 De acuerdo con eso. Sólo por puntualizar, yo hablaba de condicionar la seguridad del lenguaje con la seguridad de la JVM más usada. Si Java estuviera condicionado al uso de la Oracle JVM o cualquier VM de código cerrado pues sí, pero no lo está. Es decir, no se puede inferir que un lenguaje interpretado o semi-interpretado sea inseguro per se, sino que estará condicionado a si el intérprete es o no una caja negra.

A

#8 C está muy bien para aprender las bases del desarrollo de software y para cacharritoso como arduino y otros controladores robóticos. Luego ya con esa base puedes ir aprendiendo el lenguaje que toque según las necesidades de la empresa. Luego en las entrevistas de trabajo ya te pueden pedir 15 años de experiencia en ruby, .net, o lo que sea que esté de moda, que leyendo un par de libros te puedes apañar en una semana.

PauMarí

#39 te aseguro que no me falta mundo, tengo (tenía, mejor dicho, ya que hace unos años) el record europeo de website con más compras simultáneas soportadas... (máquinas virtuales repartidas en diferentes datacenters con un backend NO funcionando en java (pero sí, a mi pesar, con un clúster de SQL Servers)).
Y cuando me refiero a una decisión empresarial me refiero a una ADMINISTRATIVA (tema sueldos programadores y no querer asumir el coste de canviar a un sistema moderno)
Creo que al que le falta mundo no es precisamente a mi....
Por cierto, la tecnología del backend de Netflix es público (de hecho alguien meneó un artículo al respecto por aquí). El front creo que era React, no lo recuerdo ahora mismo pero te aseguro que el Back NO era java, hablas sin conocer de lo que hablas.

ur_quan_master

#1 Java sigue siendo muy bueno para lo que es.
Por otro lado, como dice la coplilla: C y C++ son de la famila... Y a Rust lo encontré en la calle.

D

#32 Creo que UBlock Origin también bloqueaba conexiones.

https://github.com/gorhill/uBlock/wiki/Strict-blocking

Definitvamente si lo pones en ajustes avanzados nada debería conectarse.

Yo por lo menos tengo bloquadas las peticiones a terceros.

tul

#32 ein, no, para nada, no llegas a descargarlos.

g

#10 recomiendan cambiar a lenguajes más lentos porque así te cambias a una CPU más moderna y ahí está “su magia”.

Quepasapollo

#77 eso es muy discutible, mírate los pliegos que está saliendo de la administración, vas a comer Java por un tubo, y sí, hablo de proyectos from scratch

aironman

#77 tu de big data como que ni idea, no? El map reduce de Hadoop está deprecado, pero hdfs y yarn junto con spark/flink es la norma para tener un cluster BigData.

woopi

#62 Es que el chiste era que dejé a la novia por que no sé de Java

p

#22 No, Javascript es el lenguaje que se ejecuta en tu navegador web. Pero en el servidor, el código que se ejecuta cuando buscas un producto, cuando lo añades a tu cesta y se guarda en base de datos, cuando haces el proceso de compra, cuando se genera el recibo, cuando te llega una notificación por correo electrónico... es Java. Es su principal uso (además de Android) y siempre ha sido así, aunque mucha gente tienda a asociar Java a Applets (que sería algo parecido a Javascript en que se ejecutaba en el navegador).

D

#5 No lo dudes. EEUU siempre acusa de espionaje a los chinos sin pruebas, pero es que a ellos les hemos pillado espíando infraganti a empresas y primeros ministros europeos. Y nos ha dado igual.

D

#138 A mí no me disgustan las máquinas virtuales ni los lenguajes interpretados (al final son lo que más uso). Y rust me parece cojonudo.

thingoldedoriath

#110 Todos los amigos/conocidos/ex-compañeros que trabajaban en la infraestructura de ECI, hace tiempo que se han jubilado (y alguno ha dejado de fumar...); pero sospecho que lo serio (control de stock, datos bancarios, cajas...) sigue yendo sobre AS/400 en racks de IBM iSeries.

Si hay algún informático de ECI por aquí, y no tiene inconveniente, estaría bien que dijese si han introducido cambios importantes...
También estaría bien conocer que se cuece en las "salas de máquinas" de Inditex...

No hace mucho que falleció un amigo que todavía seguía manteniendo aplicaciones de bases de datos (de esas que se pueden conectar con Excel) que él mismo había escrito en 2007, en PASCAL (en realidad Lazarus/Delphi)

Fingolfin

#3 Pues en este caso no les falta razón

K

#9 Permite me que lo dude ¿De donde sacas la idea de que el back de esas empresas está en java? Primero, supongo que será una amalgama de lenguajes. Por ejemplo, si que se que Ebay está principalmente en PHP por qué lo dijeron cuando desarrollaron los microservicios. Pero si de verdad crees que el back de esas empresas es sólo una aplicación monolítica hecha en java y no varias decenas montadas en SOA con ESBs y Middlewares (software hecho mayoritariamente en C) o mejor aún cientos de microservicios cada uno de su padre y de su madre según convenga, o que ellos usan solo software propio y no de terceros, es que no has trabajado en una empresa medianamente grande. Seguramente la pasarela de pago este hecha en un lenguaje y con una tecnología, la logística en otra u otras, el control de almacenes en otra, la facturación en otra, el esb en otra, cada una con su repositorio de código en otra, con su gestor documental en otra, cada una con su motor de base de datos en otra, y con sus ETLs en otra, con su análisis de datos en otra, con su BI en otra, etc y eso simplificando mucho el tema.

prejudice

#4 git también está escrito en C
Aunque tiene menos complejidad que el kernel de Linux y la verdad no creo que necesite mejoras, ya es un herramienta perfecta

h

#22 #31 #55 Yo estuve un tiempo currando en Amazon y confirmo que la mayor parte del código era Java. Sí, hay miles de microservices pero el 90% era Java.

Y no están migrando a nada. Como mucho estaban pensando cambiar el framework propio y empezar a usar Spring. Si aún había cosas críticas en Perl porque era el lenguaje de moda cuando la compañía estaba en sus inicios dudo que vayan a migrar masivamente a otro lenguaje 😂

Powertrip

#12 no conozco a nadie que leyendo un par de libros de java en una semana sea programador java. Me tenéis hasta las ***** los que os creéis gurús del C, ensamblador y código binario y lo demás es m**rda

D

#73 Java y Rust son código abierto, y están mantenidas por personas y empresas de todo el mundo. Si la NSA puede meter ahí una puerta trasera, también puede meterla en el compilador GCC. Aunque veo más factible que meta una puerta trasera en los compiladores C/C++ de Microsoft o Intel.

D

#76 ninguna empresa en las que he trabajado usan la máquina virtual de Oracle. Tienes muchas de alternativas de código abierto con un rendimiento tan bueno como la de Oracle (que también tiene sus versiones de código abierto): https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#Active

D

#181 en tu criterio, desde luego que no.

Ovlak

#110 ¿Por qué ex? Cuenta la leyenda que a los picadores de Cobol los riegan con oro y se bañan en sangre de unicornio.

d

#102 Lo de Go en Google se trata de un poco más que eso.

Es una respuesta natural al juicio de Oracle contra Google por Android.

Y, ciertamente, Go es un lenguaje diseñado por gigantes de la programación con unos conceptos muy buenos.

No he probado Rust, pero Go y Kotlin permiten hacer buenas cosas evitando la verborrea de Java.

Peazo_galgo

#41 "canviar"??? Mis hogos....

Sí, está claro que no eres de letras.... roll

cubaman

#11 Tú te refieres a los Java Applets. Si, eso lleva años descontinuado. Pero un montonazo de webs que visitas a diario usan Java en el lado del servidor para generar los datos o el HTML de esas páginas. Java sigue siendo un lenguaje muy popular en backend.

D

#58 Rust es equivalente a C/C++ en cuanto a rendimiento.

Java es más rápido que otros lenguajes de más alto nivel, incluído Go.

SaulBadman

#139 Yo diría que el propio Rust. Lo mismo que Apache puede ejecutar scripts de Perl, Python, o PHP, puede ejecutar un programa compilado hecho con Rust.

Total, el stdin y el stdout del programa van a estar redirigidos hacia el socket con el que se comunique Apache con el cliente.

lgg2

Rust lo veo muy "diplodocus" por tamaño de herramientas, verde por como está aún en cuanto a integracion con IDEs y depuradores y que no tenga aún una librería gráfica bien definidas a estas alturas.

También es bastante "caja negra donde opera la magia" con Cargo.

Vensier

#1 hay muchos lenguajes modernos que usan la máquina virtual de java, como kotlin, Scala, Apache Groovy o Clojure

c

Y qué tal aprender a programar y no contratar chapuceros?

M

#18 No está diciendo que C no sea o haya sido útil ni esté en desuso. Sólo dice que para el común de los mortales no hace tanta falta. Creo que el contexto del mensaje se entiende bien sin necesidad de sentirse ofendido.

PauMarí

#c-202" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3749542/order/202">#202 cuándo sea asíncrono "de verdad" podemos hablarlo pero de momento... (tampoco estoy tan metido en las últimas versiones pero, que yo sepa, todavía no lo és) A eso me refiero con lo de "proyectos nuevos", no ha hacer una app para Android (que en eso ya me pasé Kotlin) o un ERP (para entendernos).
Por ejemplo, donde trabajo se están metiendo en serio en tema de visión artificial en entornos web y han optado por C# (acertadamente o no, no lo sé, no estoy en el proyecto).

dalton1

#19 Sólo si Java dice que sí, es que sí.

R

#86 decías anteriormente que ninguna de esas empresas (incluyendo Amazon) montaría un backend usando Java, y luego has intentado compararlo con el uso de PHP en Facebook, que hace años reemplazó PHP por Hack y distintos lenguajes para backend

p

#55 Normalmente esas cosas se saben porque en muchas empresas hay blogs de desarrolladores, o también conferencias que se pueden ver online, donde los ingenieros hablan sobre las tecnologías que se usan en su empresa o cómo es su arquitectura. Un ejemplo de otra compañía que basó su aplicación en Java https://blog.linkedin.com/2008/06/24/linkedin-is-99-java-but-100-mac

Pero no he dicho en ningún lugar que en esas empresas sólo haya un monolito, sino que es la tecnología principal que se usa, sean microservicios u otra cosa.

K

#131 Efectivamente, te lo reconozco, has dicho exactamente "basadas en java", lo cual no implica exclusivamente. Aún así, y como he detallado un poco mas en #121 eso se atañe a desarrollos internos y en la medida de lo posible, pero que también se usan muchos productos de terceros, cada uno de su padre y de su madre.

j

#212 ya... Eso ya lo he dicho en #178

E

#25 La mayoría del backend de Netflix sigue escrito en Java

PauMarí

#113 lo que está claro es que soy catalán...

t

Pues yo opino justo lo contrario a la mayoria.

La NSA ya tiene sus backdoors, y lo que necesita es estabilidad en los programas, ya que los "malotes" son los que buscan los errores de memoria para poder acceder al sistema.

canduteria

Entonces c y c+ a saco. 

ochoceros

#3 Es como cuando te dice el del banco que inviertas en algo, hay que hacer exactamente lo mismo: Lo contrario.

Pacman

#9 andas liado, como dice #22
Y todas esas compañías están migrando a otras cosas.

Pacman

#9 como dicen algunos talibanes, si se mueve el ratón no estás programando lol

Pacman

#99 Rust, Kotlin, Go

Google, por ejemplo, dice que sólo va a usar Go
Es una pura acción empresarial, quieren que se expanda por razones obvias (es suyo), pero ya estas dejando atrás a otros, como al que tratamos ahora.

Pacman

#127 a ver, tienes algo de razón. Java (y javascrip) valen para lo que valen, pero tienen el lastre que tienen y por eso se les busca sustituir

Yo no he dicho que lo hiciera mejor ni peor, diferente seguro.

D

#107 Yo especificaría un poco más: que todo lo escrito en C "por programadores no suficientemente cualificados en seguridad programando en C y C++", es vulnerable a un buffer overflow. Yo creo que el problema es la ingente cantidad de rutinas, drivers y librerías que se escribieron desde una perspectiva de ahorro de líneas y memoria sacrificando la seguridad que ahora no siempre es posible corregir.

frg

#59 No se, git es importante, pero cualquier driver del kernel te puede tirar una máquina por una mala gestión de un puntero.

PauMarí

#9 eing? No estarás confundiendo Java con Javascript?

1 2 3