472,776 Members | 2,483 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,776 software developers and data experts.

python vs java

hi,

some of my friends told that python and java are similar in the idea of
platform independency. Can anyone give me an idea as i'm a newbie to java
and python but used to C++. My idea is to develop an app which can run both
in windows and linux.

Pls help.

Thanks in advance....
Sep 6 '06 #1
8 2377

Aravind wrote:
hi,

some of my friends told that python and java are similar in the idea of
platform independency. Can anyone give me an idea as i'm a newbie to java
and python but used to C++. My idea is to develop an app which can run both
in windows and linux.
That's true to an extent. Both Java and Python come with extensive
standard libraries, providing a useful toolkit for the programmer.
Python does have a number of cross-platform GUI toolkits abailable too,
including one in the standard library, although WxWidgets (formerly
WxWindows) is also popular.

I'd say that Python is easier to learn and more productive as a
language, but Java has a much larger selection of add-ons and libraries
available. I can't give you much more help without knowing what the app
will do, and therefore what language features or library/framework
support would be helpful.

Simon Hibbs

Sep 6 '06 #2

Aravind wrote:
some of my friends told that python and java are similar in the idea of
platform independency.
Similar in goal, but quite different in approach.

Python supports lots of platforms and goes to great lengths to offer
facades around whatever features a platform does have, so as to offer
the same benefits as Unix. Java lives in a virtualised environment
where it pretends there aren't any platforms. Perl pretends everything
_is_ Unix and falls flat when it isn't.

If you can cope with this, Java is simpler and less platform-bound.

If you actually need to get OS-level work done, Python is wonderful.
You can write stuff that hooks in at a fairly deep level, yet really is
portable.

Sep 6 '06 #3
On Wed, 6 Sep 2006 17:53:29 +0530, Aravind <ar************@yahoo.co.inwrote:
hi,

some of my friends told that python and java are similar in the idea of
platform independency. Can anyone give me an idea as i'm a newbie to java
and python but used to C++.
Well, what Java and Python (and some other languages) have in common is a
large standard library.

The C++ standard library is smaller, and doesn't cover things like advanced
file I/O, networking, concurrency, or user interfaces. You either have to
find third-party portable libraries for the things you want to do, or target
a specific platform.

As a side note, Python differs from Java by happily including non-portable
things in its standard library. If Unix people need access to poll(2); fine,
then they make it available, even though it won't work on e.g. Win32.
And document that it isn't portable.

/Jorgen

--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org R'lyeh wgah'nagl fhtagn!
Sep 6 '06 #4
Aravind wrote:
hi,

some of my friends told that python and java are similar in the idea of
platform independency.
Well, not quite IMHO.

Java treats the problem by taking the autistic attitude of pretending
the underlying platform doesn't exists - which can be a major PITA.

Python is much more pragmatic, and can even offer really strong
integration with the platform *without* sacrifying portability - the
core language is platform-independant and tries to help you wrinting
platform-independant code (cf the os and os.path modules), and
platform-specific stuff is usually isolated in distinct packages with a
BIG caution note on it !-)
Can anyone give me an idea as i'm a newbie to java
and python but used to C++. My idea is to develop an app which can run both
in windows and linux.
With a GUI ? If so, you probably want to check out wxPython or PyGTK
(wxPython will also buy you MacOS X IIRC, and wil perhaps be easier to
install on Windows).

Else (web, command-line, what else ?), you should not have any
particular problem as long as you avoid using platform-specific packages
and always use the portability helper features (ie os.path etc).

Coming from C++, you'll probably need a few days to grasp Python's
object model and idioms (Python looks much less like a dumbed-down C++
than Java), but my bet is that you'll be productive *way* sooner with
Python, and *much* more productive.

My 2 cents,
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'o****@xiludom.gro'.split('@')])"
Sep 6 '06 #5
Bruno Desthuilliers wrote:
With a GUI ? If so, you probably want to check out wxPython or PyGTK
(wxPython will also buy you MacOS X IIRC, and wil perhaps be easier to
install on Windows).
Just a warning: wxPython does operate slightly differently between Mac
OS X, Linux, and Windows. The differences are usually minor and easy
to clean up in a cross-platform manner, but be aware that you need to
test on all platforms that you're going to release on.

For example, MDI apps are anthema to Linux's GTK, so wxGTK uses a
tabbed dialog to approximate the same thing. While Mac OS X can
associate a Python object (in my case, None) with a hidden top-level
tree control node, Windows will throw a C++ assertion.

If you are used to using MFC, wxWidgets (which wxPython uses) provides
a very MFC'ish programming experience. It's pretty decent, and the
wxPython demo provides lots of neat interactive examples.

--Jason

Sep 6 '06 #6
Jason wrote:
Bruno Desthuilliers wrote:
>With a GUI ? If so, you probably want to check out wxPython or PyGTK
(wxPython will also buy you MacOS X IIRC, and wil perhaps be easier to
install on Windows).

Just a warning: wxPython does operate slightly differently between Mac
OS X, Linux, and Windows. The differences are usually minor and easy
to clean up in a cross-platform manner, but be aware that you need to
test on all platforms that you're going to release on.
I don't think one could pretend writing a cross-platform application
without testing it on all targeted platforms.

(snip)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'o****@xiludom.gro'.split('@')])"
Sep 7 '06 #7
2006/9/7, Bruno Desthuilliers <on***@xiludom.gro>:
I don't think one could pretend writing a cross-platform application
without testing it on all targeted platforms.
E.g: while creating a free software, you may not have an Apple
computer but you may want to be *possible* to run your program there.
You don't test it, but you *think* it runs there. Not everybody has a
spare MacOS X to test apps.

Of course, if your software *needs* to run in some particular OS then
you have to test on it.

--
Felipe.
Sep 7 '06 #8
Felipe Almeida Lessa wrote:
2006/9/7, Bruno Desthuilliers <on***@xiludom.gro>:
I don't think one could pretend writing a cross-platform application
without testing it on all targeted platforms.

E.g: while creating a free software, you may not have an Apple
computer but you may want to be *possible* to run your program there.
You don't test it, but you *think* it runs there. Not everybody has a
spare MacOS X to test apps.
Ah, but those with the Intel Apples can run Linux, Windows, and Mac OS
X at the same time! *grin*

Actually, that's how I'm working on my wx/Python application. I write
it under Mac OS X and occasionally pull it into my Windows and Ubuntu
virtual machines for further testing.
Of course, if your software *needs* to run in some particular OS then
you have to test on it.
Certainly. And this point should be emphasized for any cross-platform
language, especially for folk who may not have done such development
before. The "write once, run everywhere" phrase does have a footnote.
Python's documentation is very good at pointing out what is platform
independent and what isn't, but other packages are not as thorough.

--Jason

Sep 7 '06 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Dave Brueck | last post by:
Below is some information I collected from a *small* project in which I wrote a Python version of a Java application. I share this info only as a data point (rather than trying to say this data...
1
by: bezeee | last post by:
At my work we are in the process of building a tool to test an XML based API. Basically, XML in and XML out over http. Currently, there are two engines that do all of the schema validations, xml...
46
by: Jon Perez | last post by:
Can one run a 1.5 .pyc file with the 2.x version interpreters and vice versa? How about running a 2.x .pyc using a 2.y interpreter?
14
by: Wolfgang Keller | last post by:
Hello, as a non-developer I am currently participating in an industrial "research" project to develop a so-called "web application". This application serves at the same time as middleware to...
114
by: Maurice LING | last post by:
This may be a dumb thing to ask, but besides the penalty for dynamic typing, is there any other real reasons that Python is slower than Java? maurice
53
by: john67 | last post by:
The company I work for is about to embark on developing a commercial application that will cost us tens-of-millions to develop. When all is said and done it will have thousands of business...
2
by: Hal Vaughan | last post by:
I'm self taught and most of what I've been working on for the past several years has been entirely in Perl and Java. I've noticed that I can code about 5 times faster in Perl than Java, in part...
30
by: Stuart Turner | last post by:
Hi Everyone, I'm working hard trying to get Python 'accepted' in the organisation I work for. I'm making some good in-roads. One chap sent me the text below on his views of Python. I wondered...
25
by: abhinav | last post by:
Hello guys, I am a novice in python.I have to implement a full fledged mail server ..But i am not able to choose the language.Should i go for C(socket API) or python for this project? What are the...
17
by: MilkmanDan | last post by:
I'll be a college freshman this fall, attending Florida Institute of Tech studying electrical engineering. I was considering taking some classes in programming and computer science, and I...
0
by: Rina0 | last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
linyimin
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
14
DJRhino1175
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
0
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
by: Mushico | last post by:
How to calculate date of retirement from date of birth
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.