Lenguaje de programacion productivo, rapido, que sirva para crear un OS y más

Iniciado por zantgo, 19 Marzo 2012, 23:15 PM

0 Miembros y 1 Visitante están viendo este tema.

zantgo

Bueno la cosa es que quiero crear un sistema operativo en el futuro (una vez que haya aprendido a programar bien), y queiro aprender un lenguaje de programcion "perfecto", quiero que con el pueda hacer desde los drivers, el kernel y todo lo relacionado con el hardware hasta las conexxiones de internet sistema de escritorio, etc...

Quiero que sea rapido, seguro y productivo (me refiero a que no me demore tanto en hacer el codigo, que las cosas que no sea necesario modificar tanto las pueda hacer rapido, me quiero demorar lo mas poco posible).

Tambien me gustaria poder ocuparlo para desarrollo web, pero creo que no hay un lenguaje tan universal.

He estado leeiendo bastante los ultimos dias, pero no puedo encontrar ninguno, habia encontrado ruby, que me digieron que era mas rapido que el lento java, pero que me sirviria para comunicarme mas con el hardware, como con un kernel.

Java he leido que es lento

C es muy anticuado al no ser basado en objeto

Python y perl lo mismo que ruby

Assambled, ya no es necesario, para eso ocupo C

C++; este era el que mas me convense, pero creo que no debe ser muy productivo, ya que para hacer el clasico "hola mundo", me toma mucho mas lineas de codigo que ruby por ejemplo.

Sobre si lo deseo compliado o interpretado, el problema es que he leido que los interpretados son lentos, pero tambien que ruby 1.9.x era muy rapido, es comparable con un lenguaje compilado?

Estas son las cosas que yo creo saber, si me equivoco por favor corrigirme.

Gracias de antemano por responder Zantgo :)

PD: tambien quiero ver si puedo ocupar logtalk, podre?

Lerinor

Mi consejo ... Relájate amigo!

Edito: A parte de relajarte, estudia primero lo básico ... ¿Qué es un lenguaje de programación?,¿Qué tipos existen?,¿Qué es un SO (xD, parece ser que no lo tienes muy claro)?,¿Cómo se estructura un SO?,¿Cuales son los hilos de comunicación entre SO y Hardware (Lenguaje máquina, 1º nivel, etc? y tío un larguísimo etc...
A todo esto, ¿Qué edad tienes? xD creo que hay observaré la causa de tus preguntas.

Saludos...
"No llores por que el Sol se oculte, pues las lágrimas no te dejaran ver las estrellas" -- "Cogito ergo sum"

zantgo

Si se lo que es un sistema operativo, he usado la mayori de los BSDs y estoy haciendo LFS para ver mas o menos como seria crear un OS propio.

Pero no puedo eleguir el lenguaje de programacion on cual escribirlo, se todo lo basico, pero la verdad es que estoy entre C++ y Logtalk, xq el resto segun se son lentos, aunque no se si ruby sea una exepcion dentro de los interpretados.

Tambien se que Logtalk no es para eso, pero se que es orientado a objeto, y que es compilado, por ende creo posible programar un OS en el.

Di~OsK

Te recomiendo el lenguaje del sapo violao: batch

Saludos y éxito!
Necesitas un servidor de TeamSpeak? Un certificado SSL? MANDA MP

zantgo

Creo que un buen lenguaje para todo esto es Haskell, en Wikipedia dice que es de medio nivel, que creo?, algún defecto?

raul338

El nivel de programacion no lo define si es bueno o no.

Si quieres crear un so de la nada no tenes otra forma que con C y Asm para los drivers, de ahi implementas alguna plataforma y saltas al lenguaje que quieras. Mira que es largo y tedioso aun siendo teorico para una sola persona....

Para que te des una idea, android esta hecho en java y c

Linux, bsd y windows en c - c++

Y muchos mas en c :P

y que tiene que ver que sea viejo? :xD

Khronos14

A ver, vamos por partes. Lo primero, es que con un lenguaje script no puedes programar un kernel (si no sabes lo que es, no sigas leyendo...). Hablas de ruby como si fuera un dios, y es de los lenguajes scripts más lentos... (hay que destacar que es más nuevo que los otros)

Por lo que tengo leído el más rápido de todos es python. Sería algo así: Python > Perl > PHP > Ruby...

Java necesita una máquina virtual para funcionar. La más conocida es la Java Virtual Machine de Sun (ahora de Oracle) y recientemente está la máquina virtual Dalvik de Android.

Assembler es fundamental para programar un kernel, después para programar ciertas partes del kernel puedes usar otros lenguajes como C, C++, Pascal, pero siempre lenguajes compilados. Una vez tengas hecho el kernel, podrías programar un intérprete de algún lenguaje script o utilizar una máquina virtual, lo segundo es muy viable y de hecho lo hace Android.

Citar
Si quieres crear un so de la nada no tenes otra forma que con C y Asm para los drivers, de ahi implementas alguna plataforma y saltas al lenguaje que quieras. Mira que es largo y tedioso aun siendo teorico para una sola persona....

Puedes hacer el kernel en ASM puro o ASM y Pascal (los Mac OS viejos estaban programados en Pascal).. no tiene porqué ser C y ASM a la fuerza.

Citar
Para que te des una idea, android esta hecho en java y c

Android es un Sistema Operativo con el kernel Linux programado en C y ASM. La máquina virtual Dalvik debe de estar programada en C y ASM, por el tiempo que les llevó portarla a la plataforma x86. Después, con Java llamas a la API del sistema Android.

Saludos.




heartless82

yo alguna vez tuve esa inquietud y tengo bases de programacion de un os , por lo que veo no tienes experiencia ni idea de lo que implica pero no te desanimes , existen varios libros sobre el tema , no recuerdo el nombre exacto solo al autor Andrew S. Tanenbaum  en el cual podras darte una idea , a partir de tu inquietud y lo que yo pude aprender el lenguaje C Y EL C++ son los padres de muchos de los OS de hoy en dia windows , unix , minix y linux tienen su kernel escrito en su gran mayoria en estos lenguajes , Android fue creado a partir de codigo de Linux y java en si es un pseudolenguaje el cual no correra si no es en su propia maquina virtual asi que antes de programar algo en java necesitarias programar el kernel haciendo que soporte esta maquina virtual o basado en la misma , java en si tiene mucho de las sintaxis de c y c++ , otro planteamiento seria el plantear en que arquitectura correria tu OS , si manejaras particiones de disco y formateos , si correra en procesadores x86 , x64 , arm , manejando multiples nucleos , yo diria que un buen inicio seria que leyeras el libro de tanenbaum y entendieras de lo que se trata , como referencia te recomiendo que compres el libro original ya que este contiene un cd con ejemplos y codigo fuente del SO que el mismo tanenbaum creo llamado minix y en el cual se baso linus torvalds , otros temas que te pueden ayudar es ver la programacion de videojuegos en c ya que en base a librerias existentes y a travez de ejemplos mas familiarizables podras crear un micro SO , ya que de hecho muchos juegos son algo similar

[Case]

Creo yo que para programar un SO, aparte de una gran cantidad de conceptos que necesitas, necesitas experiencia programando, y eso solamente se consigue resolviendo pequeños ejercidos de programación, conociendo otros lenguajes y paradigmas de programación, así como en cierta medida saber un poco de la teoría de los lenguajes de programación.
No solamente llegar con uno y resolver todo como lo estas planteando.

armizh

Creo que el lenguaje que buscas se puede llamar "el anticuado C" o "el dificilisimo C++"... No, enserio! Se de lo que hablo, con Ruby no haras un SO, aprende C/C++, ASM y podrias crear todo tu sistema (Si lees muchisimo, te informas y aprendes).
Solo observa:
Mi proyecto de SO: http://armizh.10h.us/ https://github.com/armizh/Fnx
El SO en el que me base: http://www.freenos.org/
Con este proyecto he aprendido como funciona un verdadero SO, mas simple que Linux, pero lo suficientemente completo (o almenos para alla lo llevo).
Por cierto, he leido que se pueden crear sistemas operativos con D! Pero por ahora no dejo a mi fiel amigo C y mi nuevo compañero C++ x3
No es por tirarte para abajo, pero necesitaras aprender C/C++ (Hay varios lenguajes mas para sistemas operativos y cosas por el estilo, como Objective-C, pero encontraras mas informacion para C/C++). Si te interesa, revisa el código de Fnx que esta mas actualizado que el de FreeNOS y veras que no es dificil C++.

Saludos! :3
Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Hamster