5 ms·
Is python really meant to be a beginner-friendly language? I tend to think of it as lisp-without-parens, and lisp is not very beginner friendly.
by qntty 8y ago
Is python really meant to be a beginner-friendly language? I tend to think of it as lisp-without-parens, and lisp is not very beginner friendly.
- cschmidt 8y agoIt is usually the "first language" of choice these days, when teaching programming.
- monadgonad 8y agoThat does not mean beginner-friendliness is one of its design goals.
- alayne 8y agoIt was though https://www.artima.com/intv/pyscale.html https://www.artima.com/intv/pyscale.html "So I never intended Python to be the primary language for programmers, although it has become the primary language for many Python users. It was intended to be a second language for people who were already experienced programmers, as some of the early design choices reflect. On the other hand, intuitively I probably stuck to many of ABC's design principles. Because although I had my criticisms of ABC, I borrowed many of its valuable elements, which eventually made Python a great language for people who aren't ace programmers or who are just learning. We now have a large community of people using Python as an educational language, teaching Python in schools. These people aren't and may never be professional programmers, but they still find some programming skills useful." -GvR
- deleted 8y ago[deleted]
- sidenoteproof 8y agoThe very quote you linked explicitly contradicts you... "It was intended to be a second language for people who were already experienced programmers, as some of the early design choices reflect. "
- deleted 8y ago[deleted]
- Already__Taken 8y agoThis has more to do with who has what teaching resources pre-made to sell than something any thought about the merits of a programming language.
- milesvp 8y agoSort of. Maybe. When python was gaining momentum in university settings though, the one main argument I read from a professor more than a decade ago, is that the python implementation was near identical to their pseudocode. So they stopped using whatever language they were using in their textbooks, and started using python, since it made it easier to convey the knowledge they were trying to convey (and probably greatly decreased the amount of editing and typos). Basically, don't discount a text book where every algorithm is executable code, without first having to translate it into some other language.
- newen 8y agoI think that's how it got so popular. It gets taught in school as a first language because it's "simple, beautiful", etc. and people stick with their first language as people do.
- diminoten 8y agoIt's not a beginner language, but it is beginner-friendly. It's actually a huge problem if you end up trying to hire people to build enterprise software in Python, because everyone and their mother has "5 years of Python experience", but "scripting on your own" is miles apart from "building well designed systems".
- p10_user 8y agoWhat would you consider a beginner language then?
- diminoten 8y agoI don't think the term has much value. Maybe Scratch.
- colanderman 8y ago"Language for people who are not programmers but who need to instruct computers to do things" is the definition I work with. Scratch, BASIC, etc., aren't really suited to that role. No-one who's just trying to munge some files wants to be told "OK first learn this language that isn't useful for you, and then you can learn a language that is". Hence why practically, Python tends to fill the "beginner" role, which is unfortunate due to its complexity.
- diminoten 8y agoPython is for people who are programmers, so it doesn't fall under your rule. Also that rule is tautological.
- Koshkin 8y agoBasic is much easier for a complete novice to get into.
- the_af 8y ago
- maxerickson 8y agoIt was heavily influenced by ABC, a language meant to be used for teaching: So, I decided to design a language of my own which would borrow everything I liked from ABC while at the same time fixing all its problems (as I perceived them). http://python-history.blogspot.com/2009/01/personal-history-part-1-cwi.html http://python-history.blogspot.com/2009/01/personal-history-...
- pfranz 8y agoIn practice, snippets of Python look very similar to pseudocode. A lot of the idiosyncrasies I see people bring up I consider "intermediate" or "advanced" Python. For the first 5 years I used Python I never wrote a class or a module (I was familiar enough to know when I saw one), let alone cared what a meta-class was.
- mixmastamyk 8y agoSimple things are easy, complicated things are possible, though may be awkward. Better situation than many/most languages.
- peatmoss 8y agoI think most beginners learn languages to solve some particular thing. Python has a lot of great libraries and tutorials for learning. It doesn’t matter if Python has a lot of idiosyncrasies—new Pythonistas are copy/pasting and mad-libbing their way to a basic understanding of coding. Learning to program from first principles is hard, but I reckon Racket, a lisp, with it’s wealth of teaching materials and well thought out design is about as good a way to start as any. It’s small and consistent enough to actually learn from the ground up rather than by pulling on one thread.