HispaLUG

El foro LUGnático => Technic & Mindstorms => Mensaje iniciado por: luxman en 18 de Febrero de 2008, 21:32:10 PM

Encuesta
Pregunta: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Opción 1: OSEK Lejos C/C++ votos: 7
Opción 2: Lejos Java votos: 6
Opción 3: NXC votos: 3
Opción 4: NXT-G votos: 2
Opción 5: RobotC votos: 2
Título: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 18 de Febrero de 2008, 21:32:10 PM
¿Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: arrikitawn en 18 de Febrero de 2008, 21:36:34 PM
viendo esta encuesta, pienso y concluyo que mindstorms es como programacion orientada a LEGO, no es verdad?

es decir, que con unos programas hago que un robot, por ejemplo haga unas cosas u otras??

esto es increible...

si mis deducciones son erradas, hacedmelo saber...

saludos
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 18 de Febrero de 2008, 23:36:08 PM
Sí, así es, puedes programarle comportamientos.

Mindstorms (https://shop.lego.com/ByTheme/Leaf.aspx?cn=17&d=70) es una línea de productos Lego en la cual NXT es el último producto/caja, anteriormente RCX.

Una de cuyos elementos es una pieza Lego que incluye un microcontrolador programable :)
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Silvestre7109 en 18 de Febrero de 2008, 23:48:56 PM
...TODOS... lo que pasa siempre..no tengo tiempo para dedicarme a construir...  y menos  para lanzarme a estudiar un lenguaje de programación... una lástima... pero algún día daré el salto a mindstorm's
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jetro en 18 de Febrero de 2008, 23:55:38 PM
Mindstorms nació de la línea de Technic que fue incorporando elementos de control como el Control Center 1 y 2 (8094 y 8485) o el CodePilot (8479). Posteriormente ha llegado a incluir todo tipo de ladrillos programables: Cybermaster, Spybots, los Microscout que salieron en dos sets de SW, el RCX, el NXT y alguno(s) mas.

Ademas de poder construir un modelo, ahora lo puedes dotar de unos comportamientos autónomos que especialmente en el caso del NXT y RCX pueden ser muy complejos (aunque el spybot tiene también unas posibilidades muy ámplias el hecho de que lleve los motores y sensores incorporados lo hace bastante menos versatil).
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jetro en 19 de Febrero de 2008, 00:03:41 AM
En cuanto a la elección del lenguaje...

Por mi aprendería todos, pero como bien  dice Silvestre, me falta tiempo.
Por eso creo que lo mas práctico es aprender un lenguaje de amplia implementación en el mundo LEGO y bastante específico para las funciones necesarias.

Por desgracia NXT-G tiene unos cuantos problemas (no ha resultado ser ni mucho menos tan bueno como RoboLab - opción que 'falta') - pero la idea de lenguaje pictorico (por iconos) es muy interesante.

Para programadores (semi)profesionales puede que lenguajes como Java y C sean opciones muy interesantes, pero para un novato sin mucha idea creo que NXC es una opción buenísima.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: g2bricks en 19 de Febrero de 2008, 10:27:40 AM
Estoy con Jetro.

NXT-G está muy bien como lenguaje didáctico. Pero para un programador hábido NXT-G se queda muy corto. A mi personalmente me gustan los lenguajes orientados a objeto. 

La potencia y posibilidades las tienes Java, C#, C++... (lenguajes orientados a objeto). Si uno quiere dar el salto desde NXT-G a la programación en código recomiendo que empiece po Visual Basic o C y deje los lenguajes orientado a objeto para más tarde, porque puede acabar con la ilusión muy rápido. Mejor aprender paso a paso.

saludos...
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: IgLorenzo en 19 de Febrero de 2008, 10:32:17 AM
Yo he votado por Lejos. Debo entrar en la categoría de los semi-profesionales que apunta Jetro (aunque cada vez menos) y ya sé algo de Java, así que espero que me resulte fácil y espero que sea bastante potente. Lo que me va a faltar, aparte de tiempo, es habilidad técnica para hacer cosas chulas, pero voluntad hay.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 19 de Febrero de 2008, 11:44:30 AM
Creo que es la cuestión es procurar una curva de aprendizaje suave. Esto se puede conseguir empezando con cualquier lenguaje. La ventaja de unos respecto otros es que con algunos se puede llegar más lejos, y perdón por el juego de palabras :)

Con llegar más lejos me refiero a aprender más o conseguir programas más sofisticados.

Una comparación sencilla, el típico programa hola mundo.

En Java sería algo así como:

import lejos.nxt.*;

public class HelloWorld2
{
  public static void main (String[] aArg) throws Exception   
  {
     LCD.drawString("Hola Mundo",3,4);
     Thread.sleep(2000);
  }
}   


Y con NXC sería, por ejemplo:

task main()
{
    TextOut(0, 10, "Hola, Mundo");
    Wait(1000);
}


Efectivamente, en Java hay algunas líneas más y unos "puntos" más. Pero inicialmente uno se puede centrar en el main y no crear otras clases, simplemente utilizar la clase principal.

¿Qué creéis vosotros? Especialmente los que hayáis probado Lejos Java y lo hayáis visto complicado.

Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: g2bricks en 19 de Febrero de 2008, 12:39:27 PM
Que conste que no pongo en duda Java, porque me parece una pasada. De hecho me encanta.

Pero si uno se va a centrar en la función main y poco más... ¿para que utilizar un lenguaje orientado a objeto? Entonces C o lenguajes similares facilita el aprendizaje y evita la confusión (acordoras de LOGO o BASIC), sobre todo en entornos didácticos con jóvenes menores de 18 años. Java da una potencia increible al brick, pero conozco malas experiencias de gente que han acabo odiando la programación por no empezar adecuadamente... una pena.

Los "puntos" y "classes" que comentas pueden generar confusión, y sobre todo, frustración porque inducen a errores en gente que empieza y se salta un escalón en la "curva de aprendizaje" que se ha comentado.



Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: pulipuli en 19 de Febrero de 2008, 12:47:54 PM
C++ Java, a mi gusto tanto monta monta tanto, aunque para dar un juicio de valor como dios manda me gustaría conocer un poco más los distintos entornos :guino:
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 19 de Febrero de 2008, 12:59:19 PM
Cita de: g2bricks en 19 de Febrero de 2008, 12:39:27 PM
Que conste que no pongo en duda Java, porque me parece una pasada. De hecho me encanta.

Pero si uno se va a centrar en la función main y poco más... ¿para que utilizar un lenguaje orientado a objeto? Entonces C o lenguajes similares facilita el aprendizaje y evita la confusión (acordoras de LOGO o BASIC),

La palabra clave es inicialmente: "inicialmente uno se puede centrar en el main y no crear otras clases" :)

Cita de: g2bricks en 19 de Febrero de 2008, 12:39:27 PM
sobre todo en entornos didácticos con jóvenes menores de 18 años. Java da una potencia increible al brick, pero conozco malas experiencias de gente que han acabo odiando la programación por no empezar adecuadamente... una pena.

Jejeje, eso me ha pasado a mí, pero no en programación... Pero el problema es la forma de aprender, no el asunto sobre el que se aprende.

Cita de: g2bricks en 19 de Febrero de 2008, 12:39:27 PM
Los "puntos" y "classes" que comentas pueden generar confusión, y sobre todo, frustración porque inducen a errores en gente que empieza y se salta un escalón en la "curva de aprendizaje" que se ha comentado.

Visual Basic (antes de ser .Net) tradicionalmente se ha considerado un lenguaje muy sencillo de aprender y estaba basado en objetos.

Pero bueno, en esto hay muy distintas opiniones. Hay especialistas en desarrollo de software y su enseñanza que creen que es mejor empezar directamente con orientación a objetos y otros que es mejor empezar con programación estructurada y posteriormente introducir la orientación a objetos.

Luego viene la cuestión de qué lenguaje utilizar... :guino:

Es un terreno abonado para la polémica ::)

Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: g2bricks en 19 de Febrero de 2008, 15:52:06 PM
Cita de: luxman en 19 de Febrero de 2008, 12:59:19 PM
Visual Basic (antes de ser .Net) tradicionalmente se ha considerado un lenguaje muy sencillo de aprender y estaba basado en objetos.

RECUERDA: Visual Basic (hasta 6.0) estaba basado en formulario, no en objeto. VB .NET si está basado objeto, por eso tuvieron que cambiar la sintaxis. Pero yo en esa respuesta citaba LOGO y BASIC (el viejo) no Visual Basic. 

Echo de menos una implementación de estos ambos para RCX y NXT. LOGO y BASIC no son tan visuales como NXT-G, pero posibilitan el inicio a algoritmos escrito en código. De una forma más sencilla . Igual ya existen, aunque creo recordar haber visto en internet una implementación de la tortuga de LOGO para el RCX (no estoy seguro al 100%). Ambos lenguajes son geniales, a mi enteder, para entornos didácticos (se han usado ampliamente en escuelas de primeria y secundaria). Creo a ver visto una implementación de la tortuga de logo en RCX.

Como tu bien dices, y ahí esta la clave, el método de aprendizaje es la clave. Pero el uso de una herramienta demasiado sofisticada (o que no vas a enseñar al 100%) en enseñanza puede llevar al traste el tema que se enseña.
Para mi, creo, que es mejor dominar algo sencillo al 100% que algo sofisticado al 50%.

Creo que el debate es interesante sobre todo debido al uso didáctico que tiene Mindstorm.

Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 19 de Febrero de 2008, 17:51:57 PM
Cita de: g2bricks en 19 de Febrero de 2008, 15:52:06 PM
Cita de: luxman en 19 de Febrero de 2008, 12:59:19 PM
Visual Basic (antes de ser .Net) tradicionalmente se ha considerado un lenguaje muy sencillo de aprender y estaba basado en objetos.

RECUERDA: Visual Basic (hasta 6.0) estaba basado en formulario, no en objeto. VB .NET si está basado objeto, por eso tuvieron que cambiar la sintaxis. Pero yo en esa respuesta citaba LOGO y BASIC (el viejo) no Visual Basic. 


Sí exacto. Por eso decía que el antiguo Visual Basic era basado en objetos (permite utilizar objetos existentes pero el lenguaje no permite crear clases/objetos con encapsulación, herencia y polimorfismo) pero  no orientado a objetos (el lenguaje permite crear clases/objetos con dichas tres caracterísicas fundamentales). El actual Visual Basic.Net es orientado a objetos.

Cita de: g2bricks en 19 de Febrero de 2008, 15:52:06 PM

Como tu bien dices, y ahí esta la clave, el método de aprendizaje es la clave. Pero el uso de una herramienta demasiado sofisticada (o que no vas a enseñar al 100%) en enseñanza puede llevar al traste el tema que se enseña.
Para mi, creo, que es mejor dominar algo sencillo al 100% que algo sofisticado al 50%.

Creo que el debate es interesante sobre todo debido al uso didáctico que tiene Mindstorm.


Pues eso espero, que lo encuentren interesante, si no, nos invitarán a que prosigamos nuestra conversación sobre programación en privado xD
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jetro en 19 de Febrero de 2008, 20:51:14 PM
¿Alguno de los aqui presentes (en mensaje o espíritu  :D) se lanza a escribir la segunda parte del tutorial de NXC?

Para mi la cuestión es la siguiente: quiero programar mi RCX/NXT/Spybot. Para ello necesito aprender algún lenguaje de programación.
NO necesito saber que para escibir "Hello world en la pantalla de mi ordenador necesito incluir stdio.h en la cabecera del programa porque para lo que yo voy a hacer no es así. No quiero aprender  programar (me encantaría, pero también quiero aprender Italiano y ruso, tocar el violín, saber arreglar los circuitos electrónicos de mi televisor y estar al día d todos los libros interesantes que salen... pero no me da el tiempo!) quiero aprender a programar mi pBrick de LEGO.

Acepto sugerencias...  ;D :D
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jetro en 19 de Febrero de 2008, 23:46:02 PM
Cita de: g2bricks en 19 de Febrero de 2008, 15:52:06 PM
creo recordar haber visto en internet una implementación de la tortuga de LOGO para el RCX (no estoy seguro al 100%).
https://virtuallab.kar.elf.stuba.sk/robowiki/index.php/Logo_for_NXT (https://virtuallab.kar.elf.stuba.sk/robowiki/index.php/Logo_for_NXT)
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: g2bricks en 20 de Febrero de 2008, 16:07:12 PM
¡Gracias Jetro!

A eso me refería. LOGO es un lenguaje diseñado con fines didácticos y tal vez sea el más fácil de aprender, de ahí su uso en primaria (yo lo aprendí en la escuela, en 6º de EGB) y su implementación para NXT.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 20 de Febrero de 2008, 16:28:40 PM
Cita de: Jetro en 19 de Febrero de 2008, 20:51:14 PM
¿Alguno de los aqui presentes (en mensaje o espíritu  :D) se lanza a escribir la segunda parte del tutorial de NXC?

Bueno, es que por ahí iba mi idea :)

Me estaba planteando si crear un tutorial o curso práctico, pero de Lejos (https://lejos.sourceforge.net/), Osek C/C++ (https://lejos-osek.sourceforge.net/) o pbLua (https://www.hempeldesigngroup.com/lego/pbLua/) (éste ni lo puse en la encuesta porque es muy desconocido), que son los que me parecen más interesante por distintos motivos ::)
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: julencin2000 en 20 de Febrero de 2008, 16:56:34 PM
A mí, en principio, lo relacionado con C. Hace años estudié Java... y como nombre de isla está muy bien ^_^ pero prefiero el C.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jetro en 20 de Febrero de 2008, 18:46:04 PM
Como 'énamorado' de linux de la selección que has puesto, C me parece la mas interesante, pero especialmente si está enfocado principalmente a Mindstorms.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 22 de Febrero de 2008, 16:07:20 PM
Vaya... Nadie ha mencionado pbLua (https://www.hempeldesigngroup.com/lego/pbLua/). Como mínimo se merece un vistazo :)

Lua (https://en.wikipedia.org/wiki/Lua_(programming_language)) se utiliza bastante en scripts en juegos (https://https://en.wikipedia.org/wiki/Lua_(programming_language)#Games), por ejemplo World of Warcraft (no es que a mí me guste Warcraft, pero es muy popular)
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jafram en 23 de Febrero de 2008, 23:36:27 PM
CitarQué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?

JAVA
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jafram en 24 de Febrero de 2008, 00:58:41 AM
Cita de: luxman en 22 de Febrero de 2008, 16:07:20 PM
Vaya... Nadie ha mencionado pbLua (https://www.hempeldesigngroup.com/lego/pbLua/). Como mínimo se merece un vistazo :)

Lua (https://en.wikipedia.org/wiki/Lua_(programming_language)) se utiliza bastante en scripts en juegos (https://https://en.wikipedia.org/wiki/Lua_(programming_language)#Games), por ejemplo World of Warcraft (no es que a mí me guste Warcraft, pero es muy popular)

Me pareció interesante cuando lo menciono Jmacias. Parece que por el momento es el único software con el que se ha logrado manejar un GPS, (con el  Mindstorm ) pero la falta de tiempo para liarme con otro lenguaje de programación, me asusta.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Jafram en 24 de Febrero de 2008, 01:08:28 AM
Cita de: luxman en 20 de Febrero de 2008, 16:28:40 PM
Cita de: Jetro en 19 de Febrero de 2008, 20:51:14 PM
¿Alguno de los aqui presentes (en mensaje o espíritu  :D) se lanza a escribir la segunda parte del tutorial de NXC?

Bueno, es que por ahí iba mi idea :)

Me estaba planteando si crear un tutorial o curso práctico, pero de Lejos (https://lejos.sourceforge.net/), Osek C/C++ (https://lejos-osek.sourceforge.net/) o pbLua (https://www.hempeldesigngroup.com/lego/pbLua/) (éste ni lo puse en la encuesta porque es muy desconocido), que son los que me parecen más interesante por distintos motivos ::)

Ya estoy deseando verlo publicado.  :guino:
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Wendigo en 26 de Marzo de 2008, 12:02:41 PM
Lejos, es decir java, porque es con lo que trabajo y me parece que es más intuitivo trabajar con lenguaje de objetos como java que no uno "ampliado" como c++.
Para empezar nada como NXC, es lo que uso y es muy sencillo. Aunque lgún día habrá que dar el salto a Lejos.

saludos.
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: luxman en 27 de Marzo de 2008, 11:37:11 AM
La sintaxis de c++ es más compleja que la de Java, eso seguro.  Pero la sintaxis básica de ambos (bucles, condicionales, ...) provienen de c, igual que c#; pero todos ellos son lenguajes diferentes. C es un lenguaje y c++ otro, hasta con estándares diferentes.

Pero como cada vez se añaden más características a Java (generics, por ejemplo), la diferencia cada vez es menor. Si además en c++ utilizas librerías como boost o stl, la diferencia es mucho menor.

También depende de para qué lo necesites. Al utilizar máquina virtual c# y java suelen tener requisitos de almacenamiento más altos y rendimiento menor, esto se nota especialmente cuando programas para PDAs y vas justillo de memoria libre  :-[

Eso sí, cada uno tiene sus preferencias...
Título: Re: Qué lenguaje/entorno para NXT te gustaría aprender o conocer mejor?
Publicado por: Wendigo en 29 de Marzo de 2008, 02:51:55 AM
No heredan de C, heredan del Pascal xDDDD