Two minutes into my latest coursera lecture (introduction to interactive programming in python) the instructor indicated his frustration in javascript programming saying that it’s a terrible language. This may be the case… so far I don’t have a lot to compare against, but I have been enjoying learning JS in codecademy and I’m dying to know why he thinks so.
If you have experience programming in javascript and python (or other languages…ruby?) let me know if you agree with the above statement and what makes you think so. As a new programmer I am interested in learning as much as possible – if I can understand what faults people see in these languages I think that would be very instructive.
Thanks
Prateek Garodia
October 27, 2012 at 8:36 am
Hi Jack, I have not had any experience in Python but I have dribbled a bit in JS. I have to say while it is an easy language to get started in, but it is a hard language to master. I come from Java world where everything is very strictly defined so it is hard for me to get over the extra independence as I know from my Java world the problems this independence creates.
Recently I tried using Drag & Drop from the newly formed HTML5 library and while it was somewhat easy to get the functionality working. It was really hard to get all the bugs fixed. So, I had created a game where people had to drag the question to the correct answer. If you dragged it to the correct answer, it turned green and if it was the wrong answer, it turned red. Points were added for correct answer and deducted for wrong answer. To prevent problems, we tried putting in logic like
– to change the color back to what it was, once the wrong selection was corrected
– do not allow question to be dragged once it has been correctly dropped, etc.
While it sounds simple and intuitive, the implementation was not. This was even after we had followed directions from the manuals at Mozilla and Opera. So, in summary, certain aspects of JS depend on browser implementation so it will cause problems.
The other problem we faced was with local storage. Initially we were very excited but once we started using it, it turned out to be a memory management nightmare.
Finally, we started using JQuery. While this is still JS, it is more structured and follows rules so it is easier to get things done rather than spending time on why it is not working.
I hope this answers your question. BTW, if you ever need help in gamifying your titles, please let me know. I will be more than happy to do that. 🙂
downhousesoftware
October 27, 2012 at 9:43 am
Thanks for taking the time to provide such a well thought out answer, Prateek.
I’ve heard from others that JQuery is the best thing to happen to JS as well, but so far I have no experience with that whatsoever. I also agree that Javascript is an easy language to start with. Following the codecademy course, I was whipping along early on and only now (that I am in the final project) have I slowed down considerably.
I look forward to finishing this course up and spending more time focusing on the Java and Python classes I’m following now. The main problem I have had with learning any language is not the language itself, but how to move from a carefully cultivated learning environment where time is spent focusing only on the code, its syntax and logic into the real world of actually using the code to create something of my own.
So – your interest in gamification… I have to ask, did you take part in the Coursera/Wharton class that recently wrapped up?
Prateek Garodia
October 27, 2012 at 12:13 pm
I did take the Coursera/Wharton class and I really loved it. I have been following gamification for two years now so I had done a lot of reading on my own but this course plugged the gaps. I have ordered the book as well. I am sure it will be more detailed than the lectures.
To move to the real world, coding wise, the best thing to do is to dive in. If you are in a project, then it will dictate your learning. Otherwise I recommend you create your own project based on your current work and then try to change things around once you have achieved it. Thats how I learnt Drag & Drop. Just the drag & drop part was from the tutorials but then when I used it in the game, is when I realized how much I and the available tutorials were missing. 🙂