Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: OmarHack en 22 Abril 2013, 01:07 am



Título: Programación Web.
Publicado por: OmarHack en 22 Abril 2013, 01:07 am
Quería preguntaros que herramientas conocéis para la programación de webs en C++. Y si queréis dar también opiniones. ¿Se puede hacer completamente en C++ sin que el compilador recurra a transformar el código en html?
Pd: No quiero que me recomendéis otros lenguajes, si ese fuera el caso pondría el tema en otro foro en vez de en el de C++. Ya pienso aprender php, pero de momento estoy con C++.
Pd2: Si alguien también sabe como añadir otros lenguajes al código de C++ le agradecería que me lo explicara.
Un saludo.


Título: Re: Programación Web.
Publicado por: BlackM4ster en 22 Abril 2013, 15:21 pm
Web en C++¿?
Supongo que querrás decir un servidor web en c++ no?


Título: Re: Programación Web.
Publicado por: 0xDani en 22 Abril 2013, 15:33 pm
Respuesta a la PD2:

El código C++ se puede mezclar con varios otros lenguajes, con ensamblador, mediante inline assembly (no es estańdar, pero casi todos los compiladores lo soportan de alguna forma) y con algunos lenguajes de scripting, como Python, mediante librerías externas.

Saludos.


Título: Re: Programación Web.
Publicado por: OmarHack en 22 Abril 2013, 16:00 pm
El código C++ se puede mezclar con varios otros lenguajes, con ensamblador, mediante inline assembly (no es estańdar, pero casi todos los compiladores lo soportan de alguna forma) y con algunos lenguajes de scripting, como Python, mediante librerías externas.
Muchas gracias, cuando hice la pregunta pensaba en ensamblador, html y php. Ya me resolviste una de las tres.  :)

Web en C++¿?
Supongo que querrás decir un servidor web en c++ no?
No no, me imagino que haría falta añadirle algún tipo de extensión a un navegador de los corrientes o quizás algún software a un servidor (Para que funcione en el servidor de la manera que lo hace php.) para que corriera directamente código C++.
Se que hay librerías o ides que transforman códigos de C++ en html o php pero eso me parece una tontería. Así se pierde control sobre la web. Sería una buena manera de no tener que descargarse programas y en vez de abrir un programa en el escritorio hacerlo directamente en la web no creéis? Así se eliminarían los problemas de compatibilidad de hardware y habría un lenguaje de programación para web y escritorios sin tener que recurrir a otros para nada.
Un saludo.


Título: Re: Programación Web.
Publicado por: mr.blood en 22 Abril 2013, 18:28 pm
Tienes que hacer un servidor Web. Listen al puerto 80, recoger y procesar datos, enviar las cabeceras HTTP, etc.

Sa1uDoS


Título: Re: Programación Web.
Publicado por: OmarHack en 22 Abril 2013, 18:33 pm
Pregunté por herramientas no por el método para hacerlo. Ya sean Ides que hagan eso o librerías para ello. De todas formas gracias.
Un saludo.


Título: Re: Programación Web.
Publicado por: WHK en 22 Abril 2013, 18:56 pm
muy buena pregunta, de hecho hace mucho tiempo que quise hacer lo mismo pero quedé en nada.

Lo que tu necesitas es un framework en c++ para aplicaciones WEB, hay para nodejs, ruby on rails, perl, python, etc etc pero para c++ nunca.

Por lo menos ya tienes la palabra clave, talves googleando encuentres algo primero que yo.

-----
Edito: te gané: http://pablasso.com/200708/wt-framework-de-desarrollo-web-en-c/

Saludos.


Título: Re: Programación Web.
Publicado por: OmarHack en 22 Abril 2013, 19:13 pm
Realmente no me ganaste porque antes de crear el tema estuve buscando y di con la misma página que me acabas de poner jajaja la tengo en favoritos y todo. Lo malo es que ese proyecto transforma el código a html y no quiero que haga eso.  :-\ Como mucho que use las cabeceras de html pero así es un desperdicio de tiempo. Se tarda más (ya sabiendo programar) en aprender el uso de las librerías que en aprender todo el lenguaje html. Y eso sin hablar del tiempo perdido programando.  :xD
Sí nadie sabe de nada parecido en cierto tiempo abriré un nuevo tema para desarrollarlo y a ver quien me echa una mano. No creo que sea excesivamente complicado guiándose por como funcionan otros frameworks. Es un proyecto que hay que pensar mucho, sobre todo si es factible ya que de momento nadie lo ha echo, y por algún motivo será, digo yo. Si es posible se ahorrará muchísimo tiempo a programadores en C++ y muchos aprenderán C++ por la posibilidad de programar a nivel escritorio y web en el mismo lenguaje.
Un saludo.


Título: Re: Programación Web.
Publicado por: WHK en 22 Abril 2013, 19:28 pm
Pues asi es, esos frameworks tienen mas helpers que librerias utiles, porque pretenden llevarte a un nivel mas alto de programación yal como lo hace en parte codeigniter.

Pero porque no haces tu uno y lo hechas a correr con fastCGI? compilas los .exe y los sirves en cualquier servidor a traves de CGI, los llamará desde la shell pasandole los parámetros de REQUEST, de ahi los tomas y los procesas, te haces un par de librerias estandares como toHtml, sqlConnect no se.

El problema de que la gente aprenda c++ en ves de php es la flexibilidad y la tolerancia a errores, se necesita muchisima mas destreza programar en c++ que en php o perl, no debes preocuparte por los tipos, los arreglos no se definen en 500 lineas, los errores son mas controlables, etc.

Dime si es lo mismo escribir esto en php a c++:
Código
  1. <?php echo strlen(@file_get_contents('https://www.google.cl/')); ?>

Crea una petición GET al servidor de google utilizando SSL e imprime solo la cantidad de carácteres sin importar si vienen carácteres nulos o viene un string vacio y declara automaticamente su tipo y mas de encima si falla la conexión no retorna nada y tampoco da problemas con echo y strlen.

Esto en c++ llevaría el dia completo hacerlo de cero.


Título: Re: Programación Web.
Publicado por: OmarHack en 22 Abril 2013, 20:05 pm
Muy buena idea, no pensara en el fastcgi. Entonces no sería tan difícil hacer un software híbrido entre FastCGI y un Ide. No se necesitaría nada más, solo unos pequeños ajustes en el código que devolvería el fastcgi (integrar los programas en la web, algo así como el flash player entre otras cosas), y se podrían hacer webs con juegos que necesiten más requisitos del que el cliente dispone, ya que al ejecutarse directamente en el servidor el único problema sería la conexión a internet.
La verdad es que la diferencia de código y la complejidad es abismal.  :xD
De todas formas sería útil para ahorrar a programadores en C++ aprender html y php y poder hacer webs y subirlas a un servidor "en minutos". En minutos una web sencilla de todo claro está. Parece un proyecto que tendría éxito y a demás se usaría el propio código de C++. ¿Qué opináis?


Título: Re: Programación Web.
Publicado por: WHK en 24 Abril 2013, 14:27 pm
Opino que es imposible, saber php no me ahorra tener que aprender html o css, cuando programas en cualquier lenguaje siempre necesitarás la parte de presentación, la vista siempre será en html y eso es un estandard a nivel mundial.

Por ejemplo hay websites hechos en nodejs, python, perl, etc pero todos terminan entregando una capa de presentación en html, css y opcionalmente javascript.

Saber c++ no evitará que tengas que aprender html, solo hará que el lenguaje interpretado o ejecutado por el servidor sea diferente pero todo lo demás será lo mismo.

Lo unico que ganas programando en c++ es velocidad y ahorro en el uso de recursos ya que no hay interpretador, es código compilado que trabajará directamente con el procesador y la memoria ram, esa es la unica ventaja.

Vease php hiphop:
http://en.wikipedia.org/wiki/HipHop_for_PHP


Título: Re: Programación Web.
Publicado por: OmarHack en 24 Abril 2013, 14:43 pm
Cuando tenga bastantes más conocimientos voy a probar a ver que sale. Pero no creo que el html sea imprescindible, cuando te conectas a un servidor via vpn no usas html, así que sería algo parecido.
Pd: Si me equivoco en algo dímelo que no soy un experto. Un saludo.


Título: Re: Programación Web.
Publicado por: Arkangel_0x7C5 en 24 Abril 2013, 16:26 pm
Cuando tenga bastantes más conocimientos voy a probar a ver que sale. Pero no creo que el html sea imprescindible, cuando te conectas a un servidor via vpn no usas html, así que sería algo parecido.
Pd: Si me equivoco en algo dímelo que no soy un experto. Un saludo.
Pero tu estas hablando de webs, que van a ser accedidas con un navegador, y este navegador interpreta html. Si no quieres usar html para tu web, tendrias que obligar a que se visualizara tu pagina con un programa especifico diferente al navegador

Saludos


Título: Re: Programación Web.
Publicado por: OmarHack en 24 Abril 2013, 18:00 pm
Lo que digo es una especie de conversor en el servidor para que el navegador pueda interpretarlo. Pero no conozco a fondo los navegadores, por eso tengo que saber mucho más.


Título: Re: Programación Web.
Publicado por: Arkangel_0x7C5 en 24 Abril 2013, 18:24 pm
tu te refieres a que al programar tu escribas como si fueras a hacer una interface grafica, con sus botones, frames, textBox,lavel y demas no?
Y que luego esta api se encargara de pasar todo esto a html y javascript

Saludos


Título: Re: Programación Web.
Publicado por: mr.blood en 24 Abril 2013, 20:03 pm
No entiendo que quieres hacer. No quieres usar HTML y, como mucho accedes a usar HTTP? Pues tendras que crear tu propio navegador...

Lo que digo es una especie de conversor en el servidor para que el navegador pueda interpretarlo. Pero no conozco a fondo los navegadores, por eso tengo que saber mucho más.

Todo se basa en el protocolo HTTP y en HTML. Puedes hacer webs en cualquier lenguaje (C, C++, bash, Perl, Python, ASM, VB, etc). En algunos lenguajes es mas sencillo (PHP, Perl,...), pues ya tienes librerias preparadas, y en otros mas complejo (C, C++, VB,...), pues tienes que encargarte de las conexiones, del protocolo, de almacenar los logs, de todo.

Sa1uDoS


Título: Re: Programación Web.
Publicado por: OmarHack en 24 Abril 2013, 20:38 pm
Creo que no me entendéis. Imaginaros que estáis en linux controlando un ordenador remotamente que tiene windows instalado, eso no implica que necesitéis windows para visualizarlo. Podeis ejecutar tranquilamente un programa.exe por que linux se encarga de ordenar acciones a windows no ejecutarlas.
Pues de la misma forma haciendo una conexión con el servidor no se necesita html para ver una web en C++ e interactuar con ella. Se le dan ordenes al servidor y este las ejecuta y te muestra los resultados. ¿Seguís pensando que es necesario html?


Título: Re: Programación Web.
Publicado por: dank_ en 25 Abril 2013, 04:17 am
Creo que no me entendéis. Imaginaros que estáis en linux controlando un ordenador remotamente que tiene windows instalado, eso no implica que necesitéis windows para visualizarlo. Podeis ejecutar tranquilamente un programa.exe por que linux se encarga de ordenar acciones a windows no ejecutarlas.
Pues de la misma forma haciendo una conexión con el servidor no se necesita html para ver una web en C++ e interactuar con ella. Se le dan ordenes al servidor y este las ejecuta y te muestra los resultados. ¿Seguís pensando que es necesario html?

Pero si implica que necesitas Windows, desde el momento que que Linux le está dando ordenes a Windows.  :silbar:

Sinceramente no veo ningún sentido a lo que pides, HTML lo aprendes en medio día, vamos menos de lo que lleva este tema abierto, y CSS quizás un par de días.

Querer hacer todo en C++ porque ya sabes C++ sencillamente no tiene sentido pues para eso tendrás que aprender a usar un Framework específicamente creado para ello con una enorme cantidad de métodos y a la larga dicho framewrok como mínimo te toma más tiempo aprenderlo, que aprender HTML.

Si lo que buscas es que una página web le de ordenes a un servidor que se las pase a C++ y este le responda en plan OnLive, lo único que consigues es darle una caga pesadísima a C++ perdiendo justamente la principal ventaja de C++ frente a los lenguajes interpretados, la velocidad.


Título: Re: Programación Web.
Publicado por: Wofo en 25 Abril 2013, 12:22 pm
Cito lo que tú mismo dijiste:

Se le dan ordenes al servidor y este las ejecuta y te muestra los resultados.

La frase clave es "te muestra los resultados". Tienes que tener en cuenta que los navegadores reciben HTML y lo transforman en algo visible. Esto quiere decir que tienes que enviar HTML al navegador. Visto por el otro lado, si usas algo que no sea HTML, ningún navegador podrá mostrarlo.

El caso de las VPN es distinto, porque ahí no hay un navegador de por medio.

Espero que se vaya haciendo todo más claro.

Saludos,
Wofo.


Título: Re: Programación Web.
Publicado por: WHK en 25 Abril 2013, 13:59 pm
Man, documentate mas sobre el protocolo http y html, ambos trabajan juntos, no hay explorador que muestre una web sin html eso no existe a menos que uses flash o silverlight pero no creo que quieras hacer eso porque tendrias que aprender mas basura.

Es imposible hacer una web sin html a menos que la hagas en texto plano, tampoco puedes mandar instrucciones al ejecutable de windows porque eso podría comprometer la seguridad de su sistema a menos que hagas un software muy colosal y un interpretador de comandos muy genial que costaría facilmente sus par de decenas de años tal como lo hizo webkit o gecko.

Estas no un poco sino bastante perdido, siempre tendras que aprender html porque es el estandard mundial, todos los exploradores del mundo se guian por este estandard y está muy ligado al protocolo de conexión http, de ahi derivan otros lenguajes pero la base siempre será html.


Título: Re: Programación Web.
Publicado por: mr.blood en 25 Abril 2013, 22:01 pm
No quieres usar ni HTML ni HTTP? Por que quieres saltarte los estandar? Por algo son utilizados, digo yo...

Por mi parte, no le doy mas bola a este tema que me parece sin sentido, ya le intente explicar al usuario que no es factible y nada ;).



¿Seguís pensando que es necesario html?

La pregunta es: ¿Por que tu no lo ves necesario?

Si no usas HTTP y no usas HTML, deberias crear un protocolo y un "lenguaje" para hacer webs, dudo que fuera ni la mitad de fiable y simple ;).

Como ya te dijeron en aprender HTML tardas 2 dias como maximo...

Sa1uDoS


Título: Re: Programación Web.
Publicado por: OmarHack en 25 Abril 2013, 22:51 pm
Seguís empeñados en que no se puede, pero como vas a tener que tener windows para controlarlo desde un linux. '-- No hace falta ni http para ver un ordenador remotamente ni html hasta donde yo sé.  :xD


Título: Re: Programación Web.
Publicado por: #!drvy en 25 Abril 2013, 23:07 pm
Citar
No hace falta ni http para ver un ordenador remotamente ni html hasta donde yo sé.

Omar, tanto el servidor como el navegador esperan recibir unos headers HTTP para responder correctamente. No compares un programa de control remoto con un navegador/servidor web. Trabajan sobre protocolos diferentes..

http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol

Saludos


Título: Re: Programación Web.
Publicado por: OmarHack en 26 Abril 2013, 01:36 am
Eso es lo que digo. ¿Y por que las webs no pueden ser como pantallas remotas de otros ordenadores? ¿Casi que estarían mejor no? Parece que la gente escapa de lo nuevo cuando todos en el fondo buscan innovar.


Título: Re: Programación Web.
Publicado por: #!drvy en 26 Abril 2013, 03:20 am
Citar
¿Y por que las webs no pueden ser como pantallas remotas de otros ordenadores?

Y que sentido tiene eso ? Es que no le veo ningún sentido..

Saludos


Título: Re: Programación Web.
Publicado por: mr.blood en 26 Abril 2013, 09:38 am
Seguís empeñados en que no se puede, pero como vas a tener que tener windows para controlarlo desde un linux. '-- No hace falta ni http para ver un ordenador remotamente ni html hasta donde yo sé.  :xD

Eso no es lo que tu explicaste en un principio, o creo que ninguno de nosotros lo entendio asi. El titulo indica otra cosa bien distinta tambien.



Eso es lo que digo. ¿Y por que las webs no pueden ser como pantallas remotas de otros ordenadores? ¿Casi que estarían mejor no? Parece que la gente escapa de lo nuevo cuando todos en el fondo buscan innovar.

Nadie huye de lo nuevo, pero nadie quiere perder su tiempo reinventando la rueda. Tu quieres? Genial, pero nadie dira que es una buena idea. ;)

Sa1uDoS


Título: Re: Programación Web.
Publicado por: Wofo en 26 Abril 2013, 10:16 am
Por otro lado, visto desde el punto de vista de la eficiencia, enviar la pantalla de un computador es mucho más pesado que enviar la página web como se hace por el método tradicional.

No sé... A mí HTML5 + CSS3 + javascript me va genial. No veo la necesidad de que exista algo distinto.

Saludos,
Wofo.


Título: Re: Programación Web.
Publicado por: OmarHack en 26 Abril 2013, 12:04 pm
Si no se prueba no se sabe, lo dicho, cuando tenga más conocimientos lo haré a ver que sale jajaja.
Un saldo.


Título: Re: Programación Web.
Publicado por: WHK en 26 Abril 2013, 13:41 pm
Creo que ahora te voy entendiendo mejor, lo que tu quieres es un telnet o un ssh sin privilegios donde aparezca una interfaz para consola o algo por el estilo sin la necesidad de hacer algo web, en ese caso el titulo del post está mal hecho, tu no necesitas un sitio WEB, tu necesitas un servicio, cuando dices WEB estas hablando forzadamente de HTTP y HTML y sus derivados, la palabra web es un conjunto de estandares y dentro de ese conjunto va HTML, si tu haces un servicio de conexión para contenidos entonces ya no estás hablando de un sitio WEB.

Eso tiene sus ventajas y desventajas, la desventaja es que ya no podrias mostrar imagenes y estilos enriquecidos como animaciones fluidas a menos que hagas tu propia consola de interpretación que incluya estas cosas y forzadamente tendrias que aplicar tecnologias que utilicen el hardware como directx, opengl, etc, crear un interpretador de redenderizado etc.

Es bastante trabajo.

Que ganas?
Aprender mucho y comprenderás como está construido todo el circuito de una web desde el nivel mas bajo hasta el mas alto.

Que pierdes?
Que casi nadie utilizará tu software, solo será de provecho personal ya que http y html te ahorran todo lo que quieres hacer y pasarias a ser parte de la deep web.


Título: Re: Programación Web.
Publicado por: OmarHack en 26 Abril 2013, 18:21 pm
Eso es justo lo que quiero hacer, pero acceder directamente desde el navegador.
Perdonan si me he expresado mal, no sabía como explicarlo.


Título: Re: Programación Web.
Publicado por: #!drvy en 26 Abril 2013, 18:23 pm
Citar
Eso es justo lo que quiero hacer, pero acceder directamente desde el navegador.

Empieza creado tu propio navegador xD

Saludos


Título: Re: Programación Web.
Publicado por: mr.blood en 26 Abril 2013, 20:20 pm
Eso es justo lo que quiero hacer, pero acceder directamente desde el navegador.
Perdonan si me he expresado mal, no sabía como explicarlo.

Volvemos a lo mismo? xD Crea tu propio navegador con otro protocolo, o utiliza los estandares para que funcione en cualquier navegador ;).

Sa1uDoS


Título: Re: Programación Web.
Publicado por: WHK en 26 Abril 2013, 22:17 pm
Pues hacer eso desde el navegador es imposible porque el navegador interpreta unicamente html como lenguaje base para comenzar a interpretar otros.


Título: Re: Programación Web.
Publicado por: OmarHack en 26 Abril 2013, 22:48 pm
Tiene que llevar muuucho trabajo, de momento a avanzar con librerías gráficas y después ya se verá si puedo conseguir algo parecido.