Ada vs Ruby

On Fri, Apr 18, 2008 at 3:39 AM, Robert D. [email protected]
wrote:

unsubscribe from this group (which indeed is a shame :wink:
But please try to send this to the administration address of this mailing list.

I’m surprised that some one from Descarte’s homeland would be leaving
a conversation which has taken such a philosophical turn!

Maybe we should discuss whether we are actually addressees or
authorized recipients of the message. I get the slight scent of one of
Hofstadter’s “Strange Loops” here.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robert D. wrote:

| I completely agree with you on this, but the interesting thing is that
| Gödel’s theorem is just such a realistic one in a real world far away
| from the abstractions of an ideal world, because it showed that even
| the abstract, logical world was not ideal as soon
| as something got complex enough to be “interesting”. That is why his
| theorem was that much contested I suppose.
| When you say paradox, do you as a matter of fact contest the theorem?
| Maybe this is simply my wrong interpretation of the term?

Oh, I don’t contest its existence, far from it.

Look at this definition of paradox:

“a statement or proposition that seems self-contradictory or absurd but
in reality expresses a possible truth.”[0]

I merely state, that Godel’s Incompleteness Paradox would be closer to
the truth of Godel’s assertion, than the term theorem can transport. :slight_smile:

[0] Paradox Definition & Meaning | Dictionary.com


Phillip G.
Twitter: twitter.com/cynicalryan

~ “That’s the problem with nature, something’s always stinging you
~ or oozing mucous all over you. Let’s go and watch TV.”
~ — Calvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgIY9gACgkQbtAgaoJTgL9ogQCgnZydTBkFGeVMbafAB0ie5kN4
PLsAoJwDTgPSwPFiJEYw/L3l2nu0pLXf
=LoQ5
-----END PGP SIGNATURE-----

“Mike Silva” [email protected] wrote in message
news:[email protected]
On Apr 17, 12:16 am, “Arved Sandstrom” [email protected]
wrote:

…Having said that, it seems to me that the better correctness of programs
in
SPARK or Ada compared to C/C++, say, would also be due to the qualities of
organizations that tend to use/adopt these languages…

MS>>I think there’s a lot to be said for this. Organizations that
choose
MS>>bad tools when better tools are available show that at some level
they
MS>>are not properly serious, and/or not properly informed (which points
MS>>again to not being properly serious).

I have often wondered why someone would choose an error-prone language
such as C++ and expect an error-free result. More recently, I have
been
looking
more closely at Java and have learned that it too is far more
error-prone than
one might expect.

As to Ada. Some have touted Ada’s type-safety as an important feature
of the
language. This is certainly one important feature. There are others
that are
not
as immediately obvious – features not found in most other languages –
that
contribute to the better engineering model provided by Ada. Although
many
Ada programmers do not understand Chapter Eight of the Ada Language
Reference Manual, the visibility model of the language is, when
understood
and used as part of a software design, a powerful part of what makes Ada
so robust for safety-critical software. The architectural model of an
Ada
program also lends itself to the design of well-formed, easy-to-read,
and
scalable software. That is, as programs become larger, as they tend to
do
in real software, Ada tends to scale-up a little better than most other
languages.

Ada is not the right language for small, toy programs, but it begins to
show its
power for programs in the 100 KSLOC range or higher. We have Ada
software
in the million SLOC range and higher. In those kinds of systems, Ada
really
outshines most competing languages. This is, in part, due to its
architectural
constructs: the package model, the separate compilation model, the
child
library unit model, and the way both inheritance and genericity are
designed
into the language.

Richard Riehle

Rick DeNatale wrote:

Maybe we should discuss whether we are actually addressees or
authorized recipients of the message. I get the slight scent of one of
Hofstadter’s “Strange Loops” here.

Speaking of Ada …

http://www.gcn.com/print/27_8/46116-1.html

On Sat, Apr 19, 2008 at 8:10 AM, [email protected] wrote:

Ada is not the right language for small, toy programs, but it begins to show its
power for programs in the 100 KSLOC range or higher. We have Ada software
in the million SLOC range and higher. In those kinds of systems, Ada really
outshines most competing languages. This is, in part, due to its
architectural
constructs: the package model, the separate compilation model, the child
library unit model, and the way both inheritance and genericity are designed
into the language.
May I humbly add the Rendez Vous tasking model, of course chosen by a
Frenchman ;).
Robert


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

“Robert D.” [email protected] wrote in message
news:[email protected]

RD> May I humbly add the Rendez Vous tasking model, of course chosen by
a
RD> Frenchman ;).
RD> Robert

You may so add. In its earliest versions, that model did have some
problems.
With Ada 95 and Ada 2000, that model has improved greatly and is now one
of the best you can find.

Be aware, though, that Jean Ichbiah did not invent that model “from
scratch.”
Important contributions from Dijkstra, Hoare, Per-Brinch Hansen, and
many
others preceded and informed it. It is not a purely French invention.

Richard Riehle

I guess I never expected this to become that big :slight_smile:
(But all the better for the interesting tidbits covered here,
I even added Ada to the list of languages I will write a
few things, but right now I am playing with smalltalk)

Es scheint aber auch ohne hype recht brauchbar zu sein

PS: Und wenn du meinst es gibt zu wenige Beispiele, schreib ne Email
oder
sag das denen!

On Sat, Apr 19, 2008 at 7:00 PM, [email protected] wrote:

of the best you can find.

Be aware, though, that Jean Ichbiah did not invent that model “from scratch.”
Important contributions from Dijkstra, Hoare, Per-Brinch Hansen, and many
others preceded and informed it. It is not a purely French invention.
Thank you for this update, I was not aware of the initial problems
BTW. I did not however want to indicate that Jean had invented this
model, I did not think so, I just thought he chose it because of the
French name, and that as a joke of course.
But he still refined the model himself if I understand you correctly,
interesting indeed.

Robert
http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Marc H. wrote:

I guess I never expected this to become that big :slight_smile:
(But all the better for the interesting tidbits covered here,
I even added Ada to the list of languages I will write a
few things, but right now I am playing with smalltalk)

Whops sorry, pasted the wrong stuff and hit return - having too many
tabs open is confusing. :confused:

But what I wanted to say here is that the basic premise seems to be
that Ada is interesting/useful for large scale software whereas
Ruby seems/is not?

Maybe I should have called this thread not “Ada vs Ruby” but more
“Ruby on large production scale”. :slight_smile:

(But I admit, I am clueless about it. I dont even know if there are
“large scale python” apps out there. If there would be though,
I guess Ruby would be perfectly fine as well.)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robert D. wrote:

| Do you not believe that Rails is already on large production scale?

Depends on your definition of large. Twitter runs on Rails. But nothing
like Amazon, or let alone Google.

I have the feeling that most Rails applications are deployed in
intranets, to fill a particular, well-defined need, but nothing as
“general purpose” and exposed as Amazon yet.


Phillip G.
Twitter: twitter.com/cynicalryan

~ - You know you’ve been hacking too long when…
…just when you finish writing the be-all-end-all program for your
computer (has everything-AI, MIDI, productivity stuff, excellent games,
desktop video, etc.) the entire computer industry upgrades to the “next
best chip.”
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgKOvoACgkQbtAgaoJTgL/lqQCeJRHcXqzvTBwR2rne0YvFAoql
qN8AoKYn39XyfMxjhPGw7sGRskhIJibD
=Y35F
-----END PGP SIGNATURE-----

On Sat, Apr 19, 2008 at 7:34 PM, Marc H. [email protected]
wrote:

that Ada is interesting/useful for large scale software whereas
Ruby seems/is not?

Maybe I should have called this thread not “Ada vs Ruby” but more
“Ruby on large production scale”. :slight_smile:

(But I admit, I am clueless about it. I dont even know if there are
“large scale python” apps out there. If there would be though,
I guess Ruby would be perfectly fine as well.)
It seems that this tread is to go on forever :wink:
Do you not believe that Rails is already on large production scale?

Cheers
Robert


Posted via http://www.ruby-forum.com/.


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Phillip G. wrote:

I have the feeling that most Rails applications are deployed in
intranets, to fill a particular, well-defined need, but nothing as
“general purpose” and exposed as Amazon yet.

Well … the three “700-pound gorillas” in large-scale web application
deployment are LAMP (Linux-Apache-MySQL-PHP), “assorted Java platforms”,
and WISA (Windows-IIS-SQL Server-ASP). LMMR (Linux-Mongrel-MySQL-Rails)
is probably in the round-off noise, and I’d be extremely surprised if
anything that’s turning a profit is running on any kind of Windows
platform using Rails.

As far as I know, Twitter is really it, and I don’t have any clues at
all whether Twitter is profitable. I don’t even know what their business
model or “unique selling proposition” is.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

M. Edward (Ed) Borasky wrote:

| Well … the three “700-pound gorillas” in large-scale web application
| deployment are LAMP (Linux-Apache-MySQL-PHP), “assorted Java platforms”,
| and WISA (Windows-IIS-SQL Server-ASP). LMMR (Linux-Mongrel-MySQL-Rails)
| is probably in the round-off noise, and I’d be extremely surprised if
| anything that’s turning a profit is running on any kind of Windows
| platform using Rails.

Additionally, Rails gets lost in the “Server is Apache” reports of
Netcraft and others, unless they explicitly scan for
index.[hmtl|php|asp] pages.

Well, it is not like it matters.

| As far as I know, Twitter is really it, and I don’t have any clues at
| all whether Twitter is profitable. I don’t even know what their business
| model or “unique selling proposition” is.

Their exit strategy: users (and probably a cut from the
tweet-to-sms/sms-to-tweet charges), since they are not serving ads
(thank the Lord for that).

Though, Twitter is the most visible Rails application. What about
github, Gitorious, 37signal’s range of applications? How those compare
user-wise would be interesting to see.

However, another interesting metric would be the amount of start ups
using Rails or Ruby to get a real fast time-to-market.

In the end, though, all this is more of an e-penis contest, than of real
worth. After all, Ruby is interesting enough to win over more and more
mindshare. :wink:


Phillip G.
Twitter: twitter.com/cynicalryan

~ - You know you’ve been hacking too long when…
…in non-computer related situation you start thinking that whatever
you are doing, it could be done more easily in a shell script.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgKT24ACgkQbtAgaoJTgL9q9QCeOZ76KXMWfewfZIY3QhX1trQ9
CrUAn0vIzdqETri4PgeMpCP1PUF5WoAb
=VTP8
-----END PGP SIGNATURE-----

On Apr 19, 2008, at 11:33 AM, Phillip G. wrote:

Depends on your definition of large. Twitter runs on Rails. But
nothing
like Amazon, or let alone Google.

I have the feeling that most Rails applications are deployed in
intranets, to fill a particular, well-defined need, but nothing as
“general purpose” and exposed as Amazon yet.

The implication of this post, intended or not, is that there are tons
of large-scale public facing sites, none of them running any Ruby
code. There are relatively few large-scale public facing sites,
period, as compared to the number of Web sites out there now. There’s
no indicator of how much Ruby code is in use performing non-Internet
related tasks. The point is, when Amazon, Ebay, and Google got their
start, Ruby would not have been a language that came to mind as a
first choice. Consider that these three date back to the mid-90s!

The corollary implication, intended or not, is that none of these
sites could benefit from Ruby or from Rails. The answer to that is not
clear. Much of the code on larger scale sites has been C/C++ or Perl
up to this point. Taking Moore’s Law into account, it seems feasible
that at some point, improvement in Ruby’s performance characteristics,
along with increase in affordable hardware capability would make Ruby
just as obvious a choice as C/C++ or Perl were when the initial
decisions were made to use them on these large sites. That point could
be now. Amazon is using Rails for some of their new stuff – not sure
exactly what – and I know it’s on everyone’s radar.

There are a number of Rails apps that are handling large traffic
volumes, and Twitter is not the only one. Distilling all Ruby-backed
sites to Twitter isn’t fair to the technology, as there are millions
of pages served a day by Rails apps, as well as by some of the less
mainstream frameworks like merb, iowa, ramaze, etc. I don’t have a
handle on that, but it’s worth noting that the absence of a huge
catalog of “humongous site success stories” implies narrow adoption or
failure. (BTW: A number of the US political candidates, including at
least one of the presidential ones are running Rails applications.
They get lots of traffic :slight_smile:

Just my $.02

<…>

No, it isn’t. I was talking specifically about Ruby and Rails, and on
the front end of a web application,
<…>

Your point? There still is nothing even close to Amazon, much less
Google, despite Ruby being 15 years old,
<…>

So is it about Ruby or Ruby on Rails?

Nothing as general as Amazon,
Google, or other applications.
<…>

Yeah, we have a bunch of amazons and googles on the every corner of the
internet, all written in all kinds of languages, except Ruby.
Sigh.

Regards,
Rimantas

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

s.ross wrote:
| On Apr 19, 2008, at 11:33 AM, Phillip G. wrote:
|> Depends on your definition of large. Twitter runs on Rails. But nothing
|> like Amazon, or let alone Google.
|>
|> I have the feeling that most Rails applications are deployed in
|> intranets, to fill a particular, well-defined need, but nothing as
|> “general purpose” and exposed as Amazon yet.
|
| The implication of this post, intended or not, is that there are tons of
| large-scale public facing sites, none of them running any Ruby code.

No, it isn’t. I was talking specifically about Ruby and Rails, and on
the front end of a web application, and adding the caveat that it
depends on what is considered “large”.

Nothing more, nothing less.

(And let’s face it, Rails is where you got to look if you want Ruby in
any scale of use that matters more than well within a statistical error
margin.)

Anything else you draw out of it is a hasty generalization on your part.

| There are relatively few large-scale public facing sites, period, as
| compared to the number of Web sites out there now. There’s no indicator
| of how much Ruby code is in use performing non-Internet related tasks.

There are a few RQueue installations performing well in RQueue’s niche:
painless setup of simple clusters, where more traditional approaches
like Beowulf are too heavyweight to use or administrate.

Does that equal large scale deployment, especially compared to the
amount of code used by Google, of which a small percentage of code is
actually Ruby? It doesn’t.

| The point is, when Amazon, Ebay, and Google got their start, Ruby would
| not have been a language that came to mind as a first choice. Consider
| that these three date back to the mid-90s!

Your point? There still is nothing even close to Amazon, much less
Google, despite Ruby being 15 years old, nor is there anything
approaching those usage numbers.

A payment processing system using Ruport and Ruby to generate a report
for Chrysler’s management wouldn’t be large-scale deployment, either.
After all, at most 87 000 people are affected directly on indirectly by
that use.

No internal application alone matters. The scale is way too small.

| The corollary implication, intended or not, is that none of these sites
| could benefit from Ruby or from Rails.

Fallacious conclusion.

| The answer to that is not clear.
| Much of the code on larger scale sites has been C/C++ or Perl up to this
| point. Taking Moore’s Law into account, it seems feasible that at some
| point, improvement in Ruby’s performance characteristics, along with
| increase in affordable hardware capability would make Ruby just as
| obvious a choice as C/C++ or Perl were when the initial decisions were
| made to use them on these large sites. That point could be now. Amazon
| is using Rails for some of their new stuff – not sure exactly what –
| and I know it’s on everyone’s radar.

Being on everyone’s radar does not equal actual use. It took enterprises
almost a decade to adopt Java. And that had Sun’s dollars behind it,
as well as the commitment of a large corporation.

Something as risky as Ruby (development could cease today, with no
further work) is fighting an uphill battle in corporate environments.
Just ask the Red Hat or Novell guys how they are feeling about that
matter.

While eventually Ruby will be making inroads, it probably won’t be an
epiphany at Google compelling them to throw away their existing
codebase. It’ll take a new player reaching wide adoption by users, as
well as founders and funders buying into Ruby (and not just Rails).

| There are a number of Rails apps that are handling large traffic
| volumes, and Twitter is not the only one. Distilling all Ruby-backed
| sites to Twitter isn’t fair to the technology, as there are millions of
| pages served a day by Rails apps, as well as by some of the less
| mainstream frameworks like merb, iowa, ramaze, etc. I don’t have a
| handle on that, but it’s worth noting that the absence of a huge catalog
| of “humongous site success stories” implies narrow adoption or failure.

Touch luck. Twitter is the most visible Rails and Ruby application to
date. It has buzz, hype, users, and mindshare beyond merb’s or Wave’s
developers. Additionally, Rails has the most visibility outside of the
Ruby community as “ruby’s killer app”. Compare the Rails question ending
up in ruby-talk to the merb questions, for example. The amount of
false-positives in that area are strongly in favor of Rails.

| (BTW: A number of the US political candidates, including at least one of
| the presidential ones are running Rails applications. They get lots of
| traffic :slight_smile:

So? Doesn’t make them large deployments, nor something that lasts.
McObamaton 2008 will disappear sooner or later. Something like Amazon or
Twtter sticks around. A blimp of usage in a year does not a trend make,
nor does it mean large scale adoption.

Notice further, that the question wasn’t really about the amount of
traffic, but usage.

And my assertion regarding Ruby and Rails deployment still holds: It’s
mostly intranet, for specific purposes. Nothing as general as Amazon,
Google, or other applications.

Heck, Silverlight is having larger deployments (Aston-Martin for the DBS
site, Hard Rock Cafe’s Memorabilia website, Halo official community
site) than Rails or Ruby together.

All your assumptions and conclusions are based on the mix up, that
mission-critical equals large deployment. Which is humbug. A few lines
of code can be more mission critical than the whole code base together
(see Ariane V maiden explosion, STS-1 aborted first launch).


Phillip G.
Twitter: twitter.com/cynicalryan

~ I think we dream so we don’t have to be apart so long. If we’re in
each other’s dreams, we can play together all night. – Calvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgKYBwACgkQbtAgaoJTgL+cpwCfUTON3rQzBcqHz8/COyRtKioG
BfwAnRZb8rkJU4zulfWK4UIOBoLtax9Y
=ElfV
-----END PGP SIGNATURE-----

“s.ross” [email protected] wrote in message
news:[email protected]

The corollary implication, intended or not, is that none of these
sites could benefit from Ruby or from Rails. The answer to that is not
clear. Much of the code on larger scale sites has been C/C++ or Perl
up to this point. Taking Moore’s Law into account, it seems feasible
that at some point, improvement in Ruby’s performance characteristics,
along with increase in affordable hardware capability would make Ruby
just as obvious a choice as C/C++

It might become the case that Ruby will continue to evolve so it will be
more appropriate for large-scale software development involving many
programmers focused on safety-critical software. The key to this is
“evolution.”

Early programming languages such as COBOL and Fortran have continued
to evolve, and their current standards are impressive. Most people are
unaware of the large improvements in those languages. Some, such as
PL/I,
have not evolved very well, largely remaining true to the imperfect
design of
that language in its earliest incarnations. For a language to retain a
following,
it must evolve to accommodate the approaches to software practice. This
means
the original designers (or stewards) of the language must be willing to
abandon
or improve some features to keep the language design up-to-date.

Evolution has been an important part of the C++ standard, the Ada
standard,
and the Java [non-] standard. In fact, instead of abandoning a legacy
language
(e.g., COBOL) in favor of an entirely new language, it is often better
to simply
upgrade to the new compiler for the language already in-use. Just as
Fortran
is no longer the FORTRAN of old, so too are C++ and Ada improved from
their earlier versions. Those who remember the first Ada compilers and
criticize
Ada based on that experience would benefit from learning how it has
improved
in recent years. Those who remember COBOL-74 and learned to detest
it,
would be amazed to see how the language has opened to more options for
practical programming. In the case of COBOL, many of the earlier,
terribly
messy, features are still in place for the purpose of upward
compatibility, but
those features can be ignored using newer features without sacrificing
one’s
knowledge of the fundamental language design.

Ruby will most certainly evolve. The language seems to be designed so
it
can evolve. What will be necessary, to ensure that the evolution of
Ruby
is not haphazard and self-limiting, is careful analysis of each new
change.
One of the more important changes that Ruby needs is a better model of
“design-by-contract.” I am not a Ruby expert, so I do not presume to
know what changes are most appropriate, but for design of large-scale
software such as that targeted by Ada, I think there could be some
structural
and architectural improvements in Ruby.

Also, a newer language, named SCALA, has some design features that make
it very interesting. Other language designs, during future evolutionary
steps,
could learn from the design of SCALA. As I look at SCALA and Ruby,
I see the potential for Ruby learning from SCALA.

Most important, when a language is not designed to evolve, or is
designed so
it cannot evolve, that language is guaranteed to fall into disuse over
time and
even become inappropriate for its intended niche.

Richard Riehle

On Mon, Apr 21, 2008 at 5:55 PM, [email protected] wrote:

> Ruby will most certainly evolve. The language seems to be designed so it > can evolve. What will be necessary, to ensure that the evolution of Ruby > is not haphazard and self-limiting, is careful analysis of each new change. > One of the more important changes that Ruby needs is a better model of > "design-by-contract." That is a point of particular interest, myself being a complete ignorant of the concept, I would highly appreciate if you could kindly either elaborate on this a little bit or giving some pointers or both, if you insist ;). > I am not a Ruby expert, so I do not presume to > know what changes are most appropriate, but for design of large-scale > software such as that targeted by Ada, I think there could be some structural > and architectural improvements in Ruby. > > Also, a newer language, named SCALA, has some design features that make > it very interesting. Other language designs, during future evolutionary steps, > could learn from the design of SCALA. As I look at SCALA and Ruby, > I see the potential for Ruby learning from SCALA.

Most important, when a language is not designed to evolve, or is designed so
it cannot evolve, that language is guaranteed to fall into disuse over time and
even become inappropriate for its intended niche.
I guess that will happen anyway but it can happen much later if a
language evolves into the right direction, on a strict term this is
indicated by the definition of evolution itself.

Richard Riehle

Cheers
Robert


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

On Apr 21, 2008, at 10:13 AM, Robert D. wrote:

ignorant of the concept, I would highly appreciate if you could kindly
either elaborate on this a little bit or giving some pointers or both,
if you insist ;).

On Mon, Apr 21, 2008 at 7:30 PM, s.ross [email protected] wrote:

change.
Design by contract - Wikipedia

Well I know what it is, theoretically only that means I do not know
much if you see what I mean, thx anyway…
I was interested in some specific ideas for Ruby of course, I am not
shy when it comes to asking :stuck_out_tongue:

R.

http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein