[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF] Lenguajes de programación para escritorio



Ok comencemos desde el principio, y pongamos algunas perlas que has
dicho por acá, espero que lo leas completo y te des cuenta de varios
errores en los conceptos que tienes:

> Con respecto a lo de Java, a que te refieres? Se supone que en un
> software de escritorio, el programador lo hace accesible a las
> personas con discapacidad, o sin esta.

Primero, puedes usar C/C++, Vala, Java, C#, Ada, el lenguaje que tu
quieras para hacer una aplicación de escritorio, siempre y cuando estés
claro con lo que vas a hacer. No es que un lenguaje sea de escritorio y
otros no, esa clase de distinción solo existe en tu cabeza.

> Se supone que C++ es compilado a código máquina, y es imposible
> obtener el código de este lenguaje una vez compilado por lo que no
> podrían obtener los datos.

Si C/C++ entre otros lenguajes son compilados, pero si le pasas un
debugger puedes obtener acceso a lo que está dentro de ese binario,
normalmente se conoce esa practica como ingeniería inversa.

> Se supone que el software debería tener acceso a la base de datos. Si
> puede hacer lo que quiera es un sí, aunque dudo importe demasiado la
> respuesta a esta pregunta.

Parcialmente correcto con eso que dices. Lo que normalmente hacen los
programadores, es almacenar la información de la conexión a la base de
datos en un archivo asegurado, bien sea cifrado o con hashes, a los
fines de asegurar dichos datos del acceso no autorizado. Esa es una
política de seguridad mínima para datos sensibles. Luego lo que hacen es
que el programa tenga medios de acceder a esos datos usando de por medio
una clave o cualquier otro medio seguro.

> Vale. Eso es ingeniería inversa, no? También quiero aprender eso,
> suena interesante.

Primero aprende a caminar...luego empiezas a correr.

> Y ya que estamos en esto de los lenguajes de programación, también
> quiero aprender C++, tanto para crear aplicaciones de escritorio, como
> de consola. Pero tengo varias dudas al respecto:
> 

Creo que ya te lo dije antes, puedes usar el lenguaje que quieras, para
crear apps de escritorio, la cuestión que tengas las cosas claras, y por
lo visto, claridad es lo menos que tienes sobre lenguaje de programación.


> 1.- Si creo una aplicación de escritorio en C++, podrá ser funcional
> en otros SO aparte de Windows?

Si, pero ten cuidado de usar "Linuxismos" en tu programa. Si quieres un
programa multiplataforma debes usar librerías que te lo permitan, GTK y
QT permiten eso, solo por nombrar las más conocidas.

> 2.- Instalé una máquina virtual, y en ella Visual Studio Community
> 2015 para poder comenzar con C++. Supongo que programar en Linux para
> consola es bastante fácil (solo con un editor de texto cualquiera mas
> un compilador), pero para un software de escritorio? Que vendría a
> reemplazar a Visual Studio en este ámbito?

Aquí debo hacer un :facepalm:.

Si tienes Linux, con compilador C/C++ incluido  con varias opciones por
escoger, con mejor soporte para estándares, con IDEs como Anjuta,
KDEvelop, Builder, Code:Blocks, Eclipse, Vim, Emacs (esos dos sirven
como IDE si sabes hacerle el tuning necesario)...¿Para que te montas una
VM con Visual Studio Community para aprender C++, cuando ese compilador
no tiene buen soporte para C++11, C++14 y C++17, y teniendo incluso mas
potencialidades de forma nativa en Linux?

> Quedó claro que ni un lenguaje podrá asegurar los datos a la base de
> datos, que era el tema principal de este correo.

¿En serio? Es decir según lo que tú dices: Yo no puedo hacer un programa
en lenguaje C para manejar directamente una base de datos de forma
segura, porque no se puede.

Pues te diré algo, si quieres hacer un programa seguro, primero cambia
esa mentalidad, puesto que la seguridad de un programa va de parte del
programador y de los medios que este cree para que dicho software sea
SEGURO.

> Soy bueno en JavaScript (estoy a un nivel avanzado, o eso creo); puedo
> diseñar interfaces en este lenguaje? Me podrías explicar como? Y con
> que lenguaje se complementaría... ojala no sea HTML o PHP (ni
> similares) ya que, si bien manejo ambos, la idea es crear la
> aplicación para escritorio, no Web.

De nivel avanzado nada, tu mismo mataste esa ilusión cuando preguntas:
*¿Puedo diseñar interfaces con este lenguaje?*.

Cualquier programador avanzado en JS sabría la respuesta y es SI. Pero
eso tiene un matiz. Cinnamon y GNOME3 hacen precisamente eso, lo usan
para crear y modificar sus GUI, pero en el fondo GTK es el que hace le
verdadero trabajo, es más, JS por si solo vale nada, ya que necesitas un
motor de JS, y si no me equivoco, creo que SpiderMonkey es lo que usan
en GNOME para hacer posible el funcionamiento de toda la capa JS que
tienen, y adivina, SpiderMonkey está escrito en C.

> Necesitaba un lenguaje de programación para crear aplicaciones de
> escritorio donde la conexión a una base de datos no pueda ser
> descifrada. No existe, vale. Entonces ocuparé sockets u otra
> tecnología.

Esta es otra muestra de los errores de concepto que tienes. Si puedes
crear una apps usando el lenguaje que quieras para leer una base de
datos y que sea segura la conexión. Porque primero, Para algo existe el
cifrado de conexiones ¿No crees? (Hablando de tus conexions
cliente-servidor), y segundo; siempre y cuando crees una interfaz de
conexión en tu programa hacia la base de datos que tenga la seguridad en
mente, podrás decir que es segura.

Ahora sobre tu ultima respuesta a mi persona:

> Sí? Donde dice eso que no leo? No fuí el único que entendió lo que yo.

Pues la verdad alguien te lo dijo, parece que no le prestas mucha
atención a los mensajes y las sugerencias de varios por acá, porque
Ángel Claudio Álvarez te lo comento, como dice la cita de abajo:

> Me parece que no tenes mucha experiencia en programacion
> Cualquier desarrollador ya hubiera cifrado el archivo con los datos para conectar a la
> DB. Es algo basico

Más claro no puede ser.

> 
> http://prntscr.com/a328ki
> 

Y como siempre @Camaleon y sus perlas de sabiduría, que yo más bien
llamaría en este momento: Metida de pata épica.


-- 
Dios en su Cielo, todo bien en la Tierra


Reply to: