Hace 9 años | Por Amandy a medium.com
Publicado hace 9 años por Amandy a medium.com

Si eres informático, pero no por obligación sino de vocación, o te has planteado estudiar una carrera o un módulo de FP hazte un favor, no busques crear el siguiente Angry Birds o el siguiente Candy Crush. Cierra Visual Studio, Eclipse o Xcode y descarga un emulador de una vieja máquina como el Apple 1, o un mucho más evolucionado ZX Spectrum si no tienes tantas ganas y tiempo, y prueba a programar algo sencillo.

Comentarios

D

"Si eres informático, pero no por obligación sino de vocación, o te has planteado estudiar una carrera o un módulo de FP hazte un favor, no busques crear el siguiente Angry Birds o el siguiente Candy Crush. Cierra Visual Studio, Eclipse o Xcode y descarga un emulador de una vieja máquina como el Apple 1, o un mucho más evolucionado ZX Spectrum si no tienes tantas ganas y tiempo, y prueba a programar algo sencillo. "

Muchas veces lo he pensado. Plan9, o Linux/BSD con SDK de Spectrum para aprender.

Ahora, Plan9, C puro, Unix bien hecho, de la gente de UTF-8 y /proc.

Una gozada. Me la suda lo que digan en cla-se. Soy feliz, y aprendo. De verdad. Hasta los eggs de POSIX, de sistemas "diseñados bajo un comité", de complejidades, de cientos de configuraciones marcianas con una sintaxis demencial (XML te odio) y de cada vez más "features" hasta el extremo.

D

#6 Ay, qué pocos quedáis de esos.

D

#7 Qué se le va a hacer. En clase andamos con DHCPD y a veces los switches ni tiran

En virtual sí, lo cual es irónico pues nos piden prácticas en físico.

Y mejor no hablo de Linux y su modelo de "bazaar" donde en dos versiones cambia todo.

O el clusterfuck de PHP+XHTML+JS+MYSQL y el lenguaje de moda favorito de la *semana.*

Luego ves sistemas como plan9 (siento ser pesado) y descubres que no estamos más que metiendo capas sobre capa con un mantenimiento demencial.

D

#9 No se dónde andas, pero ciertamente considero un sinsentido no admitir una máquina virtual en ese nivel de evaluación. Vamos, que ni con patatas se come eso.

D

#13 Me refiero a que en clase tenemos los switches no tiran y hay que usar virtualbox para prácticas de DHCP

Me temo que tendré que usar vlan(1) de OpenBSD para implementarlos, porque vaya cachondeo ...

D

#13 Pero el quid está en que la informática se ha vuelto un "mercadillo". Coges cuatro tecnologías ya hechas, implementas un poco de aqui y allá y vendes tu producto.

No hay innovación, y cada vez veo más lenguajes de programación que son refritos de otros.

a

#15 Creo que estas juntando programación orientada a sistemas con programación orientada a gestión. Francamente no me veo usando de base de datos un sistema de ficheros.. lo he visto pero vamos, para eso están las bases de datos que son capaces de gestionar transacciones, impedir duplicidad de claves, securizar a su nivel, redundar, etc...

Yo no diría que los lenguajes "de moda" no evolucionan, a mi el mismo node.js me ha pillado por sorpresa, los ORM como Doctrine o Propel o Hibernate y ya no te digo monstruos como Rails, Django o Symfony, que conozco bien este último y es una pasada.

D

#16 Todo lo que comentas son casi infraestructuras para la web. Qué triste

editado:
Web of RDBMS .

Con el auge de las SSD veremos donde acaban tales diseños y sistemas.

Porque si hay algo que ha lastrado el diseño UNIX y su heredero plan9, es su gran dependencia en I/O.

a

#17 Es la programación que mas dinero crea... es decir, la que mas evoluciona. ¿Como mejoras la programación orientada a objetos sobre la actual de lenguajes activos?

D

#19 "Es la programación que mas dinero crea... es decir, la que mas evoluciona"

Cierto, por eso digo que és triste.

Al igual que auge de plataformas móviles con GHZ de CPU pero aún así se arrastran y son más lentos que un Amiga en su día para dibujar cosas similares.

D

#19 La programación que más dinero comercial crea no es la que más evoluciona. Craso error, mi amiguito.

D

#21 Cierto, de hecho tiende a ser una copia de sí misma por motivos comerciales, estáncándose en tecnologías y productos predefinidos. Sobre todo para gente sin muchos conocimientos tecnológicos pero en polos opuestos: Tu jefe y el cliente.

Evoluciona pero no "salta" del raíl, donde es necesario para evolucionar de verdad.

Como Mac OS9 a OSX.

GHZ, GHZ, GHZ y más resolución. Y más consumo de recursos. Y venga capas.

HTML5+JS+QT+X11+....
HTML5+JS+WEBKIT dentro de un programa hecho con COCOA...

Y así con todo.

Al final se necesita una CPU dual core para mostrar lo que mostraba un PC con 140 mhz con Mac OS9 o si me apuras, un Linux con 333 mhz en su día con Windowmaker.

Sí, la resolución, efectos y tal, pero una Geforce 2MX ya aceleraba cojonudamente 2D en su día.... juegos 2D a la misma resolución y con bastante más fluidez que ciertos efectos en los móviles.

a

#21 Bajo mi experiencia si, Linux se sigue levantando en C sin paliativos.. mi amiguito No me quejo, pero es lo que hay mientras la programación de gestión a cada rato recibe un nuevo "mesías". A mi esto último también me parece "cansino", pero también es lo que hay

#21 y #22 de todas formas no se donde está el problema, me parece normal que la programación no evolucione tanto teniendo en cuenta las soluciones que ya existen. ¿?

D

#24 "de todas formas no se donde está el problema, me parece normal que la programación no evolucione tanto teniendo en cuenta las soluciones que ya existen. ¿? "

Mmmm esa excusa no sé si me valdría en los tiempos del 286 antes de salir el 386 y el 486 arrasando a su paso con 32 bit

O el Pentium con las MMX en su día.

D

#24 "No me quejo, pero es lo que hay mientras la programación de gestión a cada rato recibe un nuevo "mesías".

Lo veo más "mode chupiway" comercialoide que otra cosa. A ver si estalla la burbuja y fomentan un sistema KISS universal. Se agradecerá.

a

#26 #27 en eso estoy de acuerdo con ambos. Por mi empresa he visto pasar desde Flex a Java pasando por Zend y CodeIgniter, todo para hacer lo mismo... hay scrips en perl, python, bash y php casi iguales. Un dia me dijeron mira Symfony, y al día siguiente puse un puño sobre la mesa y exclame: de aquí no me mueven! Y no me han movido lol

D

#22 Evolución versus Involución. Hacemos mentes creativas o hacemos comemierdas que paguen 699,99 por una superpatata tamaño extra y que se coman toda la mierda (pagándola) y sin capacidad crítica alguna, y encima nos votan porque controlo a los mass.

Yo lo veo claro.

Patocracia, creo recordar.

Aunque a mi edad, te juro que el tema me la trae floja

Edit cc/ #24

ED209

#6 #16 no os perdáis en el debate de siglas… en el fondo se trata de ingeniería y de usar la herramienta más adecuada para optimizar los resultados.
Puedes hacer un juego en asm x86? Sí? Sabiendo que a tu máquina la sobra recursos, lo lograrás tardando lo mismo que aquel que programa en C++?
El mejor ingeniero es el que mejor sabe usar sus herramientas para obtener la mejor solución considerando los recursos (tiempo, dinero).

D

#15 Del mismo modo que cualquier android limita y reduce tu hard a una tienda de compras, un windows cierra codigo y limita ya hasta permisos básicos de admin.
Es por lo que creo y estoy seguro que debemos salirnos de ese circuito.
¿Innovación? Eso no existe ahora mismo.

S

la informatica es un medio, no un fin. El progreso consiste en hacer la vida mas facil, no mas complicada para que unos cuantos hipsters o abuelos cebolletas esten contentos

anxosan

Sí... pero no.
En los coches actuales no conoces cómo funciona cada pieza como sí podía saber tu abuelo con su 600... pero son mejores.
En una radio actual, si la abres no sabrás para qué sirven y qué hacen sus componentes; como sí podría saber tu abuelo con su radio a válvulas... pero son mejores.
Con un teléfono, un televisor,... lo mismo.

Que la informática ya no necesite aprovechar hasta el último byte, y derroche; no la hace necesariamente peor, los esfuerzos se centran en otras cosas (usabilidad, aspecto gráfico, compatibilidad, etc.) y se hace así porque no es necesario lo otro. ¿O vas a ponerte a programar el Office en código máquina? (eso sí, por mi no te cortes)

D

#2 Si no sabes ASM no vas a poder depurarlo en condiciones en ningún lenguaje, sea compilado o interpretado. Esto es así.

Y te lo dice un futuro sysadmin pero que le gusta saber al menos lo mínimo en caso que haya que lanzar strace o comprobar mínimamente un programa y su error.

Si yo necesito esto, un programador ya ni te digo.

R

#1 #2 #3
Pues ya veis, la parte nostálgica igual lo hecha de menos, ¿pero es para ponerse así? Los que han hecho ingeniería informática (técnica incluida) obviamente han conocido y usado ensamblador (imagino que todos lo dan en 1º de carrera), al igual que habrán echo alguna ALU y cosas similares (aunque luego no lo uses para nada nunca o casi nunca lol, pero son fundamentos). Y como parte nostálgica lo entiendo, aunque una parte de mi quiere decirle:
Vale, haz un programa grande equivalente a los de hoy en día en ensamblador y yo con uno de los lenguajes "cutres y lentos como puede ser Java", ya no te digo quien acaba antes, pero a ver si te crees mejor que los procesos automáticos para convertir mi lenguaje en ensamblador y este a código maquina optimizandolo por el proceso (código de tres direcciones, etc.), ¿Cuál crees que tardara más al final en ejecutarse?

D

#30 "Tendrás que reconocer que visualmente Plan9 es una mierrrrrrrrda como un piano de grande. "

Visualmente.

Pero hablamos de la tecnología que hay detrás. Empezando por UTF-8 y pasando por /proc, amén de lo que le espera a GNU/Linux en breve

Tiene que ver con 9fs. Sí, lo implementa, pero bajo userland portado. Veréis cosas nativas que alucinaréis.

D

#33 Como te decía desconozco como funciona plan9, aunque por las cosas que dices puedo entender lo que hace con los procesos, la cpu, la memoria y la red. Supongo que lo que plan9 propone es un sistema operativo que gestione la máquina de forma distribuida y configurable en tiempo real. Una gran abstracción de hardware en definitiva. Por lo que he visto el 9fs al que haces referencia es un servicio de archivos a través de red. Quizá pudiera ser compatible con el CEF que yo decía, pues implementa webdriver a traves de un Wire Protocol. Cosa que hace que puedas crear instancias de navegador (sin marcos, decoraciones ni nada, solo el objeto) a través de la red.

Me resulta sumamente interesante a nivel informático técnico, pero a nivel de usuario... así presentado no.

a

No entiendo el artículo, en C mismo puedes programar ensamblador http://wiki.osdev.org/Inline_Assembly
Programar en alto nivel no deja de ser lo mismo pero mas sencillo para abarcar proyectos mas grandes
La informática ha pasado en poco tiempo de administrar la escasez a administrar la abundancia, un reto de adaptación realmente dificil
Prueba a crear una plataforma como FaceBook que tiene mas de 1.000.000.000 de usuarios

D

#3 No es lo mismo, si pruebas C en Plan9 y ASM en Z80 o el propio plan9, descubriras que C es eones más complejo para programar en ASM por tener que conocer las llamadas del sistema.

Si vas a bajo nivel, ASM a pelo, en serio. Se entiende mucho mejor.

Y viceversa. En plan9, programar en C es cientos de veces más facil que en Linux o Windows.

a

#8 lol Pues mejor aún si quieres complicarte la vida.

Soy de MIPS y ahí si que usábamos un emulador http://pages.cs.wisc.edu/~larus/spim.html

D

#10 "Pues mejor aún si quieres complicarte la vida."

Al contrario, Plan9 se diseñó para simplificarla

Ves sistemas como Venti, 9FS y clusters con ese sistema y te cagas vivo. Imagina pasar el /dev/ de un sistema operativo a otro, o prestarle la CPU, la RAM , la tarjeta de sonido (TODO) y los procesos... AL VUELO a otra máquina por red.

Eso se puede hacer con plan9 desde la primera instalación.

D

#10 http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
"Though interesting on their own, the design concepts of Plan 9 were supposed to be most useful when combined together. For example, to implement a network address translation (NAT) server, a union directory can be created, overlaying the router's /net directory tree with its own /net. Similarly, a virtual private network (VPN) can be implemented by overlaying in a union directory a /net hierarchy from a remote gateway, using secured 9P over the public Internet. A union directory with the /net hierarchy and filters can be used to sandbox an untrusted application or to implement a firewall.[14] In the same manner, a distributed computing network can be composed with a union directory of /proc hierarchies from remote hosts, which allows interacting with them as if they are local.

When used together, these features allow for assembling a complex distributed computing environment by reusing the existing hierarchical name system"

10 años adelantados al futuro.

Esto tendría que ser el futuro, esto, y no node.js .

D

#12 Tendrás que reconocer que visualmente Plan9 es una mierrrrrrrrda como un piano de grande. http://img.linuxexpres.cz/2007/03/plan9/1.png

Plan9 no es el futuro, quizá los conceptos en los que se basa si, no lo se pues los desconozco. Pero Plan9 no reemplazará a Windows, OSX, Linux, ChromeOS/Android nunca.

La verdad es que eres el tipo de pavo que me gustaría tener al lado, del que poder nutrirme, pues aunque creo que erras el tiro en tu visión en ciertos puntos, por regla general hablas de conceptos fundamentales como KISS así que es dificil que estés equivocado

Respecto a la evolución de la informática, bueno, la informática no la evoluciona el chavalito que escribe javascript, sino los físicos, químicos y matemáticos de intel, ibm, google... Además de científicos como mi gran admirada Barbara Liskov, O gentes tan visionarios como Linus Torvalds, que todavía estoy asobrado desde que creó GIT. Cabe recordar que la informática es la ciencia de la automatización que estudia métodos, procesos, técnicas, con el fin de almacenar, procesar y transmitir información y datos en formato digital. Los lenguajes de programación sólo son una herramienta apropiada al dominio de un problema concreto. Si pretendes programar un juego de última generación en ASM te darás cuenta jeje.

Respecto a las capas... Es un problema en C++ y a la vez la solución (yo creo) pues c++ no incluye por defecto librerias de interfaz gráfica. Que lo mismo puedes usar GTK+ que WinAPI, QT, Ogre... Pero a mi me gusta la idea de usar CEF (https://code.google.com/p/chromiumembedded/). De forma que consigues webs que realmente son aplicaciones nativas.

D

#12 Me olvidaba de http://www.awesomium.com/ -> C++/HTML5/CSS

r

Para que usar lavadoras? Joder, acércate a un rió y usa dos piedras! Veras que divertido y difícil era en aquellos tiempos. La facilidad que tiene hoy la programación, ayuda a la gente que no quiere perder la mayoría del tiempo programando, para dedicarlo a expresar su imaginación.