3 ms·
Lately I'm way more excited about Julia than I've been about any language for years. My son is learning programming, and I was debating between starting him off
by sdegutis 13y ago
Lately I'm way more excited about Julia than I've been about any language for years. My son is learning programming, and I was debating between starting him off with Ruby, Python, or Clojure. But I think Julia might just be it. Out of all the languages I've learned it definitely feels the most intuitive. As I read the docs, I constantly find myself saying "yes! this is how it should work!" way more than I did when I learned any of the aforementioned languages (except maybe Clojure).
- csense 13y agoI think the Python community is more mature in terms of the number and quality of applications and documentation. Julia is getting close to critical mass, but it's still "niche," but Python is firmly "mainstream." I think it's important that a beginner's first "real" language is a mainstream language, due to the existence of libraries and a community which will help them through and beyond the "beginner" phase. Clojure suffers from the same problem as Julia (not mainstream), and Ruby suffers from the same problem as JavaScript (most applications are tied to web development, which is such a Gordian knot of related technologies all tied together that it will simply overwhelm most beginners.) EDIT: Seriously, parent was downvoted? Why?
- sdegutis 13y agoLack of community isn't a problem for him, since he has me to help him, and I'm proficient in all these languages. However you bring up a good point, I am somewhat concerned about lack of tooling and libraries.
- csense 13y ago> he has me to help him, and I'm proficient in all these languages I think we have different assumptions about the goal of teaching your child programming. Your goal appears to be "create an activity where parent and child can spend time together." My goal (if I had children) would be "get them to be able to program independently as soon as possible," because IMHO that will ultimately both increase the amount they learn (because they'll start learning on their own time to scratch their own itch, just like mature hackers do, so the amount of learning your child does is no longer so dependent on the amount of time you spend teaching them) and increase the probability they'll stick with it for the long term (because being able to do their own projects and have their own ideas makes it much more attractive, especially as they head into the teenage years and start to establish their own identity). Having an activity parent and child do together which increases emotional family bonds is great, but I think the more important goal is the transfer of knowledge, skills and the hacker mindset. Disclaimer: I don't actually have kids, but if I did, the above would describe my philosophy.
- bayesianhorse 13y agoWhile I think Julia is great, for children I have to say Python is better, especially in various subcategories that might keep a teenager interested: Games, 3D Animation (blender), Websites and Mobile Apps.
- _random_ 13y agoYes, it's a good option to pick a language with no powerful IDEs (static analysis and proper automated refactoring) as those are harder to move on from later on (IntelliJ IDEA or Visual Studio vs any typical Python/Ruby notepad). If you are using a basic text editor then you really have to learn the language and have fun debugging.
- csense 13y agoI'm not so sure about that. One big conceptual hurdle that many beginners have is the notion that a program is a sequential sequence of steps, and at any point in time during a program's execution, there is a unique "current statement" [1] and "current state" (content of variables). Single stepping through your program with a good visual debugger makes these concepts very clear. [1] Of course this is not true for multi-threaded programs, but multi-threaded programs are well out of "beginner" territory.