1 comentários

 
GN⁺ 2024-11-12
Comentários do Hacker News
  • Se fosse possível adicionar comportamento de UI ao Figma, provavelmente seria exatamente algo assim. A web parece estar andando para trás há anos; perdemos o Flash e migramos para o HTML5, mas aquele fluxo em que pessoas criativas criavam um monte de coisas acabou se dissipando
    Antigamente, IDEs como Visual Basic, Delphi e Borland JBuilder tinham builders simples de aplicativos, e o Eclipse também teve por um tempo um builder simples de UI em Swing. No lado web, havia Dreamweaver, FrontPage etc.
    Não estou dizendo que essas ferramentas eram perfeitas, mas nunca surgiu um substituto de verdade, e hoje parece profundamente desperdiçador: você “desenha” no Figma e depois a equipe de desenvolvimento praticamente reimplementa tudo do zero

    • Não tenho tanta certeza de quanto desperdício há de fato. Existe alguma sobreposição, mas pela minha experiência não era muita; a maior parte do tempo de frontend vai para o comportamento por trás dos componentes, interações com dispositivos, segurança e chamadas de API
    • Não acho que builders visuais de UI fossem o caminho a seguir. Eles funcionam bem para UIs estáticas, mas desmoronam no momento em que você tenta expressar restrições dinâmicas
      O Figma também mostra isso. Para protótipos rápidos, é útil posicionar elementos de forma absoluta e usar símbolos, mas, assim que você introduz autolayout, acaba enfrentando praticamente os mesmos problemas de CSS flexbox e grid. A diferença é que isso acontece em um sistema muito pior, sem controle de versão, ferramentas de refatoração ou ChatGPT
      Subjetivamente, também é muito mais fácil lidar diretamente com uma estrutura XML do que dar duplo clique em 15 grupos, ou ir entrando com cmd-click para selecionar um componente específico, e então editar propriedades em formato textual. Por isso acho que Apple e Android empurraram os interface builders para DSLs
  • VB6 foi, de longe, a melhor IDE para quem precisava produzir um resultado imediatamente
    Em meados dos anos 2000, quando eu instalava sistemas de CFTV baseados em PC, estava demonstrando o PC para um cliente de restaurante e mostrei o serviço de música Pandora; ele perguntou se dava para ouvir pelos alto-falantes do restaurante. Conectei ao amplificador com um cabo 3,5 mm-RCA-BNC que eu tinha no carro, e o cliente adorou, dizendo que parecia ter entrado no século 21
    Em seguida, ele perguntou se seria possível pausar a música por um instante e fazer anúncios para os clientes, então criei na área de trabalho um atalho para o mixer de som sndvol32.exe. Quando ele disse que queria que os funcionários fizessem isso do balcão, não do escritório, pedi um clipe de papel e 30 minutos
    Peguei no carro um cabo Cat 5 trançado e um mouse IBM bege antigo de dois botões, passei o cabo do escritório até a recepção, soldei um par do Cat 5 no interruptor do clique esquerdo e prendi o corpo do mouse na parede com um parafuso de drywall, como uma cabeça de veado empalhada. Do lado do escritório, como eu não carregava um DB-25 comigo, soldei os fios ao clipe de papel e conectei de forma estável à porta LPT do PC
    Depois disso foi fácil. Procurei por “VB6 Volume Mixer”, baixei, abri a checkbox de mudo do stereo mix, copiei a linha correspondente para um timer e fiz verificar a cada 100 ms se o pino LPT estava em curto; quando estivesse, ele colocava o stereo mix no mudo e desativava o mudo do microfone
    Foi algo feito no local, sem planejamento prévio, e esse cliente continua sendo cliente até hoje. Para um faz-tudo versátil, era uma ferramenta realmente excelente

    • Acho que li há alguns anos no Reddit um comentário de alguém que viu funcionários de um restaurante apertando um mouse preso na parede para fazer anúncios. Acho que era para avisar que pedidos estavam prontos; era uma configuração tão peculiar que provavelmente era este caso
    • Também gosto de VB6, mas isso me parece 10% VB6 e 90% MacGyver. É alguém de que a Phoenix Foundation definitivamente precisa
    • “VB6 é a melhor IDE” não; era a segunda melhor. A melhor era Delphi, e hoje talvez seja Lazarus
  • Muito bem feito; agora, se sair até Delphi, acho que posso voltar a ficar satisfeito com o estado dos ambientes de desenvolvimento
    Código-fonte: https://github.com/BAndysc/AvaloniaVisualBasic6
    Como o comentário que mencionava Lazarus foi apagado, acrescento: conheço Lazarus e o uso em projetos antigos. Mas eu queria uma versão moderna que também rodasse dentro do navegador, e .NET parece adequado para esse uso, como neste caso. Talvez pudesse até ser baseado em https://pascalabc.net/en/
    Sem brincadeira, programar em Pascal/Lazarus e Common Lisp ainda é mais prazeroso do que com as ferramentas atuais; não há ansiedade, só prazer e produtividade

    • Só porque você pode usar tecnologias baseadas em .NET no cliente ou dentro do navegador não significa que deva. Esses frameworks geralmente envolvem grandes concessões e, uma vez que você começa a usá-los, rapidamente fica preso a eles
      Por exemplo, migrar de MVC para MVC é muito mais fácil do que migrar de webforms para blazor/avaloniaui/dotvvm
    • Precisamos mais de Turbo Pascal/C++
  • No fim dos anos 90 e início dos 2000, eu era realmente produtivo com VB5/6. Fiz muitos aplicativos utilitários para resolver todo tipo de probleminha, e era fácil demais montar as coisas como blocos. Tentei migrar para vb.net, mas não tinha a mesma sensação

    • O builder de VB6 Winforms daqui é quase 100% idêntico ao builder de Winforms do Visual Studio 2022 mais recente, lançado hoje
      Uso isso várias horas por dia: arrasto alguns componentes para um formulário, adiciono um pouco de lógica e em poucos minutos um pequeno app desktop está funcionando
      Desde 2021 o suporte está melhor, então infelizmente programo em C#, mas, pela legibilidade do código, sinceramente acho que VB.NET era superior
    • Sei bem como é. Na universidade, eu era o responsável por VB6 que escrevia automação de testes para equipamentos como GPIB, UART, RS422 etc., e ganhei um bom dinheiro como pós-graduando no departamento de engenharia elétrica. Quando larguei o trabalho de monitor, fui substituído como responsável pelos equipamentos, e paguei a maior parte do mestrado com isso
  • Lembra uma das melhores ferramentas de programação da época. A passagem de BASIC para Visual Basic foi impactante. Mesmo hoje sinto falta de ferramentas assim, e as chamadas ferramentas no-code ou low-code atuais funcionam de um jeito bem diferente. Ainda acho que o melhor low-code continua sendo o jeito que o VB fazia

    • Não precisa sentir falta. Ainda existe uma ferramenta que funciona de modo parecido: https://www.lazarus-ide.org/
    • Sinceramente, se a abordagem for programação reativa, não parece tão difícil acoplar uma experiência de usuário relacionada à IDE
      Acho que a maioria dos desenvolvedores de frameworks esquece produtividade como métrica principal. Pode ser uma afirmação um pouco injusta, mas a falta de ferramentas visuais é decepcionante
  • Uau, VB6 foi exatamente a ferramenta que me apresentou ao desenvolvimento de software quando eu era criança. Era a dose de nostalgia de que eu precisava hoje

    • Mesma experiência. Mas, no ímpeto da juventude, não demorou muito para eu declarar que BASIC era uma linguagem inútil e migrar para o MS Visual C++ 6
      C++ e MFC eram piores por outros motivos, mas depois descobri o Linux e o resto todo mundo já sabe
      Mesmo assim, ainda não encontrei nada tão poderoso quanto o RAD do VB6. Hoje em dia criamos UI feito homens das cavernas, posicionando tudo manualmente ou usando XML
    • Comigo também. Comecei com uma cópia pirata do VB6 e um download de um site que explicava bem como usá-lo
      Lembro até de fazer coisas como usar DMA em imagens via Win32 API para detecção de colisão pixel a pixel entre sprites. Bons tempos
    • O equilíbrio perfeito era criar DLLs de alta performance em Visual C++ e usá-las a partir do VB
  • Dei uma olhada no GitHub do autor e parece que ele também mantém uma biblioteca de UI com look and feel clássico do Win9x: https://github.com/BAndysc/Classic.Avalonia
    Gostei tanto que deu vontade de criar um app com ela

    • Só essa biblioteca já mereceria uma publicação própria tanto quanto a recriação do VB6. Os detalhes são excelentes e me deram vontade de voltar a explorar o Avalonia
  • Sinto falta daquela época. Todo IDE tinha um depurador linha a linha
    Aplicações Angular/React, mesmo anos depois, ainda não têm isso, e continuo me confundindo até com a sintaxe

    • Nunca tinha pensado por esse lado, mas é verdade. O React tem boas ferramentas como plugins de navegador, mas trazer isso de volta para a IDE ainda é doloroso
    • O que você escreve e o que de fato é executado são tão diferentes que é melhor encarar aplicações de página única como outra linguagem. O Firefox tem um bom depurador JavaScript e, se a saída das ferramentas de build gerar sourcemaps, funciona bem
  • Muito bom. Tenho um pequeno relato de bug
    Adicionei um botão, dei duplo clique para abrir a janela de código e inseri um código simples como MsgBox "Hello"; depois cliquei no x no canto superior direito da janela de código
    O código não foi salvo. Para atualizar o código é preciso dar “Save” ou “Run” no projeto. O IDE antigo do VB lembrava tudo que era digitado; isso é diferente

    • Funciona no controle de botão, mas o controle de rótulo parece não disparar o evento Click de jeito nenhum
  • Lembro que, nos anos 90, muitas pequenas empresas funcionavam com VB e Access. Isso dava muito poder a não programadores
    Seria bom ter algo parecido na web. Algumas soluções low-code parecem semelhantes por fora, mas o que tornava o VB diferente era que ele podia evoluir para uma aplicação completa sem precisar trocar de caminho no meio. Sempre me surpreendo com a complexidade de desenvolver e implantar apps CRUD web hoje em dia

    • A web é uma plataforma de apps realmente péssima. Ela é popular por dois motivos
      Primeiro, não exige instalação nem lidar com empacotamento de sistema operacional. O empacotamento em todos os sistemas operacionais é horrível
      Segundo, SaaS é DRM. Se você hospeda o software na nuvem, não há pirataria e fica fácil cobrar uma assinatura mensal
      Se fosse citar um terceiro, seria que fica mais fácil criar recursos de colaboração, mas isso só se aplica a alguns tipos de software
    • Existe o PowerApps. Ele vem integrado ao Office365