- Paul Graham essays
- Posted by surfunbear@yahoo.com on February 15th, 2006
Someone lead me to some of Paul Graham's essays.
Some of it was interesting, but a couple things occured to me.
He said that programmers or hackers aren't in love with Java, that it
was developed
and advocated by a corporate entity (Sun) and that the DOD advocates
it. DOD also advocated Ada which he says was a failure. Pointed headed
bosses who know nothing about development get exicted about Java.
I wasn't aware of any strong criticism of Java just from browsing
computer sections of books stores full of technical books. There seems
to be tons of Java books, so it has gotten far
beyond Ada. Just because Ada never became popular, that doens't mean
that something might not have been learned from the development of it.
Back in the late 1980's I did
a study of it for a class at college on monitors which at that time
seemed very interesting to
me.
As far as a corporate entity, I like Sun more than Microsoft, though I
used to like Apollo computer better than Sun, they never succeeded.
He characterizes Java and OO as something for mediocre developers to
use so they
don't step on each other toes. He seems to say OO is overrated, but I
didn't find where he really elaborated on that or talked about some
alternative.
I exchanged emails with a Perl programmer once. I really love Perl
myself, but
I thought that if a porject got really large, Java might have an
advantage.
He seemed to think any program worth it's salt should not be very
large.
I'm not sure that's true. It may be desirable, or more fun to work on
smaller
programs, but some system may just get very large.
- Posted by jimmaureenrogers@worldnet.att.net on February 15th, 2006
surfunbear@yahoo.com wrote:
DoD advocation of Java is far different from its advocation of Ada.
Java has its advocates in the DoD, but there are no official policies
stating a preference of Java over any other language. Ada was
designed to DoD requirements. From 1983 through 1995 the DoD
had an official Ada mandate requiring the use of Ada for weapons
systems unless it could be shown that Ada would not work for a
given project. DoD contractors generally ignored the Ada mandate,
or tried to get waivers from it. In 1995 the DoD acknowledged that
the Ada mandate was not working. They abandoned their attempt
to specify a tool set for software development.
Ada is not yet a dead language. It is still actively used, primarily
in safety-critical software environments.
Java is finding its way into some weapons systems. C and C++ are
also in some weapons systems. C, C++, and Java present special
challenges for use in hard real-time safety-critical systems. I have
not seen any data indicating that such systems are developed
faster, cheaper, or more reliably using C, C++, of Java compared
with using Ada. The choice of languages does not appear to be
primarily driven by technical advantages.
Jim Rogers
- Posted by surfunbear@yahoo.com on February 15th, 2006
I wanted to mention one other though that Ada was specifically both
developed and advocated by DOD, whereas Java was developed by Sun and
then advocated by DOD.
- Posted by Steve O'Hara-Smith on February 15th, 2006
On 15 Feb 2006 11:23:56 -0800
surfunbear@yahoo.com wrote:
There's a great deal to be said for structuring large systems
as a large number of small independently testable programs.
--
C:>WIN | Directable Mirror Arrays
The computer obeys and wins. | A better way to focus the sun
You lose and Bill collects. | licences available see
| http://www.sohara.org/
- Posted by Phlip on February 15th, 2006
Paul Graham wrote:
OO is the leading paradigm, and Java is its flagship implementation -
despite being an infernally klutzy implementation of the OO idea. Java
appeared in the right place at the right time, just when Web browsers
needed an applet language.
When was the last time you hit a web page that loaded a non-trivial Java app
that did something for you as a user?
Because OO is easy to misunderstand, and because Java deserves no hallowed
place as the language of choice for all the modern design patterns and
refactoring books, busting on OO and Java (irrelevantly together) has
become a guilty pleasure; a way to stir up controversy, and a way to claim
the elitist ground.
jimmaureenrogers wrote:
If I trusted the folks commanding them, that statement would unnerve me.
--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
- Posted by surfunbear@yahoo.com on February 16th, 2006
I suppose, but what about common libraries, reusability, API's, and so
on ?
What systems are large and independent in such a way ?
- Posted by Oliver Wong on February 16th, 2006
"Phlip" <phlip2005@gmail.com> wrote in message
news:%9PIf.1159$%m4.680@newssvr33.news.prodigy.com ...
I think this largely has to do with the fact that if a web page embeds a
non-trivial application (whether Java, Flash, vanilla JavaScript, AJAX, the
HTML <FORM> tag, or something else), it defies the user's expectation of the
behaviour of the "forward" and "back" button. This usually pisses off the
user.
So successful embedded web application tended to be the ones that stayed
out of the way, and for which you'd never even notice something other than
HTML was being used (e.g. see Google Maps for a very effective web app which
doesn't make use of JavaScript painfully obvious).
- Oliver
- Posted by Randy Howard on February 16th, 2006
surfunbear@yahoo.com wrote
(in article
<1140117992.853775.91650@o13g2000cwo.googlegroups. com>):
You suppose what?
--
Randy Howard (2reply remove FOOBAR)
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw
- Posted by Phlip on February 16th, 2006
Oliver Wong wrote:
Hmm - yet another bang on Java!
JavaScript ain't Java (it's ECMAScript), and its name is an obvious
marketing thing.
Next, JavaScript uses dynamic OO. Much of the AJAX behind Google's world
domination strategy downloads and evaluates JavaScript on the fly.
Dynamic OO is what Java lacks when it forces you to repeat type names all
over the place.
JavaScript [the last I checked] only lacked a module system to compete with
statically typed OO languages. Like Java.
--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
- Posted by Oliver Wong on February 16th, 2006
"Phlip" <phlip2005@gmail.com> wrote in message
news:Pc5Jf.15380$tb3.12909@newssvr24.news.prodigy. net...
Assuming "another band on Java" means "another disadvantage with Java",
I don't think the fact that Google chose to implement Google Maps in
JavaScript is nescessarily an argument against Java in general. Choose the
right tool for the right job, and all that.
See http://www.puzzlepirates.com/ for an example of a internet-deployed
app where Java was probably the right choice.
- Oliver
- Posted by Phlip on February 16th, 2006
Oliver Wong wrote:
I'm sure there are healthy apps written in Java. I didn't mean Google disses
Java.
I mean JavaScript uses dynamic typing, and Java uses static typing. So a
lowly scripting language is competitive with the vaunted Java, only because
it frees itself from the paranoid delusions of typesafety that static
typing provides. You can get more done in less lines. Sometimes 10% of the
lines.
--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
- Posted by Oliver Wong on February 16th, 2006
<surfunbear@yahoo.com> wrote in message
news:1140031436.771888.166600@g44g2000cwa.googlegr oups.com...
I don't *personally* know any programmer (or hacker, or anyone at all)
who is in love with any programming language. I don't doubt that there
exists someone out there who loves a programming language; I'm just
concerned that the way the statement above is phrased might lead to the
"false bijection" logical fallacy:
A: Do you know anyone that loves Java?
B: No.
A: Therefore, everyone hates Java. QED.
I'm a programmer, and I like working with Java.
[...]
I think he has a very good point here. Java and OO does provide lot of
features to help mediocre programmers not step on each other toes. This is a
good thing. Why? Because most programmers are mediocre (by definition of the
word "mediocre").
The problem comes when a programmer becomes "embarassed" to use Java,
because (s)he thinks it'll be evidence that (s)he is mediocre. Obviously,
that's nonsense.
The "next big thing" seems to be AOP (Aspect Oriented Programming). I
took a look at it, and while it would solve some problems (e.g. interleaving
unrelated aspects of a problem in the same code), it introduces an
additional layer of complexity (e.g. that the code you're looking at doesn't
nescessarily does what it claims to do). I'm waiting for methodologies to
develop around AOP to limit (and howfully eliminate) these problems before
diving into AOP. Maybe such methodologies will never come, I don't know.
Sometimes users wants their software to be well integrated. I'm
anxiously awaiting for the integration of Thunderbird and Sunbird, because I
want e-mail application and my calendar application to inter-operate. I want
to be able to drag and drop an e-mail I received onto a calendar, such that
the two are now linked, and when I edit information about the e-mail, the
corresponding entry in the calendar is updated as well.
If you're programming for a living (as opposed to for fun), you have to
meet the needs of the users. If they want a big application, you're going to
have to write a big application. It doesn't matter if the programmer thinks
the application is "worth its salt" or not, it's not the programmer who's
footing the bill, it's the client.
- Oliver
- Posted by surfunbear@yahoo.com on February 17th, 2006
I'm just saying if someone thinks some other approach
has merit, I'll give them the benefit of the doubt to be polite, but at
the same time I'm asking for examples or an elaboration of principles
etc.
- Posted by surfunbear@yahoo.com on February 17th, 2006
exists someone out there who loves a programming language; I'm just
concerned that the way the statement above is phrased might lead to the
"false bijection" logical fallacy:
You can be in love with it for awhile when you are first learning
something new and it seems like a novelty.
is a
good thing. Why? Because most programmers are mediocre (by definition
of the
word "mediocre").
Alot of people wouldn't want to think that way of themselves or others
as it could seem demeaning or increase lack of confidence in self or
others. On the other hand, everyone makes mistakes and even the best
programmers probaly have made some big ones at one time or another.
Obviously,
that's nonsense.
Some people think that way, perhaps managers especially.
I've never heard of it, is there a language that uses it ?
going to
have to write a big application. It doesn't matter if the programmer
thinks
the application is "worth its salt" or not, it's not the programmer
who's
footing the bill, it's the client.
I often feel concerned that clients or managers are focused more
on how hard you are going to work on something and how you are going to
do it, when they are not experienced in development. When there is a
problem at hand I like to step back there is an easier way to do it and
has great long term advantage.
Sure they pay the money, but it could be like knowing little about
cars and trying to tell your mechanic how to fix your car.
If he's a good and honest mechanic, he knows how to fix your car.
He may tell you what he thinks the viable options are, but he
can't preform miracles and what some people expect from him may be
unrealistic, unfair from a labor perspective, or even dangerous in
terms of safety etc.
I believe in catering to peoples needs. I have been in a situation
where managers seem to feel happy with inexperienced developers who
come in on weekends to hack through some awfull shell scripts. This
impresses them that they come in on weekends. If I get my work done in
no time by automating everything in perl, no one seems much impressed.
If everyone had that attitude it would lead to slave labor and some
foriegn competition would eventually kick butt.
- Posted by Steve O'Hara-Smith on February 17th, 2006
On 16 Feb 2006 11:26:32 -0800
surfunbear@yahoo.com wrote:
These are all good things and aid in the goal of designing large
systems as a number of small independently testable programs.
BTW: quoting some context aids with understanding your replies.
--
C:>WIN | Directable Mirror Arrays
The computer obeys and wins. | A better way to focus the sun
You lose and Bill collects. | licences available see
| http://www.sohara.org/
- Posted by Oliver Wong on February 17th, 2006
<surfunbear@yahoo.com> wrote in message
news:1140175026.248761.190800@g47g2000cwa.googlegr oups.com...
To paraphrase a Family Guy joke:
Peter Griffin: It may very well be that Java is an excellent programming
language, but what we are all forgetting, gentlement, that anyone who likes
Java... is gay.
Developer A: I don't like Java!
Developer B: I don't like Java either!
James Gosling: I was the FIRST developer to not like Java!
[snip]
Aspect J is an Aspect Oriented version of Java. Back in university, I
worked with a professor who was developing a compiler for it.
http://www.eclipse.org/aspectj/
Yes, sometimes your clients are idiots, and sometimes your boss is an
idiot. That's how it is in all industries (not just IT). My point is that
it's fine and dandy for you to personally prefer small applications over
monolithic ones, but if you want to make a decent living as a programmer,
you need to be able to write both kinds of applications.
- Oliver