[EVALUATION] - E01: The Java Failure - May Ruby Helps?

  • Thread starter Ilias Lazaridis
  • Start date
I

Ilias Lazaridis

"
A cooperation between Sun Microsystems and IBM&Co. in conjunction with
liberal & high evolutive communities would result in an nearly
unbeatable programming platform.

My evaluation has shown: this is a non achievable goal, as stubborness
and egoism rules - instead of reason and cooperation.

Thus I leave all those ridiculous folks behind, which will continue to
do an excellent job in keeping the very promising JAVA platform far
below the technological level it could be
"

-

"
Of course It's a sad day.

Censorship (NetBeans, Eclipse) has forced me to move.

No platform is _really_ open, thus I cannot build on them:

http://lazaridis.com/core/project/open.html
"

-

"I'm sure there is one community out there which will realize immediatly
the benefits of an high-evolutive system. "

-

source: [messages within thread]

[JAVA] [EVALUATION] - The Java Failure (Sorry: The Java(tm) Failure)
http://groups-beta.google.com/group/comp.lang.java.softwaretools/msg/ae6315fda51d50a1

-
-
-

During the 6 months evaluation i've extracted several constructs.

"How it should be to become high evolutive"

-

I don't know Ruby.

Basicly I would like to do everything in C++.

But development must go quicker.

-

Possibly it's time to structure Ruby projects in a way similar to
Sun's Java, NetBeans and especially IBM&Co's Eclipse (but of course more
efficient and evolutive):

http://lazaridis.com/case/ide/project/index.html

www.osgi.org and similar standards should (whenever possible) be used.

Companies in the Embedded World should be intrested in an Ruby osgi
implementation.

[Note: i've not verified technical and legal applicability]

-

osgi is just a detail.

The goal would be: to make a high competitive andhigh evolutive
programming platform / Rich Client Platform based on Ruby.

-

My question is essentially:

How many of those constructs are already supported by Ruby (and the
surrounding open-source-projects):

http://lazaridis.com/case/stack/index.html

-

I'll be possibly for some time off-line, as the evaluation has brought
me to my financial limits, thus i'm loosing my phone-line in a few hours.

I'll try to communicate via internet-cafe, but cannot promise this.

-

Please notify the people within the relevant Ruby communities about
this thread.

..
 
K

Kaspar Schiess

Hello Ilias,

Welcome to the Ruby language.

Your post tells a tale of a lot of personal frustration and of a lot of
conflicts with people in other open source communities. While I certainly
see what you are talking about in your message (although it is rather
long and requires some in depth reading), I cannot share your vision of
things. I don't think the Java community is entirely bad and the way it
has reacted to you cannot entirely be blamed on them. Wanting to say: You
have a very upfront way of dealing with things that some people might
understand as an offense.
My question is essentially:

How many of those constructs are already supported by Ruby (and the
surrounding open-source-projects):

http://lazaridis.com/case/stack/index.html
and

I don't know Ruby.

Basicly I would like to do everything in C++.

But development must go quicker.

give me mixed feelings about what to answer you. Yes, Ruby possibly
supports a great many of the things you mention, but if it does not, that
would be the time to learn Ruby and build some things yourself. That's
the way it works - you can't demand things to be built. Some of us are in
on this on daytime jobs, but most of us do this for free - so the phrase
'developement must go quicker' is really useless.

Not offering any advice here apart from that, since I don't want to
thread loose another long discussion about how things should be 'run'.

Please be assured of my best intentions,
kaspar

hand manufactured code - www.tua.ch/ruby
 
H

Hal Fulton

Kaspar said:
give me mixed feelings about what to answer you. Yes, Ruby possibly
supports a great many of the things you mention, but if it does not, that
would be the time to learn Ruby and build some things yourself. That's
the way it works - you can't demand things to be built. Some of us are in
on this on daytime jobs, but most of us do this for free - so the phrase
'developement must go quicker' is really useless.

Kaspar,

I agree with most of what you say here.

I think however that when he said "development must go quicker" he meant
that his own development must be quicker than he can manage in C++ (hence
the interest in Ruby).


Cheers,
Hal
 
K

Kaspar Schiess

(In response to by Hal Fulton)
I think however that when he said "development must go quicker" he meant
that his own development must be quicker than he can manage in C++ (hence
the interest in Ruby).

Seen like this the phrase makes of course sense. I stand corrected.

kaspar

hand manufactured code - www.tua.ch/ruby
 
I

Ilias Lazaridis

Ilias Lazaridis wrote:
[...]
My question is essentially:

How many of those constructs are already supported by Ruby (and the
surrounding open-source-projects):

http://lazaridis.com/case/stack/index.html
[...]

Can please some community member has the gentleness to give me an answer
on this?

The evaluation sequence is a very standard case, thus your answers will
be usable to other newcomers, too (e.g. if you create a
ruby-real-live-quick-start-document):

http://lazaridis.com/case/stack/index.html#evaluation

..
 
I

Ilias Lazaridis

Ilias Lazaridis wrote:
[...]
My question is essentially:

How many of those constructs are already supported by Ruby (and the
surrounding open-source-projects):

http://lazaridis.com/case/stack/index.html
[...]

From the communities behaviour, I extract the following answer:

"
Ruby is not what you are searching for. It is not capable to replace
JAVA and it's large base of libraries and open source system
implementations.

The existent Ruby tools cannot produce the defined stack, which
essentially describes some form of an coherent open-source MDA (Model
Driven Architecture) implementation.

Ruby is for having fun - but not for producing serious large scale
distributed applications.

Otherwise the people here would have simply answered: welcome, pick
this, this and this, add this and this and your stack is ready.
"

..
 
S

Sam Roberts

Quoteing (e-mail address removed), on Mon, Feb 14, 2005 at 02:24:57AM +0900:
Ilias Lazaridis wrote:
[...]
My question is essentially:

How many of those constructs are already supported by Ruby (and the
surrounding open-source-projects):

http://lazaridis.com/case/stack/index.html
[...]

From the communities behaviour, I extract the following answer:

I would extract this:

You have a project. You need to evaluate tools for your project. Other
people are not going to do this evaluation for you.

If I told you "ruby and its libs will do everything you want", what
would you do then? Believe me, somebody you know nothing about? Start a
major coding effort, based on free advice?

Cheers,
Sam
 
D

Douglas Livingstone

From the communities behaviour, I extract the following answer:

I don't really understand what your question is, so I can't help you.

The way you have random dashes dots and quotation marks in your post
makes me think that you do not take your questions seriously, it looks
like one of those v!&gr@ messages.

Parhaps if you clearly stated what it is you are looking for you might
get a better response. From here, it sounds like you don't know what
you want and you don't want to know what is on offer. It is quite
difficult to try and solve those problems without being you.

Douglas
 
I

Ilias Lazaridis

Douglas said:
I don't really understand what your question is, so I can't help you.

The way you have random dashes dots and quotation marks in your post
makes me think that you do not take your questions seriously, it looks
like one of those v!&gr@ messages.

Parhaps if you clearly stated what it is you are looking for you might
get a better response. From here, it sounds like you don't know what
you want and you don't want to know what is on offer. It is quite
difficult to try and solve those problems without being you.

We are humans.

Thus we can ask, if we don't understand something.

Please let me know which point you've not understood.

the described system:

http://lazaridis.com/case/stack/index.html

describes mostly state-of-the-art integrated commercial development
systems, nothing more.

I just want to know, which of the constructs are supported within the
ruby world: which systems exist and which would I have to implement myself.

..
 
I

Ilias Lazaridis

Sam said:
Quoteing (e-mail address removed), on Mon, Feb 14, 2005 at 02:24:57AM +0900: [...]
I would extract this:

You have a project. You need to evaluate tools for your project. Other
people are not going to do this evaluation for you.

If I told you "ruby and its libs will do everything you want", what
would you do then? Believe me, somebody you know nothing about? Start a
major coding effort, based on free advice?

Please do not disrupt the obious context.

I (a newcomer) ask the community about existing systems.

This is really nothing special.

It helps me, it helps the community.

"
Can please some community member has the gentleness to give me an answer
on this?

The evaluation sequence is a very standard case, thus your answers will
be usable to other newcomers, too (e.g. if you create a
ruby-real-live-quick-start-document):

http://lazaridis.com/case/stack/index.html#evaluation
"

..
 
L

Luke Graham

Some of it is possible. I have created persistent Ruby objects, for
example. Persistent code is possible with some hacking, Ive done
something that at least looks like persistent Ruby code from a
distance, if you squint ;) Databases work. I use Ruby to generate C
code, so you can make generators with it. Its open-source. It can be
used remotely, there are packages around to send code across networks.
You can get stuck into a reasonable amount of metadata for a language
that isnt written in itself. Anything else you really want to know?


From the link - "fictive technology collection". Ive worked on some of
those too ;)
 
I

Ilias Lazaridis

Luke said:
Some of it is possible. I have created persistent Ruby objects, for
example. Persistent code is possible with some hacking, Ive done
something that at least looks like persistent Ruby code from a
distance, if you squint ;) Databases work. I use Ruby to generate C
code, so you can make generators with it. Its open-source. It can be
used remotely, there are packages around to send code across networks.
You can get stuck into a reasonable amount of metadata for a language
that isnt written in itself. Anything else you really want to know?

Yes, I would like to know if all this you have done is based on some
implemetations which are standard within the ruby community.

I would like something like:

create object
...

make it persistent with XYZpersist

obj.save ...

make a gui with XYZgui

obj. ...
....


and so on.

-

something, that I could give a newcomer to ruby (which knows object
orientation), and he could start immediatly to be productive.

..

[...]
..
 
A

Austin Ziegler

Some of it is possible. I have created persistent Ruby objects, for
example. Persistent code is possible with some hacking, Ive done
something that at least looks like persistent Ruby code from a
distance, if you squint ;) Databases work. I use Ruby to generate C
code, so you can make generators with it. Its open-source. It can be
used remotely, there are packages around to send code across networks.
You can get stuck into a reasonable amount of metadata for a language
that isnt written in itself. Anything else you really want to know?

For everything except persistent code (e.g., persistent object state),
you can use any number of options. However, for persistent object code
(that is, saving the code behind a method), I think that the new work
by Ryan Davis and Eric Hodel — especially the new AST to Ruby
generator that was featured on RedHanded is probably a very good idea.
I wouldn't be surprised if you could get the AST, store that, and then
use the generator to restore and then #eval the resulting code later.

-austin
 
I

Ilias Lazaridis

Austin said:
For everything except persistent code (e.g., persistent object state),
you can use any number of options.

Can you name me a few, which would fulfill my stated requirements? [like
OOAD, scalability etc.]
However, for persistent object code
(that is, saving the code behind a method), I think that the new work
by Ryan Davis and Eric Hodel — especially the new AST to Ruby
generator that was featured on RedHanded is probably a very good idea.
I wouldn't be surprised if you could get the AST, store that, and then
use the generator to restore and then #eval the resulting code later.

This sounds _very_ intresting to me, but I have to limit my evaluation
based on the current needs

http://lazaridis.com/case/stack/index.html

Simply stated:

how can I create objects.
how can I make them persistent.
how can I create a generic GUI
how can I create a generic Web GUI
how can I update the object model
....

..
 
M

Martin DeMello

Ilias Lazaridis said:
Simply stated:

how can I create objects.
how can I make them persistent.
how can I create a generic GUI
how can I create a generic Web GUI
how can I update the object model
...

If what you're looking for is a full stack web framework, check Rails
out - it does a really good job of designing the various parts to
interact well with each other from the outset. It let me throw together
a trivial CRUD app in a week, two days of which were spent on Apche
issues. I've not used Nitro or Wee, but I've heard good things about
both of those too.

Non-web GUIs - http://www.rubygarden.org/ruby?ComparingGuiToolkits

As for objects, it's nigh impossible to use Ruby *without* creating
them :)

Surfing the Rubygarden wiki and the newsgroup archives should garner you
a lot more.

martin
 
A

Austin Ziegler

Austin said:
For everything except persistent code (e.g., persistent object
state), you can use any number of options.
Can you name me a few, which would fulfill my stated requirements?
[like OOAD, scalability etc.]

Your stated requirements are exceedingly vague, which makes it hard
to recommend anything in particular, and I think that's part of the
reason that your posts have not received much attention. It does
*not* help that the format is hard to read and that the wording is
(as I said) vague and buzz-wordish.
This sounds _very_ intresting to me, but I have to limit my
evaluation based on the current needs

I'm not sure what you mean here, and what I'm talking about is a
specific capability that I believe is able to be implemented through
Ruby2C project offshoots.

I will attempt to address your questions -- mostly with questions
because I find your questions/requirements exceedingly vague.

The first question I have is -- what real solution are you trying to
solve? Ultimately, the first paragraph of your linked page that
you're not trying to solve a *real* problem, but rather trying to
get a sense of what is possible and already available on various
languages.
[simple] how can I create objects.
[simple] how can I make them persistent.
[simple] how can I create a generic GU
[simple] how can I create a generic Web GUI
[simple] how can I update the object model ....

What do you mean by this? If you simply want to create a class and
then instances of the class, it's very simply:

class Foo
... # define your attributes and methods here[1]
end

x = Foo.new

I'm not sure what you want beyond that. I've got several extensive
projects -- as do many other people here -- which do a lot of object
creation. My most complex example? PDF::Writer -- which is the
*nastiest* object hierarchy that I've ever had to deal with, and
it's because PDF is such a nasty, self-referential language.

Persistence? Well, that depends on your persistence mechanism and
framework. By default, as long as you don't have custom *executable*
code that you need to save with your objects (e.g., callbacks), all
Ruby objects are persistable.

You can use the Marshal mechanisms (Marshal#dump and Marshal#load),
you can write something yourself (as I did with Ruwiki::Exportable)
or you can use YAML (thanks, _why) or XML (thanks SER). Ruby
contains the PStore mechanism by default and the standard
distribution provides dbd, sdbm, and gdbm backends.

If you want live object stores, there's Madaleine (I think Anders B
wrote this; there's actually two implementations of the concept, but
this is the one that Instiki currently uses).

If you want SQL-database backed stores you can choose from the DBI
interfaces (providing Oracle, MySQL, Postgres) or other database
interfaces (SQLite comes to mind).

Don't want to interact with an SQL database directly? There's Og
(thanks George), ActiveRecord (thanks Dave), Lafcadio (thanks
Francis, and isn't there a Postgres equivalent by someone else?),
and probably a few others that I've missed. ActiveRecord also
integrates nicely with my own Transaction::Simple module that
provides in-memory transaction support (which I must say is pretty
darn cool).

Og and ActiveRecord have application frameworks that surround them
(Nitro and Rails, respectively), too, and they can be plugged into
other frameworks with varying degrees of success and difficulty (Wee
comes to mind, thanks Michael). Speaking of application frameworks,
there's also Borges (thanks Eric), Iowa (thanks Kirk), and several
others which I've heard mentioned but have never even looked at.

Most of these contain templating engines, too, or use one of several
other templating engines available -- Arrow (or is that a
application framework), PageTemplate, the rdoc templating system
(built into Ruby's distribution), ERB, Amrita, and others.

Let's see -- that takes care of application frameworks, object
creation and persistence and web UIs. With DRb, you can even build
cluster support pretty easily -- and I wouldn't be surprised if the
breakpoints framework that Florian Gross introduced could be made
even cooler with DRb. Somehow. If it isn't already that cool,
because Florian's a really cool guy and I can't keep up with
everything that he does.

GUI support? Well, it's a bit harder to have a generic GUI in Ruby.
You can use Tk, but it's really not that pretty -- it won't look
like anyone else's toolkit and I don't like using Tk applications.
For some cross-platform GUI handling, you can use QtRuby, gtk-ruby,
ruby-gnome, WxRuby (thanks Kurt and others), and the venerable
FXRuby (thanks Lyle). I haven't used anything but FXRuby, but it
took me less than two days to get an application running that
supported either a command-line interface or a Windows GUI interface
with FXRuby. Lyle was great in helping me to figure out a lot of
this stuff. If you're not as interested in cross-platform stuff,
then on Windows you can use swin and visualuruby; on MacOS X you can
use the Cocoa bindings for Ruby.

Generally, when you're creating an object model in Ruby, you have to
design it by hand -- no UML tool outputs to Ruby (and UML is based
around static class modeling in any case, so it's not an appropriate
tool for Ruby projects). That's not nearly as big a deal as it
sounds. Meta-programming is very easy in Ruby. I'm doing a bit of
work with XBEL (XML Bookmarks Exchange Language) and I ported
something from Python in about an hour -- and then I went on and
created an XBEL::Node object that parses the XBEL information into
Ruby objects in 41 lines of beautiful Ruby code. I think it could be
30 lines if I took out some XBEL-specific code I have in there.

Ruby is the *perfect* choice for doing a lot of this stuff -- but
there's a lot of choice out there, and you have to know a bit what
you want to accomplish before the extremely helpful community can
actually, you know, provide help.

There's even some really cool technologies that Jamis Buck has done
-- inversion of control in two different implementations (Needle
looks interesting, but I still haven't played with it) and Net::SSH
with Net::SFTP support. Indeed, Net::SSH can deal with the issue of
remote deployment for you.

FWIW, there's one thing that I'd recommend against very strongly --
you have a line-item in your requirements list about "migrade
ORM/RDBMS to OODBMS." There's no such thing as a good OODBMS or
XMLDBMS. You will *always* get better performance, flexibility, and
scalability from a good relational database. OODBMS locks you into a
particular data format (and it's one of the reasons that, although
Madaleine is a cool technology and implementation, I think that
prevalence databases are a very bad idea) that makes it hard to
migrate real data. I've got a much longer rant on this that I did a
year and a half ago or so on ruby-talk.

There's a lot more, but the biggest problem that I see is that your
requirements are so vague that just about anything could fulfill
them. It's all a matter of how much pain you want to go through.
Ruby decreases the pain you want to go through. Some of the
technologies are new, but I've seen more well-designed code from the
Ruby community than in the entire rest of my career.

-austin
[1] This is something that is able to be disputed. In Ruby,
"attributes" are simply methods that are defined specially and
appear to simply be attributes because Ruby encourages a
principle of uniform access.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top