7 ms·
Impressive! But why?
by v01d4lph4 8y ago
Impressive! But why?
- chkas 8y agoThere are so many programming languages - but imho not a real easy one for beginners.
- thanatropism 8y agoPython? Python is really easy to learn and has reached VB levels of snowball network effects.
- jerf 8y agoWell... it was easy to learn. It really isn't easy to fully learn it as it used to be. I think there's a fundamental gulf between "easy language" and one that you'd want to do work in long term, and the history of Python is a great case study in that. If there aren't any "easy, real languages", well, if you want to fix that you'd better carefully study the reasons why all the easy languages have stopped being easy on their way to becoming real languages or you'll just repeat the mistakes of the past.
- publicfig 8y agoWhat do you think makes Python more difficult to learn now than it used to be? It seems to me that there are even more tutorials now. Also, the confusion between learning 2.7 or 3+ is pretty much completely gone at this point, while the base core of the language remains as simple and readable as the older version in my opinion.
- zephyrfalcon 8y agoI don't think the number of tutorials matters, otherwise Haskell monads would be super easy to learn. ;-) Python circa 2000 was a language that was easy to learn. [1] What you saw was basically what you got. Python in 2018... well... it has grown lots more features, which might not show up in tutorials but a beginner will see them as soon as they look at actual code. List comprehensions, generators, context managers, metaclasses, async/await, decorators, 2/3 split, ABCs, etc. Useful? Yes. Easy to learn or understand for a newbie? Maybe not so much. Never mind that setting up an environment is no longer as easy as creating a 'lib' directory somewhere in $PYTHONPATH and unzipping files in there. Now we have many package managers, virtual environments, competing Python versions, you name it. Back in the day I started a Python "project" with a single file and worked from there, growing as necessary. Nowadays I see new projects with a dozen files and directories. Again, there are (presumably) reasons for all this, but easier it certainly is not. [1] Although even then the "Programming Python" book was like 900 pages... http://shop.oreilly.com/product/9781565921979.do http://shop.oreilly.com/product/9781565921979.do
- thanatropism 8y agoWelp, Python+numerics/stats stack is really messy; new stuff like coroutines can be a mindfuck. But what of what was once easy in Python is now harder? Parentheses after print statements?
- zephyrfalcon 8y agoA few things come to mind... Installing it. Setting up a project. Learning the whole language. Reading other people's code. Understanding how things work behind the scenes. Less surprising code, in the sense that it does what you expect. I would add, "finding a third-part library", but that was mostly because there were not as many. :) Then again the current glut of libraries is a bit of mixed blessing. I can look for a library that does X and find dozens of them. Very few of them will be mature or do what I want. But that has more to do with the ecosystem than with Python-the-language.
- jerf 8y ago"It really isn't easy to fully learn it as it used to be." If you carve out the Python 2.0-ish subset and taught a class on that, it would be as easy as it ever was. But if your students take that knowledge and go to the Django tutorial, they're going to find themselves missing several concepts, and Django doesn't even use everything in Python, being rather old itself. That said, I still think I'd rather take a Python 2.0-ish subset and teach students that, than give them some new custom language that they can't expand on or use in the field. Python 2.0-ish is still pretty useful and there's a clean upgrade track if you do want to continue down that road. And even the latest Python is still, at worst, middle-of-the-pack on language difficulty, if not still trending towards the easy side in the list of top 10-20 languages. But it's definitely a non-trivial upgrade path now.
- wowtip 8y agoBut even Python requires installing the dev environment etc. I can see the use for this, for throwing people with no experience into "coding right away".
- tokai 8y agoThere exists several python web environments. https://www.pythonanywhere.com/try-ipython/ https://www.pythonanywhere.com/try-ipython/ https://repl.it/ https://repl.it/ https://trinket.io/python https://trinket.io/python
- keymone 8y agowhat about https://www.python.org/shell/ https://www.python.org/shell/ and bajillion more resources on the web?
- pbhjpbhj 8y agoThere are REPLs online. If you just apt-install IDLE I think you can be up and running very quickly. I did a relatively thorough survey when I first started learning python a couple of years ago and found PyCharm simpler for the course I was doing -- basic text handling, and a little CLI based interactive stuff.
- pmarreck 8y agoPython has a lot of weird/surprising corner cases. In fact I'd argue that Ruby, a similarly capable language, has a lot fewer warts, which is why it consistently surprises me that Python is "doing better than" Ruby. https://wiki.python.org/moin/PythonWarts https://wiki.python.org/moin/PythonWarts
- zmmmmm 8y agoOne thing all modern languages (including Python) miss is the dead simple drawing functions of BASIC. They have no place in a regular language, but are super useful and intuitive in teaching programming. I tried teaching my kids Python at one point with a turtle graphics library but it was still annoying and complicated compared to BASIC where your drawing commands literally just "appear" on the screen.
- danShumway 8y agohttps://xkcd.com/1987/ https://xkcd.com/1987/ Don't get me wrong, I like Python. If you're a non-programmer and you want to start programming, and you want to be useful and to be able to automate stuff quickly, you should learn Python. Especially where math and statistics stuff is concerned -- I have a friend who recently started programming, and Python was his entry point. Unfortunately, the environment problems that everyone says are solved are still a pain. I had to troubleshoot his setup a lot; in particular it was a pain to make sure that if he called `python` from the command line it would be the same version as his IDE. And Python as a language is just kind of big. It's the same problem that Javascript suffers from -- sure, you can learn just the basic stuff, but will that help you when you're looking at other people's code online? Will that help you if you're checking out an OS project? That kind of ecosystem matters for accessibility. Both Python and Javascript have this philosophy of "there should be a library for everything". But what that means is that there's a ton of extra stuff just floating around, and no matter how much you tell people to ignore it, they don't. It's not a bad thing, in a lot of ways it's a very good thing. But it has consequences. Python adds onto that with the idea that everything should be readable. So there are multiple ways to iterate over an array, and the syntax sometimes subtly changes so the code looks cleaner. These are, again, not bad things. But they have consequences. They increase the number of concepts you're wrapping your head around. Compare Python with TI-83 Basic. A much, much smaller standard library that you can teach even a brand new programmer in like, a month. A few interesting restrictions (limited variables) that subtly push towards more advanced concepts (I learned how pointers worked on the TI-83 before I know what the word meant). I think this is why people gravitate towards platforms like the Pico-8. There's something refreshing about being in a bounded environment where all of the concepts are kept small. Learning to program for the first time is about experimenting and learning to go in depth with a couple of concepts, not learning a wide variety of concepts. That friend I was talking about eventually went back to doing a lot of programming in Excel instead of Python. Python was more powerful, and he played with it a bit, but he has an entire grasp around how cells in Excel interact with each other, so he's able to do creative stuff by just thinking about the stuff he already knows. He can write a program on paper without being at a computer. In contrast, when he wanted to do something creative in Python, he had to go Google "how do I do X"?
- 8y ago
- goodstuff9 8y agoBASIC ?
- feikal 8y agoi like it. you can feel german engineering. technology with no elitism and ease of use in mind.
- petra 8y agoMaybe it's because visual development tools work much better for beginners. There are visual languages that let beginners/non-programmers create real mobile apps, games, business apps with a relatively short learning curve. But creating a visual language is too much work, it probably requires a large group of people, and there isn't a tool to simplify that process, afaik.