4 ms·
Importing external libraries is absolutely the most frustrating part of learning a new programming language. I’m glad Eclipse handled that for me in my first f
by idontwantthis 5y ago
Importing external libraries is absolutely the most frustrating part of learning a new programming language. I’m glad Eclipse handled that for me in my first few programming classes. New students shouldn’t need to get hung up on imports before they get to write a single bit of logic.
If they’re serious then they will get to have all that fun later when they are a bit more advanced.
- swiley 5y agoIt should be frustrating because you should avoid doing it.
- bodhiandphysics 5y agoIronically importing external jars is particularly easy in java... and frankly rarely nescessary in an early course. Java gives you a lot!
- AussieWog93 5y ago100% agreed that this is a huge problem. My first programming intro (I did EEE) was in MATLAB, where this isn't an issue. When we moved onto C/C++, though, this was an enormous headache. Even after a couple of years in industry it could be a massive pain the arse in terms of configuring CI/CD and porting it cross platform. To be honest, I think the best way to solve this is not so much to use IDEs that handwave over things, but a beginner-friendly, useful language where the problem simply doesn't exist - namely Python.
- KronisLV 5y ago> Python I'm tempted to share this xkcd, called "Python Environment": https://xkcd.com/1987/ https://xkcd.com/1987/ I'd say that Python is an absolutely stellar language when it comes to readability and getting things done thanks to its rich ecosystem, but at the same time is about as bad as Ruby when it comes to managing dependencies. In my eyes, something like Java/.NET/Go could be better choices for when you need to work with dependencies as a beginner, whereas Python is probably the better choice when you don't.
- franga2000 5y agoHave you used it recently? On any popular version+os+arch combination, pip will "just work" for anything a beginner would ever want to do. Binary packages are pre-compiled, packages are installed in per-user dirs automatically to avoid permission issues and conflicts with system packages (where those exist). The only issue comes up when you have multiple apps with conflicting dependencies, but at that point you're probably not a beginner anymore and someone will have taught you about pipenv. Just remember to type "pipenv install" instead of "pip install" and all your dependency problems go away. Most IDEs pick it up automatically too.
- AussieWog93 5y agoThis has been my experience. To import matplotlib, for example, you type "pip install matplotlib" into the terminal to install it. Then, you add "import matplotlib" to the top of your .py file. That's it.
- jeroenhd 5y ago> On any popular version+os+arch combination, pip will "just work" for anything a beginner would ever want to do. Binary packages are pre-compiled, packages are installed in per-user dirs automatically to avoid permission issues and conflicts with system packages (where those exist). That's often not the case in my experience. I've had several Python packages fail to compile on my machine (x64, so not even something less common like ARM). Others failed because of missing system libraries without any clear indication what library they're looking for. It's not as bad as NodeJS's package management, but Python certainly has problems. Then again, most of these problems aren't really problems for most use cases if you use virtualenvs. I've seen many (ex)academics use Python without venvs and cursing their system for not working properly. This results to pip being invoked as root, subsequently conflicting with the OS package manager and then some cursing about how Python has broken their system. venvs really need to be in the spotlight more often because I think a lot of people have terrible experiences with Python purely because they don't know they exist (or how to use them).
- KronisLV 5y ago
- simion314 5y ago> but a beginner-friendly, useful language where the problem simply doesn't exist - namely Python. Python? I would rather tech my child Lisp or C , white space being important is very confusing. For first time programming I would make a simple language that uses syntax like: if end_if for end_for function end_function then it would make more sense then tons {} or stupid tabs and spaces.
- jvvw 5y agoI've helped a lot of children learn Python (volunteering) and the whitespace hasn't actually been a huge issue. They seem to get the hang of it quickly. The typing, dealing with syntax errors which don't explain clearly the problem, and motivation are the main barriers I would day. It is quite nice for them to learn a language that is used in anger professionally. The first experience of most children here (in the UK) at school and elsewhere with programming is Scratch, a visual block-based programming language. So no typing or syntax errors, and very quickly you can makes games etc. It's got its pros and cons.
- franga2000 5y agoIn my experience, Python's whitespace-based blocks usually "click" with students faster than {} or start-end blocks. Especially if they previously learned visual programming like AppInventor/Scratch, having subsections indented to the right will be more natural than end statements. More generally, no program will be easily readable to a human without indentation. Having to scan aheas to find the endif, then find back where I was, then keep a mental note of the "block" of code that I'm looking at is really annoying, while indented blocks make that separation visually obvious. So if we already have to use indentation for our own sanity, why do we make ourselves add clutter like end statements for the compiler's benefit, when in reality, it has absolutely no problem understanding our indentation directly?
- simion314 5y agoI think it would make the code easy to read for a beginner. It could also make the error reports much more clear, instead of "Unexpected symbol }" you can print something like "This for is missing it's matching end_for". I don't like identation, it is easy to mess it around if you copy and paste code, or if you make edits, is like we would background color the blocks of code, it might look more visual but will cause issue when we actually manipulate the text. It is a shame that at the beginning of learning to program you are hit with this many concepts and on top of that with this complex programming languages , why we did not invent a simple , more limited but perfect for teaching one? I assume some will say why should we waste time teaching a toy language when we can teach the real thing.
- samuel 5y agoFor solving the sieve of Eratosthenes youn need 0 dependencies, and Eclipse gets in the way all the time(I have seen it and it's painful to watch).