Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Algo similar pensé yo cuando lo vi. Por ejemplo, los bloques (begin end, { }, etc. ) se indican "indentando" el código. Muy bien pensado, pero ahora llega alguien, te lo ajusta a su gusto, o lo abres con un editor que trate los tabuladores con otro tamaño, etc. y... se te formó el follón con el codigo.
Al igual que con cualquier lenguaje, no podemos juzgar simplemente por unos aspectos. Cierto que lo de la indentación suena raro pero, ¿realmente no indentas tu código (en el lenguaje que sea)? El argumento del ajuste del editor no tiene nada que ver. Lo mismo pasará con cualquier lenguaje con el que programes.

Es como los que juszgan a C sólo porque se ve feo.

// Saludos
Responder Con Cita
  #2  
Antiguo 14-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Al igual que con cualquier lenguaje, no podemos juzgar simplemente por unos aspectos. Cierto que lo de la indentación suena raro pero, ¿realmente no indentas tu código (en el lenguaje que sea)? El argumento del ajuste del editor no tiene nada que ver. Lo mismo pasará con cualquier lenguaje con el que programes.
Es como los que juszgan a C sólo porque se ve feo.
// Saludos
Creo que no me he explicado bien. Lo que me pareció entender con python es que no existen los comandos de inicio y final de bloque, ya que lo detecta según la "indentación" (lo pongo en comillas porque esa palabra no existe en español, es "sangría")

Ejemplo:
Código:
si edad<20 
  print "estudia para el futuro"
  print "eres un jovencito"
hazotracosa
Ahora el editor que usamos, o alguien, o nosotros, o yo que sé... cambia la "indentación"
Código:
si edad<20 
  print "estudia para el futuro"
print "eres un jovencito"
hazotracosa
Es otro código, ahora siempre "eres un jovencito", aunque tenga más de 20 años.

Al menos, eso me pareció entender.
Responder Con Cita
  #3  
Antiguo 14-05-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero es que tú ejemplo es imposible ¿Por qué desaparece un sangrado? El sangrado puede cambiar de tamaño más no desaparecer!

// Saludos
Responder Con Cita
  #4  
Antiguo 14-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Pero es que tú ejemplo es imposible ¿Por qué desaparece un sangrado? El sangrado puede cambiar de tamaño más no desaparecer! // Saludos
¿Imposible?, creo que hay muchas formas de eliminar ese sangrado sin querer o sin darte cuenta.
Responder Con Cita
  #5  
Antiguo 14-05-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
hay muchas formas de eliminar ese sangrado sin querer o sin darte cuenta.
Y eso es precisamente lo que Python evita. Es decir, evita que escribas feamente el código. Que la falta de indentación produzca un error te obliga escribir decentemente.

Es cierto que es un punto controversial pero insuficiente para juzgar al lenguaje.

// Saludos
Responder Con Cita
  #6  
Antiguo 14-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Es cierto que es un punto controversial pero insuficiente para juzgar al lenguaje.
Por supuesto, el lenguaje en sí, lo poco que vi, me gustó. Fue únicamente ese apartado el que me disgustó. Luego tuve que dejarlo de estudiar porque "la vida" me obligó a usar otras cosas.
Responder Con Cita
  #7  
Antiguo 14-05-2014
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.939
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lo que me pareció entender con python es que no existen los comandos de inicio y final de bloque.
Si existen. Obviamente python necesita saber donde termina un comando! La unica diferencia es que la detección es automatica y no le pide al usuario que MILLONES de veces le especifique donde acaba.


El problema que mencionas Casimiro, lo sacaste de tu mente? Porque con lo de la identación en python solo existe UN SOLO problema (corregido en python 3): Que se puede indentar con TABS & con espacios.

http://legacy.python.org/dev/peps/pe...tabs-or-spaces

Ya que la recomendación es usar solo espacios, en los años que he usado python solo he tenido minúsculos problemas con código pegado de la web identado con TABS. De resto? Es un "problema" mas grande en la mente que en la vida real -aparte que cualquier editor de programacion decente tiene como eliminar ese problema-.

Es importante anotar que es PEOR en el caso de los lenguajes con {} y tonterias innecesarias como esas:

http://www.slate.com/articles/techno...ly_simple.html

(Un bug debido a problemas de identacion + marcadores)

http://www.andromeda.com/people/ddyer/topten.html

(Noten cuantos problemas por tener "supuestamente" marcadores de inicio/fin pero de forma inconsistente).

En mi mente, python & pascal usan un esquema paralelo: Las reglas de marcacion son muy consistentes, existe poca o ninguna sorpresa inesperada, y basicamente, es un tema que en la practica ni lo pone a uno a pensar. Mas bien son los que viven con los adefecios engendrados de C que viven en contra la identacion obligatoria o de usar BEGIN/END -que en la practica, ambos son ok- pero viven en un mundo donde su sintaxis es ambigua (en especial: C, C++, PHP, JS) y sus queridos marcadores son solo ruido sintaxtico que ofrece escaso beneficio, porque ni aclara como en pascal, ni se elimina como en python.


----
PD: Me encontre de nuevo esos mitos sobre la identacion de python:

http://www.secnetix.de/olli/Python/b...dentation.hawk

En resumen: Los problemas de indentacion en python son casi insignificantes, y son aun PEORES en los lenguajes (*cough* C *cough*) que se supone siguen otros rumbos.
__________________
El malabarista.

Última edición por mamcx fecha: 14-05-2014 a las 20:34:14.
Responder Con Cita
  #8  
Antiguo 14-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Creo que sigo sin explicarme.
No me quejo de la indentación, yo la uso, por supuesto, faltaría más. Para mí, el código no solamente debe funcionar, sino que también debe ser "bien escrito", ordenado, justificado, presentable y que se pueda imprimir y enmarcar para ponerlo en la pared como un Picasso
Aborrezco el código sin indentar correctamente, las variables que no usan una nomenclatura/notación, etc.

Lo que estaba comentando es que me parece entender que python usa la indentación como indicador de un bloque de código. Lo que en pascal es begin end y en C son las llaves.
Responder Con Cita
  #9  
Antiguo 14-05-2014
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.939
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Ok, y entonces que problema ahi?
__________________
El malabarista.
Responder Con Cita
  #10  
Antiguo 15-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx

Cita:
Empezado por mamcx
...Es importante anotar que es PEOR en el caso de los lenguajes con {} y tonterías innecesarias como esas...
Pregunto : ¿Todos los lenguajes que usan como delimitador de bloques los caracteres {} estan mal diseñados?, ¿Es decir que C, C++, C#, Objetive-C, Java, JavaScript y el futuro M# están mal diseñados?, de ser así gran parte del software desarrollado a nivel mundial (Y por venir) tiene entonces un problema de base.

En lo personal, no veo ningún problema en el uso de de las llaves {}, espacios o begin-end, como delimitadores de bloque, cada lenguaje tiene sus pro y sus contras, cada lenguaje tiene un campo de acción definido y es sobre ese hecho que debe o no ser utilizado, quizás como personas tengamos determinadas preferencias estéticas, pero al final un lenguaje es una herramienta para un fin, si cumple dicho fin en gran medida entonces es probablemente la herramienta indicada y no necesita ser estrictamente perfecta.

Sería interesante preguntarle a Anders Hejlsberg por que incluyo las llaves {} en C# dado que el es el creador de Turbo Pascal y Delphi

Nelson.

Última edición por nlsgarcia fecha: 15-05-2014 a las 01:03:07.
Responder Con Cita
  #11  
Antiguo 15-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
Sería interesante preguntarle a Anders Hejlsberg por que incluyo las llaves {} en C# dado que el es el creador de Turbo Pascal y Delphi
He comentado otras veces que mi favorito, con mucha diferencia, es el lenguaje C.
Delphi (pascal) me gusta, aunque lo que más me fastidia es precisamente los comandos "tan" largos como begin end, con lo fácil que es {}
Responder Con Cita
  #12  
Antiguo 15-05-2014
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.939
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
¿Todos los lenguajes que usan como delimitador de bloques los caracteres {} estan mal diseñados?, ¿Es decir que C, C++, C#, Objetive-C, Java, JavaScript y el futuro M# están mal diseñados?, de ser así gran parte del software desarrollado a nivel mundial (Y por venir) tiene entonces un problema de base.
Eeee... no es obvio que es el caso? GRAN parte del software desarrollado a nivel mundial *efectivamente* tiene problemas de base. Eso es un hecho.

C/C++/Javascript tienen serios problemas que han costado millones de dólares en tiempos de codificación, depuración, crash, errores de seguridad, confiabilidad y todo lo demás, debido a sus defectos de diseño.

Claro, los problemas de delimitador son una fracción menor de sus problemas, pero es una muy buena correlación que si tiene {} imita/contiene (o innova nuevas!) malas practicas heredadas de C.

Como puse en el link sobre C, y el que haya hasta libro sobre C++ (no me resisto a acotar este *divertido* sumario):

Cita:
This book is the result of nearly two decades of minor frustrations, serious bugs, late nights, and weekends spent involuntarily at the keyboard. This collection consists of 99 of some of the more common, severe, or interesting C++ gotchas
Y lo mismo se puede sacar fácilmente sobre PHP, JavaScript y otros.

El problema es que sobre C/C++/JS recae gran parte de toda la infraestructura de software. Como dice el creador de C++:

http://en.wikiquote.org/wiki/Bjarne_Stroustrup

Cita:
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.
Para notar:

1- La mejor implementación de un lenguaje OO? Smaltalk (no un C)
2- El MAS escalable? Erlang (no un C)
3- La mejor forma de escribir código de forma correcta? Haskell (quizas Eiffel? Ada?) (no un C)
4- El lenguaje mas flexible? Lisp (no un C)
5- La forma de escribir código para aplicaciones criticas? Ada. (no un C)

De los derivados de C, quizás Scala, C#, GO, Rust sean notables en cuanto a su diseño, pero eso básicamente lo logran imitando a uno de los anteriores (o uno de sus familiares), no a C. De C que se gana? Que es lo mejor que hay luego del ensamblador. Pero en diseño?

Creo que en parte es cultural. Simplemente, la gente de C/C++/Java/JS y similares no estan muy dispuestos a arreglar los defectos de los lenguajes. Es de notar C++: Cada nueva "version" es enruedar aun mas el lenguaje.. pero arreglar algo que tiene? Ni de locos.

Cita:
Empezado por nlsgarcia Ver Mensaje
En lo personal, no veo ningún problema en el uso de de las llaves {}, espacios o begin-end, como delimitadores de bloque
Técnicamente?, no hay ninguno. Incluso python tiene delimitadores (aunque hay lenguajes que NO tienen ninguno: LISP y familia).

El problema de muchos engendros que andan por ahí es que son delimitadores epilépticos. una veces sirven para lo que uno cree, excepto de formas bizarras cuando no. Un ejemplo de uno que *parece* que esta bien hecho es GO -ayuda que es el mas nuevo de la familia-. De notar? Fijense que tiene menos ruido que C/C++, y es un hecho conocido que todo programador que se respete en GO usa gofmt para formatear el código de forma consistente. Rust parece que también.


Cita:
Empezado por nlsgarcia Ver Mensaje
Sería interesante preguntarle a Anders Hejlsberg porque incluyo las llaves {} en C# dado
Nelson.
Eso es muy fácil. C# es un derivado de C, y originalmente un parecido de Java. Siendo tal el caso, no había de otra. Que Anders creyera que eso era *realmente* importante? Lo dudo. Es una hipótesis que se sustenta en el hecho que en la comunidad de implementadores de lenguajes, los derivados de C son los que están *mas por debajo* en la escala de lo que es ideal (no falta sino darle una vuelta larga a http://lambda-the-ultimate.org/ para ver lo que realmente les gustaría hacer...).

Ya que el chiste era parecerse a Java, se parece a Java. Pero cuando uno ve lo que han hecho con GO/Rust y otros que siguen la familia? Se nota que se *reduce* el uso de delimitadores. La *verdadera* pregunta es: Que hubiera hecho Anders si hubiera tenido TOTAL libertad?

----
Aquí una cosa para pensar: Porque, exactamente, es necesario tener delimitadores? Y de las verdaderas buenas razones que pudieran surgir: Porque, exactamente, debe aceptarse que hay que ponerlos, manualmente, siempre?

Porque la razón original, era para ayudar al lexer/parser. Osea, es una ayuda a la maquina. Como ayuda a la persona?

Como digo, es para pensar.
----
__________________
El malabarista.
Responder Con Cita
  #13  
Antiguo 15-05-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Antes de continuar, decir que hace mucho que no leo ni miro siquiera cosas acerca de Python, así que hablo bastante de memoria.

El problema que le veo a Python no es simplemente estético, sino funcional. Es difícil escribirlo y aún más difícil leerlo. El ejemplo de Casimiro es bueno. Un despiste en la sangría y te genera un error en tiempo de ejecución muy difícil de rastrear.

Por otro lado el manejo de tipos de datos blando tampoco es santo de mi devoción. El modelo de objetos (que si no recuerdo mal, está a medio camino de los de JavaScript y PHP) tampoco me hace ni pizca de gracia.

Finalmente, aborrezco los lenguajes con colector de basuras por buenas razones.

Lo que sí recuerdo bien es la mala impresión que me dio desde el principio, y que por más cosas que leía acerca de él no desaparecía sino que aumentaba, hasta que decidí no volver a investigar nada más de él.

Por cierto:

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Metes en el mismo saco a C, C++ y JS (¿javascript?), el que tengan una sintaxis parecida, al igual que php, no por ello son equiparables, C es C, punto. Y no tiene mucho que ver con C++ y muchísimo menos con javascript
Totalmente de acuerdo contigo, Casimiro.

C me gusta, pero sólo C; no C++, ni C#, ni demás morralla (JavaScript, PHP, Objective C, Go, Beans ...), y sólo me gusta para ciertas ocasiones, en las que quiero o necesito una aproximación de muy bajo nivel.

Última edición por Ñuño Martínez fecha: 15-05-2014 a las 14:52:44.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que me recomiendan? D-MO PHP 2 08-12-2005 14:50:28
Que me recomiendan ? Sundance Gráficos 2 06-08-2005 06:36:31
Me recomiendan un tutorial? marceloalegre C++ Builder 5 09-06-2005 08:56:23
Me recomiendan Web Sites? marceloalegre SQL 2 18-05-2005 23:19:57
Sistema en Red, Que me recomiendan.. BlueSteel Varios 6 01-03-2005 17:46:09


La franja horaria es GMT +2. Ahora son las 02:35:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi