Announcement

Collapse
No announcement yet.

Any recommendations for alternative programming languages?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Any recommendations for alternative programming languages?

    I am currently exploring programming languages for the EV3, in case FIRST decides to make alternative programming languages legal. Right now, I am leaning toward Java (leJOS), ROBOTC, and Python (ev3dev).

    If you have used these programming technologies, what would/wouldn't you recommend for competition?
    Last edited by ethanreece; 07-27-2019, 03:28 PM.

  • #2
    I suggest you take a look at this comprehensive comparison
    https://docs.google.com/spreadsheets...FH8/edit#gid=0

    Java is a good language for the kids to learn. The problem with leJos is that there is a very long startup time of 15 secs. That means that every time the kids press GO, the EV3 waits 15 secs before it starts to move. Not good for FLL. Some teams that participated in the pilot last season used a master program that ran in the background all the time and the kids selected the missions from a menu.

    LEGO Education has a supported version of micro-Python. Startup is slower than EV3 Mindstorms but good enough - about 2 secs in my testing. It's not a fully featured Python like ev3dev but I've heard good reports and that would be my suggestion.

    MakeCode from Microsoft is good too, and LEGO/Microsoft should be ready to provide support. They have a block interface that translates to Javascript so you can program both in Javascript and their block language. Another advantage is that you can have both EV3 Mindstorms and MakeCode programs on the EV3 at the same time.

    One caveat - from last year's pilot, alternative languages are for experienced teams only. There is a learning curve involved in getting the ecosystem going, and new teams have too much other stuff to get familiar with.

    Feel free to ask more questions.
    Alan

    Comment


    • #3
      "You can use any software that allows the Robot to move autonomously - meaning it moves on its own."

      Well, that leaves the programming language wide open this season.

      Comment


      • #4
        Originally posted by timdavid View Post
        "You can use any software that allows the Robot to move autonomously - meaning it moves on its own."

        Well, that leaves the programming language wide open this season.
        Woah... is that true?? Would hate to go down that path only to get DQ'd in competition!

        Comment


        • #5
          Originally posted by dragonops View Post

          Woah... is that true?? Would hate to go down that path only to get DQ'd in competition!
          Yes, that's what is in the rules this season. If you are a first year team, I strongly recommend you stick with the standard EV3-G environment. If you have a more experienced team, take a look at the spreadsheet of possible languages in a post earlier on this topic.

          Just remember - the kids on your team must do all the work presented at the tournament. As a judge, if I see a team of 4th graders come to judging with Java programs, I'm going to be a little skeptical.
          Last edited by timdavid; 08-03-2019, 02:38 PM.

          Comment


          • #6
            Originally posted by timdavid View Post
            Just remember - the kids on your team must do all the work presented at the tournament. As a judge, if I see a team of 4th graders come to judging with Java programs, I'm going to be a little skeptical.
            No argument there. My middle school team have had quite a bit of exposure in school to languages like Scratch, Javascript and Swift. We already started playing around with My Blocks to do simple math related subroutines, and it's extraordinarily tedious! Passing data into and through nested switch blocks is really painful, especially compared to a standard written language. But, I agree that sticking to it is probably the best thing to do for our first go. I was simply trying to understand the rules.

            Comment


            • #7
              I almost never use nested switches. Nesting is painful and there are usually ways to flatten the logic.

              All languages have strengths and weaknesses. I see lots of amazing stuff done with EV3, kids pick it up quickly, and the starting threshold is lowest of all choines.

              Comment


              • #8
                Our team is new to EV3, but have been programming Scratch in school for a while now. Took a look at Scratch, and yeah, it doesn't look like it's ready. As far as I could tell, the EV3 is a peripheral to the main computer which runs the code. The EV3 is not autonomous. So scratch that one ;-)

                MakeCode also looked promising, but the download and run cycle looks strange. Could not figure out how to download the code permanently into the EV3 to run autonomously. Is that correct? Our kids have also played with this language, but again, not on EV3.

                Comment


                • #9
                  Originally posted by timdavid View Post
                  "You can use any software that allows the Robot to move autonomously - meaning it moves on its own."

                  Well, that leaves the programming language wide open this season.
                  I assume autonomous means that Scratch is not allowed the same as last year since the robot program runs on a linked computer?

                  Spike Prime is supposed to run on Scratch. I had trouble finding if the Spike Prime version of Scratch downloads the program unlike regular Scratch. A Youtube video in German hinted that it does download, I couldn't tell for sure.

                  If the Spike Prime version does download the program, will it be compatible to work with the EV3?

                  This information is academic for the teams I help out, we'll be using Mindstorms.

                  Comment


                  • #10
                    Originally posted by EHMentor View Post

                    Spike Prime is supposed to run on Scratch. I had trouble finding if the Spike Prime version of Scratch downloads the program unlike regular Scratch. A Youtube video in German hinted that it does download, I couldn't tell for sure.

                    If the Spike Prime version does download the program, will it be compatible to work with the EV3?
                    I'm eager to find out as well if we can use scratch with EV3 for FLL. I have several team members who are quite comfortable with Scratch. I can't find anyway to download Spike Prime version... does it require purchase of Spike Prime?

                    Comment


                    • #11
                      I've found this link tremendously helpful, and I trust it given the authors:

                      https://docs.google.com/spreadsheets...mHMzN-Ps#gid=0

                      One of our team members and their extremely talented parent worked very hard at making a boot image using Scratch. They didn't succeed, but they got far enough to see that success would mean a tortuous load process at best. We'll wait for Spike Prime to see if Lego Ed can add an FLL legal capability for Scratch that is backward compatible to EV3. Until then, the team will program in EV3 native, but we'll all investigate a port of a simple mission to Python. I'm going to explore the Raw RGB mode in Python. I can imagine one of our members in particular getting older and better and someday wanting to run Python on Spike Prime.

                      Comment


                      • #12
                        Originally posted by incatrex View Post

                        I'm eager to find out as well if we can use scratch with EV3 for FLL. I have several team members who are quite comfortable with Scratch. I can't find anyway to download Spike Prime version... does it require purchase of Spike Prime?
                        MakeCode is somewhat similar to Scratch.
                        https://support.microbit.org/support...h-and-makecode

                        Scratch only currently works in tethered mode, so it is not allowed for FLL.
                        https://docs.google.com/spreadsheets...9lm7eZQQ#gid=0

                        I'm sure the Spike Prime version will be different, but I haven't heard anything about that being released for the EV3, or even seen a download link yet for the Spike Prime.

                        Comment


                        • #13
                          I heard a rumor, from a person who knows the Lego Education people well, that Spike Prime was going to be backward compatible to EV3. I mean "rumor," not solid. I have my own guesses that the hardware on Spike is looking good, but software is what's delaying the launch.

                          Comment


                          • #14
                            Originally posted by Rbbbbb View Post
                            We'll wait for Spike Prime to see if Lego Ed can add an FLL legal capability for Scratch that is backward compatible to EV3.
                            Since a) the intent was to have Spike Prime available for FLL, and b) the robot at LEGO Education was demonstrating at Worlds in April wasn't tethered to anything, I can only conclude that there'll be a download capability. Just speculation on my part, but I think it's pretty well-grounded speculation.

                            I talked to a couple of different LEGO Education people at Worlds and neither mentioned anything about the Spike Prime programming environment being usable on an EV3. otoh, I didn't ask that specific question.

                            Originally posted by incatrex View Post
                            I can't find anyway to download Spike Prime version... does it require purchase of Spike Prime?
                            The Spike Prime programming environment wasn't available in April (I specifically asked LEGO Education about it at Worlds). Since the Spike Prime has been delayed I'm not surprised you can't find it yet.

                            =====

                            As a side note -- if you haven't seen anything about the Spike Prime, you should know that it doesn't have a display -- just a 5x5 array of LEDs. It only holds 20 programs, and they don't have names; just numbers that can be rendered on the 5x5 array.
                            Last edited by someonewhobikes; 08-05-2019, 06:36 PM. Reason: Added info about Spike Prime's lack of a display
                            Kansas City Region Head Ref 2014-present
                            KC Region coaches and teams can ask FLL robot game rules questions at [email protected]

                            Comment


                            • #15
                              Of the alternative programming languages listed, very few (if any) seem to reverse-engineer the .ev3 file format ( a .zip of .xml files). I'm curious about why. Is there a reason for that?

                              Comment

                              Working...
                              X