this post was submitted on 06 May 2024
8 points (90.0% liked)

Dev

286 readers
2 users here now

Um lugar legal para debater e conversar sobre programação e desenvolvimento de software no Brasilsilsilsil

Seja um bom programador, e leia a documentação oficial da comunidade no post fixado.

Obrigado, e divirta-se!


Geral

Regras

Wiki do c/Linux

Megathread do c/Dev

Relacionado

c/Python

Chat

founded 1 year ago
MODERATORS
 

Comecei a programar com javascript, python, ruby, e php, todas de auto nível, tipagem dinâmica, gerenciadores de bibliotecas simples (menos javascript). Eu sinto que estou perdendo uma oportunidade de aprender umas coisas legais com c e c++.

Eu acabei de começar com c++, fiz uns scriptzinhos bobos que pegam informações do sistema em /sys.

Bom, eu só queria saber se tem algo de importante que preciso aprender com essas linguagens (sendo um desenvolvedor web meio iniciante meio mediano, não sei bem meu nível rs).

Aliás, uma perguntinha, eu vi que as libs são distribuídas pelo gerenciador de pacotes da distro linux, então, em uma equipe de desenvolvedores, como vocês lidam com as diferentes versões das libs em cada distro? alguém que usa arch vai ter libs muito mais atualizadas do que quem usa um debian, por exemplo.

top 6 comments
sorted by: hot top controversial new old
[–] tea_pot_tinhas 4 points 6 months ago

A principal diferença é que seus xingamentos saem da sessão da tarde pra uma briga de marinheiros bêbados torcendo pra times adversários na hora dos pênaltis. Não sou lá grande coisa na programação, mas acho que desde que sirva pra o que você precisa, a linguagem pouco importa.

[–] Materiogorath 4 points 6 months ago

Trabalho com Delphi (uma versão mais antiga, relativamente baixo nível comparado a C++) a uns 6 anos. Eu diria que a linguagem em sí não é tão importante, mas sim saber manter um código organizado e fácil de dar manutenção (o seu "eu" do futuro não vai lembrar o que se passa agora).

Agora, uma coisa que percebi que me afetou usando uma linguagem assim (principalmente sem Garbage Collector) é ter noção da memória utilizada pelo código, além de compreender melhor como usar objectos, referências, ponteiros, etc..

No geral, saiba manter um código de fácil manutenção que isso acaba sendo o mais importante.

[–] pai_zosima 3 points 6 months ago

Relaxa mano. Foque em qualidade, clean code, design partner e afins

[–] arthur 3 points 6 months ago

Executáveis pequenos, execução em velocidade muito alta e dor+sofrimento para fazer funcionar. Se estiver usando C/C++ alta chances de atirar no próprio pé lidando com ponteiros e gerenciando memória manualmente. Se estiver usando Rust, fazendo algo simples, vai ser de boa. Se precisar lidar com lifetimes vai ter um pouco de dor de cabeça.

A situação em que você precisa usar uma linguagem de baixo nível é quando você está escrevendo um sistema operacional ou um sistema crítico que demanda controle fino da memória ou ainda quando o código vai rodar em microcontroladores.

Cara, aprenda o básico de Rust. Quando o código finalmente compila, a sensação de confiança é bem forte.

Fora a parte do "baixo nível", qualquer linguagem que você aprender vai abrir um pouco mais seus horizontes. Cada linguagem exige um modo de pensar próprio e te convida a resolver os mesmos problemas de formas diferentes. E essas formas podem ser úteis em outros contextos.

[–] analfabeto 3 points 6 months ago

Sim, aprender C, assembly e engenharia de computação vai te trazer um fundamento mais fundo como as coisas funcionam. É raro usa, mas quando precisa, é o diferencial do programador bom. Hoje com micro computadores como o esp32, da de fazer muita coisa legal e integrar com tou sistema web.

[–] Templa@beehaw.org 2 points 6 months ago

Sendo desenvolvedor web eu não acho que você esteja perdendo nada sem saber c/c++. Provável que C# e Rust sejam mais benéficos nesse aspecto.

Com relação a pergunta de versões das libs em cada distro, você precisa de consistência e é pra isso que containers existem, então uma equipe de desenvolvedores muito provavelmente está rodando o que está sendo desenvolvido no mesmo distro (através de um container).