Máxima tensión entre desarrolladores de Linux por el enfrentamiento C vs. Rust: Linus Torvalds ve un «tono casi religioso» en el debate

0
2

Uno
de
los
debates
más
candentes
ahora
mismo
en
el
mundo
del
desarrollo
de
software
gira
en
torno
a
los
dos
lenguajes
que
permiten
dar
forma
al
kernel
de
Linux:
el
venerable
C
y
el

prometedor

Rust.
Por
supuesto,
el
enfrentamiento
entre
ambos

no
ha
surgido
en
el
seno
del
famoso
proyecto

de
software
libre…
pero

está
empezando
a
pasarle
factura
a
este
último
.

Por
ello,
Linus
Torvalds,
creador
de
Linux
y
responsable
del
mantenimiento
de
su
kernel,
quiso
abordar
el
asunto
hace
unos
días
y
definió
la
creciente
tensión
entre
los
desarrolladores
de
C
y
Rust
como

una
controversia «casi
con
tonos
de
guerra
religiosa»
.

Pero,
¿por
qué
se
ha
planteado
realmente
en
este
debate?
¿Es
solo
una
cuestión
técnica,
o
hay
factores
culturales
más
profundos
que
alimentan
esta
disputa?

La
carrera
de
programador
en
2017
y
en
el
futuro
(con
Javier
Santana)

El
origen
del
conflicto


La
inclusión
de
Rust
como
lenguaje
de
desarrollo
en
el
kernel
de
Linux

fue
una
iniciativa
que
se
puso
en
marcha
hace
más
de
tres
años,
impulsada
por
los
apoyos
con
que
contaba
este
nuevo
lenguaje
a
causa
de
sus
ventajas
en
términos
de
seguridad
de
memoria.
Sin
embargo,
lo
que
comenzó
como
un
debate
técnico
rápidamente

se
transformó
en
un
choque
cultural
.

Torvalds
ha
comparado
este
conflicto
con
las
antiguas «guerras
de
editores»
entre

Vi

y

Emacs
,
donde
las

preferencias
por
herramientas
se
convirtieron
en
cuestiones
casi
de ‘nacionalismo
de
software’

(mis
palabras,
no
las
de
Linus)
para
los
desarrolladores.

«Creo
que
realmente
lo
disfruto.
Disfruto
de
las
discusiones.
Creo
que
una
de
las
cosas
buenas
de
Rust
ha
sido
cómo
ha
animado
algunas
de
las
discusiones,
y
algunas
de
las
discusiones
se
vuelvan
desagradables…
creo
que
es
una
demostración
cuánto
le
importa
el
tema
a
la
gente.
Por
otra
parte,
no
estoy
muy
seguro
de
por
qué
Rust
ha
sido
un
asunto
tan
polémico
[…]
por
alguna
razón,
toda
la
discusión
de
Rust
versus
C
ha
tomado
connotaciones
casi
religiosas
en
ciertas
áreas».

El
conflicto
reciente
estalló
hace
unos
días,

cuando
uno
de
los
mantenedores
del
kernel
abandonó
el
proyecto
tras
varias
discusiones

relacionadas
con
la
adaptación
de
un
complemento
de
C
para
Rust.

El
español
Miguel
Ojeda
era
el
máximo
responsable
de
la
integración
de
Rust
en
Linux
,
y
su
dimisión
no
hace
sino
resaltar
el
impacto
de
este
debate.
Se
despedía
con
un
e-mail
que
venía
a
decir
cosas
como
esta:

«Me
retiro
del
proyecto.
Después
de
casi
cuatro
años,
me
falta
la
energía
y
el
entusiasmo
que
tenía
antes
para
responder
a
ciertas
tonterías
no-técnicas,
así
que
es
mejor
dejarlo
en
manos
de
quienes
aún
lo
tienen».

«Al
equipo
de
Rust
para
Linux:
gracias,
sois
geniales.
Fue
un
placer
trabajar
con
todos
vosotros;
los
momentos
que
pasamos
discutiendo
cuestiones
técnicas,
buscando
formas
de
solucionar
problemas
de
solidez,
etc.,
fueron
algo
que
siempre
disfruté
y
esperé
con
ansias.
Me
considero
afortunado
de
haber
colaborado
con
un
grupo
tan
talentoso
y
amistoso».

«Deseo
mucho
éxito
al
proyecto.
Creo
sinceramente
que
el
futuro
de
los
núcleos
está
en
los
lenguajes
que
protegen
la
memoria.
No
soy
ningún
visionario,
pero
si
Linux
no
lo
internaliza,
me
temo
que
algún
otro
núcleo
le
hará
lo
mismo
que
le
hizo
a
Unix».

Es
decir,
lo
barrerá
del
mapa
convirtiéndose
en
su
heredero.
Ya
hay
gente

intentándolo
.

Las
razones
de
ambos
bandos

A
nivel
técnico,
las
diferencias
entre
C
y
Rust
son

sustanciales
.
C,
desarrollado
en
la
década
de
1970,
es
un
lenguaje
que
ha
sido
fundamental
para
el
desarrollo
de
sistemas
operativos
debido
a
su
control
total
sobre
los
recursos
de
la
máquina.
No
obstante,

esa
simplicidad
también
hace
que
se
lo
considere
propenso
a
errores
peligrosos

como
desbordamientos
de
memoria
y
fallos
de
seguridad
que
pueden
ser
explotados.

C
sigue
siendo
el
lenguaje
predominante,
y
su
simplicidad,
combinada
con
décadas
de
uso
y
optimización,
lo
mantienen
como
la
opción
preferida
para
muchos

Por
otro
lado,
Rust

ha
sido
diseñado
desde
sus
cimientos
para
prevenir
estos
problemas

a
través
de
su
modelo
de
seguridad
de
memoria,
lo
que
lo
convierte
en
un
fuerte
candidato
para
sustituir
a
C
en
algunas
áreas
críticas
del
kernel
de
Linux. 

Sin
embargo,

Rust
también
ofrece
una
barrera
de
entrada
más
alta
:
es
más
difícil
de
aprender
y
dominar
en
comparación
con
C,
lo
que
ha
generado
resistencia
entre
los
desarrolladores
que
llevan
décadas
trabajando
con
C.
Muchos
desarrolladores
de
este
lenguaje
sienten
que
su
territorio
está
siendo
invadido
por
un
lenguaje
que,
aunque
más
seguro,

aún
no
ha
demostrado
completamente
su
capacidad
para
reemplazar
a
C

en
sistemas
operativos
de
misión
crítica.

A
pesar
de
las
claras
ventajas
de
Rust
en
cuanto
a
seguridad,
Torvalds
ha
dejado
claro
que
esto

no
son
suficientes
para
convertirlo
automáticamente
en
el
lenguaje
dominante

dentro
del
desarrollo
del
kernel.
Sin
embargo,
y
a
pesar
de
las
resistencias,

Torvalds
sigue
siendo
optimista

en
lo
que
respecta
a
la
integración
de
Rust
en
el
kernel
de
Linux,
y
afirma
que
incluso
si
la
experimentación
con
Rust
no
tuviera
éxito,
es
una
oportunidad
de
aprendizaje
valiosa.

Vía
|

The
New
Stack

Imagen
|
Marcos
Merino
mediante
IA

En
Genbeta
|

Hay
quien
opina
que
C
ya
no
es
un
lenguaje
de
programación
(otros
se
conforman
con
decir
que
no
es
un
lenguaje
de
bajo
nivel)