473,698 Members | 2,097 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Does Python compete with Java?

kk
I read this mailing list fairly often, and I am always amazed at what
I learn (even not related to Python). I am relatively new to Python.
I make my living developing mostly in Java. Python was a "discovery"
I made a couple of years ago, and I love the language, but only get to
use it at home for hobbies.

With all the recent news:
- ESR tells Sun to open Java, or be relegated into obscurity by
Python, Ruby, and Perl.
- Project mono (C# compiler) is touted to be the next great thing in
Linux, and will be the dominate language. (by it's creator, of
coarse).
- This past weekend, Sun signs deal with devil (oops... Microsoft).
Now Java "openness" seems to have taken a very large step backwards!

I'd like to know if you guys think Python really has a chance to
compete with Java, .NET, and any other commercially backed language.

The reason I ask is I think it is important to have a "popular"
well-supported Open Source language to compete with the big players.
PHP seems to have some momentum in popularity, but I much prefer
Python as a language. Python has much to offer over Java, VB, etc...
Maybe the best chance it has is to ride on the coat-tails of .NET
(Python.NET) and the JVM (Jython). Interested to hear your comments.
Jul 18 '05 #1
18 1970
kk wrote:
I'd like to know if you guys think Python really has a chance to
compete with Java, .NET, and any other commercially backed language.
Python, by nature, does not compete: it is a product, and only
producers of a product can compete with producers of other products;
products never ever compete with one another (a product has no soul,
and no goal).

Whether the makers of Python compete with the makers of Java or
..NET is an interesting question, and one that is difficult to answer.
The makers of Python a free software developers, many of them
volunteers. The maker of Java is Sun Microsystems, the maker of
..NET is Microsoft. The Python makers have very different motivations,
and for some of them, competing with Sun may be a motivation - others
could not care less.

The same holds for the users: Some users of Python compete with
some users of Java, whereas others don't. This continues into education:
authors of Python books typically compete with authors of Java books,
except for authors of the Python tutorial, which likely don't compete
with anybody (except perhaps that authors of Python books have to
compete with the authors of the Python tutorial and other free
online documentation).

The mission of the Python Software Foundation is (among others), to
publicize, promote the adoption of, and facilitate the ongoing
development of Python-related technology and educational resources.
Whether or not that makes the PSF a competitor of Sun Microsystems,
I don't know.
The reason I ask is I think it is important to have a "popular"
well-supported Open Source language to compete with the big players.
Why is that important?
PHP seems to have some momentum in popularity, but I much prefer
Python as a language. Python has much to offer over Java, VB, etc...
Maybe the best chance it has is to ride on the coat-tails of .NET
(Python.NET) and the JVM (Jython).


If Python works for you, just go ahead and use it. Consider all
advantages and risks, and weigh for yourself.

Regards,
Martin
Jul 18 '05 #2
"kk" <kk********@yah oo.com> wrote in message
news:8b******** *************** ***@posting.goo gle.com...
I read this mailing list fairly often, and I am always amazed at what
I learn (even not related to Python). I am relatively new to Python.
I make my living developing mostly in Java. Python was a "discovery"
I made a couple of years ago, and I love the language, but only get to
use it at home for hobbies.

With all the recent news:
- ESR tells Sun to open Java, or be relegated into obscurity by
Python, Ruby, and Perl.
- Project mono (C# compiler) is touted to be the next great thing in
Linux, and will be the dominate language. (by it's creator, of
coarse).
- This past weekend, Sun signs deal with devil (oops... Microsoft).
Now Java "openness" seems to have taken a very large step backwards!

I'd like to know if you guys think Python really has a chance to
compete with Java, .NET, and any other commercially backed language.
That's an interesting question. I presume you mean for
market share in terms of the number of real projects, loc
and all that stuff.

At one time I would have said no, but recently some of the industry
gurus have been questioning whether the additional complexity of
static typing and other Java complexities is paying its weight as compared
to Python, especially when used in a TDD type development environment.

Another thing to consider is that while Sun has a lot wrapped
up in Java, Microsoft does not have the same attitude toward
C#. It may look like it, but their strategic direction would be
satisfied just as much by IronPython as by C# - both run on the
..NET platform, and as long as they take advantage of the native
libraries they will both do as well to lock the user into Windows.
And IronPython seems to be a pretty good performer; at least
as good as Python itself, and accordingly it beats Jython by quite
a margin.
The reason I ask is I think it is important to have a "popular"
well-supported Open Source language to compete with the big players.
PHP seems to have some momentum in popularity, but I much prefer
Python as a language. Python has much to offer over Java, VB, etc...
Maybe the best chance it has is to ride on the coat-tails of .NET
(Python.NET) and the JVM (Jython). Interested to hear your comments.


PHP has a considerable mindshare as "the language" to write
a certain class of web application. Beyond that, Perl is, I think,
the dominant scripting language, but it suffers from a perception
that it doesn't scale, and it isn't maintainable unless the development
team is very disciplined in adhering to a sane subset.

I think the next 10 years are going to see a huge shift in the
languages and tools we use regularly.

John Roth
Jul 18 '05 #3
"John Roth" <ne********@jhr othjr.com> wrote:
recently some of the industry gurus have been questioning whether the
additional complexity of static typing and other Java complexities is
paying its weight as compared to Python, especially when used in a
TDD type development environment.
Yeah, tell me about it. I've been playing around with some JSP stuff
lately. Here's a method I wrote:

protected void doLogin (HttpServletReq uest request,
HttpServletResp onse response)
throws ServletExceptio n
{
String name = (String) request.getPara meter ("name");
String password = (String) request.getPara meter ("password") ;
Connection connection = getDbConnection (request);

try {
LoginModel model = new LoginModel (connection);
boolean loginIsValid = model.validate (name, password);

if (loginIsValid) {
makeMainPage (request);
forward (request, response, "/main.jsp");
} else {
forward (request, response, "/badLogin.jsp");
}
}
catch (SQLException exception) {
throw new ServletExceptio n (exception);
}
catch (IOException exception) {
throw new ServletExceptio n (exception);
}
}

It's just filled with extraneous crap that's only there to make the java
complier happy and has nothing to do with the logic of my application.
The type declarations and casts are just the beginning. The interface
I'm inheriting from requires that the only exception I throw be
ServletExceptio n, so I need to catch all the others are re-throw.
Here's what the same logic would look like in Python, as a mechanical
transliteration :

def doLogin (request, response):
name = request.getPara meter ("name");
password = request.getPara meter ("password") ;
connection = getDbConnection (request);

model = LoginModel (connection);
loginIsValid = model.validate (name, password);

if loginIsValid:
makeMainPage (request);
forward (request, response, "/main.jsp");
else:
forward (request, response, "/badLogin.jsp");

13 lines of code instead of the original 26! This 2:1 ratio seems to be
pretty typical in my experience. It's not that I'm cramming more
application logic onto each line in the Python version, it's that I'm
getting rid of the fluff that takes up lines without adding anything
useful.

The end result is that it's harder to write, and the effort that goes
into making the compiler happy is that much less effort that I can put
into making sure I really understand how my application should be
designed, and testing it. It's a seeing the forest for the trees kind
of issue.

I think it's also a lot easier to read and understand the Python
version. Pretty much every line maps directly to the application logic,
with very little overhead.

Found on the web (http://www-users.cs.york.ac.uk/~susan/joke/foot.htm)...
How to Shoot Yourself In the Foot
[....]
Java
You locate the Gun class, but discover that the Bullet class is abstract, so
you extend it and write the missing part of the implementation. Then you
implement the ShootAble interface for your foot, and recompile the Foot
class. The interface lets the bullet call the doDamage method on the Foot,
so the Foot can damage itself in the most effective way. Now you run the
program, and call the doShoot method on the instance of the Gun class. First
the Gun creates an instance of Bullet, which calls the doFire method on the
Gun. The Gun calls the hit(Bullet) method on the Foot, and the instance of
Bullet is passed to the Foot. But this causes an IllegalHitByBul let
exception to be thrown, and you die.


They don't have one for Python, but I expect it would be something like
this:

You create a Foot object and call its shoot() method. The bullet makes
a hole in your foot, but by that time you've gotten dragged into a huge
flamewar about the relative merits of spaces vs. tabs for indentation
and barely notice the pain.
Jul 18 '05 #4
Roy Smith <ro*@panix.co m> wrote in news:roy-094613.21022405 042004
@reader1.panix. com:
http://www-users.cs.york.ac.uk/~susan/joke/foot.htm They don't have one for Python, but I expect it would be something like
this:
I think the most common solution is:

How to Shoot Yourself In the Foot


Python
you discover that Guido used his time machine to shoot you in the foot
years ago

Jul 18 '05 #5
Roy Smith wrote:
They don't have one for Python, but I expect it would be something like
this:

You create a Foot object and call its shoot() method. The bullet makes
a hole in your foot, but by that time you've gotten dragged into a huge
flamewar about the relative merits of spaces vs. tabs for indentation
and barely notice the pain.


See Laura's excellent

http://groups.google.com/groups?selm...e.mediaone.net

and also a whole thread from late 2001

http://groups.google.ca/groups?threa...e.mediaone.net

-Peter
Jul 18 '05 #6
Peter Hansen wrote:
Roy Smith wrote:
They don't have one for Python, but I expect it would be something
like this:

You create a Foot object and call its shoot() method. The bullet
makes a hole in your foot, but by that time you've gotten dragged into
a huge flamewar about the relative merits of spaces vs. tabs for
indentation and barely notice the pain.

See Laura's excellent

http://groups.google.com/groups?selm...e.mediaone.net


Oops! My apologies to Nick Mathewson, who actually wrote that.
I have a distinct, and clearly wrong, memory of it having been
authored by Laura Creighton. :-(
and also a whole thread from late 2001

http://groups.google.ca/groups?threa...e.mediaone.net

-Peter

Jul 18 '05 #7
kk wrote:
I'd like to know if you guys think Python really has a chance to
compete with Java, .NET, and any other commercially backed language.


It depends on what you mean by "compete".

Python is never going to have the same combination of hype
and money behind it as those other languages you mention.

But is that a bad thing or a good thing?

I think it's a *good* thing. Python is succeeding very well
by just existing and actually being well designed and useful,
as opposed to having a large company's marketing machine trying
to tell everyone that it is.

It sells itself to those who are willing to look. It doesn't
need or want any hype.

--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg

Jul 18 '05 #8
Roy Smith wrote:
They don't have one for Python, but I expect it would be something like
this:

You create a Foot object and call its shoot() method. The bullet makes
a hole in your foot, but by that time you've gotten dragged into a huge
flamewar about the relative merits of spaces vs. tabs for indentation
and barely notice the pain.


Found this one at news.admin.net-abuse.email

Python
You shoot yourself in the foot and everything goes so smoothly that you
go ahead to to shoot yourself in the other foot then your legs, then
your torso and then your head. Problem solved.

Jul 18 '05 #9
Roy Smith wrote:
[... JSP example ...]
13 lines of code instead of the original 26! This 2:1 ratio seems to be
pretty typical in my experience. It's not that I'm cramming more
application logic onto each line in the Python version, it's that I'm
getting rid of the fluff that takes up lines without adding anything
useful.
I've experienced the same thing with the XML applications I tend to write at
work; the Python version is much smaller than the Java version, much easier
to read, and it was much easier to write. And tends to run about as quickly.

Strangely enough, I've had the same results with C# and .NET XML apps;
smaller, with less extraneous text in the code. And very fast. If Mono
and/or GNU Portable.NET were further along, I'd port my XML apps to C# (I
need to run on OS X and, eventually, Linux as well as Windows)...
The end result is that it's harder to write, and the effort that goes
into making the compiler happy is that much less effort that I can put
into making sure I really understand how my application should be
designed, and testing it. It's a seeing the forest for the trees kind
of issue.


One of Python's most awesome features (IMHO at least) is that you can fire
up an interactive interpreter while you're writing your code, and try things
out as you go... using this technique, I've unit tested methods and
algorithms interactively and ended up with useful, non-trivial applications
that run and work properly the first time.

With compiled languages (Java, C#, C++), I find I'm writing a bit of code,
taking a break to compile it, figuring out how to unit test the method...
Python saves me a huge amount of time in the prototype and development cycles.

--
Chris Herborth ch****@cryptoca rd.com
Documentation Overlord, CRYPTOCard Corp. http://www.cryptocard.com/
Never send a monster to do the work of an evil scientist.
Postatem obscuri lateris nescitis.
Jul 18 '05 #10

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

Similar topics

1
2507
by: Stephen Ferg | last post by:
Seen in the Wall Street Journal, Monday, July 21, 2003, page B1. Lee Gomes' "Portals" technology column: "Two Men, Two Ways to Speak Computerese and Two Big Successes". This is a brief, non-technical story on Guido von Rossum, inventor of Python, and Larry Wall, inventor of Perl. I don't think this is available online unless you are a paid subscriber to the WSJ online edition. So here are a few quick quotes
220
19036
by: Brandon J. Van Every | last post by:
What's better about Ruby than Python? I'm sure there's something. What is it? This is not a troll. I'm language shopping and I want people's answers. I don't know beans about Ruby or have any preconceived ideas about it. I have noticed, however, that every programmer I talk to who's aware of Python is also talking about Ruby. So it seems that Ruby has the potential to compete with and displace Python. I'm curious on what basis it...
9
2418
by: limor | last post by:
Hi, I am considering using Python in a new testing tool application we intend to build for out product. I must get references before starting develope in this language , since although lots of good things are said about this language , I still have my doubts how can it compete with languages like C++ and Java. I have found te sytax and some features if the language not as problematic in maintenance prospective (although I keep reading...
1
1237
by: John J Lee | last post by:
QOTW: "The site that I worked on spent TWO MILLION U.S. DOLLARS on its web server hardware. OK, it used Java servlets that are even slower than Python, but you have to understand that there's a point after which you can no longer pretend that hardware is free." -- Paul Rubin "Monte Carlo sampling is no way to understand code." -- Gordon McMillan Martin v. Loewis clarifies what entities might "compete" with Python...
7
3595
by: Michael Scarlett | last post by:
I was just thinking that we should get a new icon for Python. Its such an amzing effective language, and I know it sounds silly, but I can't help but think that one of the reasons it hasn't surpassed JAVA or at least taken more seriouly than it is now - is because of the dorky looking .py icon. We need a icon that reflects python. Robust, flexible and Effective. Something that says "we get the job done right and the code is tight". Eat...
114
9841
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
13
1378
by: Eric Pederson | last post by:
Raise your hand if you think the best technology wins! For those of you with your hands in the air, tell me: if Python is so good,why has PHP achieved such greater adoption and mindshare? Why do web scripters still cling to their Perl, even in corporate environments? Why hasn't Python made inroads against Java? Why is Ruby, and Ruby on Rails, getting such strong play? Are these better programming languages, or is it other factors? ...
122
7847
by: seberino | last post by:
I'm interested in knowing which Python web framework is most like Ruby on Rails. I've heard of Subway and Django. Are there other Rails clones in Python land I don't know about? Which one has largest community/buzz about it?
71
3307
by: Jack | last post by:
I understand that the standard Python distribution is considered the C-Python. Howerver, the current C-Python is really a combination of C and Python implementation. There are about 2000 Python files included in the Windows version of Python distribution. I'm not sure how much of the C-Python is implemented in C but I think the more modules implemented in C, the better performance and lower memory footprint it will get. I wonder if it's...
0
9157
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8895
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8861
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7725
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5860
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4369
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4619
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3046
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2001
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.