Whether you’re wanting to create dynamic websites, automate tasks, build a simple game, or do some text analysis using machine learning there is a fantastic Python framework for doing just that.
If you want in-depth information about how powerful is basic vs. python, check out this article. Are you tired of going online and searching for relevant information? This article is just what you need.
Here at Collegelearners, you’ll also find the following topics updated.
how powerful is basic vs. python
The difference between Basic and Python
Basic is a programming language that was developed in the 1960’s and it is still used today. It is easy to use and it is good for beginners because it has a simple syntax and easy to understand commands. The problem with Basic is that it lacks flexibility, which makes it difficult to write complex programs.
Python, on the other hand, is an object-oriented programming language that was designed by Guido van Rossum in 1989. It is easy to read and write code in Python because of its syntax, which uses white space indentations to define blocks of code instead of curly braces like other languages.
Python also has many built-in functions which make coding much simpler than using Basic. This allows you to focus more on writing your program rather than figuring out how to do something yourself.
Another difference between Basic and Python is that they use different types of variables (also called data types). Variables are used to store information such as numbers or text strings so they can be used later on when needed by your program.
PRO Lots of tutorials
Python’s popularity and beginner friendliness has led to a wealth of tutorials and example code on the internet. This means that when beginners have questions, they’re very likely to be able to find an answer on their own just by searching. This is an advantage over some languages that are not as popular or covered as in-depth by its users.
PRO Easy to get started
On top of the wealth of tutorials and documentation, and the fact that it ships with a sizeable standard library, Python also ships with both an IDE (Integrated Development Environment: A graphical environment for editing running and debugging your code); as well as a text-based live interpreter. Both help users to get started trying out code immediately, and give users immediate feedback that aids learning.
PRO Active and helpful community
Python has an active and helpful community, such as the comp.lang.python Google Groups, StackOverflow, reddit, etc.
PRO Comes with extensive libraries
Python ships with a large standard library, including modules for everything from writing graphical applications, running servers, and doing unit testing. This means that beginners won’t need to spend time searching for tools and libraries just to get started on their projects.
PRO Clear syntax
Python’s syntax is very clear and readable, making it excellent for beginners. The lack of extra characters like semicolons and curly braces reduces distractions, letting beginners focus on the meaning of the code. Significant whitespace also means that all code is properly and consistently indented.
The language also uses natural english words such as ‘and’ and ‘or’, meaning that beginners need to learn fewer obscure symbols. On top of this, Python’s dynamic type system means that code isn’t cluttered with type information, which would further distract beginners from what the code is doing.
Installs and works on every major operating systems if not already installed by default (Linux, macOS).
PRO Has many libraries for scientific computing, data mining and machine learning
Python is commonly used in data science and has many libraries for scientific computing, such as numpy, pandas, matplotlib, etc.
PRO Good documentation
The Python community has put a lot of work into creating excellent documentation filled with plain english describing functionality. Contrast this with other languages, such as Java, where documentation often contains a dry enumeration of the API.
As a random example, consider GUI toolkit documentation – the tkinter documentation reads almost like a blog article, answering questions such as ‘How do I…’, whereas Java’s Swing documentation contains dry descriptions that effectively reiterate the implementation code. On top of this, most functions contain ‘Doc Strings’, which mean that documentation is often immediately available, without even the need to search the internet.
PRO Can be used in many domains
Python can be used across virtually all domains: scientific, network, games, graphics, animation, web development, machine learning, and data science.
PRO Very similar to pseudo-code
When learning Computer Science concepts such as algorithms and data structures, many texts use pseudo-code. Having a language such as Python whose syntax is very similar to pseudo-code is an obvious advantage that makes learning easier.
PRO Advanced community projects
There are outstanding projects being actively developed in Python. Projects such as the following to name a random four:
- Django: a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
- iPython: a rich architecture for interactive computing with shells, a notebook and which is embeddable as well as wrapping and able to wrap libraries written in other languages.
- Mercurial: a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.
- PyPy: a fast, compliant alternative implementation of the Python language (2.7.3 and 3.2.3) with several advantages and distinct features including a Just-in-Time compiler for speed, reduced memory use, sandboxing, micro-threads for massive concurrency, …
When you move on from being a learner you can still stay with Python for those advanced tasks.
PRO Supports various programming paradigms
Python supports three ‘styles’ of programming:
- Procedural programming.
- Object orientated programming.
- Functional programming.
All three styles can be seamlessly interchanged and can be learnt in harmony in Python rather than being forced into one point of view, which is helpful for easing confusion over the debate amongst programmers over which programming paradigm is best, as developers will get the chance to try all of them.
PRO It’s really simple
It’s very simple for understanding how programming works. If you don’t like programming in Python, you probably won’t like programming. It is a good way to find out with little investment. If you like, it is a great language. I wouldn’t look for a language that has everything you eventually need to know in programming, such as static typing, in my first language. It should be easy to learn. You can pick up the hard stuff later if you tackle C or C++ or assembler. It will make learning them much easier. If you start with them, you might quit programming due to the difficulty of learning.
PRO Good introduction to data structures
Python’s built-in support and syntax for common collections such as lists, dictionaries, and sets, as well as supporting features like list comprehensions, foreach loops, map, filter, and others, makes their use much easier to get into for beginners. Python’s support for Object Orient Programming, but with dynamic typing, also makes the topic of Data Structures much more accessible, as it takes the focus off of more tedious aspects, such as type casting and explicitly defined interfaces.
Python’s convention of only hiding methods through prefacing them with underscores further takes the focus off of details such as Access Modifiers common in languages such as Java and C++, allowing beginners to focus on the core concepts, without much worry for language specific implementation details.
PRO Easy to find jobs
Python’s popularity also means that it’s commonly in use in production at many companies – it’s even one of the primary languages in use at Google. Furthermore, as a concise scripting language, it’s very commonly used for smaller tasks, as an alternative to shell scripts.
Python was also designed to make it easy to interface with other languages such as C, and so it is often used as ‘glue code’ between components written in other languages.
PRO Import Turtle
Do something visually interesting in minutes by using the turtle standard library package.
Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966.
Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an import turtle, give it the command turtle.forward(15), and it moves (on-screen!) 15 pixels in the direction it is facing, drawing a line as it moves. Give it the command turtle.right(25), and it rotates in-place 25 degrees clockwise.
Turtle can draw intricate shapes using programs that repeat simple moves.
from turtle import * color('red', 'yellow') begin_fill() while True: forward(200) left(170) if abs(pos()) < 1: break end_fill() done()
PRO One right way to do things
One of the Guiding Principles of Python is that there should be only one obvious way to do things. This is helpful for beginners because it means that there is likely a best answer for questions about how things should be done.
PRO Easy to learn, More to Go
It is very easy to learn and it has community support and many categories available.
PRO Static typing via mypy
Python’s syntax supports optional type annotations for use with a third-party static type checker, which can catch a certain class of bugs at compile time. This also makes it easier for beginners to gradually transition to statically typed languages instead of wrestling with the compiler from the start.
PRO Has features of both high and low level language
It is somewhere between C and Java.
PRO Includes pygame library
Want to start game development? No problem! Using pygame open-source library you can fast begin creating games without worrying about pointers or undefined behaviors which they exists in C/C++.
PRO Interpreters for JS, Microtontrollers, .Net , Java & others
Python is not limited to just be cross platform. It goes far beyond all high level languages since it can run on top of several other frameworks & architectures :
Examples of interpreters:
- Standard (PC Win/Lin/Mac, ARM, Raspberry, Smartphones): CPython usually, but some more specialized for smartphones: Kyvi, QPython, …
- Web Browser JS : Brython, PyJS,
- .Net : IronPython
- Java: Jython
- Microcontrollers with WiFi like ESP8266 or ESP32: MicroPython
- Can be statically compiled (instead of interpreted) with Cython. (Do not mix up with cPython)
With python, you’re sure your code can run (almost) everywhere, from 2€ computers to the most expensives.
So, for instance, with Jython you can access the Java libraries with Python language.
PRO Best chances of earning most money
PRO Mobile versions
Mobile versions are available but can be difficult to find. Examples for android are pydroid and qpython
PRO Lots of information available
Although there are lots of examples and tutorials to be found, for a beginner it can be difficult to find good material as there are also lots of bad examples around.
PRO Lots of choice
See List of BASIC dialects.
CON Not good for mobile development
You can use frameworks like Kivy, but if your ultimate goal is to write mobile apps Python may not be the best first choice.
CON Inelegant and messy language design
The first impression given by well-chosen Python sample code is quite attractive. However, very soon a lack of unifying philosophy / theory behind the language starts to show more and more. This includes issues with OOP such as lack of consistency in the use of object methods vs. functions (e.g., is it x.sort() or sorted(x), or both for lists?), made worse by too many functions in global name space. Method names via mangling and the init(self) look and feel like features just bolted on an existing simpler language.
CON Language fragmentation
A large subset of the Python community still uses / relies upon Python 2, which is considered a legacy implementation by the Python authors. Some libraries still have varying degrees of support depending on which version of Python you use. There are syntactical differences between the versions.
CON Hard to debug other people’s code
As the structure of Python code is based on conventions many developers are not following them and so it is difficult to follow/extract the design of not trivial application from the code. While this is a con, I see it in other languages as well. It seems to depend on the programmer. Most people don’t learn conventions first, they just start programming. Unless you work for someone who insists you follow the conventions, you will probably go with what you like. You might never look at the conventions.
CON Limited support for functional programming
While Python imports some very useful and elegant bits and pieces from FP (such as list comprehensions, higher-order functions such as map and filter), the language’s support for FP falls short of the expectations raised by included features. For example, no tail call optimisation or proper lambdas. Referential transparency can be destroyed in unexpected ways even when it seems to be guaranteed. Function composition is not built into the core language. Etc.
CON Might not be very future-proof
Lots of features that will probably be crucial as time goes (good support for parallelism for example) are missing or are not that well-supported in Python. Since 2.x and 3.x still exist, be prepared to switch if something makes 3.x take off in the future.
CON Abstraction to the point of hinderance
Python is abstracted far enough that if it’s your first language, it will be harder to pick up lower level languages later versus going the other direction.
CON The process of shipping/distributing software is reatively complicated
Once you have you program the process of having a way to send it to others to use is fragile and fragmented. Python is still looking for the right solution for this with still differences in opinion. These differences are a huge counter to Python’s mantra of “There should be one– and preferably only one –obvious way to do it.”
CON Does not teach you about data types
Since Python is a dynamically typed language, you don’t have to learn about data types if you start using Python as your first language. Data types being one of the most important concepts in programming. This also will cause trouble in the long run when you will have to (inevitably) learn and work with a statically typed language because you will be forced to learn the type system from scratch.
CON Worst language design ever
Instead of sticking to a certain paradigm, the original writer of the language couldn’t make up his mind, and took something from everywhere, but messing it up as he went by. This is possibly one of the worst balanced languages ever. People who pollute their mind with Python and think it’s the next best thing after sliced bread, will have to un-learn a lot of garbage ‘pythonesque’ habits to actually learn how to program. It’s not because the academic world uses it a lot, that it’s a good language. It says something about the inability of the academic world to write decent code, actually.
CON Multi-threading can introduce unwanted complexity
Although the principals of multi-threading in Python are good, the simplicity can be deceptive and multi-threaded applications are not always easy to create when multiple additional factors are accounted for. Multi-thread processes have to be explicitly created manually.
CON Significant whitespace
While proper formatting is essential for any programmer, beginners often have trouble understanding the need and lack the discipline to do it. Add to that all those editors that randomly convert N spaces (usually 8) to tabs and you get an instant disaster. You may need to find yourself an editor/IDE you like and carry it with you on a thumb drive, which isn’t a bad idea anyway.
CON Too opinionated for a general-purpose programming language
While it’s a good language to learn and use after you have mastered a couple of other less rigid programming languages, it’s definitely not good for first-time learners. Both the language itself and its community have made it quite clear that you should do everything the “Pythonic way” to get the best results, that it feels more like an opinionated framework instead of a general-purpose programming language, which means if you are a first-time learner and getting too “tuned” to the “Pythonic way” it will be much harder for you to learn other less-opinionated languages compared to the other way around. Like any programming languages and/or frameworks, I’d recommend first-time learners to learn less opinionated ones first to open up your mind, then learn some of the more opinionated ones to increase productivity for specific fields of works.
After all, programming languages are just some utilities for the human mind to interface with the computers, and there are more suitable tools for different tasks, and you should master the “Pythonic way” (after you already have adequate experience in computer programming) instead of locking your mind too close to the “Pythonic way” as a first-time learner.
CON It is best suited for scripting, but so are many other languages.
i.e. running js as a script in a node is trivial. Even languages that were not meant to run as a script are easy to use as a scripting language with just a .sh file.
CON Version Confusion with V2.x and V3.x
CON Unflexible userbase
You will be expected to rigidly stick to the coding practices and to do everything by-the-numbers. One of the most common complaints I heard from people who left Plone, which is Python based, to Drupal, which is PHP based, is the community is more like a frat house than a community. If you look for help, make sure you follow the rules of whatever type of group you are requesting help from.
Heavily relies on assignment, with no distinction between defining the variable and assigning the value. This makes it necessary to introduce rather complex environmental model of computation.
basic vs python features
Basic or Python?
I consider that the two best and easiest options for programming the EV3 textually are EV3 Basic and EV3 Python. Whether you opt for EV3 Basic or EV3 Python you should get a good grounding in standard Basic (MS Small Basic in the case of EV3 Basic) or standard Python before you progress to the EV3 versions which are like the ‘icing on the cake’.
I am convinced that the EV3 textual programming language that is the most easy to install and to learn is EV3 Basic. I have spent hundreds of hours working with EV3 Basic and like it so much that I made this site to promote it. Basic was originally designed for beginners but evolved over the years into a sophisticated form called Microsoft Visual Basic that is less easy for beginners to learn. Fortunately Microsoft recognised this problem and released in 2008 a version of Basic that is once again simple and easy to learn: Microsoft Small Basic. Small Basic is designed to appeal to young people, with an emphasis on games and graphics. Adding the ‘EV3 extension’ converts Small Basic into EV3 Basic and allows it to work with the EV3 robot. Basic was one of the first programming languages to be created and some people feel that it has become outdated and that beginners should learn a more modern language. But Basic has always been very popular and even today (September 2016) Visual Basic.Net and its older variant Visual Basic are among the most popular programming languages in the world – see for yourself at Tiobe.com which tracks the popularity of more than 100 languages. In fact if you lump together the two main kinds of Basic (Visual Basic and Visual Basic.net) then we can say Basic is still about as popular as the Python language! Another reason to consider using EV3 Basic is that it is easier to install than other EV3 textual programming languages since it works directly with the unmodified EV3 brick whereas other textual languages require you either to modify the brick’s firmware or prepare a microSD card that will contain an alternative operating system that will be used in place of the brick’s firmware. Note that EV3 Basic runs only on Windows computers.
Python is a modern, very powerful programming language that is easier to learn than most others such as C++ or Java and is therefore very popular in schools and universities. Knowledge of Python is much more likely to help you get a career in computing than knowledge of Basic. One thing that helps to make Python easy to learn is that it creates very concise, easy-to-read code. I have seen an article that says that a program written in Java might typically be nearly four times longer than a program written in Python that does the same thing! Also, an advanced, rather difficult feature called ‘object oriented programming’ (OOP) is available in Python but is not obligatory, so you can avoid it initially and then start using it when you’re ready. See this article Why Python might just be all you need and also this article.
EV3 Python needs to run on top of an operating system called EV3dev. You need to install EV3dev and EV3 Python onto a microSD card – a quick and straightforward process. When you insert the card into the EV3 and turn on the EV3 it will boot from the card rather than from the usual Lego operating system – you will see a different interface called Brickman. Since you will be writing your programs on the computer you need a way to communicate between your computer and the brick – the recommended way to do this is to use a Secure SHell (SSH) connection. In order to manage that connection you need to know (or learn) a bit about Linux – this could be considered an annoyance or a bonus – Linux is certainly an important operating system (it’s quite possible your phone is running a version of Linux called Android).
To learn more about EV3dev visit ev3dev.org. To get started working with EV3dev and EV3 Python, visit my new site ev3python.com.
Let’s see how a given problem can be solved by EV3 Basic and by EV3 Python, as well as by the standard EV3 Lego software (EV3-G). We’ll use one of the challenges from the Robot Educator section of the educational version of the Lego EV3 software. You can compare the conciseness and readability of the EV3 Basic and EV3 Python solutions, but your choice of which language to study should also take into account the power of each language and the value that it could bring to your future professional life.
Objective: The robot is assumed to have already moved along two perpendicular arms of a triangle, each with length 25 cm, and to have turned around 180° so it is now in the right location to begin tracing the hypotenuse but it is not pointing in the right direction. The robot should now turn slowly on the spot until the gyro sensor detects that the robot has turned at least 45°, then the motors should be turned off.
Then the robot should calculate the length of the hypotenuse using the actual angle turned by the robot (as measured by the gyro sensor) rather than the 45° angle that the robot should have turned. The calculation will be:
hypotenuse length = adjacent arm length / cos(turn angle)
Note that Small Basic (and therefore also EV3 Basic) trigonometric functions (Sin(), Cos() etc) work in radians, not degrees. 1 radian = 57.3° (approx)
Then the robot should calculate the corresponding number of wheel rotations needed, given that the circumference of the standard Lego wheel is 17.6 cm. Then the robot should move at speed 30 in the correct direction and for the correct distance in order to trace out the hypotenuse of the triangle.
EV3 Basic Solution:
Sensor.SetMode(2,0) ‘Set gyro sensor on port 2 to mode 0
Motor.StartSync(“BC”,10,-10) ‘Robot will slowly turn to the right on the spot
While Sensor.ReadRawValue(2,0) < 45
‘Small Basic trig functions like cos() work in RADIANS
Radians=Sensor.ReadRawValue(2,0)/57.3 ‘convert to radians. 1 rad = 57.3°
Length = 25/Math.Cos(Radians) ‘calculate length of hypotenuse
Rots=Length/17.6 ‘calculate wheel rotations (wheel circumference=17.6cm)
Motor.Move(“BC”,30, Rots*360, “True”) ‘convert wheel rotations to degrees
Once again, know that Small Basic trig functions work in radians, not degrees, and that 1 rad = 57.3°.
The above solution is an awkward mix of degrees and radians, but this could not be avoided.
Don’t confuse the angle that the robot turns with the angle that the wheels turn.
If you want to see other examples of how EV3 Basic can solve the official EV3 challenges click HERE.
EV3 Python Solution:
The Python solution is almost twice as long as the EV3 Basic solution (not counting comments and empty lines) but it’s still pretty easy to read except for the first line which is a special line (a ‘shebang’) that makes it possible to run the program from the EV3.
from ev3dev.ev3 import * # make the ev3 functions available
from time import sleep # make the sleep() function available
import math # needed for cos() and radians()
Connect gyro sensor to any sensor port and set mode
gy = GyroSensor()
gy.mode=’GYRO-ANG’ # Put the gyro sensor into ANGLE mode.
Attach large motors to ports B and C
mB = LargeMotor(‘outB’)
mC = LargeMotor(‘outC’)
Make robot slowly turn to the right on the spot
sleep(0.01) # Continue looping while turn angle less than 45 deg
calculate length of hypotenuse
length = 25/math.cos(math.radians(gy.value()))
calculate wheel rotations (wheel circumference= 17.6 cm)
mB.run_to_rel_pos(position_sp=rots360, speed_sp=500) mC.run_to_rel_pos(position_sp=rots360, speed_sp=500)
sleep(5) # Give the motor time to move
Note that EV3-G trig functions use degrees, not radians.
why python is better than java
Python’s popularity has experienced explosive growth in the past few years, with more than 11.3 million coders choosing to use it, mainly for IoT, data science, and machine learning applications, according to ZDNet . Further, Python has had a 25 percent growth rate, adding 2.3 million developers to its community between Q3 2020 and Q3 2021, according to SlashData’s “State of the Developer Nation.” .