Java Forum / General / April 2006
Making Java extinct!
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 MagazinesGet 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 ...
|
|
|