Scheme (es un Lisp), pero nunca falta el boludo que dice "Ah!! pero cuantos paréntesis!!", pero es la sintáxis más poderosa y más sencilla que existe. (la gente que la critica no entiende un carajo de porque es así, ni todas las ventajas que tiene)
Fuera de Scheme, Ruby tiene terrible sintáxis.
la sintaxis de ruby es MIEL pura
Python en general con partes en C (performance)
C++ es el mejor. Simple, lindo, el mejor de todos.
Simple ?
Estamos hablando de sintaxis, NO sobre cual es el mejor lenguaje en general. De hecho me parece bastante extraña la pregunta, ya que la encuesta mezcla lenguajes orientados a objetos, estructurados, de scripting, no se es un tanto vaga la pregunta. Me parece que seria mas justo comparar lenguajes que esten en la misma "categoria" y que apunten mas o menos al mismo fin. Por ejemplo PHP, Python, Perl.
Personalmente creo que poco tiene que ver el paradígma de un lenguaje con su sintaxis, podríamos tener un lenguaje OO, con una sintaxis al estílo lisp (es más tal vez ya exista!, porqué no?).
La pregunta es sencilla, que prefieres? las estructuras claras que obtienes con la sintaxis de C? la lógica perfecta detrás de los dialectos de lisp? la elegancia de perl?...
En fin, me pareció interesante...
gonz, Common Lisp es OO (bueno es casi todo :D), tiene CLOS que es Common Lisp Object System, que es uno de los systemas de objetos más poderosos que existen, buscá un poco y te vas a dar cuenta. En Scheme también hay varios sistemas de objetos, ya sea al estilo Smalltalk (por mensajes) o al estilo CLOS y Dylan (métodos genéricos).
Sigo diciento que la mejor es la de Lisp por lejos (se discute la mejor, no la más linda, aparte no es tan fea después de unos días). Esa sintaxis (tan inofénsiva como parece) te permite hacer un montón de cosas útiles que no podés en otro lenguaje (por ejemplo CLOS y todos los sistemas de objetos de Scheme están hechos con macros y funciones, sin necesidad de modificar el compilador, son simples librerías, y las macros sin esa sintáxis son casi imposibles).
Miren que Scheme y Lisp no muerden. Si quieren pidanme links.
Mis experiencias con lisp se limitan a unas noches jugando con la ide drscheme y la documentación de mzscheme que tiene un referencia, que me pareció buena, sobre el lenguaje.
Lo que me llamó la atención en el momento, fue lo difícil que es encontrar documentación! en especial sobre common lisp. Me interesan mucho los links que ofreces (por ej. para dejar de decir burradas :) )
En cuanto a la sintaxis me parece exelente, es sumamente SIMPLE y uno se acostumbra enseguida. Aunque al principio reconozco que tanto paréntesis mete miedo... parece un lenguaje ilegible, pero la verdad que es todo lo contrario
No soy el misterioso de mas arriba pero igual te mando algunas referencias
Practical Common Lisp en http://www.gigamonkeys.com/book/
Successful Lisp: How to Understand and Use Common Lisp en http://psg.com/~dlamkins/sl/
Este es interesante http://mitpress.mit.edu/sicp/
Saludos, Juan Carlos.
Ta, me ganó de mano, pero agrego un par más: www.paulgraham.com : acá está el libro "On Lisp" que es un libro avanzado, no es como para aprender, pero está bueno, y es un libro totalmente necesario porque se enfoca mucho en las macros. Aparte en ese sitio hay un montón de artículos interesantes como para convencerse de aprender Lisp :D (recomiendo "Beating the averages") www.scheme.com/tspl : de Scheme, aunque para mi es mejor como referencia que como para aprender, está bueno para leer después del "Teach yourself Scheme in fixnum days" que puse más abajo. www.htdp.org : este es como el SICP, enseña a programar, aunque igual que el SICP también usa Scheme. http://download.plt-scheme.org/doc/205/html/t-y-scheme/ : otro de Scheme, ojo que aunque está bueno, el Scheme que usa no es muy "moderno" (hace las cosas al viejo estilo, por ejemplo no habla de las macros higiénicas). www.readscheme.org : acá hay pila de "papers" interesantes sobre scheme, haskell y otras cosas www.schemers.org : acá hay bastante información y links sobre scheme.
Yo prefiero Scheme, pero Common Lisp no está mal, hay que ver los 2 y ver con cual te quedás.
Hola, soy el rompebolas anónimo que jode con Scheme y Lisp :P Acá hay otro link, que compara Python con Lisp http://norvig.com/python-lisp.html Y este es Dylan, básicamente es CLOS (la parte OO de Common Lisp) pero sin los paréntesis: http://www.gwydiondylan.org/about-dylan.phtml
Para mi el lenguaje de programacion mas ordenado es C#, por su sintaxis simple, pero compleja a nivel de tipos. Es un lenguaje ordenado y sencillo multiplataforma.
Para mi la mejor sintaxis es la de tcl, es muy simple y no tiene exepeciones a reglas ni cosas raras que limiten el lenguaje, esa misma sintaxis permite extender el propio lenguaje llevandole al paradigma que a uno le guste mas. Por otro lado mi sintaxis favorita es la de C ya que es la unica que aun siendo de alto nivel toda la logica es en bajo nivel. Agrego tambien lo que dije sobre tcl que no te encontras con ningun caso especial ni nada raro en la sintaxis.
Para mi la mejor sintaxis la tiene sin duda Haskell,he dado tumbos por todos los lenguajes desde q era pequeño basic,logo,ensamblador,pascal,c,c++,java,lisp,prolog... y he disfrutado aprendiendo con casi todos, sobre todos con algunos q cuando los aprendi me sorprendieron mucho (prolog x ej) y aun a pesar de q no existe el lenguaje perfecto(todavia),sin duda cuando empece con Haskell me di cuenta de estaba diseñado con un cuidado esquisito,no me sorprendio pero vi en el un poco de muchos otros lenguajes y al mismo tiempo es totalmente diferente. Esta claro q para programar un juego de ultima generacion seria mejor usar c++ y OpenGL,pero yo no creo q haga nunca eso(ya me gustaria), en cambio para hacer aplicaciones de muy alto nivel Haskell es el lenguaje de programacion perfecto,ademas si lo aprendes te servirá para tener una mejor vision cuando programes en otros lenguajes.
Considero que la mejor sintaxis es la sintaxis mas homogenea y simple, esto pone a Lisp y Smalltalk en en primer puesto. Quizas es el unico punto en que Smalltalk comparte el primer puesto ;-).
Viendo el lenguaje como un todo lo mejor que he visto es ADA.
Smalltalk en cuanto a pasaje de mensajes y legibilidad sin duda es el mejor.
pelota rebota: salta; inflateCon: aire.
Y la pelota rebota, salta y se infla con aire :-)
Haskell en cuanto a mátemática y expresividad sin duda es lo mejor y más simple que existe.
factorial 0 = 1 factorial (n+1) = (n+1)*factorial n
¿complicado no :P?
Comentarios referidos a C y a todos los lenguajes que lo copian. Lo único que le veo a C o a C++ es que son cortos de escribir y que debido al tiempo que llevan funcionando tienen amplias librerías con las que se puede hacer casi cualquier cosa. Sin embargo, hacen cosas incompresibles debidas a que originalmente se creo C para hacer un compilador sencillo más que un lenguaje comprensible. Pero a un programador le debe dar igual que el compilador tarde dos segundos más en compilar un programa si debe tardar . A quien puede gustarle un lenguaje que hace cosas como estas: - Poner ; al final de cada instrucción. Hay lenguajes más antiguos como Cobol, Natural, Fortran o Basic que no lo necesitan. Estamos acostumbrados al punto y coma, ¿pero no puede hacer lo mismo sin usarlos? - Nos venden que C no tiene casi palabras reservadas por lo que debe ser fácil de aprender. Claro, como para hacer cualquier cosa se necesitan funciones definidas en librerías. Incluso para simplemente mostrar "Hola mundo" por pantalla se necesita utilizar la función printf. - La utilización de ficheros .h y .hpp. Otros lenguajes como Java y Delphi no los necesitan (aunque a la hora de obtener las funciones y variables de una clase me parece bien poder verlo, aunque salga también la parte private o protected y toda una serie de funciones y clases auxiliares que no se ). - Odio de C, C++ y compañía sobre todo estas instrucciones: - for: ¿qué clase de persona ve lógico: for(int i=0;i<10;i++){ } ¿por qué no poner por ejemplo?: for i=1 to 10 { } Vale, nos venderán que la definición de for así es más fexible y que puede hacer cosas como: for() ¿por qué no se hace con un while? - ¿por qué la condición de los ifs siempre va entre paréntesis si es el único lenguaje que lo hace? Ejemplo: if(A>123||A<=100){ } ¿no podría eliminarse los operadores ||, !,&& y utilizar or,not, and como en otros lenguajes?: if A>123 or A<=100{ } - ¿por qué en los arrays el primer elemento es el 0 y el último elemento es uno menos? ¿es una de las cosas que lo hacen mejor lenguaje? Nos dicen que es así porque así el código se ejecuta más rápido, pero lo mismo que hacemos nosotros, utilizar un indice que comience en cero y acabe en uno menos, ¿no puede hacerlo por nosotros el compilador? - ¿por qué utilizar el operador [] para acceder a los elementos de un array en vez de los paréntesis si no es posible definir una función con el mismo nombre que un array? - ¿Por qué se dice array si esa palabra no existe en vez de usar tabla o vector? - ¿para qué sirve la instrucción switch? Para nada La instrucción switch es una instrucción bastante extraña, pues es más propia del lenguaje ensamblador que de un lenguaje de alto nivel. Sólo permite hacer comparaciones con los valores de una variables que sólo puede ser de tipo numérico: switch(variable){ case 1: hdjfhdjfhdj; break; case 2: djdfjdj; break; default: dkjfkdfj; } ¿para qué lo del break si en el 99,9% de las veces que se usa la instrucción se pone siempre un break en cada case? ¿por qué sólo puede usarse con variables numéricas y no por ejemplo con objetos o strings si lo que se hace es una comparación? Ejemplo en otro lenguaje (Natural): decide for first value of variable value 1 hdjfhdjfhdj; value 2 djdfjdj; any esto no lo tiene el switch none dkjfkdfj; end-decide - ¿por qué no hay una instrucción similar al switch pero con condiciones, como en Natural: if(condicion1){}else if(condicion2){}else if(condicion3){}else{} decide for every condition when condicion1 when condicion2 when condicion3 when noneend-decide - ¿por qué no hay un tipo de datos string como hay un float o un double? - ¿por qué hay tres formas distintas de trabajar con ficheros y por qué si las librerías para trabajar con ficheros son estandard no hay palabras reservadas del propio lenguaje para trabajar con ficheros? - ¿por qué para trabajar con objetos no se hace lo mismo que en Delphi o Java y tenemos que estar siempre con el operador -> en vez de utilizar solo el .? - ¿por qué el break y el continue no especifican de que bucle se quiere salir? for(.....){ for(....){ break; // ¿y si queremos salir de los dos fors? }} - ¿por qué solo se pueden definir en una clase los operadores +,-,++,--,* etc y no podemos definir realmente nuestros propios operadores utilizando palabras? - ¿por qué las funciones que no llevan parámetros deben llamarse con paréntesis si no hay variables con ese nombre? - ¿por qué el lenguaje nos permite definir variables "distintas":? Variable variable VARIABLE - ¿para qué sirve inline? ¿No puede determinar el compilador si es inline? Realmente se trata de una opción del compilador y no debiera ser una palabra reservada del lenguaje. - ¿por qué para un objeto no se pueden definir propiedades como en C++ Builder o Delphi y debemos de poner cosas del estilo: valor = Objeto.GetVariable();Objeto.SetVariable(valor); en vez de valor = Objeto.Variable Objeto.Variable = valor En definitiva, ¿por qué cada vez que se define un nuevo lenguaje se copian todos los errores de C?
HOLA, el mejor es el Ensamblador
es el lenguaje mas orientado a los seres humanos y con caracteristicas avanzadas... se aprende facil se entrega un producto rapido y de calidad
yo creo que hay leguajes más fuertes en unas cosas, y otros en otras..
No sé, es mi opinión... Salu2!
------------------------------------------------- Daniel Morales(puntoUY)
Hola a todos, soy nuevo en el foro de debian uruguay.
Quizas este no sea el medio más adecuado, por este motivo adelanto mis disculpas; la empresa uruguaya donde trabajo tiene la oportunidad de realizar un proyecto muy importante basado en PYTHON. En la plaza no existen muchos programadores, por este motivo estoy divulgando en este espacio, a quienes esten interesados en integrar un equipo de desarrollo python para una aplicación web muy interesante.
Los que se sientan interesados pueden comunicarse a mi correo jboergol@yahoo.com.ar.
Me parece una oportunidad muy interesante para desarrollar en un lenguaje poco común en Uruguay y darle divulgación a la potencia y capacidades de python. El proyecto es muy pago.
Agredezco a todos la consideración y muchas gracias.
To: Creado por Misterioso anonimo el 30 Septiembre, 2006 - 08:57 |
Hola
Bueno lo que decís es digno de alguién que jamás programó en su vida, y me refiero a programar Ensamblador.
Acuerdo contigo en lo del ";", puede no estar, pero gracias al ";" se pueden poner cosas como:
FuncionConMuchosParametros(a,b,c,d, e,f,g,h,i, j,k,..etc);
_____________________________________________________ "...Claro, como para hacer cualquier cosa se necesitan funciones definidas en librerías. Incluso para simplemente mostrar "Hola mundo" por pantalla se necesita utilizar la función printf...."
No las necesitas, deberías estar agradecido de que alguién hizo el printf para que lo uses, por qué no haces uno vos y ya está? _____________________________________________________ "- La utilización de ficheros .h y .hpp. Otros lenguajes como Java y Delphi no los necesitan (aunque a la hora de obtener las funciones y variables de una clase me parece bien poder verlo, aunque salga también la parte private o protected y toda una serie de funciones y clases auxiliares que no se )."
A eso no lo sabía, así que en delphi, en ningún momento ponés: Uses Windows, SysUtils, ..etc; ???
_____________________________________________________
" Odio de C, C++ y compañía sobre todo estas instrucciones: - for: ¿qué clase de persona ve lógico: for(int i=0;i < 10;i++){ } ¿por qué no poner por ejemplo?: for i=1 to 10 { }"
la idea de C es 1: ser un lenguaje de "Medio Nivel" osea que tenga un pie en el bajo nivel y el otro en el alto nivel 2: tener pocas palabras es más facil compilar la sintaxis de C que la de Pascal, y más rápido también. _____________________________________________________ "- ¿por qué en los arrays el primer elemento es el 0 y el último elemento es uno menos? ¿es una de las cosas que lo hacen mejor lenguaje? Nos dicen que es así porque así el código se ejecuta más rápido"
Es obvio por qué:
por ejemplo: char cadena[] = {'A','B','C'};
que es 'cadena'?? 'cadena' es una etiqueta que marca el comienzo del array, ¿y donde comienza el array? en el byte 'A'. por lo tanto si querés acceder al primer elemnto del array, no tenés que sumarle nada a esa posición. el segundo esta en la posicion de cadena+1 y el tercero en cadena+2
(El ensamblador te va a aclarar todas esas DUDAS que tenés) _____________________________________________________ "es más propia del lenguaje ensamblador que de un lenguaje de alto nivel. Sólo permite hacer comparaciones con los valores de una variables que sólo puede ser de tipo numérico: "
y si, obvio, si querés comparar strings, hacete la función, mirá si te va a comparar strings, que pensas?, que es como delphi que pones if cadena1 = cadena2 then write('hola'); lo que pasa que delphi te saca un montón de código en ensamblador de ese pequeño renglón, para poder hacer esa comparación. (una comparación es una simple resta entre dos número, andá pensando en eso) ________________________________________________________________ "- ¿por qué no hay un tipo de datos string como hay un float o un double?"
Te lo contesto rapidito: un string es un array con elementos de tipo byte (8bits) ________________________________________________________________ for(.....){ for(....){ break; // ¿y si queremos salir de los dos fors? }}
simple: for (..) {for (..) {goto Salir_De_Los_Dos_For;}}Salir_De_Los_Dos_For: ________________________________________________________________ "- ¿por qué el lenguaje nos permite definir variables "distintas":? Variable variable VARIABLE"
y porque Variable y variable son símbolos totalmente distintos:´ Secuncia ASCII de Variable: 86,97,114,105,97,98,108,101 Secuncia ASCII de variable: 118,97,114,105,97,98,108,101 ________________________________________________________________ "- ¿para qué sirve inline? ¿No puede determinar el compilador si es inline? Realmente se trata de una opción del compilador y no debiera ser una palabra reservada del lenguaje."
el inline saca directamente lo que escribis a ensamblador sin hacer Stack Frame: Push ebp mov ebp, esp ni la liberacion del estack: pop ebp ret _______________________________________________________________ "En definitiva, ¿por qué cada vez que se define un nuevo lenguaje se copian todos los errores de C?"
El C es el mejor lenguaje DE ALTO NIVEL ______________________________________________________________ Respondiendo la encuesta, el lenguaje con la mejor sintaxis, es el Ensamblador, es el lenguaje mas simple que pueda existir, asi sea el Intel o un ARM o un PowerPC
Alguien me puede ayudar a conseguir una copia de DVDs de la última distribución de Debian que soy nuevo en esto?.
Muchas gracias!
Comentarios recientes
5 semanas 2 días
16 semanas 1 hora
16 semanas 1 hora
16 semanas 1 hora
23 semanas 5 días
27 semanas 3 días
27 semanas 4 días
28 semanas 6 horas
28 semanas 2 días
30 semanas 3 días