Complicado

Se entiende que algo es complicado cuando no somos capaces de asimilar su concepto.

Lo que es complicado para unos, no lo es para otros. La madre de eckelon no reemplazará Access por MySQL porque es muy complicado.

Hay otro concepto es el de inapropiado, cuando algo no se adecua a lo que necesitamos. Por ejemplo, cuando intentamos clavar un tornillo con un nivel. Yo no usaré Access en mis proyectos porque es inapropiado.

Si mezclamos ambos conceptos, obtenemos el uso de «complicado» en la dialéctica de ser cool y hablar de lo que no se sabe. Que básicamente significa «Me pareció lo suficientemente complejo como para pasar de aprender a usarlo de la manera apropiada».

Por ello me río cuando Josh me dice hoy que «Swing es complicado» sólo porque no se basa en poner x, y, weight, height y dock. Swing no ha sido diseñado para usarlo así.

Un comentario de Josh es inocuo, ya que es puro troleamiento hacia mi persona. Sin embargo, me cago en la cantidad de «informáticos» a los que todo les parece «complicado» y lo gritan a los cuatro vientos.

Me cago en esos que empezaron los estudios de informática porque no había que estudiar, porque te enseñan a hacer videojuegos, porque iba a haber mucho trabajo, o porque sabían usar el word.

Me cago porque ellos hacen mi existencia complicada.

Destapando las Vergüenzas

Uno de los mayores mitos mientras aprendes a programar es que los elementos privados son inaccesibles, y por ello seguros. Esto es aplicable sólo a lenguajes orientados a objetos con elementos privados, como java.

Así ves a una cantidad enorme de aspirantes a programador que gastan la mitad del tiempo pensando cómo hacer un código blindado frente ataques. Aunque ninguno sabe de qué ataques se defiende, o qué implicaciones tiene privatizar o publicar algo.

Sin embargo, no es más que una sensación de falsa seguridad. Tenemos herramientas en el lenguaje para acceder a estos campos. En Java, por ejemplo, tenemos la siguiente clase:


public class Secreto {
	private int miSecreto = 5;
}

Podemos acceder a ese valor así:


import java.lang.reflect.Field;

public class Ganzua {
	public static void main(String[] args) throws Exception {
		Secreto secreto = new Secreto();
		Field campo = Secreto.class.getDeclaredField("miSecreto");
		campo.setAccessible(true);
		System.out.println(campo.getName() + " = " + campo.get(secreto));
	}
}

Hoy lo he hablado Pablo, mi compañero de habitación en warp. En Python no hay nada privado, siguen el «somos todos adultos», permitiendo al programador usar algo delicado.

Tampoco creo que eso sea lo mejor. Tiene que haber cosas privadas para marcar lo que no tiene importancia en el exterior. Si no tiene importancia no es mostrado ni en la documentación, ni en los autocompletados. De esta manera agilizas la programación.