Autor Tópico: Software para Programação - Tópico Geral  (Lida 6908 vezes)

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

Offline Nhoqs

  • Ken-Ohki
  • Sup, niggas
    • Ver perfil
    • IVBin
Software para Programação - Tópico Geral
« Online: Outubro 30, 2012, 11:56:43 am »
O Coda não é IDE, NinjaSniper. Eu uso bastante o Coda quando estou alterando sites ou sistemas web que o deploy não tem versionamento.


Ele, o TextWrangler, o TextMate, o Sublime, todos são Editores de Texto com suporte extra.


IDEs tem ambientação completa, com navegador de classes, testes e deploy, bastante coisa.
Vira e mexe e eu volto aqui.

Re:Software para Programação - Tópico Geral
« Resposta #1 Online: Outubro 30, 2012, 01:35:34 pm »
O Coda não é IDE, NinjaSniper. Eu uso bastante o Coda quando estou alterando sites ou sistemas web que o deploy não tem versionamento.


Ele, o TextWrangler, o TextMate, o Sublime, todos são Editores de Texto com suporte extra.


IDEs tem ambientação completa, com navegador de classes, testes e deploy, bastante coisa.

Eu sei, mas para mim tanto faz ser IDE ou não pois só mexo com web atualmente. Uso o Netbeans como editor + busca e autocompletar no projeto inteiro.
Tenho o SVN separado, pois não gosto do jeito que o Netbeans gerencia conflitos.
Ocasionalmente mexo com Python, mas uso o editorzinho dele pois é pouca coisa. Testei o Aptana e achei legal também.

EDIT: Não sei se cabe no tópico: distribuição global de navegadores e sistemas operacionais http://marketshare.hitslink.com/
« Última modificação: Outubro 30, 2012, 01:41:02 pm por NinjaSniper »

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #2 Online: Outubro 30, 2012, 04:29:52 pm »
Para desenvolvimento web, não vejo sentido usar uma IDE completa e pesada (a menos que você esteja desenvolvendo em Java). Emacs ou vim geralmente são mais que o suficiente.

Só uso o Eclipse no trabalho porque é desenvolvimento android, e programar em Java sem IDE é um saco. Mas por mim eu usaria emacs pra tudo.

Citar
Tenho o SVN separado, pois não gosto do jeito que o Netbeans gerencia conflitos.

Aprenda git. SVN está ficando cada dia mais ultrapassado.

Citar
O Visual Studio é coisa linda demais, super recomendo pra quem usa Windows e mais ainda pra quem usa C# ou qualquer coisa .net

Pra .NET é uma coisa linda. Só sinto falta de um suporte decente às teclas de atalho do emacs (o Eclipse Indigo tem uma extensão ótima pra isso, o emacs+).

Re:Software para Programação - Tópico Geral
« Resposta #3 Online: Outubro 30, 2012, 04:38:49 pm »
Para desenvolvimento web, não vejo sentido usar uma IDE completa e pesada (a menos que você esteja desenvolvendo em Java). Emacs ou vim geralmente são mais que o suficiente.

Disse anteriormente que não tenho problemas de lentidão com o Netbeans. Quero algo mais que um editor de texto, senão usaria Notepad++. Programo em PHP & companhia.

Aprenda git. SVN está ficando cada dia mais ultrapassado.

Qual a vantagem?

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #4 Online: Outubro 30, 2012, 06:57:00 pm »
Para desenvolvimento web, não vejo sentido usar uma IDE completa e pesada (a menos que você esteja desenvolvendo em Java). Emacs ou vim geralmente são mais que o suficiente.

Disse anteriormente que não tenho problemas de lentidão com o Netbeans. Quero algo mais que um editor de texto, senão usaria Notepad++. Programo em PHP & companhia.

Você diz isso porque não sabe do que o emacs é capaz.

Aprenda git. SVN está ficando cada dia mais ultrapassado.

Qual a vantagem?

O algoritmo de branching e merge dele é muito mais inteligente e eficaz, fazendo com que criar branches seja algo natural no fluxo de desenvolvimento.

O repositório é descentralizado. Você tem um repositório no seu projeto e quantos outros repositórios externos você precisar, e eles podem se comunicar entre si sem maiores problemas.

Bisect. É uma pesquisa binária por inserção de bugs no programa. Digamos que você esteja com um bug que você sabe que são existia na versão 1.2.2. Você então faz um:

Código: [Selecionar]
git bisect start HEAD 1.2.2
E o git vai pegar o commit na metade do caminho entre o commit atual e o da versão 1.2.2. Você testa se tem o bug. Se tiver, você marca o commit como ruim. Se não, marca como bom.

Código: [Selecionar]
git bisect bad
git bisect good

Ele vai estreitando a busca de forma binária até encontrar em que commit exatamente o bug entrou no sistema, fazendo com que seja bem mais fácil reverter o bug. Tudo isso de forma extremamente rápida. Depois, você manda terminar o bisect e faz o que quer que deva fazer.

Código: [Selecionar]
git bisect reset
Como ele sempre tem um repositório local, é sempre possível trabalhar offline.

Github e bitbucket.

Entre várias outras coisas.

Re:Software para Programação - Tópico Geral
« Resposta #5 Online: Outubro 30, 2012, 07:35:48 pm »

Você diz isso porque não sabe do que o emacs é capaz.


Qual a vantagem?


O algoritmo de branching e merge dele é muito mais inteligente e eficaz, fazendo com que criar branches seja algo natural no fluxo de desenvolvimento.

O repositório é descentralizado. Você tem um repositório no seu projeto e quantos outros repositórios externos você precisar, e eles podem se comunicar entre si sem maiores problemas.

Bisect. É uma pesquisa binária por inserção de bugs no programa. Digamos que você esteja com um bug que você sabe que são existia na versão 1.2.2. Você então faz um:

Código: [Selecionar]
git bisect start HEAD 1.2.2
E o git vai pegar o commit na metade do caminho entre o commit atual e o da versão 1.2.2. Você testa se tem o bug. Se tiver, você marca o commit como ruim. Se não, marca como bom.

Código: [Selecionar]
git bisect bad
git bisect good

Ele vai estreitando a busca de forma binária até encontrar em que commit exatamente o bug entrou no sistema, fazendo com que seja bem mais fácil reverter o bug. Tudo isso de forma extremamente rápida. Depois, você manda terminar o bisect e faz o que quer que deva fazer.

Código: [Selecionar]
git bisect reset
Como ele sempre tem um repositório local, é sempre possível trabalhar offline.

Github e bitbucket.

Entre várias outras coisas.

Não uso branch nem merge. Uso diff para ver onde começou o bug.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #6 Online: Outubro 30, 2012, 08:52:08 pm »

Você diz isso porque não sabe do que o emacs é capaz.


Qual a vantagem?

Pra maioria das pessoas, provavelmente nenhuma. Eu é que estou acostumado e gosto das features e da capacidade de customização.

(Eu uso emacs até como cliente IRC e editor de postagens no meu blog. Poderia usar como cliente de email, leitor de feeds e agenda, também, se tivesse paciência pra configurá-lo).


O algoritmo de branching e merge dele é muito mais inteligente e eficaz, fazendo com que criar branches seja algo natural no fluxo de desenvolvimento.

O repositório é descentralizado. Você tem um repositório no seu projeto e quantos outros repositórios externos você precisar, e eles podem se comunicar entre si sem maiores problemas.

Bisect. É uma pesquisa binária por inserção de bugs no programa. Digamos que você esteja com um bug que você sabe que são existia na versão 1.2.2. Você então faz um:

Código: [Selecionar]
git bisect start HEAD 1.2.2
E o git vai pegar o commit na metade do caminho entre o commit atual e o da versão 1.2.2. Você testa se tem o bug. Se tiver, você marca o commit como ruim. Se não, marca como bom.

Código: [Selecionar]
git bisect bad
git bisect good

Ele vai estreitando a busca de forma binária até encontrar em que commit exatamente o bug entrou no sistema, fazendo com que seja bem mais fácil reverter o bug. Tudo isso de forma extremamente rápida. Depois, você manda terminar o bisect e faz o que quer que deva fazer.

Código: [Selecionar]
git bisect reset
Como ele sempre tem um repositório local, é sempre possível trabalhar offline.

Github e bitbucket.

Entre várias outras coisas.

Não uso branch nem merge. Uso diff para ver onde começou o bug.

Meus olhos doeram ao ler isso.

Você não usa branch nem merge porque usa SVN, e isso dá trabalho em SVN. Saberia a diferença que um bom algoritmo de branch faz se tentasse usar o git.

Diff pode te dar a comparação entre o commit atual e algum commit anterior, mas e se tiver um monte de commits entre o atual e o commit onde o bug foi introduzido? Vai verificar de um por um? O bisect vai te apontar em alguns poucos passos em qual commit o bug entrou, e você pode visualizar facilmente o que foi introduzido nesse commit com um diff.

E isso não exclui as outras vantagens que apontei.

Sério, vai tentar usar o git. Um pouquinho até se acostumar. Vai te ajudar até na hora de procurar trabalho novo. Todo mundo tá migrando pro git, SVN está caindo em desuso numa velocidade extraordinária.

Re:Software para Programação - Tópico Geral
« Resposta #7 Online: Outubro 30, 2012, 09:30:48 pm »
VA, eu não entendo como ele pode identificar um bug. Os bugs que encontro em geral são na relação com o banco de dados, ou de compatibilidade com navegador, ou de implementação de um conceito errado. Muito raramente preciso recorrer a versões anteriores pois o bug apareceu ao implementar uma nova função não testada em todas as situações.

O projeto já é antigo, é complexo e gigantesco, e principalmente: não é meu. Se fosse novo, eu pensaria em usar git, sei que é o padrão atual. Aliás, faria um bilhão de coisas bem diferentes. Eu já quebrei muito a cara tentando mudar as coisas e acabar tendo o triplo do trabalho.

Não pretendo programar o resto da vida.

Offline Ciggi

  • Vénis Pagina
  • Enviado do meu PC
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #8 Online: Outubro 30, 2012, 11:24:20 pm »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)

« Última modificação: Outubro 31, 2012, 09:21:37 am por Macnol »

Re:Software para Programação - Tópico Geral
« Resposta #9 Online: Outubro 30, 2012, 11:31:49 pm »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:21:55 am por Macnol »

Re:Software para Programação - Tópico Geral
« Resposta #10 Online: Outubro 30, 2012, 11:40:33 pm »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:22:06 am por Macnol »

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #11 Online: Outubro 31, 2012, 12:24:49 am »
VA, eu não entendo como ele pode identificar um bug. Os bugs que encontro em geral são na relação com o banco de dados, ou de compatibilidade com navegador, ou de implementação de um conceito errado. Muito raramente preciso recorrer a versões anteriores pois o bug apareceu ao implementar uma nova função não testada em todas as situações.

O projeto já é antigo, é complexo e gigantesco, e principalmente: não é meu. Se fosse novo, eu pensaria em usar git, sei que é o padrão atual. Aliás, faria um bilhão de coisas bem diferentes. Eu já quebrei muito a cara tentando mudar as coisas e acabar tendo o triplo do trabalho.

Não pretendo programar o resto da vida.

Realmente, não recomendo usar git como experimento já em ambiente de produção. Estava recomendando para se aprimorar em mais uma ferramenta útil pra caramba que está em ascensão.

Mas se você não planeja programar por muito tempo, beleza. Nem vale a pena sugerir. Às vezes eu esqueço que nem todo mundo é apaixonado pela profissão como eu. XD

Isso da um tópico próprio né? Ja deixou de ser dica de hardware a muito tempo!

Nope. Estou dando sugestões de software ao NinjaSniper. São ótimos software, e muito estáveis.

Git, na verdade, é útil para qualquer profissão que mexa com texto puro e queira manter um log de alterações, ou para várias pessoas editando o mesmo texto (nesse caso, sugeriria também aprender LaTeX, que é um processador de texto excelente).

Podíamos criar um tópico vale-tudo Windows vs. Linux vs. Mac.

Só que não.

Git, Emacs e LaTeX rodam em todas as plataformas.

(Factóide: git foi criado pelo Linus Torvalds, criador do kernel Linux. Emacs foi criado pelo Richard Stallman, criador do Sistema Operacional GNU, que roda por cima do Linux e é a base de todas as distribuições Linux atuais).

(Factóide 2: Stallman odeia que chamem o SO de "Linux". Para ele, Linux é só o kernel. GNU/Linux seria o sistema. Torvalds discorda dele).
« Última modificação: Outubro 31, 2012, 12:29:11 am por VA »

Offline Ciggi

  • Vénis Pagina
  • Enviado do meu PC
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #12 Online: Outubro 31, 2012, 12:35:41 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:22:21 am por Macnol »

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #13 Online: Outubro 31, 2012, 12:40:24 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:22:37 am por Macnol »

Offline Ciggi

  • Vénis Pagina
  • Enviado do meu PC
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #14 Online: Outubro 31, 2012, 12:47:12 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:22:50 am por Macnol »

Offline garotovaca [medabot]

  • O Bovino Humano
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #15 Online: Outubro 31, 2012, 12:53:15 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:23:08 am por Macnol »

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #16 Online: Outubro 31, 2012, 12:58:40 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:23:21 am por Macnol »

Offline louc0

  • Moderador
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #17 Online: Outubro 31, 2012, 01:04:34 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:23:30 am por Macnol »

Re:Software para Programação - Tópico Geral
« Resposta #18 Online: Outubro 31, 2012, 01:16:15 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:23:45 am por Macnol »

Offline Ciggi

  • Vénis Pagina
  • Enviado do meu PC
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #19 Online: Outubro 31, 2012, 01:37:00 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:24:00 am por Macnol »

Offline Madrüga

  • Coordenação
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #20 Online: Outubro 31, 2012, 07:34:50 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:24:11 am por Macnol »
"If there are ten thousand medieval peasants who create vampires by believing them real, there may be one -- probably a child -- who will imagine the stake necessary to kill it. But a stake is only stupid wood; the mind is the mallet which drives it home."
-- Stephen King, It (p. 916)


Offline Ciggi

  • Vénis Pagina
  • Enviado do meu PC
    • Ver perfil
Re:Software para Programação - Tópico Geral
« Resposta #21 Online: Outubro 31, 2012, 08:28:22 am »
[Mensagem ocultada pela moderação -- Macnol]
(click to show/hide)
« Última modificação: Outubro 31, 2012, 09:24:22 am por Macnol »

Offline Macnol

  • The Eltor
  • Admin
  • GW2 fanboy
    • Ver perfil
    • True spell!
Re:Software para Programação - Tópico Geral
« Resposta #22 Online: Outubro 31, 2012, 09:08:33 am »
Apesar de ter gerado um bate-boca desnecessário, o Cigano tem razão em vários pontos. O assunto mais recente cresceu a ponto de merecer um tópico próprio, e isso seria bom pra todo mundo. O tópico original voltaria ao formato de dicas mais curtas sobre vários programas diferentes, e o assunto novo teria mais espaço e chamaria a atenção de quem não estava acompanhando o antigo mas teria interesse no novo.

Tem que pensar que dividir um tópico não é sempre algo pra "proteger o tópico original" ou cortar um assunto off-topic (coisa que a gente nunca proibiu), mas sim pra dar impulso ao assunto novo e tornar mais fácil achar ele no futuro.

Eu vou dividir esse tópico agora, coisa que já devia ter feito ontem à noite, mas estava com muito sono quando vi a extensão que tinha alcançado.

Obs.: Coloquei a metadiscussão em spoilers pra ficar mais fácil pular ela e voltar ao assunto.
« Última modificação: Outubro 31, 2012, 09:25:56 am por Macnol »

Re:Software para Programação - Tópico Geral
« Resposta #23 Online: Outubro 31, 2012, 09:46:33 am »
Que os jogos comecem!

Sugiro que além de dizer o software, dizer os motivos por que usa, vantagens e desvantagens, se atende as necessidades, SOs compatíveis, SOs preferenciais, etc. para evitar debates infinitos.

Offline Nhoqs

  • Ken-Ohki
  • Sup, niggas
    • Ver perfil
    • IVBin
Re:Software para Programação - Tópico Geral
« Resposta #24 Online: Outubro 31, 2012, 10:35:43 pm »
Vamos lá: Vou começar com uma ferramenta web: Trello. Não sei quem já trabalhou usando metodologias ágeis, mas eu trabalho e acho muito bom. O método que eu uso é o SCRUM, e nele, é importante existir um quadro com as tarefas do sprint (que lá no trabalho dura uma semana, mas tem lugar que pode durar até 4 semanas).


O esquema é bem simples. No caso do SCRUM, o quadro é divido em "Atividades a fazer", "Fazendo" e "Concluído".


O legal é que o Trello pode ser usado pra qualquer coisa que você ache interessante, já que você pode definir quantas colunas, nome delas e controlar os cards com checklists, descrição, comentário, data-limite e mais algumas coisas que não lembro :P


Quem controla ideias num quadro com post-it, é uma ótima alternativa digital. Uso diariamente.
Vira e mexe e eu volto aqui.

Re:Software para Programação - Tópico Geral
« Resposta #25 Online: Outubro 31, 2012, 11:41:14 pm »
Coincidentemente estamos começando a usar o Trello lá no trabalho. É interessante, só achei um pouco cinza demais, tornando menos ágil identificar os botões. Tem como mudar a cor?

BTW, o servidor deles caiu com o furacão nos EUA. Faltou redundância.

Offline Nhoqs

  • Ken-Ohki
  • Sup, niggas
    • Ver perfil
    • IVBin
Re:Software para Programação - Tópico Geral
« Resposta #26 Online: Novembro 01, 2012, 11:49:36 pm »
Eles mandaram um e-mail assim que levantaram o servidor na base do gerador e fizeram uma redundância agora. Não sei nada sobre mudar a cor por lá, infelizmente :/


Ganhei adesivo do Trello, dos caras lá de desenvolvimento (na verdade, meu chefe que ganhou, hehe). Eles são bem abertos a comunicação, qualquer coisa, é fácil conseguir entrar em contato com eles e propor coisas novas pro trello :)
Vira e mexe e eu volto aqui.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #27 Online: Novembro 02, 2012, 12:37:55 am »
Para controle de tarefas, a gente usa o Redmine lá no trabalho. É FOSS e baseado em web, então a gente pode instalar nos nossos servidores. O problema é que é tudo muito detalhado, então de um modo geral a gente acaba recorrendo ao Canban, mesmo.

Internamente, eu uso o issue tracking do github, que é excelente para projetos pessoais.


Mudando de assunto, alguém já ouviu falar do rake? É um programinha escrito em Ruby equivalente ao clássico make do Unix, exceto que mais simples de se escrever jobs e menos datado. Tanto que ele não é usável apenas para compilação, é usado para todo o tipo de jobs. O Rails usa para todo o tipo de coisa (criação de banco de dados, organização de TODO, testes unitários...).

Offline Nhoqs

  • Ken-Ohki
  • Sup, niggas
    • Ver perfil
    • IVBin
Re:Software para Programação - Tópico Geral
« Resposta #28 Online: Novembro 02, 2012, 12:42:02 am »
Conheço o rake, mas não uso. Mas taí se usa canban, Trello é seu amigo :)
Vira e mexe e eu volto aqui.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #29 Online: Novembro 02, 2012, 12:43:21 am »
Conheço o rake, mas não uso. Mas taí se usa canban, Trello é seu amigo :)

Dá pra instalar o Trello em servidores internos? Senão, ninguém vai aceitar usar lá.

Pros meus próprios projetos, eu nem uso canban.

Re:Software para Programação - Tópico Geral
« Resposta #30 Online: Novembro 02, 2012, 11:46:57 am »
Hum, eu estava achando que não dava para instalar o Trello, mas aparentemente é open-source: https://trello.com/docs/

Já usei rake quando estava aprendendo Ruby para um projeto web pessoal. Não fui muito com a cara da linguagem então troquei para Python e depois para PHP. Até hoje não vi linguagem que se integra melhor com HTML do que o PHP.

O meu sonho é uma linguagem que resolva tudo (HTML/CSS/JS, se possível servidor também) em uma tacada só. Existe uma razoável, Cappucino, mas é inspirada em Objective-C, uma linguagem MUITO burocrática na minha opinião.

Código: [Selecionar]
- (id)initWithBitmapDataPlanes:(unsigned char **)planes
pixelsWide:(NSInteger)width
pixelsHigh:(NSInteger)height
bitsPerSample:(NSInteger)bps
samplesPerPixel:(NSInteger)spp
hasAlpha:(BOOL)alpha
isPlanar:(BOOL)isPlanar
colorSpaceName:(NSString *)colorSpaceName
bitmapFormat:(NSBitmapFormat)bitmapFormat
bytesPerRow:(NSInteger)rowBytes
bitsPerPixel:(NSInteger)pixelBits
, alguém?

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #31 Online: Novembro 02, 2012, 02:05:00 pm »
Hum, eu estava achando que não dava para instalar o Trello, mas aparentemente é open-source: https://trello.com/docs/

Já usei rake quando estava aprendendo Ruby para um projeto web pessoal. Não fui muito com a cara da linguagem então troquei para Python e depois para PHP. Até hoje não vi linguagem que se integra melhor com HTML do que o PHP.

O meu sonho é uma linguagem que resolva tudo (HTML/CSS/JS, se possível servidor também) em uma tacada só. Existe uma razoável, Cappucino, mas é inspirada em Objective-C, uma linguagem MUITO burocrática na minha opinião.

Código: [Selecionar]
- (id)initWithBitmapDataPlanes:(unsigned char **)planes
pixelsWide:(NSInteger)width
pixelsHigh:(NSInteger)height
bitsPerSample:(NSInteger)bps
samplesPerPixel:(NSInteger)spp
hasAlpha:(BOOL)alpha
isPlanar:(BOOL)isPlanar
colorSpaceName:(NSString *)colorSpaceName
bitmapFormat:(NSBitmapFormat)bitmapFormat
bytesPerRow:(NSInteger)rowBytes
bitsPerPixel:(NSInteger)pixelBits
, alguém?

O que você procura é NodeJS. É basicamente Javascript no lado do servidor.

E o que você tentou foi Rails. Não é o único framework web feito em Ruby, ao contrário da crença popular. Particularmente, eu adoro usar Sinatra para fazer API's REST. É bem melhor que Rails para isso.

Re:Software para Programação - Tópico Geral
« Resposta #32 Online: Novembro 02, 2012, 03:25:57 pm »
Eu não gostei da linguagem mesmo, nem foi tanto problema do framework. Achei esquisita demais a sintaxe.

Já tinha ouvido falar do NodeJS, mas meu principal problema não é o servidor (<3 PHP), e sim a parte do cliente. Acho muito improdutivo ter que trabalhar com 3 linguagens, e as 3 cada uma com incompatibilidades de navegador, etc. jQuery ajuda muito neste aspecto.

Atualmente o que eu faço é criar funções/classes PHP que já cospem HTML/CSS/JS pronto. As coisas que são fixas deixo em CSS/JS externos.

Dá para escrever aplicativos de iPhone/Android 100% em JS (http://www.appcelerator.com/). É absurdamente mais rápido e fácil do que escrever em Obj-C ou Java, mas tem a desvantagem do aplicativo ficar mais lento. É de algo assim que eu precisava para web.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #33 Online: Novembro 02, 2012, 11:39:19 pm »
Eu não gostei da linguagem mesmo, nem foi tanto problema do framework. Achei esquisita demais a sintaxe.

Esse é um motivo bem besta para desgostar de uma linguagem, não acha?

Não digo isso para ser ofensivo, mas é porque eu desgostava de LISP por um motivo parecido ("acho a sintaxe muito feia", dizia eu). Até alguém falar pra mim o que eu disse aí em cima.

Existem motivos para uma linguagem ser boa ou não. Coesão e flexibilidade, por exemplo. Claro que cada linguagem é uma ferramenta, e algumas ferramentas são mais apropriadas para determinadas tarefas (nada de tentar fazer um jogo AAA em Ruby, por exemplo, ou uma aplicação web em C++).

LISP é incrível devido à flexibilidade. Dei uma chance a ela e aprendi muito. Mudei a forma como eu encaro programação.

Acho que você deveria dar mais uma chance a Ruby e procurar saber sobre como ele lida com Domain Specific Languages (que é justamente onde ele brilha sobre muitas outras linguagens) e metaprogramação (onde ele também é excelente).

No livro The Pragmatic Programmer, o autor recomenda aprender (e se aprofundar o tanto que for possível) uma linguagem por ano. Isso melhora a qualidade do seu código nas outras linguagens, porque ajuda você a pensar de forma diferente do que já estava acostumado, e analisa situações de acordo com paradigmas que antes você desconhecia.

Já tinha ouvido falar do NodeJS, mas meu principal problema não é o servidor (<3 PHP), e sim a parte do cliente. Acho muito improdutivo ter que trabalhar com 3 linguagens, e as 3 cada uma com incompatibilidades de navegador, etc. jQuery ajuda muito neste aspecto.

Naturalmente. Uma linguagem é de marcação, a outra de estilo, a outra lógica. É difícil uma linguagem fazer tudo isso ao mesmo tempo (nem tanto se você usar uma boa DSL, mas isso é bem difícil quando se trata de web). NodeJS pelo menos tiraria o peso de colocar mais uma linguagem nesse bolo. Não que isso seja um peso para todos, claro.

Atualmente o que eu faço é criar funções/classes PHP que já cospem HTML/CSS/JS pronto. As coisas que são fixas deixo em CSS/JS externos.

Bem parecido com a estratégia do Rails. Espero que você tome muito cuidado com injections, então.

Dá para escrever aplicativos de iPhone/Android 100% em JS (http://www.appcelerator.com/). É absurdamente mais rápido e fácil do que escrever em Obj-C ou Java, mas tem a desvantagem do aplicativo ficar mais lento. É de algo assim que eu precisava para web.

E coisas assim não faltam. Se você gosta tanto de PHP, procure o Zend Framework ou o Cake PHP.

Re:Software para Programação - Tópico Geral
« Resposta #34 Online: Novembro 03, 2012, 01:18:20 am »
Vou responder por parágrafos. VA, entenda que não sou da área (por formação) e portanto não entendo metade das siglas que você diz XD

Sintaxe não é besta não. Pra alguém que quer ter o menos trabalho possível ao criar/modificar, é importante. Python tem as mesmas vantagens do Ruby e eu acho bem melhor como linguagem genérica. Mas as duas são ruins pra web, na minha opinião, mesmo com framework (django e Rails). Quem sabe em um dia chuvoso eu dou uma chance ao Ruby.

Aplicações de desktop/mobile resolvem 95% da coisa com apenas 1 linguagem, na maioria das vezes.

Já tem um bom tratamento de injections embutido.

Usei por muito tempo o Yii na iniciação científica. Eu até gostava de MVC, mas depois de um tempo percebi que perdia muito mais tempo com a estrutura do que com o que o site deveria fazer em si. Hoje detesto framework.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #35 Online: Novembro 03, 2012, 01:44:58 am »
Citar
VA, entenda que não sou da área (por formação) e portanto não entendo metade das siglas que você diz

Entendo. Mas se te anima, eu não concluí a faculdade (tô no primeiro período, ainda). Tudo o que tenho aprendido é pelo mercado, mesmo.

Citar
Sintaxe não é besta não.

Dizer que a sintaxe não agradou não é a mesma coisa que a sintaxe ser ruim ou mal estruturada. É só falta de costume. Sintaxes diferentes para linguagens diferentes. A sintaxe de Ruby é muito bem estruturada, e mesmo fãs de LISP (que estão entre os programadores mais chatos) admitem isso.

Citar
Aplicações de desktop/mobile resolvem 95% da coisa com apenas 1 linguagem, na maioria das vezes.

Não.

Aplicações de desktop geralmente têm uma linguagem visual para estruturar os formulários (ninguém faz formulários apenas em C#/C++/Delphi/VB/Java, fazem na GUI, o que pode ser visto como uma linguagem adicional). Android usa XML (que tem algumas similaridades com o combo HTML+CSS). Dá para fazer ambos só na linguagem original, mas é menos trabalhoso usar GUI/XML/HTML.

Só não sei dizer nada do iOS, porque nunca usei.

Citar
Usei por muito tempo o Yii na iniciação científica. Eu até gostava de MVC, mas depois de um tempo percebi que perdia muito mais tempo com a estrutura do que com o que o site deveria fazer em si. Hoje detesto framework.

Well, por isso sugeri Sinatra lá atrás. Ele não é MVC. É só uma maneira direta de converter chamadas HTTP em funções Ruby. É lindo, sério. É uma das melhores amostras do poder das DSL's em Ruby.

Quanto a passar muito tempo se preocupando com a estrutura: isso é uma faca de dois gumes. Por um lado, manter uma estrutura coesa é ótimo e permite fácil manutenção. Por outro, às vezes a arquitetura é tão cheia de detalhes que mais atrapalha do que ajuda. Já trabalhei em projetos assim (acho que o termo é over-engineered). O MVC é útil quando a aplicação precisa de MVC, mas tentar meter MVC em tudo (como eu vejo muita gente querer fazer) é que é a merda.
« Última modificação: Novembro 03, 2012, 01:46:36 am por VA »

Re:Software para Programação - Tópico Geral
« Resposta #36 Online: Novembro 03, 2012, 02:52:06 am »
Em nenhum momento disse que a sintaxe do Ruby era mal estruturada. Só não gostei/me acostumei.
Dei uma olhada no LISP e gostei bastante. Bem matemática a sintaxe. Lembra as calculadoras HP.

Como você disse, dá pra usar a mesma linguagem pro visual também. No iOS tinha um programa para fazer GUI, mas era mais versátil fazer tudo no Obj-C. Em MATLAB e Python é muito comum fazer tudo neles. A questão é que web você não tem essa opção de 1 linguagem apenas. E a parte visual, que era para ser algo simples, acaba sendo tão trabalhosa quanto a aplicação em si.

No projeto atual está tudo tão gigantesco que tenho medo de mexer na estrutura. Mas nos projetos pessoais eu tento usar algumas ideias do MVC que achei interessantes.

Pelo jeito você curte uns jeitos alternativos de programar. Eu descobri que uso bastante metaprogramação sem querer, mas entre linguagens diferentes. DSL nunca que eu lembre.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #37 Online: Novembro 03, 2012, 11:24:26 am »
Citar
Como você disse, dá pra usar a mesma linguagem pro visual também. No iOS tinha um programa para fazer GUI, mas era mais versátil fazer tudo no Obj-C. Em MATLAB e Python é muito comum fazer tudo neles. A questão é que web você não tem essa opção de 1 linguagem apenas. E a parte visual, que era para ser algo simples, acaba sendo tão trabalhosa quanto a aplicação em si.

Nunca fiz nada pra iOS nem MATLAB, mas tu tem razão no Python.

Citar
Pelo jeito você curte uns jeitos alternativos de programar. Eu descobri que uso bastante metaprogramação sem querer, mas entre linguagens diferentes. DSL nunca que eu lembre.

Eu gosto de resolver problemas de maneiras interessantes e que deixem o programa mais fácil de consertar depois. XD

É justamente por sentir falta de metaprogramação e DSL que eu não curto muito Java, por exemplo.

Re:Software para Programação - Tópico Geral
« Resposta #38 Online: Novembro 07, 2012, 10:14:21 pm »
Ultimamente por algum motivo desconhecido o WAMP (interface para PHP e cia. no Windows) anda bastante lento. Dizem que PHP e cia. rodam mais rápido em Linux (pelo menos no servidor roda, mas não sei se é pelo poder da máquina ou pelo SO). Aproveitando que o site precisa de umas boas melhorias para funcionar melhor em Linux, resolvi instalar em semi-dual boot com o wubi (Ubuntu).

De cara já instalou a maioria dos drivers (não fui muito atrás do resto). Como já previa, instalei todos os aplicativos com o apt-get. Algumas coisas não aconteciam de acordo com os guias que segui: algumas configurações já vinham feitas e outras era necessário fazer na mão. Acredito que varie bastante de versão para versão do Ubuntu. Instalei também Java Oracle e Netbeans (tentei usar o Emacs, VA, mas não me adaptei XD). Para o Java tinha uns guias tenebrosos mas achei um que ia por apt-get. No geral foi menos sofrido do que da última vez que usei: o SO está bem mais polido.

Offline VA

  • Moderador
  • Be vigilant
    • Ver perfil
    • Adepto do Heroísmo
Re:Software para Programação - Tópico Geral
« Resposta #39 Online: Novembro 08, 2012, 02:17:08 am »
Ubuntu é, de longe, a melhor distribuição pra quem quer botar tudo pra funcionar sem ter tanto trabalho.

Mas a melhor distribuição pra power users que não têm problemas em botar a mão na massa frequentemente é o Arch.