hrcerq
(usa Outra)
Enviado em 21/04/2019 - 20:45h
omag0 escreveu:
Dei um exemplo, mas a maioria das linguagens de mais alto nível, seguem esse mesmo caminho.
Se isso é verdade, então temos mais um sinal de que as linguagens de alto nível devem ser evitadas. Mas eu discordo, acho que isso não é verdade para todas as linguagens. Por exemplo, é muito prático trabalhar com virtualenv e conda, na linha de comando mesmo, para gerenciar projetos Python. Isso pode ser integrado a uma IDE também, claro, mas a flexibilidade de usar esse recurso de maneira prática na linha de comando é um exemplo.
Você não precisa configuar trocentos XMLs para isso. Quanto aos frameworks, sempre vai haver alguma coisa pra ser configurada, mas isso não significa que você deva fugir disso e deixar o trabalho a encargo da IDE, se estiver tentando aprender. Depois de aprendido, aí sim, recursos de produtividade serão bem-vindos. Mas cá entre nós, editar um arquivo não dói tanto assim, se comparado a fazer a mesma edição em uma interface gráfica.
A linguagem GO, também é um exemplo interessante, de foco na simplicidade. O objetivo é justamente evitar que se crie um monstro que faz com que você passe mais tempo se preocupando com os problemas do ambiente de desenvolvimento do que com o problema que ele resolveria, propriamente dito.
Concordo que linguagens de alto nível não se encaixam no seu exemplo - kernel, bootloader, etc (agora, tente fazer uma API com C, C++. Então cada linguagem, seu foco). Mas de maneira proporcional, o mercado absorve mais programadores de linguagens de alto nível. Sempre haverá espaço para ambos, mas a diferença é enorme. [...]
Concordo sobre cada linguagem ter seu foco. Essa ideia eu apoio totalmente. Ainda assim, isso não tem a ver com APIs. Veja por exemplo, algumas APIs interessantes em C:
https://avro.apache.org/docs/current/api/c/index.html
http://api.zeromq.org/
https://www.geany.org/manual/reference/
Não me parecem coisa de outro mundo. E estão muito bem documentadas. Não citei a do kernel Linux pois já seria um nicho diferente, como você muito bem pontuou.
[...] Então citei exemplo onde a pobabilidade de encontrar um emprego é maior (claro, isso se a pessoa que perguntou está interessada em programa como trabalho, e não como lazer).
Penso que a probabilidade de encontrar emprego é onde há mais problemas para serem resolvidos. Se há um motivo claro para certas linguagens ou padrões de desenvolvimento é a geração de emprego. Nesse ponto, realmente tenho que admitir, se não houver problemas para serem resolvidos, o mercado esfria. O problema é que boa parte dos problemas são artificiais, não necessariamente tinham que existir.
E programador com desleixo ou de forma errada, nada tem haver com "começar com compiladores". Tem mais haver em conhecer a linguagem que está trabalhando e o paradigma que se escolhe trabalhar.
Se você trabalha com uma linguagem compilada, precisa sim entender como o compilador funciona. Precisa conhecer as flags que ele pode receber e como elas impactam no código gerado ou no seu fluxo de trabalho. Se uma IDE abstrai isso pra você, talvez seja mais fácil começar, mas você começa sem entender realmente o que está fazendo. Quando usar outra IDE, talvez tenha resultados inesperados por ela usar convenções diferentes da IDE anterior. Se usa uma linguagem interpretada, igualmente precisa entender como o interpretador funciona.
Bem acabado no sentido de, a funcionalidade de fato funcionar. Em algumas IDEs o code navigation hora funciona, hora não. Ja tive experiências ruins com Eclipse e C# pois, o plugin para C# travava "do nada" e era forçado a reinicar o programa. As vezes a funcionalidade/ ferramenta não é intuitiva (configurar um arquivo Mavem no eclipse, você tem que abrir umas 2, 3 abas).
Que bom que você encontrou uma IDE que te ajuda a trabalhar. Mas isso é bem diferente de aprender. Aí estamos falando de produção, não de aprendizado. E continuo achando que isso tudo pode ser bom mas não está acima de uma boa documentação e código disponível. Mas aí já é visão pessoal.
E antes que eu pareça um Javeiro, não sou. Java tem muitosdefeitos que já estou de "s@co cheio", por isso migrei pra kotlin (mas ainda sim, roda na JVM, então no fundo, certas coisas nunca mudam). Por questão de gosto, prefiro e me aperfeiçoei em linguagens de alto nível (foquei em soluções web ERP).
Nada contra linguagens de alto nível. Elas tem seu papel. O que acho ruim é a pessoa escolher uma linguagem porque não quer aprender certas coisas e acha que a linguagem vai abstrair isso pra ela. O mesmo vale para a IDE. Ela pode te ajudar a ganhar produtividade, nunca a ganhar conhecimento. Nisso ela atrapalha.
---
Atenciosamente,
Hugo Cerqueira
Devuan -
https://devuan.org/