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 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: 28
Ñ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
  #2  
Antiguo 15-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 Ñuño Martínez Ver Mensaje
Un despiste en la sangría y te genera un error en tiempo de ejecución muy difícil de rastrear.
De hecho es todo lo contrario, a menos, claro, que no sepas lo que estás programando. La correcta anidación, independientemente del lenguaje que uses, sigue el orden lógico del pensamiento. Y Python, en este aspecto, evita precisamente que te apartes de ese orden.



Sinceramente da la impresión en algunos que simplemente muestran sus fobias a determinados lenguajes por una mera cuestión de cómo luce o por prejuicios personales. El lenguaje C ha sido y es la base de la gran mayoría de software importante, como dice nlsgarcia. Que académicamente haya lenguajes mejor diseñados, ni duda cabe, pero de ahí a poder decir que son mejores va mucho camino.

Por otro lado, tienden a hacer comparativas que ni siquiera tienen sentido. Una frase que incluya C y JavaScript sólo tiene validez si se trata de una lista de lenguajes porque viven en mundos distintos y uno no puede hacer lo que el otro. Compararlos es fútil.

Y por cierto, JavaScript es un lenguaje mucho más complejo de lo que parece. Incluso tiene esa herencia insertada que le gusta a Al González.

Atacan PHP porque piensan en el PHP de hace quince años y no saben o prefieren ignorar que PHP ha sido totalmente rediiseñado.

Creo que esto es lo más acertado que he leido aquí:

Cita:
Empezado por nlsgarcia
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.
// Saludos
Responder Con Cita
  #3  
Antiguo 15-05-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Un despiste en la sangría y te genera un error en tiempo de ejecución muy difícil de rastrear.
Obvio que saca un error. Pero se puede detectar leyendo el codigo, porque las reglas son claras. No es como en los lenguajes donde tienen marcadores defectuosos, donde como lees no es necesariamente como ejecuta:

Código PHP:
if si edad<20:
  print 
"estudia para el futuro"
print "eres un jovencito"
hazotracosa 
Dice *exactamente* que es lo que hace el codigo. Osea: Python hace lo correcto. Lo peor es lo que hace JS/C/C++: No como esta escrito necesariamente es lo que hace. Ese es el problema que estoy hablando: Que la sintaxis no refleja bien la semantica del lenguaje.


Cita:
Empezado por Ñuño Martínez Ver Mensaje
Finalmente, aborrezco los lenguajes con colector de basuras por buenas razones.
Y el problema? Es Javascript & PHP. De los menos mejor diseñados, y no asombra que tenga deficientes GC, asi como son deficientes en todo otras cosas. Contraste? El GC de Java, .NET, Haskell, Erlang, Nimrod, Obj-c (no es tanto un GC en si pero funciona igual), LuaJit, etc son excelentes y son MUCHO mas óptimos para los casos generales que hacerlo manual. Hay uno y solo un verdadero caso para que un lenguaje es mejor que no tenga un GC: Se requiere garantizar operación en hard realtime y control exacto del uso de la memoria.

Un GC es prácticamente un requerimiento para hacer codigo eficiente & correcto hoy dia y a futuro. (Ahora bien, RUST & C son las unicas opciones viables sin un GC hoy dia).
__________________
El malabarista.
Responder Con Cita
  #4  
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.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
Código PHP:
if si edad<20:
  print 
"estudia para el futuro"
print "eres un jovencito"
hazotracosa 
Dice *exactamente* que es lo que hace el codigo. Osea: Python hace lo correcto. Lo peor es lo que hace JS/C/C++: No como esta escrito necesariamente es lo que hace. Ese es el problema que estoy hablando: Que la sintaxis no refleja bien la semantica del lenguaje.
Para nada se puede estar de acuerdo con eso.

Código:
if si edad<20
begin
            print "estudia para el futuro"
  print "estudia para el futuro"
       print "eres un jovencito"
end
     hazotracosa
Creo que de esa forma, con un inicio y final de bloque sí que no hay ninguna duda, ningún error, ningún despiste...

Cita:
Empezado por mamcx Ver Mensaje
Un GC es prácticamente un requerimiento para hacer codigo eficiente & correcto hoy dia y a futuro.
A mí me parece una solución creada para los malos programadores que se olvidan de liberar memoria
Responder Con Cita
  #5  
Antiguo 15-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
Bueno Casimiro, pero ejemplos como ese también te puedes encontrar a montones en lenguajes con delimitadores de bloque, tan mal indentados, sin cambios adecuados de línea, que rastrear cualquier error se torna imposible.

Lo que estás criticando realmente no crresponde al lenguaje sino a la forma de usarlo, que es lo mismo que tú mismo has mencionado anteriormente.

// Saludos
Responder Con Cita
  #6  
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
...GRAN parte del software desarrollado a nivel mundial *efectivamente* tiene problemas de base. Eso es un hecho...
El problema de la ingeniería de software es que no hay una forma efectiva de estandarizar la creación del software, partiendo de este punto el crear software es una combinación de arte y técnica lo cual si no se siguen buenos principios de diseño y programación se puede incurrir en grandes fallas difíciles de corregir y probablemente muy costosas dependiendo del ámbito de implementación del software, pero lo anterior es común a todos los lenguajes, el hecho de que un lenguaje tenga bases en C/C++ no implica que tenga ningún problema de base, solo implica que deben seguirse ciertos principios para su correcto uso, pero lo mismo aplica a todos los lenguajes si se quiere hacer software de calidad y resiliente a fallas.

Cita:
Empezado por mamcx
...No es como en los lenguajes donde tienen marcadores defectuosos, donde como lees no es necesariamente como ejecuta...Que la sintaxis no refleja bien la semántica del lenguaje...
Linux es quizás el SO más versátil y eficiente de la historia de la computación, se le puede usar en una miríada de dispositivos (MainFrame, MiniComputadores, Servidores, Computadores Portátiles y de Escritorio, SmartPhones y Sistemas Embebidos) y su lenguaje base es C, ¿Por que es tan exitoso y tan ampliamente usado algo hecho en C si este lenguaje supuestamente tiene fallas de base?, la respuesta esta en las buenas prácticas de diseño y programación aunado a extensas pruebas y seguimiento de la implementación, algo que debe ser común a la ingeniería del software en general independientemente del lenguaje utilizado.

En lo personal no creo que exista un lenguaje perfecto, pero si creo que los lenguajes actuales son perfectibles y prueba de ello es la evolución que han tenido los lenguajes basado en C/C++ y el impacto positivo de estos en todo el ámbito mundial del software por su efectividad y eficiencia, no por ser perfectos ni mucho menos.

Al final el que un software sea o no de calidad depende en última instancia del programador, el lenguajes escogido es solo una herramienta para un fin, su buen o mal uso depende estrictamente del programador

Nelson.

Última edición por nlsgarcia fecha: 15-05-2014 a las 19:07:02.
Responder Con Cita
  #7  
Antiguo 15-05-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
el hecho de que un lenguaje tenga bases en C/C++ no implica que tenga ningún problema de base, solo implica que deben seguirse ciertos principios para su correcto uso, pero lo mismo aplica a todos los lenguajes si se quiere hacer software de calidad y resiliente a fallas.
Realmente? En serio? Los buffer overflow son una de los problemas que estos tienen. Son un vector de ataque, causan crash, son jodidos de depurar y todo eso. Como se arregla?

https://en.wikipedia.org/wiki/Buffer...mming_language

Cita:
The choice of programming language can have a profound effect on the occurrence of buffer overflows. As of 2008, among the most popular languages are C and its derivative, C++, with a vast body of software having been written in these languages
......
Examples of such languages (que no tienen ese problema de base) include Ada (podria reemplazar a C/C++, sino fuera porque pailas, son mas populares), Eiffel, Lisp, Modula-2, Smalltalk, OCaml and such C-derivatives as Cyclone, Rust and D (todos estos, podrian reemplazar C/C++).
Cita:
Empezado por nlsgarcia Ver Mensaje
Por que es tan exitoso y tan ampliamente usado algo hecho en C si este lenguaje supuestamente tiene fallas de base?
Supuestamente? No, TIENEN fallas de base. Que se controlan, como dices, con disciplina y el hecho de que los programadores de linux, en especial de lo importante, son de alto nivel. EL asunto es: En su momento, aparte de C/C++, que opcion hay para hacer un OS?

Una analogia: Hay un ERP que es el mas usado y es muy potente. Sin embargo, Si se le meten decimales hay que estar muy seguros de poner "." y no ",". Si se pone ",", la vaina se jode y corrompe todo. Si se mete un null entre una cadena en el proceso de importacion de datos, se rompe la seguridad del sistema. Se puede hacer injeccion de SQL.

Entonces: No tiene problemas de base? Es lo mismo, para un lenguaje, un programador es un usuario. Si este tiene que estar pendiente de detalles bizarros, es lo mismo cuando un programa exige que para poder buscar, primero hay que reindexar, poner el chulito y luego buscar y no hacerlo antes de 2 secs despues del chulito. Culpa del usuario si la BD se corrompe... porque no esta mas pendiente?

P.D: Y ese es un ejemplo muy cercano a la realidad...

---

P.D 2: A veces me pregunto si los sistemas nos causan Sindrome de Estocolmo. Como lo tratan a uno, y uno los defiende!
__________________
El malabarista.

Última edición por mamcx fecha: 15-05-2014 a las 19:44:58.
Responder Con Cita
  #8  
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.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
Realmente? En serio? Los buffer overflow son una de los problemas que estos tienen. Son un vector de ataque, causan crash, son jodidos de depurar y todo eso. Como se arregla? https://en.wikipedia.org/wiki/Buffer...mming_language
Supuestamente? No, TIENEN fallas de base. Que se controlan, como dices, con disciplina y el hecho de que los programadores de linux, en especial de lo importante, son de alto nivel. EL asunto es: En su momento, aparte de C/C++, que opcion hay para hacer un OS?
Una analogia: Hay un ERP que es el mas usado y es muy potente. Sin embargo, Si se le meten decimales hay que estar muy seguros de poner "." y no ",". Si se pone ",", la vaina se jode y corrompe todo. Si se mete un null entre una cadena en el proceso de importacion de datos, se rompe la seguridad del sistema. Se puede hacer injeccion de SQL.
Entonces: No tiene problemas de base? Es lo mismo, para un lenguaje, un programador es un usuario. Si este tiene que estar pendiente de detalles bizarros, es lo mismo cuando un programa exige que para poder buscar, primero hay que reindexar, poner el chulito y luego buscar y no hacerlo antes de 2 secs despues del chulito. Culpa del usuario si la BD se corrompe... porque no esta mas pendiente? P.D: Y ese es un ejemplo muy cercano a la realidad... --- P.D 2: A veces me pregunto si los sistemas nos causan Sindrome de Estocolmo. Como lo tratan a uno, y uno los defiende!
De verdad que yo en todo eso solamente veo culpabilidad del programador.
¿Que tiene que estar pendiente de muchas cosas?, pues sí, es un problema, pero también podía haber decidido ser peluquero y se quitaba esos problemas
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 08:48:35.


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