Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Problems with Passive Arguments and refactoring

Reply
Thread Tools

Problems with Passive Arguments and refactoring

 
 
Esteban Manchado Velázquez
Guest
Posts: n/a
 
      01-18-2005
Hi all,

Sorry for breaking the thread, I mistakenly deleted the old message.

The problem was: I did some code refactoring, and changed the number of
arguments of some methods. I changed all the method calls.... except one or
two. The thing is, the interpreter ate it up just fine, but the program
crashed from time to time, and I had no idea why.

Some hours later, I realized I had _not_ changed a couple of method calls,
so the method was receiving undefined arguments, and doing some silly random
thing until it crashed.

That's it. Probably there are more problems, but that is what I recall it
has happened to me (several times already, in fact), and one of the reasons
I'm not particularly fond of Perl programming

Regards,

--
Esteban Manchado Velázquez <(E-Mail Removed)> - http://www.foton.es
EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es


 
Reply With Quote
 
 
 
 
trans. (T. Onoma)
Guest
Posts: n/a
 
      01-18-2005
On Monday 17 January 2005 07:08 pm, Esteban Manchado Velázquez wrote:
| Hi all,
|
| Sorry for breaking the thread, I mistakenly deleted the old message.
|
| The problem was: I did some code refactoring, and changed the number of
| arguments of some methods. I changed all the method calls.... except one or
| two. The thing is, the interpreter ate it up just fine, but the program
| crashed from time to time, and I had no idea why.
|
| Some hours later, I realized I had _not_ changed a couple of method
| calls, so the method was receiving undefined arguments, and doing some
| silly random thing until it crashed.
|
| That's it. Probably there are more problems, but that is what I recall
| it has happened to me (several times already, in fact), and one of the
| reasons I'm not particularly fond of Perl programming

Not that you don't have a point. You do. But a number of things would catch
errors "earlier" too, like static typing for example. But that's not Ruby's
way. In general Ruby's philosophy is test first ( not that any of us do this
most of the time, but we go back and pretend In so doing these kinds of
errors will usually get caught. So while you have an argument, (IMHO) I don't
consider it a strong one.

Thanks for the explanation,
T.



 
Reply With Quote
 
 
 
 
trans. (T. Onoma)
Guest
Posts: n/a
 
      01-18-2005
On Monday 17 January 2005 07:08 pm, Esteban Manchado Velázquez wrote:
| Hi all,
|
| Sorry for breaking the thread, I mistakenly deleted the old message.
|
| The problem was: I did some code refactoring, and changed the number of
| arguments of some methods. I changed all the method calls.... except one or
| two. The thing is, the interpreter ate it up just fine, but the program
| crashed from time to time, and I had no idea why.
|
| Some hours later, I realized I had _not_ changed a couple of method
| calls, so the method was receiving undefined arguments, and doing some
| silly random thing until it crashed.

Oh, BTW, I know the feeling. Those days are hair pullers indeed!

T.



 
Reply With Quote
 
Robert Klemme
Guest
Posts: n/a
 
      01-18-2005

"trans. (T. Onoma)" <(E-Mail Removed)> schrieb im Newsbeitrag
news:(E-Mail Removed)...
> On Monday 17 January 2005 07:08 pm, Esteban Manchado Velázquez wrote:
> | Hi all,
> |
> | Sorry for breaking the thread, I mistakenly deleted the old message.
> |
> | The problem was: I did some code refactoring, and changed the number
> of
> | arguments of some methods. I changed all the method calls.... except one
> or
> | two. The thing is, the interpreter ate it up just fine, but the program
> | crashed from time to time, and I had no idea why.
> |
> | Some hours later, I realized I had _not_ changed a couple of method
> | calls, so the method was receiving undefined arguments, and doing some
> | silly random thing until it crashed.
>
> Oh, BTW, I know the feeling. Those days are hair pullers indeed!
>
> T.


LOL - No problem for me, I'm nearly bald. )

robert

 
Reply With Quote
 
Esteban Manchado Velázquez
Guest
Posts: n/a
 
      01-18-2005
--W/nzBZO5zC0uMSeA
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi T,

On Tue, Jan 18, 2005 at 11:09:16AM +0900, trans. (T. Onoma) wrote:
> [...]
> | Some hours later, I realized I had _not_ changed a couple of method
> | calls, so the method was receiving undefined arguments, and doing some
> | silly random thing until it crashed.
> [...]
> Not that you don't have a point. You do. But a number of things would cat=

ch=20
> errors "earlier" too, like static typing for example.


Yes, but I don't find parameter number checking slows you down, while
static typing obviously does (at least in the short term).

And I simply don't see the _advantage_ of not checking. If you need a
variable arguments method, simply declare it as that.

Also, IMHO if you push the dynamic philosophy too much, it stops being
practical, because you put too much of a burden in the programmer (why the
_need_ of testing for almost anything?). My _personal_ balance is having the
language do things like parameter number checking, but allow more dynamic
behaviour in other things (like parameter type checking).

Regards,

--=20
Esteban Manchado Vel=E1zquez <(E-Mail Removed)> - http://www.foton.es
EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es

--W/nzBZO5zC0uMSeA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)

iD8DBQFB7OywhYgK5b1UDsERAp8YAJ4vrzGUcmL8fvRV5p4wwx d+UMGLYACfdxdp
aY8n6Q7rZRWatQdqR0eM51s=
=a6fq
-----END PGP SIGNATURE-----

--W/nzBZO5zC0uMSeA--


 
Reply With Quote
 
trans. (T. Onoma)
Guest
Posts: n/a
 
      01-18-2005
On Tuesday 18 January 2005 06:02 am, Esteban Manchado Velázquez wrote:
| Hi T,
|
| On Tue, Jan 18, 2005 at 11:09:16AM +0900, trans. (T. Onoma) wrote:
| > [...]
| >
| > | Some hours later, I realized I had _not_ changed a couple of method
| > | calls, so the method was receiving undefined arguments, and doing some
| > | silly random thing until it crashed.
| >
| > [...]
| > Not that you don't have a point. You do. But a number of things would
| > catch errors "earlier" too, like static typing for example.
|
| Yes, but I don't find parameter number checking slows you down, while
| static typing obviously does (at least in the short term).

Okay, maybe a little. I don't think it slows people down too much. But I take
your point. OTOH, having to use *args can slow one down too.

| And I simply don't see the _advantage_ of not checking. If you need a
| variable arguments method, simply declare it as that.

The advantages are 1) greater polymorphism and 2) when doing AOP-style
wrapping of multiple methods.

| Also, IMHO if you push the dynamic philosophy too much, it stops being
| practical, because you put too much of a burden in the programmer (why the
| _need_ of testing for almost anything?). My _personal_ balance is having
| the language do things like parameter number checking, but allow more
| dynamic behaviour in other things (like parameter type checking).

Sure. That's a fair opinion. But, in this case at least, I'm not of that
opinion. I look at it as simple matter of duck quaking. For instance if I
have:

class A
def a(x)
"#{x}"
end
end

class B
def a(x,y)
"#{x}#{y}"
end
end

class C
def puta(n,x,y)
puts n.a(x,y)
end
end

C.new.puta(B.new,"1","2") #=> 12
C.new.puta(A.new,"1","2") #=> Error

I don't think A#a should blow-up here --which it will. And to fix it one has
to either put in a _dummy_ y parameter or use the less friendly *args.

Wouldn't a special togglable warning be enough to catch'em if you did want to
work this way? OTOH, mayb being able to simply specify a method as
parameter-indeterminate, like:

def *a(x,y)
end

Might do as well.

T.



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
RIPng and passive-interface Eric Gamess Cisco 9 12-14-2007 09:16 AM
IIS FTP and Cisco PIX: Passive mode fails Arterion Cisco 0 11-09-2007 12:04 AM
XSPC Passive Aluminium Reservoir @ Viperlair Silverstrand Front Page News 0 08-24-2005 11:06 PM
Passive Arguments trans. (T. Onoma) Ruby 5 01-17-2005 12:31 PM
Net::FTP and Passive mode problems Hostile17 Perl Misc 6 10-21-2004 03:37 PM



Advertisments