Split from: Never mind all the old-school C++: Arduino now does Python

Go To Last Post
25 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
the most popular programming language
By what metric do they measure that I wonder? Did it really mean "the author's most popular language" perhaps?

 

It's true I get as many different results as google hits for "most popular programming language" but I'd have said this was fairly representative. It's true Python seems to be "on the up" but not sure if it's hit the top in 2018?

 

Last Edited: Wed. Jul 25, 2018 - 02:45 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
By what metric do they measure that I wonder?

Yes, I wondered that!

 

I suspect they're also making the all-too-common mistake of saying "popular" when they mean "widespread".

 

Windows is very widespread - but is not popular with all who have to use it ...

 

EDIT

 

Note that the opening quote:

clawson wrote:

awneil wrote:

the most popular programming language

Come from this post: https://www.avrfreaks.net/forum/never-mind-all-old-school-c-arduino-now-does-python

 

So it wasn't me that said it - I was just quoting Adafruit.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Wed. Jul 25, 2018 - 03:31 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can always find some metric, like this one, which is based on github repositories. So, if we ignore JavaScript, Python has become the most popular language. Not that I have any knowledge of Python, I just know it's interpreted, statements don't end in ";" and blocks are indented instead of having {}. Whatever.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If I create one Github with 1,000,000 LOC written in C++ then 500 repos of Python with 1,000 LOC which of those is "more popular" ? In total there are twice as many lines of C++ as Python but 200 times as many repos for Python than C++.

 

There are lies, damned lies and statistics.

 

(which reminds me that when I did Cambridge entrance exams one of the questions was simply that Disraeli phrase followed by "Discuss.". Needless to say, I didn't get in ;-)

Last Edited: Wed. Jul 25, 2018 - 02:19 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:
Python has become the (sic) most popular language.

You mean, "the most popular (sic) language amongst projects that are published on GitHub"

 

Again, Widespread != Popular

 

Those results are based on events including people getting stuff from GitHub - it has no way of knowing how many people are getting Python stuff from GitHub and thinking, "Oh **** - it's in Python".

 

For the record, I do like Python - it's dodgy statistics I hate ...

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Statistics are fine so long as you know the methodology. For this reason whenever possible I link to the sources when posting a possibly controversial statistic.

Here is another:

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I thought that "Arduino" IS C++? Isn't Arduino "just" an IDE?

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2

Yup, I wouldn't classify "Arduino" as a programming language.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:
Statistics are fine so long as you know the methodology.

Very true - as Cliff illustrates very well in #4.

 

I could add that my brother is a statistician - and he gets very annoyed at people bending statistics to inappropriate and invalid conclusions!

 

surprise

 

I'm sure we've all seen  examples of spurious correlations: http://www.tylervigen.com/spurious-correlations

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@awneil wrote:

Windows is very widespread - but is not popular with all who have to use it ...

+1, +2, +3, ....  I couldn't agree more! 

Greg Muth

Portland, OR, US

Xplained/Pro/Mini Boards mostly

 

Make Xmega Great Again!

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ka7ehk wrote:
I thought that "Arduino" IS C++? Isn't Arduino "just" an IDE?
Arduino is a number of things:

 

1) it's a well designed PCB

2) it's a bootloadable MCU system using avrdude

3) it's an IDE witten in Java

4) it a C++ wrapper around a standard main()

5) it's a comprehensive core C++ library (serials, timers, PWM, ADC etc)

6) it's a whole world of 3rd party C++ library code

 

A lot of people talk about the "Arduino language" when what they really mean are (4), (5) and maybe (6) above combined.

 

Of course a lot of people call Arudino "a language" because they simply don't recognise C++ when they see it!

 

It's because it is so many thing that there is so much confusion when people say things like "yeah but I want to move away from Arduino". What they probably mean is that they want to retain the PCB and the bootloading/avrdude but then stuff it full of something else that does not involve (3) .. (6).

Last Edited: Wed. Jul 25, 2018 - 03:45 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why do you think I chose that particular example ... ?!

 

laugh

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Arduino is ...

I guess "ecosystem" would be the buzzword here ?

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Now, when one says (or writes)

examples of spurious correlations

It is really important to remember:

Correlation does not causation make!  (Kai Ryssdal, "Marketplace" - American Public Media)

 

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

my brother's favourite quote!

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

1) it's a well designed PCB

2) it's a bootloadable MCU system using avrdude

3) it's an IDE witten in Java

4) it a C++ wrapper around a standard main()

5) it's a comprehensive core C++ library (serials, timers, PWM, ADC etc)

6) it's a whole world of 3rd party C++ library code

 

You forgot one very important thing:

 

   7) Works on Mac OSX

 

--Mike

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avr-mike wrote:
   7) Works on Mac OSX

What does?

 

Only (3) - I think?

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
What does? Only (3) - I think?
Eh? I thought the whole Arduino thing worked on Mac ? (the point is the IDE is written in Java so should work anywhere, there's a build of arvdude for Mac and there's a build of avr-gcc for Mac)

 

But just because it runs on Mac is not necessarily what makes it "Arduino". There are other AVR dev systems that work on Apple's oddball PCs too. So I don't agree with it as (7) anyway.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
I thought the whole Arduino thing worked on Mac ?

But, as you explained in #11, the "whole Arduino thing" actually consists of 6 parts; only one of them - number 3, the IDE - has any reliance upon any OS at all:

 

1) it's a well designed PCB

Host irrelevant

2) it's a bootloadable MCU system using avrdude

 

Host irrelevant

3) it's an IDE witten in Java

Host relevant

4) it a C++ wrapper around a standard main()

Host irrelevant

5) it's a comprehensive core C++ library (serials, timers, PWM, ADC etc)

Host irrelevant

6) it's a whole world of 3rd party C++ library code

Host irrelevant

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My point was that I can develop on a Mac without ever touching Windows so I'm very grateful for the Arduino platform.  It'd be amazing if the recently released Vidor 400 with the FPGA has a way to do Verilog synthesis+place&route on the Mac too - something I've been waiting for for over a decade!

 

--Mike

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My point is that's purely down to the Arduino IDE - it has nothing to do with any of the rest of the Arduino "platform" or "ecosystem".

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, to support arduino (I'm talking just about AVR-Arduino) a platform needs quite a few requirements:

 

  1. Run java
  2. avrdude must be compilable and run
  3. avr-gcc must be compilable and run
  4. GNU binutils must be compilable and run

 

edit: We all know how easy it is to accidentally/purposely break C portability and bind it to a specific platform. Fortunately avrdude, avr-gcc and binutils were designed to be portable, so the authors of these tools also deserve much credit for the existence of Arduino.

Last Edited: Wed. Jul 25, 2018 - 06:38 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But I think that all comes under Cliff's (3) ?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

>> 7) Works on Mac OSX

 

Only (3) [the IDE] - I think?

Well, there's also the choice of "host interface", and compiler, and so on.

It wouldn't have been uncommon for Arduino to join the ranks of "well, I guess you could theoretically build the tools for MacOS, but we haven't done that, and the driver for the USB thing we did only works on Windows..."   Getting (at least) CLI compilers for MacOS and Linux is a lot easier than it used to be, in general.  I'm not sure whether that's a result of customer demand, or just embarrassment that "an IDE put together by a bunch of art majors can do it!"

 

I've always considered myself relatively OS-agnostic.  "If a tool only works on Windows, I'll use a Windows system" (or some hack.  Back in the EAGLE 3 days I had set up EAGLE on linux, accessed via X-windows on the Mac.)   But my "main system" has been a Mac for a long time, and the whole plug&play nature of Arduino was a surprisingly big factor in my getting back into microcontroller programming.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Of course a lot of people call Arudino "a language"
I just call it a typo... cheeky

Ross McKenzie ValuSoft Melbourne Australia