Announcement

Collapse
No announcement yet.

Why not Python over Java?

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

  • Why not Python over Java?

    I have been learning python for work. It feels like a much simpler language to learn than Java or C++. Many HS First teams use a raspberry pi for image recognition with python. With that said why isn't first using Python over Java? If the language of FTC were Python kids could have a hobby using a Pi in the off season.

  • #2
    I've discovered that life as a programmer isn't all about one language. Languages come and go. Some are designed for specific purposes, others are not.
    Each language builds on it's predecessors, and lays the foundation for the next generation.
    Some are long lived and others are mere flashes.

    "Why didn't so and so use this language?" is an age old question which will never be answered to your satisfaction.
    Computer Language biases are as old as the hills, and as hard to break as "Intel vs Motorola", "HP vs TI" (for us oldies), "Mac vs Windows" or "iPhone vs Android Vs Samsung etc.".

    My trick to dealing with Language choices is always being willing to see the strengths in the language I'm using, and not get too hung up on how my favorite is "better".

    Easier and simpler are both good attributes, but once you become proficient, where do you go?

    Learning Python for the Pi, and Java for Android App development are two HUGE accomplishments.
    Why not do both?.... no need to choose.

    Phil.

    Comment


    • #3
      It mainly has to do with the system we're using. Android was built using Java, and Java has a nice interface with C++. Theoretically, you could also use Kotlin instead of Java for a lot of things. I know a lot of people like Python, I personally don't though (mainly I'm used to Java / C type syntax, note I do respect the language and think it's great just it's not what I like for my personal use), but for the specific application, Java is better. It's similar to comparing C++ to Javascript; C++ might make nice operating systems and high-performance games, and utilities, but you definitely don't want to do web development with it and vice versa.

      Comment


      • #4
        In term of helping students learning the concept of programming, especially when they are new to programming, Python may be a better idea. I use Python a lot too and I like the simplicity, less line of codes to write. It is also Object-oriented like Java.

        In term of the platform use here, all API are only available in Java. Hopefully in the future they may consider having Python script engine. We may have OnBot_Python to write codes, that would help students.

        Comment


        • #5
          I think we should all use INTERCAL. Why would you ever need anything else?

          Comment


          • #6
            My thoughts on this question is understanding that my son has 4 hours of homework a night and its difficult for him to take on extra work like learning a new language. With Python you can do multiple artificial intelligence and image recognition courses on Udemy. They can work on the raspberry pi for their school project. Multiple SW engineers, that I have talked to, say their favorite language is Python. Something to consider in the future. I do appreciate all the work that has been done in Java and we have a nice platform.

            Comment


            • #7
              Originally posted by ejschuh View Post
              My thoughts on this question is understanding that my son has 4 hours of homework a night and its difficult for him to take on extra work like learning a new language. With Python you can do multiple artificial intelligence and image recognition courses on Udemy. They can work on the raspberry pi for their school project. Multiple SW engineers, that I have talked to, say their favorite language is Python. Something to consider in the future. I do appreciate all the work that has been done in Java and we have a nice platform.
              Hi ejschuh,

              Thanks for the feedback and question. I think this is a very good question to raise.

              When the FTC sdk was first developed for our controller, Java a was natural choice since the official Android APIs were designed for a Java development environment.

              Python is a popular and powerful language, but Android doesn't have native Python support. Running Python scripts would require the use of an external Python interpreter for Android.

              At one point we consulted an expert about running Python on Android, but this person noted that at the time, the available options for Python interpreters that would run on Android was limited and the performance was not sufficient for our application.

              Thanks again for the feedback! I like to keep an open mind about future support for different languages and features. However, at the moment, we only support Java and the Blockly/App Inventor environments.

              Tom

              Comment


              • #8
                I think Simulink and MATLAB which are languages specifically designed for engineers and embedded systems would be a powerful platform.

                Comment

                Working...
                X