Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / April 2006

Tip: Looking for answers? Try searching our database.

Making Java extinct!

Thread view: 
v4vijayakumar@yahoo.com - 04 Apr 2006 11:21 GMT
If the language X can make Java extinct, then how it would look like?
Alex Hunsley - 04 Apr 2006 11:52 GMT
> If the language X can make Java extinct, then how it would look like?

You'd be interested in a book called Beyond Java, published by O'Reilly....
Alex Hunsley - 04 Apr 2006 11:52 GMT
>> If the language X can make Java extinct, then how it would look like?
>
> You'd be interested in a book called Beyond Java, published by O'Reilly....

...not to say that Java is going anywhere fast, currently.
But there are certainly interesting things afoot, e.g. Ruby on Rails.
Roedy Green - 04 Apr 2006 15:44 GMT
>If the language X can make Java extinct, then how it would look like?

It won't be a language in the same sense Java is. Its features will
derive more from the IDE. See http://mindprod.com/projects/scid.html
http://mindprod.com/projects/dynamicversioncontrol.html

The language itself will never be used by humans. It will be an
internal binary tree representation with extremely flexible external
representation.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Jeffrey Schwab - 04 Apr 2006 17:58 GMT
>> If the language X can make Java extinct, then how it would look like?
>
[quoted text clipped - 5 lines]
> internal binary tree representation with extremely flexible external
> representation.

A lot of experienced developers have been saying this for an awfully
long time.  Why hasn't it happened?

I and many others love the simplicity of using ordinary files that work
well on many platforms, with arbitrarily simple or complex editors
chosen by the people who work with the code.  I also believe fervently
in the traditional Unix mindset of modeling the world as a hierarchical
file system and a rich set of small tools.

When someone talks about source code in files being quaint, or tries to
sell me on an IDE as a replacement for small, command-line tools, I tend
to write them off immediately.  However, I know that you have put
significant time and thought into your opinion.  I also know from your
posts here and in certain other groups where I lurk (c.l.a.x86) that you
are more than qualified to implement an efficient, database-driven
development system.  So why haven't the predictions come to pass?
Thomas Weidenfeller - 04 Apr 2006 19:08 GMT
> A lot of experienced developers have been saying this for an awfully
> long time.  Why hasn't it happened?

It has happened at least once. The company went out of business in the
90th. The company was Lucid (yes, of the EMACS schism fame), the product
was Energize.

Some say they actually made money with Energize. I don't know. I touched
Energize once and couldn't stand it.

/Thomas
Signature

The comp.lang.java.gui FAQ:
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
http://www.uni-giessen.de/faq/archiv/computer-lang.java.gui.faq/

Remon van Vliet - 04 Apr 2006 20:16 GMT
>>> If the language X can make Java extinct, then how it would look like?
>>
[quoted text clipped - 22 lines]
> are more than qualified to implement an efficient, database-driven
> development system.  So why haven't the predictions come to pass?

I dont think it's meant in a way that the IDE replaces the language. I think
what is suggested is due to the fact that the logic (code) is stored in a
database in a certain format the IDE can provide more extensive
visualisation and input options, specifically more context sensitivity. But
perhaps i missed the point of the project to begin with, a spreadsheet based
approach appeals to me more than a database based approach in any case.

Either way, i dont really see this taking off since i fail to see any
significant wins when it comes to software development. Implementing logic
(writing code) is currently only a small part of the design and
implementation of a software project and any wins there in terms of
efficiency and ease of use wont really change the world of computer
programming. I see more future in moving to a language of which programs can
be "proven" to follow a pre-defined specification of it's functionality
(instead of beating the life out of a program by unit testing it ;), as well
as standardized visualisation solutions for such programs. Consider formal
specification languages such as Z. In the case of Z a mathematical notation
is used to formulate such specifications, but i can see that moving a syntax
that's more in tune with what the average developer is used to although i do
believe at some point we'll have to move away from text-based storage for
our "code".

On a shorter term it might be possible to develop a language that's more
strictly defined than Java. I dont remember the name but i once read about a
language for which the need of threads and synchronization was removed
because the language was defined in such a way that the run-time environment
could safely decide how to have the program run on seperate threads etc. It
maybe fun and worthwhile to have a few volunteers to come up with such a
specification that's as closely related to the Java language as possible,
for the hobbyists amongst us ;)

Moral of the story is, my vote would go to a future where programming
becomes more about defining intended behaviour rather than define logic and
work towards intended behaviour. If that makes sense (sorry english isnt my
native language).

My $0.02
James McGill - 04 Apr 2006 20:28 GMT
> Moral of the story is, my vote would go to a future where programming
> becomes more about defining intended behaviour rather than define
> logic and
> work towards intended behaviour.

Bring me out of cryo when we have the user interface from the
Enterprise.
James McGill - 04 Apr 2006 20:59 GMT
I'm getting very frustrated trying to configure logging.

For example, I'm using commons-logging which decorates the Java 1.4
logging.  If I change the logging.properties in the jre/lib dir, I can
enable logging levels (all I want to do right now is turn on debug).

So if I copy that logging.properties into my class path, and tell the
Eclipse runner to  " -Djava.util.logging.config.file=logging.properties"

it doesn't work.  

I've never seen a concrete example of how to configure this stuff.  The
docs are always vague about where to put things, or precise cookbook
examples of what to put in the config files.

I just want to be able to turn on or off debug/trace/fine logging with a
config file that lives in my project, preferably at the root of my bin
path, and even better, somewhere in a config directory in a jar.

How?  
Remon van Vliet - 04 Apr 2006 23:11 GMT
>> Moral of the story is, my vote would go to a future where programming
>> becomes more about defining intended behaviour rather than define
[quoted text clipped - 3 lines]
> Bring me out of cryo when we have the user interface from the
> Enterprise.

Haha, when we're that far we wont be doing the programming, our AIs will ;)
Thomas Weidenfeller - 05 Apr 2006 08:04 GMT
> Bring me out of cryo when we have the user interface from the
> Enterprise.

Are you mad? That stuff explodes every other second.

/Thomas
Signature

The comp.lang.java.gui FAQ:
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
http://www.uni-giessen.de/faq/archiv/computer-lang.java.gui.faq/

richardsosborn@gmail.com - 26 Apr 2006 14:46 GMT
"computer? create interface to exchange data between datastores."
Jeffrey Schwab - 26 Apr 2006 15:19 GMT
> "computer? create interface to exchange data between datastores."

Ah cannae do it, Cap'n.  Ah dinnae have the RAM.
Scott Ellsworth - 27 Apr 2006 00:47 GMT
> > "computer? create interface to exchange data between datastores."
>
> Ah cannae do it, Cap'n.  Ah dinnae have the RAM.

You have to, or the integration will DIE!

Hurry - we have only seconds!

Scott

Signature

Scott Ellsworth
scott@alodar.nospam.com
Java and database consulting for the life sciences

Roedy Green - 04 Apr 2006 21:43 GMT
On Tue, 4 Apr 2006 21:16:50 +0200, "Remon van Vliet"
<remon@exmachina.nl> wrote, quoted or indirectly quoted someone who
said :

> I dont remember the name but i once read about a
>language for which the need of threads and synchronization was removed
>because the language was defined in such a way that the run-time environment
>could safely decide how to have the program run on seperate threads etc

If there were a very low overhead thread, you might implement a loop
by having three threads work each doing every third element.  You
would perhaps define a new kind of loop where the execution order on
the set were undefined.

You already effectively have that already with

for ( X element : hashSet )

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Remon van Vliet - 04 Apr 2006 23:26 GMT
> On Tue, 4 Apr 2006 21:16:50 +0200, "Remon van Vliet"
> <remon@exmachina.nl> wrote, quoted or indirectly quoted someone who
[quoted text clipped - 14 lines]
>
> for ( X element : hashSet )

Yes, that would be an example of an element of such a language. But it would
go well beyond that in scope, you'd really need a few large restrictions on
the language. It'd be interesting to see if a subset of Java plus some
alterations could provide for such restrictions.

Remon van Vliet
Roedy Green - 04 Apr 2006 21:46 GMT
On Tue, 4 Apr 2006 21:16:50 +0200, "Remon van Vliet"
<remon@exmachina.nl> wrote, quoted or indirectly quoted someone who
said :

>Moral of the story is, my vote would go to a future where programming
>becomes more about defining intended behaviour rather than define logic and
>work towards intended behaviour.

I could see layouts working that way. You lay things out visually for
various awkward cases and the computer creates an interpolating
algorithm (perhaps a neural net logic) to do something sensible for
other similar cases.  You then focus on what you want for sample
cases, not how to compute it  If the computer does something weird,
you feed it another case. But in the meantime, it still sort of works.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Remon van Vliet - 04 Apr 2006 23:33 GMT
> On Tue, 4 Apr 2006 21:16:50 +0200, "Remon van Vliet"
> <remon@exmachina.nl> wrote, quoted or indirectly quoted someone who
[quoted text clipped - 11 lines]
> cases, not how to compute it  If the computer does something weird,
> you feed it another case. But in the meantime, it still sort of works.

Hm, what exactly are "layouts" in your example? And I actually have quite
some experience with implementing neural net based logic and i dont think
they're extremely suitable for applications where exact results are
mandatory and the behaviour completely predictable. The whole goal of such a
strict language would be to make it many times more stable and solid a
solution. Neural nets introduce a random factor that probably isnt suitable.
So, you never want it "sort of working". Or well, i shouldnt dismiss it that
easily, there are obviously cases where almost right is right enough.
Oliver Wong - 05 Apr 2006 20:14 GMT
> "Roedy Green" <my_email_is_posted_on_my_website@munged.invalid> wrote in
>>
[quoted text clipped - 14 lines]
> dismiss it that easily, there are obviously cases where almost right is
> right enough.

   I think Roedy is referring to
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/LayoutManager.html

   For most apps, it probably isn't mission critical if components are 2 or
3 pixels too wide, though it'll be pretty bad if the labels aren't
positioned next to the component they're labelling (e.g. switching the
"username:" and "password:" labels).

   - Oliver
vjg - 05 Apr 2006 18:41 GMT
See Genexus at www.genexus.com.

See Allfusion:2E at www.ca.com.
Hendrik Maryns - 05 Apr 2006 11:00 GMT
Remon van Vliet schreef:

>>>> If the language X can make Java extinct, then how it would look like?
>>> It won't be a language in the same sense Java is. Its features will
[quoted text clipped - 4 lines]
>>> internal binary tree representation with extremely flexible external
>>> representation.

> Either way, i dont really see this taking off since i fail to see any
> significant wins when it comes to software development. Implementing logic
[quoted text clipped - 5 lines]
> (instead of beating the life out of a program by unit testing it ;), as well
> as standardized visualisation solutions for such programs.

Seems like you?re looking for Eiffel (not that I?ve used it, yet).

H.
- --
Hendrik Maryns

==================
www.lieverleven.be
http://aouw.org
Jussi Säntti - 05 Apr 2006 11:41 GMT
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
[quoted text clipped - 24 lines]
>
> Seems like you?re looking for Eiffel (not that I?ve used it, yet).
Yes, the method is called Design By Contract and the specifications are
compiled assertions: preconditions and postconditions of methods and
invariants of classes. The specifications may not be complete yet and the
automatic prover does not exist yet, but the specifications are extremely
useful already.

> H.
> - --
[quoted text clipped - 10 lines]
> =f9TE
> -----END PGP SIGNATURE-----
Roedy Green - 04 Apr 2006 21:38 GMT
On Tue, 04 Apr 2006 16:58:54 GMT, Jeffrey Schwab
<jeff@schwabcenter.com> wrote, quoted or indirectly quoted someone who
said :

>A lot of experienced developers have been saying this for an awfully
>long time.  Why hasn't it happened?

several reasons:

1. it requires a new way of thinking about code. People resist change.
They want to continue doing everything exactly as before. I think IDEs
are gradually softening people up for the transition.  Instead of
composing a free form text file, you are building a heavily
cross-checked data structure.

2. It needs to be introduced simultaneously with dynamic version
control.  Version control is so malodourous at its current stage of
evolution, that it will be the carrot to get people to switch.

3. egotistical programming.  People who write code think of it  as
belonging to them.  They want to pee on it -- format it in ways that
make it clear to others this is their territory.  They don't like the
idea of their masterwork being massaged in reused in a thousand ways
that remove their scent from it.  Even something as simple as whether
concatenation operator + shows up in a different colour, the original
author wants to control. If he does not like the idea, he does not
want anyone else using it.  It is HIS masterwork after all.

4. Programmers are NOT interested in productivity, unless they happen
to also own companies. They happily tell other professions how to be
more productive, but they strongly resist applying the same techniques
to themselves.  We are  much like furniture craftsmen of old decrying
the factories mass producing furniture.  Though there will always be a
market for hand-crafted Stradivarius quality software, the mass market
is much better served by something more easily cranked out to fit the
budget.  I am not calling for the equivalent of McDonald McCrap meals,
but the uniformity and much more formal quality control that new tools
could bring.  

5. My basic idea is to explain the facts of life to a computer only
once, do it properly, and ever after use that rather than creating a
million variants.  Sun is beginning to understand this concept with
the Calendar and Collection classes. They still have no business
classes that automatically validate phone numbers, addresses, zip
codes, email addresses, URLs etc, automatically refreshing the rules
from a central source.

The longer we resist improving productivity, the folk in India will
outprogram us, even if they use old fashioned techniques. They simply
work for less money, same as they outcompete us at making handmade
baskets. To compete, we must work smarter so that software creation is
not so labour intensive and is more about knowing your customer and
anticipating or fathoming his needs
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Oliver Wong - 05 Apr 2006 20:10 GMT
> On Tue, 04 Apr 2006 16:58:54 GMT, Jeffrey Schwab
> <jeff@schwabcenter.com> wrote, quoted or indirectly quoted someone who
[quoted text clipped - 4 lines]
>
> several reasons:

[Snipped Roedy's 5 reasons]

6. Because it's actually quite difficult to implement. The company I work
for is doing something in a similar direction, and we're working with
several other companies including IBM and the Eclipse community. Even with
all this manpower (personpower?), we still expect a long ways to go before
the SCID idea becomes feasible.

   The more you try to get the tools (whether it's an IDE or a compiler
with better error messages) to truly "understand" what the source code is
doing, the closer you are at trying to solve the halting problem.

   - Oliver
Daniel Dyer - 04 Apr 2006 19:38 GMT
> If the language X can make Java extinct, then how it would look like?

You might find this interesting:

http://beust.com/weblog/archives/000375.html

Dan.

Signature

Daniel Dyer
http://www.dandyer.co.uk

Roedy Green - 04 Apr 2006 22:00 GMT
On Tue, 04 Apr 2006 20:38:15 +0200, "Daniel Dyer"
<dan@dannospamformepleasedyer.co.uk> wrote, quoted or indirectly
quoted someone who said :

>http://beust.com/weblog/archives/000375.html

"If the compiler doesn't beep, the program should run".

What would a Java that followed that rule look like?

1. In Nice, somehow they figure out at compile time about any null
pointer exceptions.

2. Genericity goes a long way to getting rid of casts, the other big
uncertainty.

3. variables would have declared bounds. That might help a smart
compiler detect code that would violate that constraint, or at least
insert asserts for you in places where there might be trouble so you
die gracefully with a clear message.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Remon van Vliet - 04 Apr 2006 23:55 GMT
> On Tue, 04 Apr 2006 20:38:15 +0200, "Daniel Dyer"
> <dan@dannospamformepleasedyer.co.uk> wrote, quoted or indirectly
[quoted text clipped - 16 lines]
> insert asserts for you in places where there might be trouble so you
> die gracefully with a clear message.

Exactly, (all?) variables would require constraints (min/max bounds or more
specific value ranges, not null), also, more specific types would be
required (in other words, have type "index" for an index integer type that
always has min/max bounds..so not abuse "int" for everything). Non-nullable
variables can also help to indicate problems at compile time. There also
other small changes "int i = Integer.MAX_VALUE + 10;" should not compile,
and even in our imaginary language (i didnt really put much thought in
defining bounds) :

int a<10..20> = 15;
int b<0..40> = 20;
int c<0..30> = a + b; // <- shouldnt compile obviously

or

MyObject a = someObject;
MyObject<notnull> b = a; // Shouldnt compile, a isnt nonnull defined and may
be null
Gordon Beaton - 05 Apr 2006 08:18 GMT
> Exactly, (all?) variables would require constraints (min/max bounds
> or more specific value ranges, not null), also, more specific types
> would be required (in other words, have type "index" for an index
> integer type that always has min/max bounds..so not abuse "int" for
> everything).

[...]

> int a<10..20> = 15;
> int b<0..40> = 20;
> int c<0..30> = a + b; // <- shouldnt compile obviously

Gah! You've invented Ada!

/gordon

Signature

[  do not email me copies of your followups  ]
g o r d o n + n e w s @  b a l d e r 1 3 . s e

Remon van Vliet - 05 Apr 2006 10:51 GMT
>> Exactly, (all?) variables would require constraints (min/max bounds
>> or more specific value ranges, not null), also, more specific types
[quoted text clipped - 9 lines]
>
> Gah! You've invented Ada!

We were talking about "the new Java" so any similarities with other
languages arent exactly relevant, it was simply an example. Ada is a
language that approaches the goal mentioned in one of the earlier posts
because it's very strong type safety, but no more than that.
Stefan Ram - 05 Apr 2006 13:34 GMT
>>int a<10..20> = 15;
>>int b<0..40> = 20;
>>int c<0..30> = a + b; // <- shouldnt compile obviously
>Gah! You've invented Ada!

 Or possibly, »SPARK«:

     »SPARK is a secure, formally-defined programming language
     designed to support the development of software used in
     applications where correct operation is vital either for
     reasons of safety or business integrity. There are
     versions of SPARK based on Ada 83 and Ada 95. (...) SPARK
     exploits the strengths of Ada while eliminating all its
     potential ambiguities and insecurities. A SPARK program
     has a precise meaning which is unaffected by the choice of
     Ada compiler and can never be erroneous (erroneous in the
     meaning as defined in the Ada Reference Manual). These
     desirable goals are achieved partly by omitting some of
     Ada's more problematic features (such as unrestricted
     tasking) and partly by introducing annotations or "formal
     comments" to capture the code designer's intentions.  (...)

           procedure Increment (X : in out Counter_Type);
           --# derives X from X;
           --# pre X < Counter_Type'Last;
           --# post X = X~ + 1;«
Remon van Vliet - 05 Apr 2006 17:10 GMT
>>>int a<10..20> = 15;
>>>int b<0..40> = 20;
[quoted text clipped - 22 lines]
>            --# pre X < Counter_Type'Last;
>            --# post X = X~ + 1;«

*that*'s the language i was referring to, couldnt remember it's name. Thanks
;)
Oliver Wong - 05 Apr 2006 20:19 GMT
> If the language X can make Java extinct, then how it would look like?

   Not as drastic a change as some of the other changes suggested in this
thread, but it'd be nice if Java had some syntactic sugar to make a local
variable "final from now on". E.g. instead of this:

<oldCode>
final int numberOfElements;
{
 int tempNumElements= 0;
 while(someCondition) {
   tempNumElements++;
 }
 numberOfElements = tempNumElements;
}
//use numberOfElements, perhaps in an anonymous class.
</oldCode>

something like:

<newCode>
int numberOfElements = 0;
while(someCondition) {
 numberOfElements++;
}
make numberOfElements final;
//use numberOfElements, perhaps in an anonymous class.
</newCode>

The compiler would check that all codepaths will consistently result in a
final or non-final variable at the point in which the variable is accessed,
just like the compiler currently verifies that in all codepaths, a variable
is assigned before it is read from.

   - Oliver
Remon van Vliet - 05 Apr 2006 21:15 GMT
>> If the language X can make Java extinct, then how it would look like?
>
[quoted text clipped - 31 lines]
>
>    - Oliver

I think something like that was already suggested by James Gosling for Java

a := b; // make a of the same type as b and assign b's value
a :== b; // make a of the same type as b, assign b's value and make it final

I certainly wouldnt object

Remon van Vliet


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.