![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
mamcx
Cita:
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. |
|
#2
|
||||
|
||||
|
Cita:
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 {} ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
|||||
|
|||||
|
Cita:
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:
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:
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:
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:
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. |
|
#4
|
||||
|
||||
|
Bueno, no estoy de acuerdo en casi nada de lo que dices, como casi siempre
![]() Todos esos problemas que citas con los proyectos que enlazas, no son problemas del lenguaje sino de los programadores. 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 ![]() Un proyecto bien hecho no tiene motivo de generar montones de problemas o incidencias sólo por el hecho de estar en C. Me remito a mí mismo , que conste que no me considero una eminencia ni un maestro en nada, solo procuro tener cuidado y revisar mucho lo que hago, pero antes de usar delphi (desde 1998) usaba únicamente lenguaje C (desde 1987 aproximadamente) y en esa década fueron muchos los programas que hice, algunos pequeños y otros "grandes" proyectos. Casi todos siguen operativos hoy en día, decenas de años después, y nunca me llaman por problemas. Me parece ridículo culpar a C de los problemas, diciendo que tiene un problema de "base" ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
|||||||
|
|||||||
|
Cita:
Entiendo lo que dices. Hay lenguajes que para usarlos correctamente se necesita mayor disciplina de parte del programador. Pero los errores que muestra en http://www.andromeda.com/people/ddyer/topten.html son problemas del lenguaje. Por ejemplo: Código PHP:
Código PHP:
Cita:
Código PHP:
Cita:
http://www.slate.com/articles/techno...ly_simple.html Código PHP:
Código PHP:
Cita:
http://www.standardista.com/javascri...cript-gotchas/ Código PHP:
Y PHP? Siguiendo la tradición: http://code.tutsplus.com/articles/ar...akes--net-2894 Código PHP:
Cita:
Así que, no son comparables? Y noten: http://www.developerdrive.com/2011/1...coding-in-php/ Cita:
Osea: Uno de los errores MAS comunes es precisamente el uso de los delimitadores. "Es culpa del programador", ok, pero entonces porque hay que tener algo que causa problemas todo el tiempo? Es como tener un cuchillo, y que este afilado por el mango. Es culpa del usuario no ponerle un protector. La pregunta es: Y entonces porque se afila por el mango? Y con respecto a la sintaxis, varios son el mismo problema: La función que se supone hacen los delimitadores no siempre se cumple, y en cambio, cargan al programador de la tarea de estar pendiente de ellos. Lo ironico es que algunos de esos problemas son el mismo en varios lenguajes, que como dicen, que rayos tiene que ver Js con C? Pues que tienen el mismo problema! Y no debería! Por lo menos que tengan problemas diferentes! NO ESTOY EN CONTRA de los delimitadores. No me gustan los de C, pero eso es pura cosa estetica. Ahora bien, si son como los de VB o los de pascal y hay que usarlos a diestra y siniestra, tampoco me gusta mucho -pero al menos en pascal & VB hacen lo que deben-. Y ya que muchos casos no son necesarios, digo que estoy a favor de uso mas mesurado de lo mismo. En ese caso, el como lo hace GO me parece bien. Cita:
A lo que voy: C/C++/PHP/JS son del tipo de lenguajes que no garantizan que lo que uno escribe es lo que hacen. Es por eso que dan tanto lios, y cuesta tanto depurarlos y mantenerlos. ---- Y como contraste, ya que todo lenguaje tiene su carga de "Chanfle, esto no me lo esperaba!" aqui esa, pa que flipen: http://stackoverflow.com/questions/1...nguage-feature ![]()
__________________
El malabarista. Última edición por mamcx fecha: 15-05-2014 a las 19:10:53. |
|
#6
|
||||
|
||||
|
Cita:
Cita:
En que llevan funcionando decenas de años, todos los días, y cuando me encuentro a alguno de esos clientes me pregunta cómo me va la vida, si hago bicicleta, si me compré otra moto, etc. pero no me dicen que tengan problemas con los programas que les hice.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
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:
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment Última edición por Ñuño Martínez fecha: 15-05-2014 a las 14:52:44. |
|
#8
|
||||
|
||||
|
Cita:
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:
|
|
#9
|
||||
|
||||
|
Cita:
Código PHP:
Cita:
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. |
|
#10
|
||||
|
||||
|
Cita:
Código:
if si edad<20
begin
print "estudia para el futuro"
print "estudia para el futuro"
print "eres un jovencito"
end
hazotracosa
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#11
|
||||
|
||||
|
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 |
|
#12
|
||||
|
||||
|
mamcx,
Cita:
Cita:
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. |
|
#13
|
||||
|
||||
|
Cita:
https://en.wikipedia.org/wiki/Buffer...mming_language Cita:
Cita:
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|