La característica más extraña que has visto en un lenguaje

so

Que Bueno!

Acabo de leer un post muy cachondo en Stack Overflow, y todavía me estoy riendo por acabo de leer. En este post se puede leer:

“What is, in your opinion, the most surprising, weird, strange or really ‘WTF’ language feature you have encountered?”

Que podriamos traducir algo así como:

“Cual es en tu opinión, la característica de un lenguaje más sorprendente, rara, extraña, o más ‘pero que co... es esto’ que has visto jamás”

La verdad es que después de leer el post, veo que a algunas de ellas ya las conocía, pero otras han sido tremendamente reveladoras. Al final me quedo con dos cosas: La primera es mi reafirmación en mi odio produndo a Javascript (pues si, que pasa... no me gusta nada de nada, aunque tenga que usarlo por OO). Y la segunda es que todos los lenguajes o plataformas tienen sus cosas, y .NET no es una excepción, pero esta de Java no tiene desperdicio:

Fun with auto boxing and the integer cache in Java.

Integer foo = 1000; 
Integer bar = 1000; 
 
foo <= bar; // true 
foo >= bar; // true 
foo == bar; // false 
 
//However, if the values of foo and bar are between 127 and -128 (inclusive) 
//the behaviour changes: 
 
Integer foo = 42; 
Integer bar = 42; 
 
foo <= bar; // true 
foo >= bar; // true 
foo == bar; // true 

Ni esta otra, en PL/1:

IF IF THEN THEN = ELSE ELSE ELSE = THEN

En fin, tremendo!!! :-)))

Cual es la mejor en vuestra opinión? No tiene porque estar en el post original...

Ver el post original:

http://stackoverflow.com/questions/1995113/strangest-language-feature

Saludos desde Andorra,

Published 14/1/2010 9:37 por Lluis Franco
Comparte este post:

Comentarios

# re: La característica más extraña que has visto en un lenguaje

Thursday, January 14, 2010 1:12 PM por Rafael Ontivero

Si te soy sincero, la de Java no es más que otro estúpido bug de herramientas creadas por gente marcadamente incompetente y que encima luego no tienen los cojon*s ni de solucionarlo...

Y si eso falla en Java, pues vaya mierda de Java...

En fin...

:-)

# re: La característica más extraña que has visto en un lenguaje

Thursday, January 14, 2010 7:30 PM por david

Acaso creías que los programas eran perfectos ahí les va:

round(16.5)  = 17 ‘Pero da 16

round(89.5)  = 90 ‘Pero da 89

round(88.5)   = 89  ‘Pero da 88

round(98.5)   = 89  ‘Pero da 98

round(49484.5)   = 49485  ‘Pero da 49484

La función Round en Visual Basic 6.0 funciona mal, y no es fiable.  

'Fuente WEB:visualbasic.ittoolbox.com/.../round-function-in-visual-basic-60-1577649  

Public Function MyRound(ByVal lngNumero As Double, Optional ByVal intNumDecimals As Integer=0) As Double        

MyRound = Int((lngNumero * (10 ^ intNumDecimals) + 0.5)) / (10 ^ intNumDecimals)    

End Function  

No se si les funcione bien pero en mi maquina y otras funciona bien mal...

# re: La característica más extraña que has visto en un lenguaje

Thursday, January 14, 2010 10:42 PM por Alfredo

A round le puedes pasar un parámetro con el tipo de redondeo que quieres ;)

msdn.microsoft.com/.../system.midpointrounding.aspx

# re: La característica más extraña que has visto en un lenguaje

Friday, January 15, 2010 12:44 AM por David

@Alfredo

Amigo Es VB 6.0, por defecto así como lo vez es como si le enviaras un cero como parámetro.

Has un ensayo por ti mismo, para que te des cuenta.

Si en .net si funciona y desde hace rato lo se.

# re: La característica más extraña que has visto en un lenguaje

Friday, January 15, 2010 9:33 AM por Pablo Alarcon Garcia

El redondeo por defecto de .NET usa el "algoritmo del banquero", para distribuir de una forma más homogénea los redondeos arriba y abajo cuando es .5 se redondea al número PAR más cercano.

De la wikipedia: en.wikipedia.org/.../Rounding

"Round half to even

A tie-breaking rule that is even less biased is round half to even, namely

If the fraction of y is 0.5, then q is the even integer nearest to y.

Thus, for example, +23.5 becomes +24, +22.5 becomes +22, -22.5 becomes -22, and -23.5 becomes -24. This variant of the round-to-nearest method is also called unbiased rounding, convergent rounding, statistician's rounding, Dutch rounding, Gaussian rounding, or bankers' rounding. For most reasonable distributions of y values, the expected (average) value of the rounded numbers is essentially the same as that of the original numbers, even if the latter are all positive (or all negative). This is widely used in bookkeeping."

# re: La característica más extraña que has visto en un lenguaje

Friday, January 15, 2010 8:37 PM por Alfredo

Cierto David, sorry no me di cuenta!

Un link interesante al respecto:

support.microsoft.com

# re: La característica más extraña que has visto en un lenguaje

Monday, June 21, 2010 10:00 PM por yonathan

ahaha, no pues estraño :S

Integer foo = 1000;

Integer bar = 1000;

foo <= bar; // true

foo >= bar; // true

foo == bar; // false ??¿¿ :|

Integer foo = 42;

Integer bar = 42;

foo <= bar; // true

foo >= bar; // true

foo == bar; // true ahaha ¿? (Y arriba por que dio False... alguien que me explique... :s ¿?")