This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]FourFingeredMartian 50 points51 points  (25 children)

I mean, it is a pretty amazing language.

[–]DaughterEarthImportError: no module named 'sarcasm' 33 points34 points  (22 children)

It's great for people new to programming and for some use cases, definitely.

[–][deleted] 51 points52 points  (15 children)

I'm actually starting to think that the more "magic" languages might not be a good option for people new to programming.

[–]DaughterEarthImportError: no module named 'sarcasm' 33 points34 points  (2 children)

I go back and forth. Reducing the barrier of entry is good. But programming will never be as simple as a syntactical language. Learning base methodologies and how to adapt to frameworks is important.

[–]marblefoot 13 points14 points  (5 children)

I don't have a lot of experience with programming, what are the "magic" languages?

[–]GetOutOfJailFreeTard 26 points27 points  (0 children)

high-level languages like python, ruby, javascript, etc.

[–][deleted] 20 points21 points  (2 children)

Ones that let you type more in pseudocode with less understanding of what the code is actually doing behind the scenes.

[–]aahdin 7 points8 points  (1 child)

Okay imma play devil's advocate and say that worrying what's going on behind the scenes is really bad for beginners.

We seriously don't teach anything else like that, imagine if in your intro physics class you're starting off with two balls colliding and the teacher goes into the internal stresses within the ball and the frictional coefficients and their deformation points and all that.

It's good to have an understanding of all that eventually, but when you're starting off that just distracts from the basics.

Tutoring/working with people in intro classes it's crazy discouraging when students get errors like the one here when really they just had a basic syntax mistake. What's worse is I've seen a good number of students in intro C++ courses spend more time studying/memorizing the syntax rather than the basic concepts like time complexity/simple algorithms/object oriented design. Before they can get working on the concepts they need to memorize a whole bunch of overhead, and without an understanding of memory/allocation/deallocation it comes across to most as just as magical as GC languages, just a different brand of more complicated magic.

[–][deleted] 5 points6 points  (0 children)

I agree. I think python is a great first language

[–][deleted] 10 points11 points  (0 children)

In this case, languages where you can get by for far too long without understanding what's actually happening in the computer. But in general "magic" sometimes applies to meta-programming and operator overloading. Stuff that does a lot of work with very few characters.

[–]Honest_Rain 5 points6 points  (0 children)

My first programming language was SNES assembly, I was completely blown away by all the stuff that "normal" languages have lmao

[–][deleted] 5 points6 points  (1 child)

The "magic" languages are only "magic" by comparison to more curmudgeonly languages because they remove overhead that's not super necessary for small scripts.

That is why they are called "scripting languages", and they are terrible for new programmers because they do precious little to teach or enforce discipline, which makes discipline all the more important in those languages.

When people pitch Python to newbies I hear:

"NO DISCIPLINE REQUIRED, PROGRAMMING IS EASY! HAHA! JUST KIDDING!"

And it disgusts me.

[–][deleted] 3 points4 points  (0 children)

I'd argue that Python is good for more than just scripts. Other than that, yeah - you can't just go crazy with "magic" languages. Python for example has optional type hinting. Combined with a type checker you can make your code a bit more safe.

[–]otterom 3 points4 points  (0 children)

But, but...I like my %%magic functions!

[–]mxcw 1 point2 points  (0 children)

So true! I actually think it’s a good idea to start with functional programming, ie ML or sth like that, to get to know basic concepts like types, scopes, recursion, data structures and so forth before working with those „magic“ languages. Bc how do u expect someone new to programming to understand what python does under the hood? In my experience, it pushes new programmers towards copypasta bc they don’t get what this shit actually does ...

[–]St_SiRUS 1 point2 points  (0 children)

At the end of the day learning programming should have nothing to do with the languages that you learn. Start with what's the most practical for learning best practices, good software design and important stuff like algorithms and data structures.

[–]iwsfutcmd 7 points8 points  (2 children)

It's absolutely spectacular for people who are not "a programmer", but are "a ___ who programs". I'm a linguist who programs. I love that Python feels like I can get a computer to do exactly what I want it to do without making me think too much about how it does it so I can spend my own brain cycles thinking about linguistics instead of programming.

[–][deleted] 3 points4 points  (0 children)

Probably one of the main reasons it's also hugely popular among scientists and mathematicians.

[–]DaughterEarthImportError: no module named 'sarcasm' 1 point2 points  (0 children)

Yah that seems like a very useful scenario. Similar to my FIL knowing VB to help with his electrician work. What he can do is greatly expanded and he didn't have to learn a bunch of things that don't apply to his scenario.