The Industry choice

S

Sridhar R

From technical point of view, I could not understand the the reasoning
behind using Java in major companies. Sure that Python, is used in
some, but still Java is considered as a sure-job language.

After being a python programmer for long time, I consider it painful to
learn/use Java now (well, like many I will be forced to do that in my
job).

What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?
 
T

Thomas Bartkus

Sridhar R said:
behind using Java in major companies. Sure that Python, is used in
some, but still Java is considered as a sure-job language.

After being a python programmer for long time, I consider it painful to
learn/use Java now (well, like many I will be forced to do that in my
job).

> What makes such companies to choose Java over dynamic, productive
> languages like Python? Are there any viable, technical reasons for
that?

Are there "viable, technical reasons"? That would be doubtful.

But

There is a reason very important to major companies.
When you leave that company, there will be a *long* line of Java programmers
waiting to take your place.

There need be nothing "technical" about such a decision.
Thomas Bartkus
 
P

Premshree Pillai

behind using Java in major companies. Sure that Python, is used in
some, but still Java is considered as a sure-job language.

It certainly is not because Python is bad or something. Organizations
typically take lot of time to change -- be it technology or office
furniture.

We either need time for folks to accept dynamic, "scripting"
languages, or a lot of "modern" language programmers need to gang up
against managers and stuff. :)
 
S

Steve Holden

Premshree said:
It certainly is not because Python is bad or something. Organizations
typically take lot of time to change -- be it technology or office
furniture.

We either need time for folks to accept dynamic, "scripting"
languages, or a lot of "modern" language programmers need to gang up
against managers and stuff. :)
[...]
Right, what have the managers ever done for us?

regards
Steve
 
A

Alex Martelli

Sridhar R said:
What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?

Viable AND technical: nah.

Viable (forget the technical): yeah. Managers' dreams are about
replacing costly, quirky individual human=being programmers with
die-cast, factory-made replaceable parts. Java sort of promises that
(doesn't _deliver_, but, that's another issue;-).


Alex
 
I

It's me

It certainly is not because Python is bad or something. Organizations
typically take lot of time to change -- be it technology or office
furniture.

In our industry, the code for the bread and butter tool hasn't really change
in over 40 years!
 
A

Aahz

What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?

It's a decent cross-platform way of delivering libraries compared to C
libraries. We've been forced into Java because fewer and fewer credit
card processing libraries are available as C libraries. Just yesterday,
I ran into some annoyance because the PGP library I'm using doesn't allow
recombining their .jar files due to signing. Which has some good and bad
features, I suppose.
 
B

Bulba!

behind using Java in major companies. Sure that Python, is used in
some, but still Java is considered as a sure-job language.

After being a python programmer for long time, I consider it painful to
learn/use Java now (well, like many I will be forced to do that in my
job).
What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?

It's the $$$ of the big organization behind it and all the
inertia^H^H^H^H^H^H stability of it.

Note all the fuss that was made when IBM has "spent $1
billion on Linux", for instance (or so it was said). Managers
paid attention to that (at least that was my impression).

AFAIK, Linux didn't really change in technical sense
just because IBM has embraced Linux, or at least not much.
But to companies and manager the major point is:

Big Blue has embraced it.

That means Linux going to stay around (at least in their
opinion) and it will have the backing of Major Vendor,
because Major Vendor can't afford to drop it (or so their
thinking goes; I'm sure there could be precedents showing
smth to the contrary, esp. when mergers/takeovers were
involved - off the top of my head, Informix is a case in
point).

Us techies can find it relatively easy to switch from one
technology to another, but even then it costs us considrable
effort.

For managers of companies it's worse: the company makes
VERY substantial investments into any technology it "marries",
and that means big losses if it goes. Long-term stability
of this technology in terms of "we're not going to be left out
in cold alone with this technology to feed it" means a lot
to them. Even a poor technology with external backing
of big, stable vendor is better than the excellent technology
without it. That's the downside of Adam Smith's division of
labor: it's very nice that it makes you so much more productive
-- the problem is that it also makes you automatically dependent
on other people, who tomorrow might feel like finding a more
interesting open source project, or joining a Tybetan
monastery, for instance, is better use of their lives.

Why managers actually ain't stupid in doing things like
embracing Java a following anecdote may illustrate nicely:

A friend of mine, after whom I got the sysadmin job, got a
job in CERN in Geneva. Once upon a time they needed to
get those industrial controllers used in physical experiments
programmed in a peculiar way. Since at the time there was
no available language or toolkit suitable for the purpose that
would fit what physicists needed to achieve, they hired this
guy to write a small programming language for them.

I don't know the actual details, but the guy got the job done.

Since that time the controllers with appropriate performance
and features have appeared on the market. However, now
the managers cannot fire or reassign this guy, because there
are two problems:

1. nobody except him has the faintest idea how he has done that.

2. the software of those controllers obviously got "interfaced"
with the remaining software (and as we know, applications
live forever) and the quirks of that software obviously externalized
themselves elsewhere in the remaining software, so adapting the
apps to new controllers would cost more effort than it is
worth - basically rediscovering what the hell was done down there
in all the source code would be necessary (almost reverse
engineering), much of the debugging would have to be done again,
maintenance, etc. - all those efforts quickly add up.

So the "known evil" is kept in place because it is too costly to
switch to realize a relatively small benefit.

So that guy is kept in his job "just in case" - doing basically
nothing on the job.

Think about it: he's paid for DOING NOTHING, well, basically
just for being ready to make minor patches or ports of
his software (this is a case of "vendor lock-in" if there ever
was one).

This is the sort of situation that managers are rationally
afraid of.

For Python a Big Thing would happen if some Major Vendor
embraced it as its Official Language(tm). Python language
itself could turn into a smoking crock the very next day, but
everybody who doesn't live under the rock would still be
writing in it.
 
A

Alan Gauld

What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?

Decisions are made by men in suits who read very expensive
business magazines, read "technical reports" by the like of
Gartner and Forester and get taken on expenses-paid trips by
company sales reps. My boss has never had his lunch paid
for by a man selling Python...

Think about the PHB in Dilbert, if some guy in a sharp suit from
a big supplier says use Java, while Dilbert and the others say
Python what will he pick?

There are some valid technical reasons to do with performance and
security too, but frankly, they come a long way down the list...

Alan G.
Author of the Learn to Program website
http://www.freenetpages.co.uk/hp/alan.gauld
 
P

Paul Rubin

Sridhar R said:
What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for that?

I think you have to be more careful when you program in Python. Java
is statically typed and can do all kinds of compile time checks that
catch errors which can crash your Python program after it's running.
The cure in Python involves very thorough testing, and it often means
more test-debug-edit cycles than you'd need with static typing. It's
also possible to miss stuff--not just type errors, but uncaught
exceptions, errors due to misspelled variable names (Python lacks
declarations), and so forth. Some Pythonistas respond with a blurb
about test-driven development, but really, the idea of programming in
HLL's instead of assembler is that the language is supposed to take
care of stuff so that you don't have to. Java code is larger and
takes longer to write, but has a higher chance of working properly
once it compiles and passes basic tests. (Of course you still have to
test it thoroughly, but you'll tend to hit fewer errors once you've
passed the initial and somewhat high hurdle of getting the code to
work at all).

Basically, highly-skilled programmers can be very productive with
Python, maybe more productive than they can be with Java.
Medium-skilled programmers, which is what the industry is full of, can
mess up very badly with a language like Python. With Java, it's
harder to mess up too badly.

I'm involved in a development project for something that's security
critical and has to be reliable. The implementation language hasn't
been chosen yet. Python and Java are both possibilities. I'm fine
with the idea of using Python for demos and prototypes. For the
production system I think we may be better off using Java.
Reliability of the final product is more important than rapid
implementation.
 
B

Bulba!

[...]
Right, what have the managers ever done for us?

I must have been slow last night (my usual state), so I
didn't catch your joke.

Respectfully, I have to disagree: Terrific race, managers.
Terrific. ;-)
 
P

Peter Dembinski

[...]
Are there "viable, technical reasons"? That would be doubtful.

But

There is a reason very important to major companies. When you leave
that company, there will be a *long* line of Java programmers
waiting to take your place.

IMO learning Python is a matter of few days for Java programmer.
 
C

Christopher Koppler

On 30 Dec 2004 08:58:36 -0800, "Sridhar R"
[snip]
What makes such companies to choose Java over dynamic, productive
languages like Python? Are there any viable, technical reasons for
that?

It's the $$$ of the big organization behind it and all the
inertia^H^H^H^H^H^H stability of it.

Note all the fuss that was made when IBM has "spent $1
billion on Linux", for instance (or so it was said). Managers
paid attention to that (at least that was my impression).

AFAIK, Linux didn't really change in technical sense
just because IBM has embraced Linux, or at least not much.
But to companies and manager the major point is:

Big Blue has embraced it.

[add a few grains of salt to the following...]
Manager culture is still very much mired in rituals that may in one form
or another go back to hunter-gatherer days (or maybe even further); that
'the industry choice' is more often than not something backed by a *major*
company is part of a ritual complex based on relations to the alpha male.
Small companies ingratiate themselves with their perceived betters by
using their products, even when technically far superior products would be
available. When the 'market leader' produces a new toy, everyone who wants
to be in his favor must use it _and_ also damn the toys available from any
of those competing for leadership, viz. the ongoing state of cold war
between Sun and MS and their respective worshipers. Toys that have not
been sanctioned by the leader, or that are, even worse, de facto unknown
to him, are met with ignorance, scorn, or even repression.

[snip]
For Python a Big Thing would happen if some Major Vendor
embraced it as its Official Language(tm). Python language
itself could turn into a smoking crock the very next day, but
everybody who doesn't live under the rock would still be
writing in it.

The moral is, of course, that either the Python community's alpha geeks
need to get access to controlling interest in a *major* company (or to
become successful enough with their own companies to register on the
current *major* companies radar as potential competition) or as you
say, Python needs to be embraced like Linux was. That's the way to win the
hearts of software companies' managers.
 
C

Christopher Koppler

[...]
Are there "viable, technical reasons"? That would be doubtful.

But

There is a reason very important to major companies. When you leave
that company, there will be a *long* line of Java programmers
waiting to take your place.

IMO learning Python is a matter of few days for Java programmer.

True, but learning to *think* in Python takes a while longer. That static
straitjacket takes some time to loosen...
 
P

Paul Rubin

Christopher Koppler said:
The moral is, of course, that either the Python community's alpha
geeks need to get access to controlling interest in a *major*
company (or to become successful enough with their own companies to
register on the current *major* companies radar as potential
competition) or as you say, Python needs to be embraced like Linux
was. That's the way to win the hearts of software companies' managers.

It's not just a matter of attitude or politics. Python is an
excellent choice for many projects. For some other projects, it's
clearly unsuitable. For yet other projects, it's a plausible choice
but there are sound technical reasons to be wary of it.
 
C

Christopher Koppler

It's not just a matter of attitude or politics. Python is an
excellent choice for many projects. For some other projects, it's
clearly unsuitable. For yet other projects, it's a plausible choice
but there are sound technical reasons to be wary of it.

IMO (and - indubitably limited - experience) in the many cases where it
*would* be an excellent choice, it *is* most often a matter of politics,
to have a project use, say C# or Java instead of Python (or Lisp for that
matter) as the main development language.
 
P

Paul Rubin

Christopher Koppler said:
IMO (and - indubitably limited - experience) in the many cases where it
*would* be an excellent choice, it *is* most often a matter of politics,
to have a project use, say C# or Java instead of Python (or Lisp for that
matter) as the main development language.

I don't know that C# is really that much different from Python. I
haven't used it but I have the impression that it's sort of similar
under the skin.
 
C

Christopher Koppler

I don't know that C# is really that much different from Python. I
haven't used it but I have the impression that it's sort of similar
under the skin.

Well, it *does* take some pointers from Python but it's still
much more like Java (and even C++) under the hood, AFAIK. I'll get to
know firsthand soon, though, as I'll have to acquaint myself fully with
C#'s benefits, pitfalls and whatnot for a new project I'm on that (for
definitely political reasons) will have it as the main development
language. I'd pity myself if it weren't temporary; Python withdrawal isn't
good for my health ;-)
 
P

Peter Dembinski

[...]
I'm involved in a development project for something that's security
critical and has to be reliable. The implementation language hasn't
been chosen yet. Python and Java are both possibilities. I'm fine
with the idea of using Python for demos and prototypes. For the
production system I think we may be better off using Java.
Reliability of the final product is more important than rapid
implementation.

If it has to be both reliable and secure, I suggest you used more
redundant language such as Ada 95.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top