Kind of sort of not really serious, but....
Python. It keeps getting touted as a more 'intuitive' language, easy to learn, simple, yadda yadda.
I can write simple progs with it, but it just feels so wrong. I find myself deleting brackets and semicolons. I think there are scripts or programs that can convert from C++ to python or package them or some such, haven't looked too much into it yet.
I do like a few aspects of it, such as not having to name data types, but by the same token it makes me feel less in control. Like driving an automatic v a manual.
Does it get easier learning and using multiple programming languages? Should I solely work with one or the other and alternate, or does having simultaneous projects going on using both the key to solidifying their differences in my brain?
What is "dumbed down" about Python?
Is it that you feel your expertise is wasted because it is easier to use than C/C++? Experts in every walk of life get overtaken by technology all the time. Biblical scribes must have been really pissed off by Johanes Gutenberg
The way I see it using an interpreted language like Python (or Ruby) you can get far more done in the same time. Of course there are projects for which you really do need a compiled language - like Operating Systems or microprocessors. But I suspect the majority of programmers never have anything to do with those sorts of projects.
If you need to write a web application you will probably need to use Javascript.
Just use whatever gets the job done with the least amount of effort.
...R
Delta_G:
I think it is just that it feels less rigorous in learning it. None of this pointers and types and stuff that makes C++ feel so close to the metal.
For me the whole purpose of Python or Ruby is to get away from the metal - to be more productive by programming at a higher level of abstraction and with a lot of the housekeeping done for me.
If you like being near the metal then use C/C++
...R
Python housekeeping/garbage collection is good and all, but I wonder at what expense. Is it workable because it runs on systems with so much memory that it can afford to be sloppy? If a problem occurs, you'd have to dig through and learn how those features work. Again with a car example, having a bunch of features makes it nicer to use but harder to troubleshoot. Heck my car now has a malf on a sensor that detects condition of a sensor.
I think it's great that Python is getting more people into programming. But the saying is along the lines of "if it's easy, it's not worth doing". I may just be unassured by their playful nature, unabashedly named after Monty Python, and my own desire to understand 'the metal' rather than skate about on a surface level feigning knowledge. I know it's relative and people adept in assembly may feel the same way about C++, it's a minor niggle in my brain which is why it's in bar sport.
INTP:
Python housekeeping/garbage collection is good and all, but I wonder at what expense. Is it workable because it runs on systems with so much memory that it can afford to be sloppy?
What does that matter? Think how many gigabytes of ram or hard disk you can buy with the cost of 1 hour of a programmer's time.
All programming languages have evolved to reduce the cost of creating programs by reducing programming time. Assembler was faster than flicking switches on a console. C/C++ is faster than Assembler. Python is faster than C/C++ etc.
If a problem occurs, you'd have to dig through and learn how those features work.
I don't think the answer to this is the same as it would be with a C/C++ program. I think you need to solve the problem at the higher level of abstraction that is Python - not by exploring the implementation of Python. Exploring the implementation of Python seems to me similar to exploring the GCC compiler.
Of course, as is frequently evident with Arduino libraries, it is perfectly possible to get crap add-on libraries for any language that are badly implemented or have severe limitations. But that does not undermine the value of the core language.
...R
In a way, Python is a lot like Arduino. A lot of it's "power" comes from libraries and features that other people have already implemented, and "advanced" features of the language that are somewhat "beyond" the core of basic computer science.
I can recommend https://www.coursera.org/learn/python-network-data for a glimpse of some of that. Regular expressions, json, xml, http parsing; all not much more complicated than "Blink"...
Yeah, there's a cost for all that, and you won't get blinding fast performance without more care, and more than you'll get it out of using digitalWrite() instead of PORT->Group[0].OUTSET.reg = 1<<bitno;
Python is a serious language, reasonably popular in professional circles. More importantly from an educational point of view, python will make it relatively easy (compared to C) to study and explore "computer science concepts" like algorithms and data structures ...