Buenas.
Lo primero de todo, es diferenciar entre dos cosas bien diferentes: por
un lado, los datos y el código de la aplicación, y por otra, el tipo de
lenguaje, interpretado o compilado.
Antes de seguir por este camino, y a pesar de que algunos me puedan
llevar la contraria, te descarto ya java como lenguaje para crear
programas de escritorio. Y te lo descarto tan simplemente porque crear
programas accesibles (esto es, que puedan utilizarlo personas con algún
tipo de discapacidad, y más concretamente la visual que es la mía) para
personas ciegas es un follón, aunque se supone que hay alguna
posibilidad, no suelen serlo.
Bien, volviendo a la discusión previa, cuando programas, debes separar
los datos de las instrucciones del código. En este sentido, puedes tener
un programa implementado en un lenguaje interpretado, como python, y los
datos almacenarlos en un archivo binario. Por ejemplo, python, que es el
lenguaje que yo utilicé para desarrollar una aplicación de lectura de
audiolibros llamada DBR, cuenta con una biblioteca llamada pickle que te
permite almacenar datos de forma binaria con la estructura del objeto
que tú desees. Estos datos no pueden ser accedidos directamente por el
usuario, pues no son legibles. Evidentemente, si alguien obtiene el
código de la aplicación, e implementa un pequeño script basándose en la
estructura de los objetos almacenados en el fichero binario, podrá
acceder a la información contenida en el mismo, pero ya es un poco de
trabajo.
Por otra parte, los lenguajes compilados, como C o C++, generan
ejecutables que no son más que archivos binarios. Al igual que en
lenguajes interpretados, como python, puedes almacenar datos en archivos
binarios, con la estructura que tú definas (también podrías almacenarlos
en formato de texto en ambos tipos de lenguajes). Quizás aquí sí sea más
complicado (yo ahora mismo no sé cómo hacerlo) obtener la información
almacenada en ficheros binarios, pues al estar compilado, el código está
aparentemente oculto, y sería más difícil obtener la información
relativa a la estructura de los datos e implementar un programa para
obtener la información contenida en dichos archivos. Y fíjate que no
digo que sea imposible, pues existen programas que descompilan los
ejecutables.
Como ves, que el lenguaje sea interpretado o compilado no tiene nada que
ver con la forma en que se almacenan los datos internos de la
aplicación. Si lo que quieres es proteger la base de datos, lo que
deberás hacer es crear un usuario específico en la base de datos para
estas conexiones, con privilegios limitados, y realizar copias de
seguridad periódicas para evitar, en la medida de lo posible, fallos por
manipulación incorrecta o indebida de dichos datos.
Además de lo anterior, podrías generar una conexión de usuario, con
inicio de sesión independiente (usuario y login por cada usuario de la
aplicación), de forma que sepas en todo momento qué usuario es el que
entra. Quiero decir, que la seguridad tienes que enfocarla en el
servidor, no tanto en la aplicación.
Saludos
Rafa
El 11/02/2016 a las 4:42, alparkom . escribió:
Buenas chicos;
Estoy interesado en aprender algún lenguaje de programación para crear
aplicaciones de escritorio.
Estuve leyendo y vi a Java, Python y Ruby como los mas simples sin
embargo estos lenguajes son interpretados. Osea, lo ideal sería crear
programas con conexiones a bases de datos externas, por lo que debería
incluir los datos de dicha conexión. El tema está en que los archivos
de estos lenguajes quedan en el cliente, prácticamente sin
modificación, por lo que quien quiera ir y ver los datos de conexión,
ahí estarán.
Si bien, Java (que ya comencé a programar en el, por cierto) genera
bytecode, también pude obtener el source de los archivos .class, por
lo que los datos de conexión se podrían ver.
Python y Ruby son totalmente interpretados (creo, ya que aun no
comienzo a programar en ellos).
Entonces, que lenguaje serviría para crear aplicaciones de
escritorio?, y además permita lo que quiero hacer, osea, conectar
bases de datos externas con el software.
C++ sirve; de eso estoy seguro (casi).
Por cierto, la idea es utilizar ese mismo lenguaje para la conexión...
no utilizar recursos externos.
---
El software de antivirus Avast ha analizado este correo electrónico en busca de
virus.
https://www.avast.com/antivirus