How I Tried Coding in Python Instead of Java For the First Time
Azoft Blog How I Tried Coding in Python Instead of Java For the First Time

How I Tried Coding in Python Instead of Java For the First Time

By Evgeniy Ekgardt on October 6, 2015

How I Tried Coding in Python Instead of Java For the First Time

I once read somewhere: “First, you learn a programming language to solve a certain problem, then you realize there's a language better suited for solving this problem, so you learn it as well, but 10 years later you write your own programming language specifically for this problem”.

Perhaps time has distorted this quote in my mind and I can't remember the exact words, so I paraphrased. Point is, we, programmers, shouldn't stand in place and code in the same language our whole lives. Instead, we should constantly experiment and learn new skills. So, I'd like to share my experience how I used Python instead of Java for solving a particular problem and how it all turned out.

The Problem

We had a JSON file with descriptions of country codes. The task at hand was to take the names of each country from JSON, make a request on web service (in my case it was yandex.translate) with a request to translate this line into a different language. Then, having returned the result, write it in the same JSON file as a new additional field. Afterward, I had to do the same task, but to write the results into plist file for iOS version.

The Solution

Since this task went beyond the project's Android development part, I decided to try and do this job myself, using a different programming language. In my opinion, writing this amount of code in Java would be too long and wouldn't be at all interesting. So I chose Python. I heard lots of good things about this programming language but never got around to try it for myself. So, I wrote two short programs: one for Android, one for iOS version of the project. Both were written in the usual notepad and didn't take a lot of code.

Here's what I got.

For Android:

import requests
import json

with open('codes.json') as data_file:    
    data = json.load(data_file)

data_file.close()

for i in data['codes']:
    payload = {'key': 'trnsl.1.1.20150901T124624Z.e170a12817a8be05.0addea6cf692e5b3f6fac59322a7a9d433ff21e2', 'lang': 'ru-en', 'text': i['title_rus']}
    r = requests.get('https://translate.yandex.net/api/v1.5/tr.json/translate', params=payload)
    i['title_eng'] = r.json()['text'][0]
    print(r.json()['text'][0])

for i in data['codes']:
    payload = {'key': 'trnsl.1.1.20150901T124624Z.e170a12817a8be05.0addea6cf692e5b3f6fac59322a7a9d433ff21e2', 'lang': 'ru-es', 'text': i['title_rus']}
    r = requests.get('https://translate.yandex.net/api/v1.5/tr.json/translate', params=payload)
    i['title_esp'] = r.json()['text'][0]
    print(r.json()['text'][0])

with open('full_codes.json', 'w') as json_file:
    json.dump(data, json_file)

raw_input()	

For iOS:

import requests
import json
import plistlib

with open('codes.json') as data_file:    
    data = json.load(data_file)

data_file.close()

f = []

for i in data['codes']:
    #payload = {'key': 'trnsl.1.1.20150901T124624Z.e170a12817a8be05.0addea6cf692e5b3f6fac59322a7a9d433ff21e2', 'lang': 'ru-en', 'text': i['title_rus']}
    payload = {'key': 'trnsl.1.1.20150901T124624Z.e170a12817a8be05.0addea6cf692e5b3f6fac59322a7a9d433ff21e2', 'lang': 'ru-es', 'text': i['title_rus']}
    res = requests.get('https://translate.yandex.net/api/v1.5/tr.json/translate', params=payload)
    d = {'ISO' : i['country_iso'], 'PhoneCode' : i['country_code'], 'Title' : res.json()['text'][0]}
    f.append(d)
    print(res.json()['text'][0])

with open('ios_codes_es.plist', 'w') as plist_file:
    plistlib.writePlist(f, plist_file)
plist_file.close();
    
raw_input()	

Conclusions

I think this experience was a good exercise for stepping out of my comfort zone, going beyond the thinking of object-oriented language, and testing out Python for myself. I have to say I was pleased with the results and even surprised at how well it worked out. Of course, if we consider Python as an alternative to Java for a full-scale project, it will be impossible: all interaction with the UI will still have to be through Java, as is the case with C++ and Ruby. But as it turns out, Python is a great choice for developing certain parts of the project.

To summarize, I can say that it was a good workout for the brain. I liked how quickly Python worked and how short and simple the code looked. Not to mention, this is just another confirmation that you should always choose a programming language that is most suitable for a particular task.

VN:F [1.9.22_1171]
Rating: 3.7/5 (13 votes cast)
VN:F [1.9.22_1171]
Rating: +8 (from 8 votes)
How I Tried Coding in Python Instead of Java For the First Time, 3.7 out of 5 based on 13 ratings



Request a Free Quote
 
 
 

Please enter the result and submit the form