collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: IDE para C++ e como criar GUI  (Lida 11810 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: IDE para C++ e como criar GUI
« Responder #15 em: 09 de Abril de 2017, 21:19 »
A não ser que tenhas requisitos especiais de performance, acho que hoje em dia não se justifica usar C/C++ ou qualquer outra linguagem compilada. A facilidade e rapidez com que se faz um programa em python ou TCL, mesmo com interface gráfica (tk), é brutal. E ainda se fica com algo que é basicamente multiplataforma sem recompilar, e que pode ser actualizada facilmente até mesmo em runtime.

Mesmo no que diz respeito à interface gráfica, o Tk tem muito mais performance do que vocês podem imaginar. Existe uma widget, o canvas, que suporta desenho vectorial, e aquela cena é rápida. Só ainda não encontrei um bom editor de GUIs Tk, senão recomendava-vos. Mesmo assim não faço em C/C++ o que posso fazer em (no meu caso) TCL.

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: IDE para C++ e como criar GUI
« Responder #16 em: 11 de Abril de 2017, 00:14 »
É uma aplicação para processamento de dados  e tempo em tempo real.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: IDE para C++ e como criar GUI
« Responder #17 em: 11 de Abril de 2017, 15:32 »
Isso por sí só não quer dizer nada, já fiz muitas aplicações de processamento de dados em tempo real em scripting.

Mesmo às vezes é mais "rentável" fazer um pequeno "core" em C e usá-lo a partir da linguagem do que ir fazer tudo em C. Por exemplo, tinha uma aplicação onde precisava de ordenar muitos milhares de nomes de forma a que parecesse "instantânea" ao utilizador, só que tinha que converter as letras acentuadas para a versão não-acentuada na comparação; neste caso fiz só uma função em C para fazer essa conversão e resto continuou a ser TCL (isto foi há mais de 10 anos, se fosse hoje nem me dava ao trabalho de fazer aquilo em C!).

Ainda há pouco tempo fiz profissionalmente uma aplicação gráfica em TCL/Tk que monitora em tempo real o estado de gravação e não só de milhares de chamadas telefónicas; o CPU que aquilo usa é tão baixo que nem se percebe no meio do "ruido".
Também profissionalmente fiz ainda uma aplicação de teste funcional e de stress em TCL/Tk, que se liga a um switch de telefonia IP (100% C/C++) e simula e monitoriza, em tempo real, um conjunto de IVRs ("robots" de telefonia, que fazem chamadas, atendem, metem audio a tocar, enviam e processam digitos, etc etc) assim como o estado do switch. Ela mete por exemplo 900 novas chamadas a serem estabelecidas por segundo e a ocorrer em simultâneo, envolvendo 900 IVRs de 3 tipos diferentes, todos constantemente a fazer alguma coisa, e a aplicação tem que processar os respectivos eventos de controlo (pode não parecer mas uma só chamada telefónica tem vários eventos associados, só o estabelecimento envolve 5 ou 6 eventos). Paralelamente a isto a aplicação ainda monitoriza e processa dados das chamadas obtidas directamente do switch por outros protocolos, e mostra constantemente tudo ao utilizador em tempo real numa GUI, incluindo reportar o que cada um dos 900 IVRs está a fazer. A comunicação com o switch é toda via TCP/IP. A aplicação foi feita em 2 processos, um que se liga ao switch e faz o teste a partir dum "script de telefonia" (inventei uma linguagem só para isto) e outro que tem a GUI e interage com o utilizador, ligando-se por TCP/IP ao 1º. No maquinão que eu tinha (a minha estação de trabalho) nunca vi esta aplicação ocupar mais de 20% de CPU, no total de ambos os processos (e mesmo assim já era preciso estar a puxar bem a sério por ela). Uma instância desta aplicação (podiam-se lançar N) era suficiente para deixar o switch em stress.

Numa linguagem de scripting podes carregar código em runtime. Normalmente tenho um botão "reload" que me re-carrega o código que altero, nem preciso de a fechar e voltar a abrir para ver as alterações (quando não são na parte que está actualmente visível ao utilizador).

Também recentemente tive que fazer um servidor de IV (infravermelhos) para o RaspebrryPI, um servidor que fala com um dispositivo USB que capta e transmite comandos IV. Acham que fui andar à procura do cross-compiler, montar o ambiente de desenvolvimento e fazer C/C++? Fiz apt-get install tcl , mapeei uma directoria de Windows no PI onde tinha o código que desenvolvia no meu editor de código favorito em Windows e em 15 minutos já estava a falar com o dispositivo.

"Vocês" falam muito em C/C++ e C# e tal, mas não fazem ideia do potencial, facilidade de utilização e flexibilidade duma linguagem de scripting...
« Última modificação: 11 de Abril de 2017, 15:45 por Njay »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: IDE para C++ e como criar GUI
« Responder #18 em: 11 de Abril de 2017, 16:35 »
Avr fanboy

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.481
Re: IDE para C++ e como criar GUI
« Responder #19 em: 11 de Abril de 2017, 16:59 »
So sei programar em C e C++, vergonha :/
Python esta na lista..

@NJay, o Python aparenta ser mais popular que o TLC. Queres comentar porque e que diferencas ah relativamente as comunidades e onde sao usadas as linguagens?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: IDE para C++ e como criar GUI
« Responder #20 em: 11 de Abril de 2017, 17:22 »
Isto é a minha opinião. O python é uma linguagem mais "certinha", com um aspecto mais tradicional, foi desenhada para ajudar a programar-se bem (boas práticas) e facilmente suporta o desenvolvimento de sistemas muito complexos e extensos. O TCL é um bocado como LISP, extrema flexibilidade, sem suporte a nenhum modelo especial de programação, é muito "directo" com poucos tipos de dados (string, lista e tabela de hash), e se queres fazer coisas complexas/extensas tens que saber o que estás a fazer para não te "perderes". Pouco mudou desde que foi desenhado praí nos anos 80; acho que há décadas que não há quebra de compatibilidade, e na verdade posso dizer que não foi alterado porque sendo muito simples não tem tido grande necessidade disso. O python tende a ser mais rápido que TCL, não que isso importe muito hoje em dia.

Para as coisas que faço (baixa/média complexidade) gosto mais de TCL, não só porque já programo naquilo há mais de 15 anos mas também porque a linguagem em si é muito pequena, a sintaxe extremamente simples, e o interpretador, já com uns quantos add-ons incluindo o Tk, é muito pequeno e não precisa de ser instalado, é só copiar (tenho um zip com o TCL8.3 p/ Win que tem só 3 MB, até está neste tópico: https://lusorobotica.com/index.php?topic=8032.0 ). O consumo de RAM to TCL/Tk é bastante baixo face ao que seria de esperar.

Penso que o TCL tem má fama por causa do fraco modelo de programação, muita gente nem o deve considerar "uma linguagem de programação a sério". Há quem diga que o melhor do TCL é o Tk :) (o Tk apareceu com o TCL). Pessoalmente pouco me importa, é duma produtividade e simplicidade atrozes e já tenho mtos anos daquilo. "With great power comes great responsability". A quem entrar agora até sou capaz de recomendar python por ser mais moderno, mas vale a pena aprender e dominar qualquer linguagem "genérica" e multiplataforma de scripting/interpretada. Quando é preciso muita performance, faço funções em C que são expostas em TCL; qualquer linguagem de scripting suporta isso.
« Última modificação: 11 de Abril de 2017, 17:27 por Njay »

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: IDE para C++ e como criar GUI
« Responder #21 em: 12 de Abril de 2017, 10:07 »
Njay, como ja tinha dito, parte da solução já esta feita em C/C++ e portanto a parte que falta não é difícil de completar mesmo em C/C++.
Mais acrescento que nem sei como fazer aquilo fora de C, tendo em conta que usa funções de POSIX/UNIX.

So preciso de uma forma de aquilo depois apresentar os dados que eu quero num ambiente gráfico...
Nada mais.
Solução ou desenvolver em Objective-C (que teria de aprender), ou dar uma cara ao programa em C.
Se não... vai mesmo pela linha de comandos e pronto...


O python é algo que utilizo, tal como o Arduino, quando é para fazer rápido, contudo agora estou entre a espada e a parede num projecto onde usei Python para um raspebrry. Alguém gosto do que fiz, e quer "vender aquilo".
Ora... so o bao comprar uma vez porque o código está la todo escarrapachado e não ha forma pelo que vi de criar um executável daquilo....
« Última modificação: 12 de Abril de 2017, 10:09 por Kristey »

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: IDE para C++ e como criar GUI
« Responder #22 em: 12 de Abril de 2017, 10:31 »
O python é algo que utilizo, tal como o Arduino, quando é para fazer rápido, contudo agora estou entre a espada e a parede num projecto onde usei Python para um raspebrry. Alguém gosto do que fiz, e quer "vender aquilo".
Ora... so o bao comprar uma vez porque o código está la todo escarrapachado e não ha forma pelo que vi de criar um executável daquilo....

http://stackoverflow.com/questions/261638/how-do-i-protect-python-code

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: IDE para C++ e como criar GUI
« Responder #23 em: 12 de Abril de 2017, 11:11 »
Então achas que se criares um executável daquilo ficas com o código protegido? Se é para copiar o produto, o que eu fazia era criar cópias do cartão SD... não tens como fugir, não interessa se o código está feito em brainfuck e encriptado por um computador quântico. O método de protecção mais simples parece-me ser colar ou mesmo soldar o cartão ao PI, e não permitir nenhum tipo de login. Depois podes adicionar mais uma barreira que é uma chave de hw. Mas a tudo é possível dar a volta; agora só depende de quanto vale a coisa e quanto custa cracká-la.

Em relação a meter um programa numa linguagem de scripting a falar com qualquer outro programa, há uma coisa muito simples que eu faço muito, que é simplesmente usar o stdio para essa interface. Em TCL é fácil, suponho que em python também.
« Última modificação: 12 de Abril de 2017, 11:14 por Njay »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: IDE para C++ e como criar GUI
« Responder #24 em: 12 de Abril de 2017, 13:43 »
Pensa antes em ter um sistema funcional e atractivo, e não rebentes com a usabilidade com esquemas de protecção estúpidos, mas fácil perder clientes porque o software mission critical rebentou por não conseguir ligar ao servidor mãe e bloqueou assim as licenças todas do que teres um sistema que é turn key, prático e funcional..
Podes compilar python, assim como eu a seguir pego no IDA e o desmonto...

Já crackei alguns programas muito específicos(e raros, e do tempo da avózinha que o criador já não existe e comprar uma licença é impossível) de simulação, e no fim do dia a validação de licenças acaba por ser um true ou false(há coisas bem mais complicadas que isso, mas o mais comum é que no fim ou fazes um jump para o programa, ou para uma mensagem de erro, ás vezes basta um nop..)
Avr fanboy

Offline msr

  • Mini Robot
  • *
  • Mensagens: 798
Re: IDE para C++ e como criar GUI
« Responder #25 em: 13 de Abril de 2017, 03:08 »
Sou suspeito mas, se já tens código C/C++ e queres uma GUI então mete-lhe Qt pra cima e não penses mais nisso ;)

Offline edeweld

  • Mini Robot
  • *
  • Mensagens: 540
Re: IDE para C++ e como criar GUI
« Responder #26 em: 13 de Abril de 2017, 03:36 »
Bem aprendi bastante coisa a ler este tópico  ;D

Isto, http://www.kmccontrols.com/component/kmcproducts/?view=product&alias=HW-KEY, andava à procura de uma coisa destas mas não sabia o nome!
Isto, https://www.tcl.tk/, não sabia que existia!

O meu contributo
Sendo eu amante do pinguim, Gnu/Linux, gosto bastante de ShellScript! Tenho bastantes scripts nos meu private servers!
Para programar, o que aprendi recentemente na escola, é que C é bom para PIC e Assembly ainda melhor! Mas segundo o que li existem outras vias. Não sei, ainda estou a aprender e a opinião que tenho ainda é muito embrionária!

Programação Web, conforme já disseram é a melhor opção se queremos que a app tenha futuro e também se precisamos de portabilidade.
Também como já foi dito, criar um servidor web não tem nada de complicado e caro. Por isso é só criar o ambiente, e decidir o que vai ser feito pelo servidor e o que fica para fazer do lado do cliente. Aí entra o tipo de linguagem a utilizar.
Para este tipo de ambiente obriga a ter que saber bem mais do que uma linguagem de programação e estar preparado para saber montar redes, arranjar hardware e lidar com falhas de segurança e coisas do gênero!