Antes de entrar afirmaciones erradas de
alguna manera, te recomiendo probar distintos lenguajes, nosotros te podemos decir X, Y, Z lenguaje pero la vdd eso lo vas a decidir TU, con el que te acomodes y sea mejor. la vdd yo no te recomendaria Java ni .NET, debido a que son leeentos en procesamiento hasta mi punto de vista y debido a que no les he sacado mucho su jugo, esta claro que son buenos tienen lo suyo pero te dan malas practicas como programador en mi consideracion, es lo mismo con vb y cualquier lenguaje de alto nivel... esta bien que los conoscas y veas sus PRO y CONTRAS.
Mi recomendacion: C/C++ Java, .net (TODOS los lenguajes incorporados y la plataforma en si), Basic (cualquier derivacion)...
Ahora si vamos a lo nuestro:
Yo te recomiendo Visual basic 6.0 es fácil y tiene (para mi y para muchos) la misma capacidad de hacer los mismo programas QUE CUALQUIER OTRO LENGUAJE y mucho mas rápido.
He usado bastante VB como para decirte que NO; No es rapido en algunas cuestiones, Hay trucos para acercarse mucho a la velocidad de C/C++ pero dependes mucho de APIS como
RtlMoveMemory y de el tipo de dato long (esto lo uso para los retos de velocidad en vb6, que se publican en el subforo de VB).
* Carece de punteros reales ( los puedes simular pero Dependes del API
RtlMoveMemory ).
* Barrido de bits... (en VB a fuerzas debes multiplicar o dividir...).
* Heredacion (en si en vb6 TODO ereda de el tipo Object, pero no se puede heredar de otra lado...).
* Otras cosillas...
VB no es malo salvo lo que ya cite... y si tu algoritmo es malo o bueno lo puedes escribir donde quieras pero eso si si sabes algunos trucos para la velocidad en este lenguaje u otro puedes hacercarte a la velocidad de C/C++... almenos que tu algoritmo sea mas eficiente que el que esta escrito en C/C++...
Primera mentira; a parte de que Visual Basic es un lenguaje totalmente obsoleto, ya me gustaría ver un sistema operativo desarrollado en Visual Basic, que lógicamente no se puede.
Como visualbasic viene de una vertiente del Basic... Entonces pondre lo siguiente:
"me escupo a mi mismo"En Basic SI SE PUEDEN crear
S.O.,
Microcontroladores,
Drivers, etc...
Aqui te dejo un S.O. super pequeño("Hello World") en FreeBasic (Lenguaje Basic + ASM inline):
kernel.bas
DECLARE SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
DECLARE SUB main ()
SUB multiboot ()
Asm
.set ALIGN, 1<<0
.set MEMINFO, 1<<1
.set FLAGS, ALIGN | MEMINFO
.set MAGIC, 0x1BADB002
.set CHECKSUM, -(MAGIC + FLAGS)
.align 4
.LONG MAGIC
.LONG FLAGS
.LONG CHECKSUM
.set STACKSIZE, 0x4000
.comm stack, STACKSIZE, 32
.global loader
loader:
lea esp, stack + STACKSIZE
push eax
push ebx
CALL MAIN
cli
hlt
END Asm
END SUB
SUB main ()
CONST s = "Hello World"
PrintString CPtr(Byte Ptr, @s), 35, 12
END SUB
SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
DIM dst AS Byte Ptr
DIM counter AS LONG
dst = CPtr(Byte Ptr, &HB8000 + y * 160 + x * 2)
counter = 0
WHILE src[counter] <> 0
dst[2 * counter] = src[counter]
dst[2 * counter + 1] = 15
counter = counter + 1
WEND
END SUB
link.ld
OUTPUT_FORMAT("elf32-i386")
ENTRY (loader)
SECTIONS{
. = 0x00100000;
.text :{
KERNEL_START = .;
*(.text)
}
.rodata ALIGN (0x1000) : {
*(.rodata)
_CTORS = .;
*(.ctors)
_CTORS_END = .;
}
.data ALIGN (0x1000) : {
*(.data)
}
.bss : {
SBSS = .;
*(COMMON)
*(.bss)
EBSS = .;
KERNEL_END = .;
}
}
Para construir el pequeño S.O.:
fbc -c kernel.bas -o kernel.o
i586-elf-ld -T link.ld -o kernel.bin kernel.o
Temibles Lunas!¡.