• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Is Python better than Java?

 
Simpson Kumar
Ranch Hand
Posts: 261
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm working on java since 6 years, now I'm working in a school as a Sr. java developer and joined recently for specific these techs. Suddenly my upper management has decided to work on Python and asked me to work on this. I got shocked and I feel worry on downgrading my tech skills. I thought of increasing my skills on java by hearing their words on java while my interview was going.
Now what am I supposed to do? is that better to continue on the Python or better to come out from this job and get another one. Please some suggestions are really appreciated to help me.

 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First and foremost, no one language is better than another. It depends on what needs to be done. Secondly, this seems more about your job than python/java so I am going to move it to our job discussions forum.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34210
341
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Kumar,
What's wrong with learning Python and gaining experience in that?
 
Freddy Wong
Ranch Hand
Posts: 959
Eclipse IDE Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

I got shocked and I feel worry on downgrading my tech skills.


You'll be surprised on what Python can do and Java can't.
 
Joe Harry
Ranch Hand
Posts: 10110
3
Eclipse IDE Mac PPC Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Simpson Kumar wrote:I'm working on java since 6 years, now I'm working in a school as a Sr. java developer and joined recently for specific these techs. Suddenly my upper management has decided to work on Python and asked me to work on this. I got shocked and I feel worry on downgrading my tech skills. I thought of increasing my skills on java by hearing their words on java while my interview was going.
Now what am I supposed to do? is that better to continue on the Python or better to come out from this job and get another one. Please some suggestions are really appreciated to help me.



It sounds like a good opportunity. Be glad that they did not ask your to leave the company just because you are a Java programmer and not a Python developer. Just grab the opportunity.
 
Kj Reddy
Ranch Hand
Posts: 1704
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It depends what you like to be. If you want to be just a "Java Programmer/Developer" you should not work on Python. But if you want a "Software Engineer/Developer" you should be excited to jump into Python Programming. If you ask me I prefer not to be just a "Java Programmer", who knows tomorrow something better may come.
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18098
50
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Better" depends on context. This is the Jobs Discussion forum, and from that point of view, you'll find a lot more Java Positions Available advertised than you will for python.

However, Python excels for Quick-and-Dirty, where the need to "Git 'R Dun" is more important than rigorous compile-time checking, security, performance or scalability. As an example, I needed a fast simple way to convert a CSV file to QIF format the other day. In olden time, I'd probably have used Perl, but Perl's a better choice when regular expressions are involved - playing the CPAN lottery to get a CSV reader didn't appeal to me. I ruled out Java, because I didn't want to go to the overhead of setting up a Java project, chasing down the Jakarta CSV library, etc., etc.. I knew that Python had a pre-installed csv package. so I chased down an example. Net result, about 1/2 hour of labor and I was able to accomplish the task in about 10 lines of code, end-to-end.

On the other hand, while there are Python web frameworks, and they're good for certain things, I wouldn't care to institute an online banking system using them. They don't have the tight security heritage, there are fewer tuning options, and since Python gets a lot of its "productivity" by deferring some of the error checking until code actually gets executed, there's more chance that a really horrible bug can lie in wait until it blows production.
 
Hussein Baghdadi
clojure forum advocate
Bartender
Posts: 3479
Clojure Mac Objective C
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:
On the other hand, while there are Python web frameworks, and they're good for certain things, I wouldn't care to institute an online banking system using them. They don't have the tight security heritage, there are fewer tuning options, and since Python gets a lot of its "productivity" by deferring some of the error checking until code actually gets executed, there's more chance that a really horrible bug can lie in wait until it blows production.

I think this makes unit testing a necessity for dynamic languages (and compiled languages).
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18098
50
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
John Todd wrote:
I think this makes unit testing a necessity for dynamic languages (and compiled languages).


That, unfortunately, has 2 problems.

1. There's an old saying that testing doesn't prove the absence of bugs, only their presence. If you don't test for a condition - either because it's a condition that no one thought of or for whatever reason, the tests will succeed, but the product may fail. And Murphy says "Guess When?". Strongly-typed languages and rigorous frameworks are no silver bullet themselves, but they do provide a lot of built-in checking that comes in automatically without having to be explicitly coded, and the type checking gets done every time you compile, not just in the Testing phase.

2. Quick and Dirty means just that. If the decision was made to use a Q&D setup, chances are that time and/or money were considerations. Since Unit Tests can be written "Later, when there's Time", they're likely to be too little, too late or not at all (after all, the system runs just fine, doesn't it?).
 
chris webster
Bartender
Posts: 2407
32
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, I don't see how acquiring a new skill can possibly mean "downgrading" anything. I'd love to get paid for learning a new skillset, instead of always having to do so in my spare time!

Python and Java are typically used for different things, so you can't simply claim one is "better" than the other. But learning Python will expose you to different ways of doing things that may be helpful when you move onto other tools in future as well.

And if you don't like learning new stuff, you're in the wrong business!
 
Sandeep Awasthi
Ranch Hand
Posts: 597
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
java+python on resume is certainly more valuable than java alone.
 
chris webster
Bartender
Posts: 2407
32
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:
John Todd wrote:
I think this makes unit testing a necessity for dynamic languages (and compiled languages).


....
Quick and Dirty means just that. If the decision was made to use a Q&D setup, chances are that time and/or money were considerations. Since Unit Tests can be written "Later, when there's Time", they're likely to be too little, too late or not at all (after all, the system runs just fine, doesn't it?).


Fair comment, but not all dynamically typed languages are equal in this respect. Groovy/Grails can certainly be combined with standard JUnit-style testing i.e. you can do test-first development with these tools. Not sure about Python - maybe that would be a good open-source project for somebody to practice their new Python skills on...?
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18098
50
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
http://pyunit.sourceforge.net/

The problem is, it doesn't matter what type of testing framework you have unless A) you actually have someone writing tests and B) they write a test that will catch the problem.

In Java the following will never get past the compiler:


In Python, until you actually squeeze, you won't blow up, and even then only if you're only randomly squeezing watermelons but usually squeezing limes.

Actually, in the case of Python it's worse, since the entire script can be total binary garbage right up to the instant you invoke it for the first time. That's different than, say, Smalltalk, where the compiling is done as part of the editing process.

This isn't to say that I don't think Python is a good language to know. It has become the "Visual Basic" of the open-source world, and it has the advantage of being much more evolutionarily advanced than BASIC. It's used in some very important places, including the Anaconda boot application (I make no apology for Red Hat's little jokes), the Xen infrastructure, and many other places besides.

All I'm pointing out is that There Ain't No Such Thing as a Free Lunch, and that in my experience, you can shift around which phase of the project the heavy labor has to be done in, but the sum total of time and effort for pretty much any language I've worked with - excepting possibly assembly language - is about the same. I prefer my pyrotechnics to occur on the privacy of my own desktop, but I fully understand the appeal that showing screens ASAP has to many people.

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic