Announcement

Collapse
No announcement yet.

Any recommendations for alternative programming languages?

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

  • #16
    Originally posted by dwalend View Post
    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?
    As I understand it, the ev3 file (and the files contained within it) support a textual description of the graphical EV3-G programs within a project. The XML data is very specific to recreating the layout and settings of the EV3-G programs. It is not intended to be multi-language or to support other programming environments. It is not a format that is conducive to storing more text-based languages such as Java or Python.

    Comment


    • #17
      Hi ethanreece did you get anywhere with this ?

      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?

      Comment


      • #18
        Originally posted by sherylt View Post
        Hi ethanreece did you get anywhere with this ?

        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?
        Post #3 of this thread stated this rule that is found on the bottom of page 7 of the game guide-
        https://firstinspiresst01.blob.core....-guide-pdf.pdf
        You can use any software that allows the Robot to move autonomously

        Comment


        • #19
          Originally posted by EHMentor View Post

          Post #3 of this thread stated this rule that is found on the bottom of page 7 of the game guide-
          https://firstinspiresst01.blob.core....-guide-pdf.pdf
          You can use any software that allows the Robot to move autonomously
          From my experience, and from what I've heard, there is not a good substitute for the EV3 graphical language. Some are slow to start, some are buggy, some offer little in the way of support. None allow you to start programming and see results as quickly as EV3.
          Last edited by Dean Hystad; 09-04-2019, 03:17 PM.

          Comment


          • #20
            I'm with Dean on this one. There are no on-table advantages that I know of by using anything other than the labview EV3 graphical programming software/language/IDE. The ONLY advantage I see to using the text-based languages is getting your kids experience using text-based languages.
            Norfolk, Virginia, USA
            FLL Coach and Regional Tournament Head judge since 2014

            Comment


            • #21
              ethanreece . Are you looking for some sort of functionality that the native EV3 language does not have?

              Comment


              • #22
                I'm curious how many teams I'll see when judging this season who use an alternate programming language.

                As a former coach, I could see working with FLL veterans to learn something like MicroPython (https://education.lego.com/en-us/sup...python-for-ev3).

                I shudder at the thought of teaching Java or C to rookie teams.

                Comment


                • #23
                  Originally posted by Rbbbbb View Post
                  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.
                  Just saw this on Facebook...

                  Update from LEGO Competitions team:
                  The current version of the EV3 Lab software is not compatible with the upcoming update to macOS, called Catalina. We are therefore introducing a brand-new EV3 app in November 2019, called LEGO MINDSTORMS Education EV3 Classroom. Based on the SPIKE app, EV3 Classroom will feature a coding language based on Scratch that we are confident will unleash the full potential of EV3 in the FIRST LEGO League program. The first release of EV3 Classroom will be in US English, followed by the other 15 EV3 languages in spring 2020.
                  To continue to enjoy an uninterrupted EV3 experience and to avoid losing your programs, we strongly recommend that you do not update to Catalina until the end of the FIRST LEGO League season in July 2020. If you have already updated to the new OS, please contact Technical Consumer Service at education.LEGO.com/en-us/support to discuss how we can help you during this transition period.
                  For further questions and support, we encourage you to reach out to Technical Consumer Service using the link above.
                  Best regards,
                  The Competitions Team
                  Last edited by timdavid; 09-05-2019, 08:09 PM.

                  Comment


                  • #24
                    For teams looking into using MakeCode, please take a look at https://makecode.mindstorms.com/fll which contains general information about getting the latest updates for the editor. We have an update coming to help you solve those missions!

                    Comment


                    • #25
                      We just released the MakeCode Offline App at https://makecode.mindstorms.com/offline-app . We recommend you to install this app to ensure that the editor will work in bad/no internet situations.

                      Comment


                      • #26
                        Just my opinion...

                        Competitions
                        Alternative programming languages don't provide any significant advantages in competitions. Some features provided in their API can be useful (eg. HSV support for the color sensors in ev3dev), but only for some competitions (eg. Robocup) and can be implemented in EV3G as well. There are also performance and reliability issues with alternative programming languages (...not so much a language issue, but rather with the firmware required to use these languages).

                        Learning
                        I personally feel that EV3G is pretty terrible for learning coding. Anything other than the simplest program quickly turns into a unreadable mess. On the plus side, it encourage learners to use My Blocks to organize their code, but I've also found kids adopting poor programming practices to work around the interface issues of EV3G.

                        I would recommend using MakeCode for younger learners. It has the same code structure as a text-based language, and most of the kids I worked with find it more intuitive and easy to understand. Not great for complex programs, as it can get really messy when there are many functions.

                        For older kids, I would suggest Python on ev3dev. It allows the learners to explore intermediate to advanced programming techniques used in academic and professional programming projects. The Python ev3dev2 API closely resembles the EV3G blocks, making the transition rather easy. I have kids as young as 6 using it, and by the age of 13, around half of the kids I work with prefer it to EV3G. Some of the kids faced technical issues with ev3dev; no show-stoppers, but it can be very frustrating. I have not used Lego's micropython API.

                        leJOS seems to be a very capable platform for advanced robotics, but the API is not intuitive and the few of my kids who tried it find it hard to use.

                        Comment


                        • #27
                          We're having our younger team (4th and 5th grade) try out MakeCode this season:
                          1) It solves our problem of having great access to Chromebooks but only two very old and slow laptops.
                          2) We only have two teammates returning from last year, so the rest of the team is learning everything from scratch anyway this year so using a new coding language has a low barrier.
                          3) It is similar in a visual sense to the HourofCode/Scratch programming that they've already been exposed to
                          4) With the JavaScript toggle, it seems to be a really good bridge for non-graphical coding in the future

                          I'm going to discuss the pros and cons with my middle school team this afternoon and let them decide.
                          Half that team has 1-2 years experience with the EV3 Education software, so they may have a learning curve.
                          But the middle school MacBooks have the home software, not the education so there's no easy access to tutorials for our rookies.

                          I've been playing around with MakeCode all weekend and my greatest hurdle is that I can't figure out how to make a loop that runs continuously with an exit condition. There are ways to use variables and stuff to work around this I'm sure, but it isn't as intuitive at the EV# Education software.

                          Comment


                          • #28
                            I've been playing around with MakeCode as well, for the exact same reasons. I'm trying to help the kids I had last year make connections from what they learned before and what code would do the same thing for them in MakeCode. The "While" loop will allow an exit condition. I've been able to figure out how to exit a "while" loop using the conditions we used in EV3 Mindstorms. If you know what your exit condition is, there should be a way to define that exit condition. I'd love to have someone else to chat with about what we're figuring out. You can send me a private message and I'll be happy to share what I've learned.

                            Comment


                            • #29
                              I'll be looking at adding "break"/"continue" blocks.

                              Comment


                              • #30
                                Originally posted by Cort View Post
                                Just my opinion...

                                Learning
                                I personally feel that EV3G is pretty terrible for learning coding. Anything other than the simplest program quickly turns into a unreadable mess. On the plus side, it encourage learners to use My Blocks to organize their code, but I've also found kids adopting poor programming practices to work around the interface issues of EV3G.
                                I've had a different experience. I judge teams and work with teams that write very large programs that are easy to edit. I think the limitation of how many blocks easily fit on a page forces teams to think about breaking code into smaller pieces that are easier to manage, which starts them using my blocks, which leads them to discovering that some code can be used over and over if you could just change some of the parameters. Here is an example from a team I worked with last year.

                                This was their main program that had a menu for selecting which mission to run:
                                main.JPG

                                This is one of the mission programs.
                                Mission.JPG

                                The mission program would be a big mess if it wasn't broken up into smaller parts. Here is a sub-mission.
                                Sub mission.JPG

                                Breaking the programs up into small parts made it easier to test, because they could test smaller pieces. It also helped with development. The team would break up into groups that focused on different parts of the mission. When each part worked they wrote some glue to patch everything together. Very little testing was required after all the individual parts had been written and tested.

                                Comment

                                Working...
                                X