I was wondering is learning Python and Django a hard/time consuming process for someone who's already rather familiar with OO programming (C++/Java) and some web dev (Java EE)?
I'm starting to look for a technology to implement a part of my master's thesis and since it will be a web app I'm considering Java EE (since I'm already familiar with it), Python/Django (since my professor suggested it and I'd really like to learn Python), Ruby on Rails (also my profs suggestion but somehow I don't feel like learning it) and PHP (the last suggestion but I despise PHP). Oh he also said he heard something about Scala, but from what I know Scala/Lift isn't all that mainstream yet and it might be problematic to work with it?
My greatest concern is time since for the next 4-5months I'll be attending my normal courses, go to work and work on my thesis (then I'll have 4-5months for only work+my thesis) and I'm not sure will I find the time to learn a new language.
The whole thing will be a web app for the teachers/students to both check and make their schedules at the uni (there will be some constraint programming etc etc and we want to implement an algorithm which would, based on data from 开发者_开发百科previous years and some user input, create a schedule for the upcoming year).
Personally I love java but my teacher said it's a performance hog and I'd like to know is python's performance better/worse?
I'd ask your professor for some data to support "performance hog". Sounds like shallow thinking and FUD to me. Benchmarks can be found to support either position, so I don't pay much attention.
The real reason to learn a language is so it can affect the way you think about programming. I think Python will be beneficial. Shame on your professor for not bringing that up. S/he's worried about performance? Ask when they last wrote code where performance mattered.
I'm learning Python right now as a long-time Java guy. I think learning anything takes some time. I'm working my way through "Core Python Programming" by Wesley Chun.
I'm enjoying it very much so far. I like the language. The ideas map pretty nicely onto what I already know about Java and OO, but there are differences (e.g., dynamic typing, functional programming, etc.) that are worth understanding.
The most important thing is writing code. I'm working through the exercises carefully and getting it under my fingers and into my brain. I'm using PyCharm from JetBrains as my IDE. It's brilliant to have such a good tool at my fingertips.
I started about a month ago. I'm about 1/3rd of the way through the exercises (reading is further ahead; about halfway). My goal is to finish it before the end of the year and feel comfortable enough to pick up Django.
I hope you like it as much as I do. Good luck.
If for your thesis and you have decided up front that you like it and want to use it, you have in my opinion the best situation conceivable.
Go for it. Learn all you can. Do the best you can.
This will happen again and again in your professional life, and you might as well have tried it in a situation where you have an experienced mentor handy (but do as the mentor says!)
Answer first:
Technically it probably is a bit slower when you run it vs Java.
I think there have been quite a few articles on this.
Here --- > Is Python slower than Java/C#?
and here --- > Python vs. Java performance (runtime speed)
What python lacks in possible speed it vastly makes up for in its structured thinking and prebuilt modules created by an online community.
There is this massive community behind Python and we've learned to play with our code to make it fun, share commonly used tools and by creating open source tools we aim to increase the quality of the code.
Code that is easier to read is easily fixed thus long term maintainable.
I've been learning python for almost two years and the Python community here in Seattle has been amazing.
精彩评论