Python, lenguaje del año!

1 view
Skip to first unread message

Alejandro Martinez

unread,
Jan 10, 2008, 9:03:35 PM1/10/08
to wedoi...@googlegroups.com
http://www.vivalinux.com.ar/eventos/python-lenguaje-del-2007.html
Python ha sido declarado por el indice TIOBE como el lenguaje del año.

Otra razón más para seguir estudiando ese lenguaje :D

--
Alejandro Martínez
AlexSEO.com
BlogHogwarts.com

Angel Leon

unread,
Jan 11, 2008, 12:02:50 AM1/11/08
to wedoi...@googlegroups.com
Hoy estuve fuera todo el dia, pero lei esto via slashdot.
Es agradable saber que durante el 2006 y el 2007 una vez mas elegi un buen lenguaje
que aprender a fondo.

Al ver el reporte me llamo la atencion la cantidad de posiciones que LUA subio este anho.

Alguien ha probado LUA? solo se que es comun entre programadores de video juegos para scriptear
comportamiento y otras cosas encima de un motor de juegos, del resto, hay gente en esta lista
que lo haya probado para otros propositos?
--
"Linux: Because rebooting is for adding new hardware"

Linux User #399138
My P2P Client - http://www.frostwire.com
My Infinite Storage Page - http://www.mybloop.com
My Podcast - http://www.wedoit4you.com
My Blog - http://www.gubatron.com/blog
My Twitter - http://www.twitter.com/gubatron
My Skype - gubatron

Alejandro Martinez

unread,
Jan 11, 2008, 6:53:59 AM1/11/08
to wedoi...@googlegroups.com
Yo. Y conozco a uno de sus desarrolladores

2008/1/11, Angel Leon <guba...@gmail.com>:

Carlos Hernández

unread,
Jan 12, 2008, 2:44:17 PM1/12/08
to wedoi...@googlegroups.com
Si yo he usado LUA está muy bien pensado, con una gran madurez en su implementación.

En muchos lenguajes hay algun tipo o estructura de datos preferente y que se suele usar por comodidad al programar.

AWK:            Patrones  /.../
Ruby,Java:     Todo es un Objetos  class obj{} extends ...
JS:                Las funciones son objetos y los objetos son hash,     {'medhod':function(){}}
Haskell          Todo es una función  f  x = | (x=1) 1 |otherwise 0 
Matlab           Matrices  [ 1 2 3 ; 1 2 3 ]
PHP              Array()  son un híbrido

En LUA se manejan tablas y metatablas que permiten modelar nuevas estructuras como por ejemplo objetos, etc ...
Así que es un lenguaje sin paradigma, uno desarrolla lo que quiere usar, hoy en día el OOP y la AOP son deseables en LUA y otros lenguajes.

Tras usar mucho de los lenguajes modernos y aprender varios paradigmas me di cuenta de algo, todos los lenguajes modernos se están orientando hacia un norte en especifico, en el fondo todos son iguales. De hecho Ruby y Python retoman varias ideas bastante viejas que por alguna razón fueron descartadas en su época y ahorita se están retomando y las unen a características modernas.

Me gustaría que alguien escribiera un lenguaje realmente experimental que se saliera de los limites, que explorara nuevas alternativas, por lo general retoman las características más productivas y descartan el resto y al final queda algo como Java o C# o F#

Tengo una lista de ideas en mente, pero honestamente me da flojera hacer un lenguaje tan complejo como las ideas que tengo, me agradaría algun día poder crear un grupo opensource para eso, pese a que estoy seguro que gente más pala ya experimentó y descartó muchas de las cosas que se me ocurren.

Ahora ¿Por que descartar?, es malo que un lenguaje tenga por ejemplo 10 maneras equivalentes de hacer lo mismo, imaginen tener que leer un código de un Fulano que eligió la manera más corta y a la vez la más abstracta de hacer algo y cuando te acostumbras a leer su código después de muchas pruebas ahora tienes que leer el código de un Mengano que eligió un camino totalmente diferente. Por ejemplo:

var class_1 = new Function();
     class_1.constructor = function(attrib_1){ this.attrib_1=attrib_1 }
     class_1.prototype = new class_0() //hereda
     class_1.method_1 = function(){ .... }
     class_1.prototype.method_2 = function(){ ...}

y luego viene otro y escribe:

Class.class_1 = new Class().inherts(Class.class_0);
Class.class_1.prototype = {
constructor:function(attrib_1){ this.attrib_1=attrib_1 }
, method_1 : function(){ .... }
,method_2 = function(){ ...}

}

para colmo llega otro:

function method_1(){ .... }
function method_2(){ ...}

function class_1(attrib_1){
this = class_2;
this.attrib_1=attrib_1;
this.method_1 = method_1;
this.method_2 = method_2;
}


hasta que llega otro y escribe, y por fin entiendes todo.

class  class_1 extends class_0
{
    this.method_1 = function(){}
    this.method_2 = function(){}
}

Dejarlo simple es mejor, se debe escoger la manera más fácil de leer y de hacer seguimiento, que a primera vista sepas de que clases se heredan, que propiedades y metodos tienen, y desde donde se hacen las llamadas a las funciones por ejemplo  System.out.println() te dice en que namespace está println() ...

Saludos, diganme si alguien está dispuesto a programar un lenguaje solo por hubby
















2008/1/11, Angel Leon <guba...@gmail.com>:



--
Regards,
Neo

Carlos Hernández

unread,
Jan 12, 2008, 3:52:45 PM1/12/08
to wedoi...@googlegroups.com
Les mando otro código que me llamó la atención, el lenguaje de programación es LIFE


% Copyright 1992 Digital Equipment Corporation
% All Rights Reserved

% The SEND+MORE=MONEY puzzle.
% Author: Hassan Ait-Kaci

module("solve") ?
public(solve) ?

solve :-
    % Solutions where M=0 are uninteresting:
    M=1,
   
    % The arithmetic constraints:
    C3 + S + M = O + 10*M,
          C2 + E + O = N + 10*C3,
          C1 + N + R = E + 10*C2,
             D + E = Y + 10*C1,

    % The all-distinct constraints:
    diff_list([S,E,N,D,M,O,R,Y]),

    % Generating binary digits:
    C1=carry,
    C2=carry,
    C3=carry,

    % Generating decimal digits:
          S=decimal,
          E=decimal,
          N=decimal,
          D=decimal,
          O=decimal,
          R=decimal,
          Y=decimal,

    % Print the result:
    nl,
    write(" SEND     ",S,E,N,D),nl,
    write("+MORE    +",M,O,R,E),nl,
    write("-----    -----"),nl,
    write("MONEY    ",M,O,N,E,Y),nl,
    nl,
    fail.

decimal -> {0;1;2;3;4;5;6;7;8;9}.

carry -> {0;1}.

diff_list([]).
diff_list([H|T]) :-
    generate_diffs(H,T),
    diff_list(T),
    H=<9,
    H>=0.

generate_diffs(H,[]).
generate_diffs(H,[A|T]) :-
    generate_diffs(H,T),
    A=\=H.

El día 12/01/08, Carlos Hernández < carlos....@gmail.com> escribió:



--
Regards,
Neo
Reply all
Reply to author
Forward
0 new messages