Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Softpanorama Java Bulletin, 2002

ej-technologies - Java Performance Tools

With JProfiler, ej-technologies provides one of the most important enterprise development tools: a feature-rich next-generation profiling suite, integrating CPU, memory and thread profiling in one powerful application.

Assuring high quality enterprise fitness for Java applications and server components is no small task:

Using a Java profiler to find performance bottlenecks and memory leaks, as well as to reduce general memory requirements and increase the uptime of your server applications is an integral part of every development process.

A critique of Java

Conclusions

Good programming requires using a good language. The way to understand a language is a good indicator of how well it is designed; ideally, one should be able to learn incrementally, building constructively on past learning. Simple things should be easy, complex things should not conflict with simple things. But with Java, one is always having to revise one's "knowledge" of it as more is learnt.

The problem with a complex language like Java is that so much is unsaid. Sometimes this results in clearer and more compact programs. They don't need to mention garbage collection, and they can't get it wrong. But sometimes it leads to incredible but hidden complexity -- such as the obscure rules for inheritance.

If we regret some aspects of Java's design, then we must ensure that future designers take better account of good design practice. Many Java programmers believe Java is a great success. Yet their programs are usually written in a Java-like subset of C. They surely gain by not having the risks of pointers and unchecked array subscripting. Thus, we cannot conclude it is just the design of Java to blame: much of the poor quality of programming (including the rough-and-ready implementations of Java and its packages) is due to lack of programming skill. "Proper" computing science, including human computer interaction and software engineering, have been taught long enough to be well known; it is now time well-trained designers and programmers start to raise standards. They need to be taught not just what is, but what could be.

We started with a quote from Tony Hoare, and we end with one from the same 1980 Turing Award lecture:2 "I conclude that there are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." The concern about Java is that it is a third way: it looks simple yet is complicated enough to conceal obvious deficiencies.

 

Slashdot Sun Files Suit Against Microsoft for Anti-Trust Violations -- Java is a pretty conservative language that became a new Cobol because of Sun marketing and anti-Microsoft sentiments. In this sense Microsoft already helped Sun enough to promote Java, because there is nothing is a language by itself that deserves the status it acquired. It was classic Silicon Valley-style accidental success of crappy technology. I think Microsoft might have a case for malicious prosecution in this instance. See also Java Lawsuit Information Center - Microsoft Technologies for Java

Re:Sounds like whining from Sun (Score:2)
by Sabalon on Saturday March 09, @12:19AM (#3134128)
(User #1684 Info)
I used to use Netscape religiously. Up til about IE 4.0. The reason I switched is because NS sucked.

No MS standing over my shoulder or anything. A decision based on better support of the HTML standards, namely CSS - too much stuff just didn't work right in Netscape.

Netscape killed itself by stagnating for far too long why trying to be all things to all people - e-mail, LDAP, Portal, etc... everything but a browser.
two-faced (Score:1)
by drteknikal on Friday March 08, @01:32PM (#3131260)
(User #67280 Info)
So, Sun sues Microsoft over making Windows-specific extensions to Java, and Microsoft eventually responds by removing Java from IE. Now Sun is suing MS for removing Java from IE.

I licensed your product. You didn't like the way I implemented it on my platform. So I removed it. Now you're not happy that I've removed it. Since when does a license that allows you to distribute something REQUIRE you to distribute something? If it's "all or nothing", and Microsoft chooses "nothing", where does Sun have a case?

This should be laughed out of court.
Sun just wants a handout (Score:5, Insightful)
by ektor on Friday March 08, @01:39PM (#3131315)
(User #113899 Info)
On January 23, 2001 Microsoft and Sun settled on the lawsuit about Microsoft shipping non-standard versions of Java. Part of the settlement was the following: "Sun has agreed to grant Microsoft a limited license to continue to distribute its current version of the software, provided that all future versions of such products pass Sun's compatibility tests. This part of the agreement lasts seven years. Beyond that date, Microsoft can not distribute Java technology or use any of Sun's intellectual property."

Ok, so Microsoft can't distribute any Java after 2008. But Microsoft decided not to included the Java VM with Windows XP, kind of saying we don't need your stinking POS. Now, on this new lawsuit Sun asks among other things for: "Preliminary injunctions prior to trial requiring Microsoft to: Distribute Sun's current, binary implementation of Java Plug-in as part of Windows XP and Internet Explorer." Why don't they make up their fucking mind?

It seems to me Sun is just looking for some money to pad their lackluster balance sheet. If you think Sun is doing any of this for the good of the public you should stop watching the Teletubbies.

Cringley's column this week. [pbs.org]

Microsoft such a financial success combined with paranoia about the future. It is this discipline of always thinking about the next step that fairly defines Microsoft. It is also a discipline that comes solely from Gates. Microsoft CEO Steve Ballmer, while a very smart guy, can only emulate Gates in this area. He doesn't have Bill's internal drive. Nobody does. In that sense, Gates is probably more responsible as an individual for the success and neurotic failings of Microsoft than is any other top business leader of the last century. Jack Welch, Warren Buffett, even Rupert Murdoch are simply not in the same league with Gates. Nobody is.

...This means new markets, which eliminates at least for awhile any anti-trust concerns. It also means new enemies, which appeals to Gates. It probably gets boring beating up the same kid every day after school.

The New Microsoft will operate in five areas -- financial services, video games, television, GPS, and wireless. .NET is the beginning of Microsoft's thrust into financial services, using the old technique of "embrace and extend" to hopefully grab a piece of every transaction everywhere. This is Microsoft number one priority and Gates is determined to see it through before the Windows and Office franchises evaporate, as they ultimately will. With close to $40 billion in available cash, Microsoft will spend whatever it takes to make this happen.

...Current leaders in all these segments should be wary. That or sell out now, because -their future -- no matter what happens with the DoJ, any private lawsuits, and those nine errant states -- their future is going to be ugly.

 

UnixReview.com Why Java Isn't Appropriate for Everything by Adam Ronthal

"To a man with a hammer, every problem is a nail." -- Japanese proverb

Would you use a flamethrower to light a cigarette? Neither would I. Nor would I go to the trouble of writing a Java program to do tasks that would more easily and efficiently be accomplished by a shell script or perhaps a Perl program. When was the last time you ever saw a production-quality shell script suck up all the memory or CPU cycles on one of your systems? It happens to an overloaded JVM all the time.

... ... ...

Coming from this Java shop, the first version of the code for pre-rendering these anonymous pages was a Java application that could be run from the command-line to do an HTTP GET on the production site at regular intervals. Since there were many versions of the anonymous pages, approximately 70 HTTP requests were required, thus requiring 70 instantiations of a Java Virtual Machine. As the load on our systems and the number of pages to be generated increased, the pre-rendering job became more and more inefficient, using up more system resources for longer periods of time.

Perl plus LWP proved to be a viable alternative, but we ultimately used wget from the Free Software Foundation's GNU project -- a lightweight application compiled specifically for the target environment -- to do the same work much more efficiently.

In this case, Java was a completely inappropriate tool for the job at hand. With a little bit of preliminary thought and investigation, it would never have been used.

... ... ...

Several months ago, one of our engineers came to me with an implementation of a new feature destined for our production site. The task at hand was a simple one. We needed to generate a gif image from a text-based feed and make it available on the production Web site with regular updates.

The proposed implementation used Java's Abstract Window Toolkit (AWT). Unfortunately, this implementation required that an X display be available at all times to perform the required rendering. This would have required one of our systems to be constantly logged in with X running and appropriate access to the application server machines where this was to run. I rejected the implementation on both efficiency and security grounds, suggesting the use of more systems-friendly tools -- in this case, Perl and ImageMagick.

The final implementation was fast, efficient, and secure. It also required a much deeper understanding of the more traditional systems-level tools -- shell scripting and Perl -- and was implemented by a systems engineer, not a Windows Java developer.

... ... ...

I'm Really Not Anti-Java

Java offers a remarkable platform for situations where multiple platform support crucial. It's a wonderfully full-featured language, increasingly robust, and unquestionably powerful. I highly recommend it for large software development efforts.

Because the proliferation of Java has led to fewer and fewer software developers with a solid systems background, it is critical that system engineers and system administrators take an active role in their organization's development practices to ensure the appropriateness of tools developed and designated for production systems.

BeanShell - Lightweight Scripting for Java

I am pleased to officially announce that Sun will be shipping BeanShell with an upcoming release of Forte for Java and will make it available in the NetBeans IDE. To facilitate this BeanShell has moved to a dual licensing arrangement. You may now opt to use BeanShell under the terms of the Sun Public License, or you may (as always) continue to use and develop BeanShell under the terms of the LGPL.

BeanShell - Introduction

BeanShell is a small, free, embeddable, Java source interpreter with object scripting language features, written in Java. BeanShell executes standard Java statements and expressions, in addition to obvious scripting commands and syntax. BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript(tm).

You can use BeanShell interactively for Java experimentation and debugging or as a simple scripting engine for your applications. In short: BeanShell is a dynamically interpreted Java, plus some useful stuff. Another way to describe it is to say that in many ways BeanShell is to Java as Tcl/Tk is to C: BeanShell is embeddable - You can call BeanShell from your Java applications to execute Java code dynamically at run-time or to provide scripting extensibility for your applications. Alternatively, you can call your Java applications and objects from BeanShell; working with Java objects and APIs dynamically. Since BeanShell is written in Java and runs in the same space as your application, you can freely pass references to "real live" objects into scripts and return them as results.

Summary of features

Java evaluation features:

Scripting features:

Suggested uses

Reusing the Wheel by David Van Camp -- link to the paper was updated. NASA links are no longer valid (actually, NASA has removed the entire web site). Thanks to David Van Camp  for the inforamtion

Software developers often proclaim: “Don’t reinvent the wheel!” But the inverse of reinvention is reuse. And, reuse is often easier to proclaim than it is to achieve.

Slashdot: What Makes a Powerful Programming Language

Re:Why doesn't... (Score:1)
by Not The Real Me on Tuesday February 12, @12:40AM (#2992596)
(User #538784 Info)
Redirection is a horrific pain in Java. Piping I/O in Java is incredibly difficult. Pulling in environment variables requires jumping through hoops. Writing a server (daemon) in Java ain't nowhere as easy as C/C++. Sun has deprecated so much of the 1.1 api that many older apps break under 1.3. Java is too strongly typed. Simple casting would be great, but some types in Java are regular types and ohers are represented as classes.
Re:Java Interfaces (Score:1)
by God! Awful (
akrywani@[email protected]) on Monday February 11, @11:08PM (#2992281)
(User #181117 Info)
I program mostly in C++ but I've done a bit a Java. I found the main problem with Java was the amount of glue code I had to write. Glue code is the programming equivalent of paperwork. It's boring and mindless, but necessary if you want to stay organized.

C++ requires some glue code in order to get good modularity, but in Java the bloat is ridiculous. Having to create a whole new wrapper class just to simulate the effect of a non-const pointer!?

Interfaces are a good feature. I've implemented the equivalent in C++ using either multiple inheritance template classes, but Java interfaces are cleaner (and safer). However, as before, the glue code puts a burden on the programmer. I found myself giving up on code reuse because the burden is just to high.

After declaring an interface which accepts a listner and another which acts as a listener, it occurs to me that I used to write a callback function to do this in one tenth the time, and at no expense to modularity.

[Jan 20, 2002] Tech News - CNET.com -- pretty telling interview by James Gosling were he sometimes tries to distort facts about C#  forgetting that C# was a reaction of Java shortcoming ;-)

... ... ...

The next battle in Web services software development pits Microsoft against Java creator Sun Microsystems, along with Java adherents IBM, Oracle and others. Crucial to Microsoft's effort is C#, a Java-like language that will soon be part of the company's new Visual Studio.Net package of software-development tools, which was released to developers Wednesday.

Gosling, a Sun vice president, is dismissive of C# but admits he and others at Sun initially "panicked" when they learned of the language.

"The trite answer is, 'Imitation is the sincerest form of flattery--thank you very much,'" he said this week.

... ... ...

Q: Why do you say Microsoft's C# is Java without the reliability, productivity or security?
A: You find stuff in it that has essentially loopholes for everything. They had this problem in their design rules that they had to support C and C++, which means you have to have a memory model where you can access everything at all times. It's the existence of those loopholes that is the source of security, reliability and productivity problems for developers.

... It's certainly something to be concerned about, given the amount of resources Microsoft can bring to bear. But I've had conversations with developers. It has not been that big an issue with developers. It's actually been much more a public relations issue than a reality issue.

Where is the growth in Java development? Is it still mostly on the server side? What about the desktop?
It's both. You can't actually separate them because these networks that we're building are a bunch of things that communicate and are interdependent. Anytime someone builds a little application that runs on a cell phone, there's something that goes on the server. It's kind of like saying, "Is the blood pumping in your left arm or your right arm?" It's both.

Wireless has been very active because it's been particularly sexy. But desktop stuff has huge activity too. I suspect the amount of activity on the desktop is much huger than what's going on in wireless. You see people doing Java-based internal applications all over the place, regular desktop applications that are sort of front-ends to the things in the back, or standalone things.

The level of activity is just amazing; it's like every year I think it's going to slow down. The Java world has just been accelerating, and it's amazing how essentially anywhere there is a digital system, there's someone building something in it with Java. It's become this development environment and tool that gives you the unifying framework that colors everything, from supercomputers to smart cards.

What projects are you working on now for Sun?
.
.. There aren't a lot of people building IDEs (integrated development environments). And IDEs are generally targeted at low-end developers--people who are not experts at writing code. And if you look for tools that are oriented toward (those) people, you basically find nothing. The No. 1 tool (in that area) is Emacs, and I was kind of the guy responsible for the original Emacs, 23 years ago. One of the things I find frightening is it's still around, and in many ways it hasn't really changed. Is that the best you can do for a (low-end) developer? I don't think so.

We have a development (tool) called NetBeans that Sun bought. It was architected from the beginning to be a framework. It's a flexible system we open sourced a year and a half ago. And so I'm building a plug-in for NetBeans.

IBM created its own open-source project called Eclipse, which aims to integrate Java development tools so a software developer can choose tools from different software makers, plug them together, and have them work together. While nearly every toolmaker has joined the Eclipse project, Sun hasn't--and IBM executives have complained about that. What's going on?
NetBeans is very much like Eclipse. They said we were being bad because we didn't join Eclipse. But they didn't even ask us. We didn't find out about it until they announced it. It's been a little weird. To us, Eclipse feels like something very "me too" and derivative, backed up by a really strange marketing campaign.

They may. I mean, I'm sure there're people looking at what it will take. It's hard to tell how these things go. The important thing is to come up with a common set of APIs (application programming interfaces). We've been working on APIs for the last year and a half. It would have been nice if IBM had actually joined into our open-source effort that's been going on for a very long time.

Microsoft is making aggressive moves on the Web services front. There's some talk that Java is trailing in the Web services game, since the Java supporters, through the Java Community Process, won't come up with a Web services standards until later this year. Your thoughts?

We get asked about slowness a lot. I've made the comment that democracies work slower than dictatorships. That's a true thing. One of the key aspects of Web services is that it's all about cooperation. So if you are building a standard airline reservation system you have to get Travelocity, Orbitz and Expedia into a room, and they have to agree on a common schema in the Extensible Markup Language (XML) world for describing what is a flight and what is a request for a flight. One could try to dictate to the airline industry what all their reservation systems should look like, but they would not be real happy about that. I don't think that would be successful, because Web services is inherently about cooperating, so there has to be some kind of democratic process.

When you try to get Visa, MasterCard, Citibank and American Express, and the list of people in the Liberty Alliance (to create a standard for an authentication service over the Web), getting them to agree is going to be hard. But they are actually committed to agreeing. They understand they have their own agendas, but to further their own personal agendas they have to cooperate. So they are actually doing some good work.

The last time we interviewed you, about four years ago, you mentioned that when you made public appearances at conferences, Java developers always asked you for your autograph. Are you still treated like a superstar, and if so, how does it feel to still evangelize Java?

... For a while, I was (focusing on the evangelism) for medical reasons, because I had really bad carpal tunnel and RSI problems (and couldn't use a keyboard). And a couple of years ago, I went through a bunch of surgeries and it was like magic. I could work again. I've had a lot of fun since then.


Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 12, 2019