Desenvolvimento

Iniciado por noturno99, 16 de Janeiro de 2010, 16:09

tópico anterior - próximo tópico

noturno99

Olá pessoal, estou com uma dúvida e gostaria da ajuda de vocês.
Eu gosto bastante do mundo Gnu/Linux, mas, tem algo que ainda não tenho esclarecimento, é sobre desenvolver programas, aplicativos, qualquer coisa.
Eu tenho um conhecimento em C, queria saber o que preciso saber para desenvolver algum programa com interface, qual linguagem preciso aprender e quais ferramentas usar, queria sair um pouco do terminal e partir para alguma API. Por exemplo, como os aplicativos que temos: amsn etc.. todos eles possuem uma interface bonita. Queria saber o caminho das pedras para poder pesquisar, basta alguém dar uma explicação para eu saber onde pesquisar.
Outra dúvida, existem um programa muito bom chamado Cheese, ele serve para gerenciar o uso da webcam. Fiquei curioso, como que se faz um programa desse tipo? Olhei o código e entendi muita coisa, mas ainda faltam muitas... preciso saber como funciona o Input/output do sistema Linux para desenvolver algo desse tipo? Percebo que ele foi feito em grande parte no C. Alguém poderia dizer quais ferramentas pode-se usar para fazer programas desse tipo?
Queria saber quais linguagens que podem ser usadas para criar programas com interface gráfica, python faz isso? Pode ser feito com C / C++?
Para entender sobre funcionamento do sistema Linux, onde acho documentação?
grato,
Bruno

HugoSalvador

Caro Bruno,

Estou mais ou menos na mesma situação que você, mas migrei para GNU/Linux há uns 3 anos.

Programo mais por diversão, nada profissional. Em Windows já usei Delphi, VB e C#. Aí vai o que achei no linux:

Ainda não encontrei nada tão fácil quanto o as ferramentas citadas acima, onde temos o GUI junto do código fonte. Via de regra usamos um IDE para gerar interface gráfica com uma biblioteca como o GTK+ e outro IDE para fazer o código fonte e associa-lo ao GUI.

Para quem está acostumado ao C# existe um programa equivalente ao Framework do Windows, ele se chama Mono (www.mono-project.com). Se procurar na central de programas do Ubuntu vai achar alguns IDEs, mas até hoje ainda não me achei no que usar.

Uma dica boa é o Eclipse,  que tem versão Windows também. Mas como faço as coisas sozinho e de forma não profissional não consegui ainda desvendar os segredos desta ferramenta.

Bem, espero ter dado pelo menos caminhos para sua busca no google :-)

noturno99

Pois é, amigo. Eu gostaria uma coisa simples, como um programa que pudesse salvar datas de aniversário por exemplo e que fosse feio com botões, entradas de texto, coisa simples mesmo.
Até agora dei uma olhada em gtk+, é bom, mas queria ouvir outras opiniões para saber o que existe por aí.
Também queria saber por exemplo, se eu quiser desenvolver um programa para controlar uma webcam, o que eu preciso conhecer para fazer isso??
Coisas desse tipo que me interesso, sabe...
Programas simples com janelas e botões...
é isso!
quem puder me ajudar, ficarei grato!
Valeu amigão!
abraço

pablomadias

#3
Rapaz, já trabalhei mt tempo com Delphi, no Windows e estou avaliando (estou começando a explorar agora) uma interface chamada lazarus. Ele é baseado no free pascal, como o delphi e tem uma interface gráfica que parece boa... instala ele pelo gerenciador de pacotes e veja o que acha, ah depois posta aí o que achou...
Ubuntu User # 31529 - IBM ThinkCentre
Celeron D 1,5GiB RAM 1,08TiB HD
GNU/Linux Ubuntu 9.04 Karmic Koala

noturno99

já ouvi falar dela, é baseada no free pascal. já pensei em dar uma olhada, vou ver se instalo depois.
estou estudando um pouco de java com netbeans. muito bom tbm cara. você pode até add o suporte a c++ e fazer seus trabalhos. creio que para interface gráfica, o java é mais facil e até bonito.
vou continuar estudando para ver.
gostei da sua opinião, obrigado.

igtukra

Trabalhei por 8 anos com programação Delphi em ambiente Windows. Migrei no fim de 2009 para o unbutu e passei a utilizar o Lazarus/Free Pascal.
Com um mínimo de trabalho consegui me adaptar perfeitamente a ele. Entretanto, se tu é programador iniciante recomendo que já se aplique em aprender um linguagem que seja mais "linux"; algo nativo entende? tipo Java ou Pyton. No início talvez seja um pouco mais dificil - mas vai ser assim com todas as linguagens mesmo, então pq não aprender uma linguagem robusta e de perfeita integração ao Linux?
Ta ai minha dica. Não deixa de dar uma olhadinha no Lazarus, mas procura te fixar no Pyton ou Java.
Abraço e boa sorte!

irtigor

#6
Pode até dar uma olha no freepascal, lazarus e essas coisas, não mata, mas se você tá começando, começa "com estilo". Pega e aprende uma linguagem de uso geral que tenha bons compiladores no maior numero de sistemas possíveis e que de preferencia possua uma licença permissiva. Se você já conhece C continua com ela.

Para criar interfaces gráficas você pode usar um toolkit, vou citar 3, TK, QT e GTK+. Você vai conseguir trabalhar facilmente com qualquer um desses em C. O ideal é que você aprenda implementar as chamadas e todo o resto manualmente, ou seja, digitando e não arrastando caixas de diálogos. Mas se você deseja o jeito """facil""" ainda pode usar construtores gráficos como o
Glade e o Qt designer. O Qt designer é mais completo e "intuitivo". Glade trabalha com um conceito diferente para criação das interfaces. Mais no final tudo é questão de gosto.


http://en.wikipedia.org/wiki/Widget_toolkit
http://en.wikipedia.org/wiki/Tk_%28framework%29
http://en.wikipedia.org/wiki/Qt_%28toolkit%29
http://en.wikipedia.org/wiki/GTK%2B
http://en.wikipedia.org/wiki/Graphical_user_interface_builder
http://glade.gnome.org/
http://qt.nokia.com/products

Isso já deve servir para te dar um norte.

Se resolver usar GTK com Glade tenho alguns tutoriais que podem servir:

http://www.cin.ufpe.br/~cinlug/wiki/index.php/Mantendo_A_Sanidade_Com_O_Glade#Usando_o_Glade_3
http://tadeboro.blogspot.com/2009/09/glade3-tutorial-1-introduction.html
http://pilinha.wordpress.com/2009/01/31/desenvolvimento-para-plataforma-gnome-conceitos-basicos-mini-tutorial-gtk/
http://techie-blogger.com/getting-started-with-gtk-and-glade-for-gui-programming/
http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html
http://gtk-br.welrbraga.eti.br/tutorial/tutorialglade-20040727.pdf

O material não está totalmente atualizado mas como são apenas introduções... Alguns conceitos, inclusive, você deve usar em outros toolkits.

HugoSalvador

Citação de: irtigor online 05 de Maio de 2010, 02:49
Pode até dar uma olha no freepascal, lazarus e essas coisas, não mata, mas se você tá começando, começa "com estilo". Pega e aprende uma linguagem de uso geral que tenha bons compiladores no maior numero de sistemas possíveis e que de preferencia possua uma licença permissiva. Se você já conhece C continua com ela.

Para criar interfaces gráficas você pode usar um toolkit, vou citar 3, TK, QT e GTK+. Você vai conseguir trabalhar facilmente com qualquer um desses em C. O ideal é que você aprenda implementar as chamadas e todo o resto manualmente, ou seja, digitando e não arrastando caixas de diálogos. Mas se você deseja o jeito """facil""" ainda pode usar construtores gráficos como o
Glade e o Qt designer. O Qt designer é mais completo e "intuitivo". Glade trabalha com um conceito diferente para criação das interfaces. Mais no final tudo é questão de gosto.


http://en.wikipedia.org/wiki/Widget_toolkit
http://en.wikipedia.org/wiki/Tk_%28framework%29
http://en.wikipedia.org/wiki/Qt_%28toolkit%29
http://en.wikipedia.org/wiki/GTK%2B
http://en.wikipedia.org/wiki/Graphical_user_interface_builder
http://glade.gnome.org/
http://qt.nokia.com/products

Isso já deve servir para te dar um norte.

Se resolver usar GTK com Glade tenho alguns tutoriais que podem servir:

http://www.cin.ufpe.br/~cinlug/wiki/index.php/Mantendo_A_Sanidade_Com_O_Glade#Usando_o_Glade_3
http://tadeboro.blogspot.com/2009/09/glade3-tutorial-1-introduction.html
http://pilinha.wordpress.com/2009/01/31/desenvolvimento-para-plataforma-gnome-conceitos-basicos-mini-tutorial-gtk/
http://techie-blogger.com/getting-started-with-gtk-and-glade-for-gui-programming/
http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html
http://gtk-br.welrbraga.eti.br/tutorial/tutorialglade-20040727.pdf

O material não está totalmente atualizado mas como são apenas introduções... Alguns conceitos, inclusive, você deve usar em outros toolkits.

irtigor,

Não sei os outros, mas no meu caso que programo por diversão, com programas simples acho complicado isso de fazer as coisas na mão. Passei por Delphi, VB e parei no C# usando VCE (Visual C# Express). Tentei usar o Mono Developer, o Eclipse e mais umas ferramentas voltadas para Python, mas ainda não achei nada integrado (GUI e código de programação) e fácil como o VCE e multiplataformas.

Adorei o Pytho com Django para desenvolvimento web e gostei de umas ferramentas como o Eric e Boa Constructor, mas ainda não achei o que procuro.

irtigor

@HugoSalvador não vejo problema nenhum em usar facilitadores, mas recomendar esse tipo de coisa para quem está começando é um crime.

Todo mundo fala usa isso, usa aquilo mas não explica o que é, fala os pontos "fortes" mas nem sequer menciona coisas como "framework/IDE/xyz pode ser discontinuado", "ele pode virar pago", "você não tem autonomia sobre o código" entre outras mil desvantagens que podem existir tanto na linguagem quanto nas ferramentas, mas que geralmente quem está começando não é capaz de ver, como não é capaz de distinguir o que é um framework, um toolkit ou uma IDE. Não é produtivo remar contra a maré, primeiro você tem que aprender lógica de programação, depois uma linguagem de programação e assim suscetivamente.

Mas no final é como você disse "programo por diversão", se ele perguntasse como programar por diversão eu responderia que hoje não é mais necessário programar para fazer programas simples, que muitos frameworks/ide/whatever são capazes de gerar todo o código só arrastando e apertando botões. Mas não foi isso o que eu li/entendi. Ele queria saber o que era necessário para fazer uma interface gráfica e se era possível de se fazer usando c ,c++ ou python e foi essa a pergunta que eu respondi.

rudregues

Embarcando no assunto, tenho uma dúvida:
Tem como fazer uma interface gráfica usando apenas C?
É realmente necessário usar uma outra linguagem, que seja de alto nível pra isso? (digo mais pela dificuldade mesmo)

É que to aprendendo a programar em C e sempre tive muito interesse em compilar um certo tipo de programa...    ;D
Gentoo — Controle total sobre o sistema.

irtigor

Citação de: rudregues online 13 de Maio de 2010, 18:50
Tem como fazer uma interface gráfica usando apenas C?
É realmente necessário usar uma outra linguagem, que seja de alto nível pra isso? (digo mais pela dificuldade mesmo)
Tem e é fácil, como eu disse você tem que usar um biblioteca/api/toolkit. Cito mais duas wxWidgets e win32 (somente para windows). E existem ferramentas que buscam facilitar o uso mas como já disse, ao menos no começo, é melhor implementar tudo na mão. Depois você corre atrás de ferramentas RAD, IDEs mais potentes ou seja lá o que você preferir.

rudregues

Citação de: irtigor online 13 de Maio de 2010, 20:36
Citação de: rudregues online 13 de Maio de 2010, 18:50
Tem como fazer uma interface gráfica usando apenas C?
É realmente necessário usar uma outra linguagem, que seja de alto nível pra isso? (digo mais pela dificuldade mesmo)
Tem e é fácil, como eu disse você tem que usar um biblioteca/api/toolkit. Cito mais duas wxWidgets e win32 (somente para windows). E existem ferramentas que buscam facilitar o uso mas como já disse, ao menos no começo, é melhor implementar tudo na mão. Depois você corre atrás de ferramentas RAD, IDEs mais potentes ou seja lá o que você preferir.
Caraca, muito obrigado irtigor!
É que esse ano to muito sem tempo, então quero aprender só C mesmo, pra depois partir pra C++ e python.
(E é claro que eu quero fazer tudo na mão! Quero aprender de verdade pra poder dominar bem.)
:D
Gentoo — Controle total sobre o sistema.

dtomadon

Olá galera aproveitando o tópico, faço tecnologia em segurança da informação, Fatec s.c.s , tenho aula de programação em algorítmo e pascal, preciso fazer uma agenda telefonica com entrada para 100 nomes alguém tem um modelo para me basear, porque a agenda precisa ter menu de inclusão , exclusão e consulta. e essa parte o professsor deixou por nossa conta pesquisar e fazer.Aagradeço desde já.
BacKTrack5 64 bits com Vídeo SIS

kernel omnislash 1.4.4 64 bits , Que venha o 5º Semestre !!!