Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   ¿Qué IDE gratuito me recomiendan? (https://www.clubdelphi.com/foros/showthread.php?t=85840)

Thoronluin 14-05-2014 10:26:03

¿Qué IDE gratuito me recomiendan?
 
Buenos días:

Sin ánimo de provocar un cisma en la comunidad ;), me gustaría preguntar qué IDE gratuito me recomiendan. Yo siempre he usado Delphi 7 en la empresa pero un amigo quiere comenzar a programar y quiere optar por una opción gratuita. He encontrado varias opciones en Wikipedia de entre las cuales Lazarus, MSEide y Oxygene me parecen que se adecuan más a las características que busco (IDE gratuito con GUI Builder), pero admito sugerencias :).

Saludos y gracias.

Casimiro Notevi 14-05-2014 10:59:27

Depende de lo que vaya a programar: ¿para windows, para linux, para la web, para smartphones, etc...?

Thoronluin 14-05-2014 12:25:38

Gracias por tu rápida respuesta.

Es el hijo de unos amigos y por eso había pensado en un entorno que pudiera crear GUIs fácilmente para no meterle un rollo de teoría al principio sino ir poco a poco introduciendo conceptos. Como lo que quiere es aprender a programar y no sabe nada, había pensado en aplicaciones de escritorio, que es por lo que empezamos la mayoría y como chico quería un programa gratuito había pensado sobre Linux, pero también me valdría Windows o Mac OSX.

Un saludo.

Casimiro Notevi 14-05-2014 12:41:20

Entonces Lazarus te puede venir bien.

Neftali [Germán.Estévez] 14-05-2014 12:49:14

Cita:

Empezado por Casimiro Notevi (Mensaje 476394)
Entonces Lazarus te puede venir bien.


+1
Si lo que quieres es que empiece con Pascal.

Thoronluin 14-05-2014 13:10:23

Muchas gracias a los dos.

Había pensado en Pascal/Delphi porque me parece muy intuitivo para empezar, es uno de los lenguajes de aprendizaje clásicos y va a poder ver interfaces desde el principio. Otras opciones eran:
  • Visual Basic, pero es propietario
  • C/C++ como lenguaje más extendido pero no he manejado ningún IDE con GUI Builder, siempre he trabajado con código puro y duro.
  • Labview, pero no aprendería programación clásica.
  • Algún entorno de desarrollo de juegos gratuito como GameMaker o Unity que sería algo más atractivo, pero no los he manejado y pueden ser complicado para empezar.
  • Python, pero no lo he trabajado nunca.

Pero estoy abierto a sugerencias :D:

Saludos

Ñuño Martínez 14-05-2014 14:03:54

Cita:

Empezado por Thoronluin (Mensaje 476397)
  • Visual Basic, pero es propietario
  • C/C++ como lenguaje más extendido pero no he manejado ningún IDE con GUI Builder, siempre he trabajado con código puro y duro.
  • Labview, pero no aprendería programación clásica.
  • Algún entorno de desarrollo de juegos gratuito como GameMaker o Unity que sería algo más atractivo, pero no los he manejado y pueden ser complicado para empezar.
  • Python, pero no lo he trabajado nunca.

Pero estoy abierto a sugerencias :D:

Pues aquí van las mias:
  • Ha ce mucho que no veo código VisualBasic, pero mucho ha tenido que cambiar para que lo recomiende a alguien. Object Pascal sigue siendo mucho mejor.
  • Que yo sepa, Visual Studio tiene editor de ventanas. Pero como siga usando MFC, pues lo mismo que he dicho de VB. Eso sí, Builder (o como se llame) también tiene editor de ventanas y su funcionamiento es muy similar a Delphi.
  • Los entornos de desarrollo de juegos NO enseñan a programar. Olvídalo. Personalmente aborrezco todos estos sistemas que sólo sirven para hacer un juego. O quizá dos.
  • Python es el mal. No entiendo por qué la gente elogia un lenguaje que usa ideas que COBOL desechó por obsoletas hace décadas. En serio.

Por lo tanto, que use Lazarus/Free Pascal. Y si quiere hacer juegos, que se pase por Pascal Game Development y pregunte, y así de paso practica inglés.

Casimiro Notevi 14-05-2014 15:48:21

Cita:

Empezado por Ñuño Martínez (Mensaje 476400)
Hace mucho que no veo código VisualBasic, pero mucho ha tenido que cambiar para que lo recomiende a alguien. Object Pascal sigue siendo mucho mejor.

Sigue siendo el mismo código espagueti de siempre.
Cita:

Empezado por Ñuño Martínez (Mensaje 476400)
Python es el mal. No entiendo por qué la gente elogia un lenguaje que usa ideas que COBOL desechó por obsoletas hace décadas. En serio.

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 González 14-05-2014 17:42:00

En un caso semejante le instalé Delphi 7 a un familiar. En términos estrictos no es copia legal, pero considerando que no es con fines de lucro y que esto sirve también para fomentar el uso de Delphi, no le vi inconveniente. Distinto sería si mi familiar quisiera dedicarse a programar como forma de hacer negocio o si Delphi gozara aún de aquella saludable popularidad que distintos factores (principalmente "políticos") le han ido arrancando.

Me uno a lo que opina Ñuño sobre Phyton, este lenguaje me empezó a decepcionar cuando a alguna mente borracha se le ocurrió cambiar el operador "<>" por "!=". C es algo así como la iglesia de la programación: ¡Cuanto progreso nos ha restado!

roman 14-05-2014 18:41:30

Cita:

Empezado por Casimiro Notevi (Mensaje 476408)
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

mamcx 14-05-2014 18:48:30

Tienes 2 problemas diferentes:

1- Que lenguaje aprender
2- Con que herramientas. Veras que este es el menos importante y mas facil de resolver.


Con respecto a 1: Todo depende de que es el objetivo: a) Aprender lo mejor posible a ser programador o b) Aprender para lograr un objetivo X (ej: Hacer juegos, moviles, etc).

b) Es simple. Miras que usa todo el mundo para lograr el objetivo, usas ese lenguaje. Si estas pensando en móviles es: Objetive-C + Coccoa Touch (iOS), Java(Version Google) + Android. Con Web(BackEnd) es Python, Ruby, PHP, GO. Con Web(FrontEnd) es Javascript/HTML. Con juegos es C, C++, Lua, etc... y asi por el estilo.

Con respecto a a) Uno aprende es paradigmas/buenas practicas y ahi no todos los lenguajes son igual de bien diseñados. En ese aspecto:

PESIMOS (con respecto a fallas en su diseño o problemas en aplicar paradigmas sin mucha disciplina): PHP, JavaScript, C++, VisualBasic, Java*, C#*

* Se puede hacer bien, pero requiere disciplina y desafortunadamente la comunidad en general no tiende a usarlos adecuadamente.

BUEN OO: Smalltalk (el papa de los pollitos. No hay OO de verdad aparte de este), Delphi, Julia, Scala, Eiffiel

BUEN FUNCIONAL: Haskell (el papa de los pollitos. No hay Funcional de verdad aparte de este), Elixir, Ocalm, Clojure

BUEN DINAMICO/MULTI-PARADIGMA (OO+Funcional+Procedural): Python, Ruby

BUEN ESCALABLE: Erlang (el papa de los pollitos. No hay ESCALABLE de verdad aparte de este), Elixir (excepto este, que es erlang mas chevere), Scala, GO

AMIGABLES NOVATOS: Delphi, Python, Ruby


En resumen?. Arrancar con Delphi y/o python es mi recomendación. Porque? Porque Pascal enseña estructura, manejar tipos de datos, y la OO esta bien. Python por simple, flexible y para aprender que la OO no es la unica forma de hacer todo.

Y cuando tengan algo de firmeza en alguno de esos, darle la mirada a los demás.
------
Cita:

Empezado por Ñuño Martínez (Mensaje 476400)
[*]Python es el mal. No entiendo por qué la gente elogia un lenguaje que usa ideas que COBOL desechó por obsoletas hace décadas. En serio.[/list]

????. Python es a leguas el lenguaje con la sintaxis y filosofia mas intuitiva y amigable que existe. Esta bien que a los amantes de los {}[]\!@#$ no les cuadre que sea TAN facil de leer y que haya un odio "raro" a que este obligue a poner el codigo correctamente indentado, en vez de permitir hacer "spaguetti" a diestra y siniestra. Pero hombre... compararlo con COBOL? ahi si te pasas! :eek:.

Y que ideas tiene python de COBOL? Ese es uno de los lenguajes que para nada lo ha influenciado...

Casimiro Notevi 14-05-2014 19:02:49

Cita:

Empezado por roman (Mensaje 476420)
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.

roman 14-05-2014 19:11:41

Pero es que tú ejemplo es imposible :eek: ¿Por qué desaparece un sangrado? El sangrado puede cambiar de tamaño más no desaparecer!

// Saludos

Casimiro Notevi 14-05-2014 19:25:29

Cita:

Empezado por roman (Mensaje 476424)
Pero es que tú ejemplo es imposible :eek: ¿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.

roman 14-05-2014 19:33:42

Cita:

Empezado por Casimiro Notevi (Mensaje 476427)
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

Casimiro Notevi 14-05-2014 19:41:24

Cita:

Empezado por roman (Mensaje 476429)
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.

mamcx 14-05-2014 20:27:45

Cita:

Empezado por Casimiro Notevi (Mensaje 476422)
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.

Casimiro Notevi 14-05-2014 20:56:59

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.

mamcx 14-05-2014 21:14:05

Ok, y entonces que problema ahi?

nlsgarcia 15-05-2014 00:47:49

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 :rolleyes:

Nelson.


La franja horaria es GMT +2. Ahora son las 00:35:31.

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