From Java to Python

If I remember properly I haven't learnt any new language in last three years. All I had done was learning more libraries in Java, PHP and JavaScript. Partly because I was not interested in learning completely new language and its ecosystem. Also because there was no need. All my bread and butter work was done in Java. I have been using Java for like ten years now. All I needed to do was add more libraries and frameworks. I was in comfortable position. For everything else (my basic web hacking) there was PHP. For fun there was JavaScript. So as you see there was no place for new language.

Slow start
Last year when I went on sabbatical. I also planned to learn something new. But then new language wasn't on my priority list. So I didn't :)

Tipping Point
Sale of Sun to Oracle happened. That was the trigger and tipping point. I could somehow never associate myself with Oracle. All of a sudden this cool geek company was part of big business Oracle. Now I wanted a language which has its roots in FOSS and is developer oriented.

Languages considered
I started looking for a new language. The final list of languages were Ruby, Python and Scala.

The one
I was in search of a language

  • Rooted in Free and Open Source ideology
  • Clean and easy to learn
  • Lots of libraries
  • OOP support
  • Can be used both for system level programming and web development
  • Preferably scripting language
  • Cross platform
  • Community support


Python satisfied everything. So it was Python.

End of Java?
Not really. Though I might use it only on Android platform!

The new beginning
Once I was sure of Python, the rest were easy. On my default platform Linux (Ubuntu), I use Scribes as my editor. On windows I use Notepad++.

Version Confusion
Of course there was a confusion of learning Python 2.7 or 3. But then I was learning and not implementing so chose shiny new Python 3.

Books to begin
Didn't have to buy any books. Used A Byte of Python
and Dive into Python heavily. Also used Python wiki.

So here I am with a new language, exploring new world. Its been great until now and I expect the same in future.

16 Responses

  1. Arun says:

    Thej,

    Glad that you made the right choice ;)

    I would also recommend that you check out Zed Shaw’s Learn Python The Hard Way, if you haven’t already.

    I also suggest reading the django source code for appreciating some standard python idioms.

    Good luck!

  2. Sanjay Nayak says:

    Thej, I want to learn Python but haven’t done so far. I remember sometime in 2003 in my first job, I had to define new skills that I would learn. I proposed Python and my manager said what is the use of it for you and for this company. I never attempted explaining.

  3. S Anand says:

    Welcome to Python! :-)

  4. Veera says:

    /I was not interested in learning completely new language and its ecosystem. Also because there was no need. All my bread and butter work was done in Java./

    I have the same friction towards learning a new language. Every time I decide to learn a language, I ask myself, “why?” – Java is more than sufficient and works..

    Please share how you would be using Python for web development. :)

  5. Naveen says:

    I guess “A Byte of Python” is one the best Python tutorials I have seen on web… Continue sharing your experience..

  6. Aravinda says:

    Welcome to Python.

    btw, check this http://imgur.com/gallery/ZyeCO

  7. Thejesh GN says:

    @Arun thanks for the link
    @Sanjay you should start
    @Anand thanks
    @Veera of course I will write
    @Naveen yes it is. Thanks to Swaroop
    @Aravind thanks

  8. Joe Jacob says:

    Welcome to Python :)

    Regarding editor/IDE you can use anything, I use Emacs, Geany and Netbeans. You can use Eclipse too.

    You can choose version 3 if you are not going to use third party libraries. Some third party libraries are not available for version 3; I use 2.7. Read python documentation also.

  9. Joe Jacob says:

    @Veera “Every time I decide to learn a language, I ask myself, “why?”” I feel the same whenever I try to learn Java :P

    For web programming there is Django and lots of frameworks. There is pyjamas.

  10. Thejesh GN says:

    @Joe Yes. for all practical purposes its v2.7.

    For web I am planning to use web.py. It looks simple and easy. What do you think?

  11. Joe Jacob says:

    Of course web.py is simple and easy, where as Django is bit heavy weight framework. There is nothing wrong if you call Django as CMS. But Django has its own advantages. web.py is as good as django. It is a framework for people like me who don’t know ABC of web programming :)

  12. Palak Mathur says:

    I learned Python when I was in Infosys and had to work on automation scripts for build and deployment. The same thought that why to learn a new language when Java is already there came to my mind too. But I had to so I did. Looking back now, I think it was a good decision – at least I can boast that I know Python. I have not used Python extensively and have only used it for build and automation purpose not only because I was busy with work but also as I was busy reading Indian Constitution, Polity, Public Administration and History. Hope that I will soon be back in Technology stuff and this post of yours will be the initiator for me. Hope that everything goes well!!

    All the best to you and hope the same from your side for me as well.

    P.S.:- For last 3 years, I have not even used Java extensively. Have been working on Oracle Service Bus.

  13. Palak Mathur says:

    Finally started with Python again!!! ;)

  14. Aravind says:

    is there any streaming json parser for python(written in python purely)?