Taking Sides --- ???? Is it Fair.....

greenspun.com : LUSENET : Joel on Software : One Thread


I have been working on Java for a long time from now. I liked it very much for its various specialities. I have found that lot of my collegues TAKE SIDES on Technologies. u guessed it right it is basically MS vs SUN. as a true software guy i always used to wonder is it right to fight about a certain technology an be emotional about it......

u'r opinions please.....

-- Anonymous, November 20, 2000


I call it "code religion", since people seem to fight religious wars over it. And I think it's stupid... by definition, religion implies faith, and faith implies that you believe what you believe no matter what the facts are, and if you're wrong, well, you suffer. My personal feeling is that anyone who is afflicted by code religion is ipso facto an inferior programmer... I generally refuse to hire them.

-- Anonymous, November 20, 2000

It's a stage every programmer goes through. Lack of breadth takes away your ability to be agnostic when it comes to choosing the right technology.

I was one of those Mac, Console, NT, GUI, NeXTStep, GNU advocate/morons. After a while I notice some similarities between all technologies--lasting principles which most programmers end up using to make marketing-based decisions seem pretty stupid and shallow. Who knows? Maybe being OS or language agnostic is also a stage. There's probably something right after that... any comments?

It's interesting to point out that people who claim to be OS or language agnostic have been known to just dislike certain brand of software after a while. They know they can work with the technology-- but they choose to not use it using whatever justification they feel are most appropriate. I for example don't use Python. Nor MS products (except dad's IE5 browser). But I use just about everything else.

Off topic: does anyone who roam these Q&A forums feel that biomolecular sciences (biotech e.g. physics, chemistry, biology) is an interesting thing to study after dicking around with computer so long? Could something fun come out of knowing a little about both field and mixing the two trade together? Don't go Star Trek on me now- -just what you can do in the next 10 years.

-- Anonymous, November 20, 2000

It's different in the "Holy War" between MS and the rest of the world. Many of us who live in the Java/Unix world feel like MS is attempting to destroy Java so it really is a war. (Look at the whole J++ debacle for a clue.) C# is a perfect example of a completely unneeded development created specifically to attack Java. So yes there is some strong emotion surrounding MS/SUN but that is because it is an important topic that many of us feel very strongly about. This has nothing to do with "faith" and everything to do with the strong sense that MS is attempting to destroy a powerful development paradigm because it competes with MS's way of doing business.

-- Anonymous, November 21, 2000

ok, dude, there are no real sides, just code to hack. It doesn't really matter what you use as long as you use the right tool for the job. Just imagine if it were painters we were discussing & the religous war was about a air brushes V paint brushes. kind of silly eh!. They're both the right solution for different projects. The most important thing is to know them well enough to choose the right brush :)

Besides if you focus too much on the mainstream wars, you miss all the neat little things that happen on the side.

-- Anonymous, November 21, 2000

Hi there,

well. Lacking higher programming skills as well as an deep insight in how emotions affect our productivity, I cannot claim to be a very relevant position in this debate, however, I feel that there's a statement I have to make.

Some of the people that wrote in this group before me stated that taking an emotional opinion in fields regarding technology is irrational because of the fact that there's always a solution which fit's best in one special environment, to a special task, etc. - regardless of the technology the solution uses.

These people are right. There is, certainly, no technology which can solve all problems in the best way possible (if we had such a technology, there would be no problem left).

IMHO it's just a matter of preferences - preferences which will affect our future and, therefore, the future of technology. One of these decisions one is able to make is the one regarding free [open source, GNU, etc.] software and patented mindfunctions like microsoft likes to use.

To come to the point: I will not let my emotions about technology and it's distribution control my decision which solution is the best in a specific task. But I will, wherever I'm able to do it without restrictions, choose the free way. Because I'm convinced that the implications of this decision in, let's say, 100 years, are more important than the atomic bomb ever was. And whoops - here we have the emotions...

Not that you think too much of myself. I'm not even in the state one of the contributors in this discussion goup called normal for every programmer - you know, the one where emotions go of for GNU and GNU alone and where religion is linux and linux alone. I'm a stupid Win2k user with limited knowledge about what software is about and with even more limited linux and programming experience. But as I grow in knowledge (and as free software grows in it's ease of use --> Mandrake), I will leave the smelly fields of patented, mindrestricting software. I will, because my emotions drive me to it. So why's that?

After all, it's only technology, isn't it?

Have a bright life,

Dominique Kaspar [http://www.snooweatinganima.de]

-- Anonymous, November 21, 2000

Readers of this thread might enjoy an article I wrote on the subject:


-- Anonymous, November 23, 2000

I like this quote by John Ousterhout (author of Tcl) regarding language wars:
"Language designers love to argue about why this language or that
language *must* be better or worse a priori, but none of these
arguments really matter a lot. Ultimately all language issues get
settled when users vote with their feet. If Tcl makes people more
productive then they will use it; when some other language comes along
that is better (or if it is here already), then people will switch to
that language. This is The Law, and it is good. The Law says to me
that Scheme (or any other Lisp dialect) is probably not the "right"
language: too many people have voted with their feet over the last 30
years. I encourage all Tcl dis-believers to produce the "right"
language(s), make them publically available, and let them be judged
according to The Law."

John Ousterhout (ouster@tcl.eng.sun.com) 26 Sep 1994 18:13:27 GMT comp.lang.tcl

-- Anonymous, November 24, 2000

But then you've also got Microsoft publicly saying incredibly anti- competitive things like this:

I mean, if you're looking for a source for language religion, most fingers point in the same direction...

-- Anonymous, November 25, 2000

Can you say hideously overt FUD?

-- Anonymous, December 03, 2000

First let me state that I am currently using Windows 95, Windows NT4 and Windows 2000 on my current computer systems. My first C++ compiler was made by Borland (now Inprise). These days I use Microsoft Visual C++ for my everyday development work. Do I like it? Well, sometimes yes... Sometimes no. I have some issues with it, but overall we get along.

Do I "Love" Microsoft? No. To be fair, some of what Microsoft produces is pretty good... Some of it is absolute crap which I can't imagine them being able to market without resorting to underhanded deal making (or at least doing a nice sell job on people who make the purchasing decisions).

I do NOT like many of what I perceive Microsoft's Business practices to be, but then I don't like MOST corporations business practices, which appear to me to be, Do Anything to get ahead, It's alright to cheat or generally treat anyone like dirt if you don't get caught, That goes double for your consultants, contractors, employees and anyone else not big enough to raise a real clamor.

These are attitudes that all large corporations seem to share, and I've seen it reflected even in corporations which fit real well into that "To small to raise much of a clamor" category. It just seems to be something that goes with the business world, large or small, which is why it's refreshing to see a company like FogCreek which demands top talent and then makes sure that they are given what they need to excel.

On the other hand, I'm not real fond of the federal government either (especially not around this season). Still, The Government, and in our business, Microsoft, is a force to be reckoned with, and ultimately something you will probably have to learn to live with, like them or not.

Do I like Open Source Software? I feel open source software has a great many advantages, including massive peer review, source code availability, support networks extending beyond a single company, and in many cases the licenses and pricing schemes are a great deal more friendly.

Have I installed Linux. No, and I don't expect to be doing so in the foreseeable future. This is not because I think Linux is bad, or I don't believe in what Open Source and the Decentralized Software movements are trying to do... It has a far more practical reason... I've only got so much time (and I'm not one of those lucky people who only have to sleep 4 hours a night), and there is a limit to what I can learn in the time I have in between the work I have to do.

What it comes down to that, it's like cutting features... You've got to prioritized, and preferably early. I'm afraid that Linux is just rather low on that priority list for me.

Do I like Java? You hear a lot of hype about the advantages from Java zealots, and a lot about the disadvantages from the Java bigots. Like (most) all languages, I believe Java has advantages and disadvantages, which make it uniquely suited for solving some problems, and horrible for solving others.

Still, I DO see problems with Java. Sorry folks... I don't care WHAT sun says in their press releases, for better or worse, Java is STILL slower then C++ code (ask me if I'm surprised). A Java program I just tried is also one of the only programs to have eaten basically all of my 256 Megs + Virtual to give me an "Virtual Memory Running Low" alert from NT. Admitted this might not be related to Java at all, and may simply have been a bug in the program.

Java's cross platform claims also have, in my view, some inherit pitfalls, more in the fact that it may encourage developers to skimp on cross-platform testing, or even release on platforms they have not tested at all (just to say they support 5 platforms on their feature charts if nothing else), relying on the JVM to eliminate all their cross platform woes, just like Sun implies it will. This would be, in my opinion, a mistake if your goal is to deploy high quality robust applications.

I also can't help but notice that Java is, for all intents and purpose, controlled and owned by yet another large corporation. I feel it rather unlikely that Sun got to where it is without stepping on some toes that probably didn't deserve stepping on.

And, last but not least, if you look through the hype, and all the "Progress" that Java has made, it's still a very immature language, and I have yet to see a major system implemented in it which I can point to and say "Well, I'll be... Java really does what they say it will..." Of course, I haven't looked all that hard...

Now... Given all the above, ask me what I've downloaded the past week, and what is in my queue to download the next day or so?

Do I use Visual Basic? Not at present.

Do I use Java? Not at present.

Sun Java 2 SDK Forte For Java (Java IDE) Together Whiteboard (OOP Modeling software, written in Java) MSXML SDK 3.0 XML Parser Xerces XML Parser (Open Source XML Parser) Several Open Source Image Manipulation Libraries MySQL (Open Source Database Engine) Borland (Inprise) JBuilder 4 Borland (Inprise) C++ Compiler 5.5

Interesting list, huh?

So... Now the real question. WOULD I use Java, Visual Basic, Open Source Software, etc.? And the answer is: "Yes... If I felt that they solved a problem I had". In fact, I was seriously considering recommending Java when a project I was involved in looked like cross- platform deployment was going to be important. It turned out that that was a very ditchable feature, so it was a moot point in the end.

The bottom line, for me, is that as a human being, with human limitations, I have to make choices, trade offs, and prioritize what I learn, and I tend to prefer honing my edge in what I know then gaining a passing knowledge in dozens of different technologies. However, as someone who likes to think they are "tapped into" the development community, and even more so as a consultant, I try to stay abreast on at least "What's OUT there" so that I can better ascertain the tool or language which is appropriate for solving a given problem, rather then trying to make the problem fit the tools I know.

The problem is, when all you do is code in one language, you naturally tend to up-play the strengths of that language, and downplay it's weaknesses. The core point is not is Java better the C++, or is Java better then .NET or is Sun better then Microsoft. The key point is what solves my problem best?

I think in C++, and my first response to a problem is how I can solve it, IN C++. By remaining aware of what's out there and the minimal capabilities of it, I try to loosen this (bad) tendency so that I will, even if not able to pinpoint a solution, at least know when MY solution would be sub-optimal.

Even if that means sending a potential client to another consultant because I'm not proficient in the tools the client needs to solve their problems, I consider that a greater service to them then trying to force them into a (possibly very) sub-optimal solution which fits the tools I know.

As far as taking sides goes... Here's my take.

There will always be competing products (at least you had better hope so). There will always be developers who, for one reason or another, prefer one product over the other.

What I've seen is that when big corporations square off against each other, like Sun and Microsoft, it's US! The developing community who suffers. It doesn't matter who has the "better" technology on any given scale, or who "Wins" in the end. We are the ones who have to upgrade the legacy code. We are the ones who have to make tough decisions about what technology to use, bank on, invest in, both development and training. Ironically, we are also the ones who write both competitors, and WE are the ones who have to deal with the masses of information, the steep learning curves, and the incompatibilities.

Whatever our personal preferences, and for what ever reason, we need to remain in touch with the fact that whether your writing code in C++, C#, Java, Python or some other language, we all belong to a community, and in many ways we all face the same problems.

If you code in Java, you may not have to worry about leaking memory, if you program in C++ you may have to worry less about performance, but that's not what I'm talking about. I think we are all going to be dealing with high expectations, Killer deadlines, Feature Creep, Difficulty getting "In the Zone" and staying there, and of course, having to deal with people who don't really understand computers, software or programming, and simply don't understand why you can't work miracles (and don't appreciate it when you do).

So whether you pounding out Java or C, Small Talk or Pascal, Python or any other language, designing a spec or testing a program, tap into that portion of yourself which is the developer in all of us. We are engineers, architects, artists. We take for granted things most people can't comprehend. We make the impossible possible. We take a hunk of metal, and sand and plastic and turn it into a living, breathing (and if you doubt it, you should hear the fans in my boxes), working, machine. We make a computer a computer rather then a doorstop, and know it or not, the rest of the world relies on us every day.


-- Anonymous, February 22, 2001

Moderation questions? read the FAQ