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

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



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


Reply to: