A escolha das tecnologias que serão utilizadas vai depender muito dos requisitos e restrições do negócio.
Faça o levantamento de requisitos e separe os requisitos funcionais e os não funcionais.
Estes requisitos funcionais, são os requisitos de negócio.
Os requisitos não funcionais, são os requisitos técnicos.
Com base nos requisitos técnicos, você consegue tomar a decisão de quais tecnologias utilizar.
Mas entenda que a escolha de linguagem de programação é uma escolha baseada em conhecimento da mesma, não adianta eu indicar para vocês utilizarem Python, se o time só conhece Rust... é necessário ter bom entendimento do tema.
Também pode ser utilizado como pontos de decisão a performance, segurança, tempo de desenvolvimento, legibilidade... enfim, assuntos que precisam ser respondidos antes e aí você terá a melhor decisão para o momento.
Lembre-se também, que independente da linguagem de programação escolhida, você terá que lidar com atualizações ao longo dos anos e também lidará com as dívidas técnicas que podem se formar.
Nenhuma tecnologia é imune a desgates decorrentes do tempo.
Escolha também qual será seu foco inicial: Se for web, talvez criar uma página web não seja o suficiente para as necessidades que você terá, logo seria interessante também trabalhar com Web Apps ou algum PaaS ou SaaS para atender a todas as demandas que acontecerão.
Tem que ser linguagem de programação mesmo? Não poderia ser soluções No Code/Low Code? Existem diversas soluções nessa linha que poderiam acelerar a entrega de vocês nesses quesitos que especifiquei acima.
Quem serão os responsáveis pelos vários ends? Front-end, Back-end, Cloud-end, Data-end, etc? Fique ligado nisso também, para não sobrecarregar a equipe transformando cada membro em EUquipe e obrigando-os a serem fullstacks (não que seja ruim, mas será muito ruim se o retorno financeiro não acompanhar e o retorno em qualidade também!).
Qual será a metodologia utilizada? Waterfall, Ágil, etc? Essa escolha afeta diretamente nas entregas, nas estimativas, nos custos, nas decisões a serem tomadas.
Já ouviu falar do conceito Mobile-First? É a ideia de começar um projeto pensando primeiro no Mobile, entregando as funcionalidades para ele e resolvendo todos os requisitos e restrições para o mobile e já que seu projeto é mobile, pensa nisso direitinho.
Detalhe importante sobre as linguagens de programação:
- JS está atingindo um nível de omnipresença absurdamente alto. Está presente no Browser (React, VueJS, Angular2), Desktop (Electron), Mobile Android e IOS (Reactive Native) e Back-end (NodeJS, DenoJS).
- Dart também tem esse nível alto, mas ainda está amadurecendo em algumas pontas. Dart está no Browser, Mobile (Android, IOS) e Desktop com o Flutter e Back-end com o Dart.
- Python está nesse nível de forma robusta no Browser (Django, Flask), evoluindo em estágio avançado já no Mobile Android e IOS e Desktop (Kivy, BeWare, PyQT) e é uma linguagem muito poderosa para o Back-end, que está se tornando cada vez mais performatica (as últimas atualizações trouxeram ganhos) e segura. Tem a vantagem também de ser uma ferramenta muito utilizada por cientistas de dados e para Machine Learning. Enfim, Python tem suas vantagens e desvantagens.
- C# e .NET tem todas essas vantagens e é uma linguagem muito utilizada para criação de jogos também. Então é possível utilizar no Browser, Mobile, Desktop, Back-end, IoT, enfim, é uma linguagem bem versátil.
- Java é a linguagem mais comum e muitos serviços e sistemas que conheçemos hoje no mundo. Java está no Mobile (Android), Browser, Desktop, Back-end, IoT, enfim, java está em tudo!
Escolher java ou C# para seu projeto, é uma escolha segura de que lidará com linguagens que já atuaram em diversas áreas e visões e não falharam ou as suas falhas já são conhecidas e controladas (algumas nem tanto rsrs).
Mas, escolher JS, Python ou Dart é uma escolha mais "moderna" pelo fato de existirem tantos frameworks que alavancam o uso da linguagem e essas linguagens trazerem o que há de melhor das linguagens mais utilizadas. Não seria má escolha ter Javascript no core do projeto hoje em dia.
Porém, ainda existem diversas outras linguagens como Lua, Elixir, Perl, Ruby, Rust, PHP, Golang, Zig, V, C++, C só para citar alguns exemplos de que podem ser perfeitamente melhores em determinada situação ou em todas as situações e que realmente pode combinar com seu propósito e projeto.
Deixo aqui uma imagem não para escolher uma linguagem para projeto, mas escolher uma linguagem para aprender.
Obs.: Não estou sendo generalista, pois não conheço profundamente cada linguagem, mas com base na minha experiência na escolha de tecnologias, sei que sempre existirão características em cada uma delas que será fator decisivo de escolha e uso da tecnologia.
Obs 2.: Não existe tomar a melhor decisão definitiva para uma tecnologia, pois sempre irá nascer uma tecnologia melhor logo logo, mas existe tomar a melhor decisão pautada em fundamentos e os fundamentos dificilmente mudam, vá por eles que é sucessinho puro!