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

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



El día 11 de febrero de 2016, 7:17, Rafael Cantos Villanueva
<rafael@rafaelcantos.es> escribió:
> 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.
>

Venga, no han entendido lo que quiero.

Explicado de forma simple; si hago una conexión en Java, el archivo
.java tendrá los datos de conexión (en caso de usar MariaDB, se
debería escribir en el .java la dirección del servidor, el usuario de
MariaDB, la contraseña del mismo y el puerto usado)... entonces, que
pasa si descompila dicho el .class que genera Java? Tendrá los datos
de conexión al servidor de MariaDB y podrá hacer con ellos lo que
quiere, desde otra aplicación automática que ocupe la base de datos,
hasta eliminar toda la base de datos, y todo con una simple Query.
Si te referías a que cada "instalación" del software tenga una
conexión distinta a la base de datos (de esta forma, si se conecta al
servidor y elimina algo, se "auto-perjudicaría") no es una opción.

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.

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