Does Ruby have any advantage over Python to create semanticapplications?

C

Costan

Hi all,
I'm trying to choose between Ruby of Python as almost my first
programming language (I started more that 10 years ago to study
Computer Science but I changed major). The reason is that I want to
create an application (I'll create a start-up with more people later
on) that is very demanding in semantic search capabilities and
creating lots of theory-like relations... I heard that ruby could have
some advantages over Python in how manages language... This was
discussed though... Is there anyone there that can answer this with
concrete arguments? Why do you think it is or it is not?

Forget about the following question if it sounds too cumbersome: I
heard the word 'prototype' in the same conversation about Ruby and
natural language and I wondered if it could have anything to do with
the Rosch's theory about how concepts and categories work. Does it?


Thanks a lot in advance,

Costan
 
E

Eric I.

Hi Costan,

I'm trying to choose between Ruby of Python as almost my first
programming language (I started more that 10 years ago to study
Computer Science but I changed major). The reason is that I want to
create an application (I'll create a start-up with more people later
on) that is very demanding in semantic search capabilities and
creating lots of theory-like relations... I heard that ruby could have
some advantages over Python in how manages language... This was
discussed though... Is there anyone there that can answer this with
concrete arguments? Why do you think it is or it is not?

Your description is not clear enough for me to say whether Ruby would
have any natural advantage over Python. Both are dynamically typed
which *might* be helpful to your needs.
Forget about the following question if it sounds too cumbersome: I
heard the word 'prototype' in the same conversation about Ruby and
natural language and I wondered if it could have anything to do with
the Rosch's theory about how concepts and categories work. Does it?

I'm familiar with Eleanor Rosch's thoughts on categories (and I
believe she made a very good case for them!), and I can say pretty
definitively there is no relation. It's also a little unclear what
meaning of "prototype" you heard in your discussion about Ruby. It
could refer to a JavaScript library (often used with a Rails web app),
or a technique of object-oriented programming (used in the JavaScript
language and which Ruby can mimic to some degree), or that Ruby, being
a dynamically typed language, is very nice for prototyping software
ideas with. But no matter which meaning you were referring to, it's
pretty different from what Rosch was talking about.

I hope that helps,

Eric

====

LearnRuby.com offers Rails & Ruby HANDS-ON public & ON-SITE workshops.
Please visit http://LearnRuby.com for all the details.
 
D

Dave Bass

If you're working with natural language, then Ruby, Python and Perl can
all cope. Although I don't know Python -- after a brief investigatin I
went for Ruby instead when looking for a successor to Perl -- I would
say there's nothing that one language can do that the other can't,
though you might do it in a different way. If you like object
orientation, Ruby is much nice IMHO.
 
M

Marc Heiler

The reason is that I want to create an application [...]
that is very demanding in semantic search capabilities
and creating lots of theory-like relations.

Sounds highly advanced :D

I am not sure what differences you expect, because ruby and python are
after all very, very similar. Python has probably a small advantage
concerning speed and projects using it than ruby ("being more
established").

Ruby's OOP structure is a lot more natural, and being able to omit ()
makes the code a LOT more readable too, IMHO.

cat.meow_how:)furiously).then.attack 'johnny the dog'

Granted this looks somewhat weird but python will only look more weird
IF one does this but in python one must carry the () and use explicit
"self".

But to be honest really, both are very similar.

The biggest difference is that Python emphasizes on rules,
and Ruby emphasizes on fun. ;)
 
C

Costan

The reason is that I want to create an application [...]
that is very demanding in semantic search capabilities
and creating lots of theory-like relations.

Sounds highly advanced :D

I am not sure what differences you expect, because ruby and python are
after all very, very similar. Python has probably a small advantage
concerning speed and projects using it than ruby ("being more
established").

Ruby's OOP structure is a lot more natural, and being able to omit ()
makes the code a LOT more readable too, IMHO.

  cat.meow_how:)furiously).then.attack 'johnny the dog'

Granted this looks somewhat weird but python will only look more weird
IF one does this but in python one must carry the () and use explicit
"self".

But to be honest really, both are very similar.

The biggest difference is that Python emphasizes on rules,
and Ruby emphasizes on fun. ;)


Thanks a lot Eric, Dave and Mark,

I found the text that made me think of Ruby as having some advantages
for semantic processing: " I will probably still fall back on Ruby for
text-processing scripts as its always been stellar for those kinds of
tasks" (in http://blog.cbcg.net/articles/2007/...-runtime-dont-work-then-its-bound-to-drizzown).
But reading your answers it seems there's no real advantage for this
particular purpose so that guy must be wrong...

I still will need to investigate more or just try both to decide which
one fits better my needs. I don't know what you meant by "fun" and
"beautiful" and although the Ruby's there's-more-than-one-way-to-do-it
sounds like more things to remember and more time needed to learn it
and also like giving freedom to users-programmers because the author
lack the clarity on what is the best way to do it, I'm really
intrigued and attracted by those "fun" and "beautiful" words (could it
be related with what I read in Why's manual that the language should
make you improve the way you think? Or perhaps this is truth for
several languages like Python.

In any case, if there is something I'm finding clearly attractive
about Ruby is the honesty and friendly support and of its community.

Warm regars,

Costan :)

P.s Eric, I can't found where I read about prototype but it seems also
clear that I was just interpreting the words with my own concepts.
Thanks again for the clarification.
 
R

Robert Klemme

I found the text that made me think of Ruby as having some advantages
for semantic processing: " I will probably still fall back on Ruby for
text-processing scripts as its always been stellar for those kinds of
tasks" (in http://blog.cbcg.net/articles/2007/...-runtime-dont-work-then-its-bound-to-drizzown).
But reading your answers it seems there's no real advantage for this
particular purpose so that guy must be wrong...

Not necessarily: when we talk about "text processing" we usually refer
to symbolic transformations on text files which are quite a different
thing than what you seem to be after. From what I read you really want
to recognize semantic of speech. This is nothing we regularly do when
text processing. Instead we typically search for text, extract certain
portions of text based on position and regular expression match but not
on semantic.
In any case, if there is something I'm finding clearly attractive
about Ruby is the honesty and friendly support and of its community.

That's really a big plus IMHO. To add another bit of honest advice:
without background in programming or even computer science you will have
a hard time implementing this in *any* programming language.

Kind regards

robert
 
S

SHINDO Motoaki

Hi=85

On 06.07.2008 02:02, Costan wrote:
Not necessarily: when we talk about "text processing" we usually refer
to symbolic transformations on text files

Let me add one thing here;
I've heard in Ruby library established Lexical Parser(s),
which could do nothing for Semantics, but
the latter part must be the pleasure part of Costan-san.
And the Parser would do trivial things in helping him.

I mean
Lexical Parser is Off-the-Shelf subroutines or subjects to Costan-san;
Semantics Parser could be built on top of the Lexical Parser.

for Python, I know nothing. Sorry=85


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
I'm the One of Sad&Mad.

Shindo Motoakira
<[email protected]>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
 
C

Costan

Hi…



Let me add one thing here;
I've heard in Ruby library established Lexical Parser(s),
which could do nothing for Semantics, but
the latter part must be the pleasure part of Costan-san.
And the Parser would do trivial things in helping him.

I mean
Lexical Parser is Off-the-Shelf subroutines or subjects to Costan-san;
Semantics Parser could be built on top of the Lexical Parser.

for Python, I know nothing. Sorry…

=============================
   I'm the One of Sad&Mad.

         Shindo  Motoakira
    <[email protected]>
=============================

Hi Shindo-san,

I'm not sure I have understood you correctly but I guess the main
message is that there's built-in lexical parser in Ruby but that I'll
still have to find out how does it work and if this is something that
differentiates Ruby from other programming languages like Python.
Anyway it seems it is kind of hard to have a general comparative
theory of programming languages (research in programming language
theory dates from 2006 AFAIK) and/or that I will need to delve for
some time with any programming language I choose to check the
advantages. The point then is how long should I invest in learning a
language before I decide someone is the appropriate person to take
technical decisions...

Thanks Shindo-san :)

Costan
 
C

Costan

Not necessarily: when we talk about "text processing" we usually refer
to symbolic transformations on text files which are quite a different
thing than what you seem to be after. From what I read you really want
to recognize semantic of speech. This is nothing we regularly do when
text processing. Instead we typically search for text, extract certain
portions of text based on position and regular expression match but not
on semantic.

Thanks Robert, I understand that "text processing" here refers to the
text written in a code and doesn't have anything to do with my
purposes.
without background in programming or even computer science you will have
a hard time implementing this in *any* programming language.

Kind regards

You're totally right, but I'm not going to program it. My shortly
rethought attempt to study computer science dates from 15 years ago
which doesn't help me at all now. Now I have some ideas I'd like to
implement and it seems it is more fun to program (specially with Ruby
and Python, Django and specially -so it seems- Ruby on Rails). My
background relating to this project is in cognition, semantics and
theory of science which is where my ideas come from, but I just want
to have some general knowledge that helps me connect with programmers
better.

I was also planning to make a very basic first prototype, not just to
understand the process but even to explain the idea better, as it is
hard to do it without it, even though there's some chance programmers
could need to start the program from scratch (no matter we (they) end
up translating the not-so-basic prototype to some kind of C...). But
time and experience, or perhaps more feedback, will say if this the
right path to take.

Best, :)
Costan
 
S

SHINDO Motoaki

I'm not sure I have understood you correctly

er=85well, I tend to use too broad or exaggerated expression(^_^;)
there's built-in lexical parser in Ruby but that I'll
still have to find out how does it work and if this is something that
differentiates Ruby from other programming languages like Python.

er=85what I've heard is not so built-in but
built on-top of or add-in as Ruby interpreter,
implementing one of Design-Patterns.

And yes.
we have to learn the usage of those Classes.
I only have experiences trivial/tiny interpreter language
which have no requirement for general-purpose Parser.
they(mine-s') was easier with writing from scratch.

But yours is to be semantic processor, so
the lexical-parser deserves be learned.

N.B. Python could have such Parser, so
you'd better give gradual tries on both Ruby and Python
to find out which you prefer.

And=85 (e-mail address removed)-san announced "Bacon 1.0" yesterday,
the processor has something to do with your project.
# the processor seems to accept English-like sentences for
# describing Specifications.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
I'm the One of Sad&Mad.

Shindo Motoakira
<[email protected]>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
 

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,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top