Qual seria a melhor tecnologia para usar nesse projeto?
Eu pretendo fazer um projeto (no caso um tcc) que consiste em usar os dados de diferentes sensores para captar a qualidade do ar e fazer sua medição mostrando os pontos desses sensores no mapa e os dados coletados em um aplicativo também. Pretendia usar o node para fazer a ligação com o banco de dados pois tenho certa facilidade para usa-lo e porque o aplicativo será feito em react-native o que supostamente facilitaria a integração porque ambas as tecnologias derivam da mesma linguagem, entretanto, tenho pesquisado ultimamente e analisei que é provável que o projeto use muitos dados, o que pode ser um problema pois o node não é tão recomendado quando é necessário usar várias requisições simultâneas. Com isso comecei a pensar se o o Laravel poderia ser uma opção mais viável pois o PHP possui mais facilidade para lidar com grande volume de dados, entretanto nenhum dos arquivos que li disse como é a sua integração no react-native. Com base nisso qual seria a melhor solução para o meu problema?
Na verdade, a escolha da tecnologia não é tão crítica quanto parece. Claro, algumas opções podem ser tecnicamente superiores para determinados usos, mas neste caso, me parece que o mais importante é como você constrói sua aplicação. Não está totalmente claro se sua aplicação vai apenas fazer a ponte entre uma leitura no banco de dados e uma requisição HTTP, ou se vai realmente se conectar com os sensores para coletar e compilar dados. Isso pode influenciar na escolha da tecnologia, mas novamente o fator crítico vai ser sua abordagem com a arquitetura do sistema.
Embora o Node.js tenha suas peculiaridades com gerenciamento de threads, seu modelo não bloqueante é, na verdade, excelente para lidar com um alto volume de requisições. E mesmo sendo suscetível a erros de runtime que seriam facilmente corrigidos em tempo de compilação em linguagens tipadas, ele pode ser ideal para o seu projeto, que parece ser mais um script robusto do que uma aplicação complexa.
O Laravel não é necessário aqui; é um grande exagero para seu projeto. Nesse caso, PHP puro funcionaria bem, muito melhor que Laravel e possivelmente melhor que o Node para seu contexto.
Go poderia ser uma ótima opção que equilibra simplicidade e desempenho, e é fácil o suficiente para você se sentir confortável sabendo muito pouco. Se estiver familiarizado com Java ou C#, essas também poderiam seriam ser opções "melhores" que o Node.
A verdade é que seu problema é I/O bound; a linguagem em si vai fazer pouca diferença em termos de perfomance. Mesmo assim eu pessoalmente provavelmente optaria por C, simplesmente porque é a linguagem com a qual estou mais familiarizado, mesmo sabendo que não é melhor ferramenta para esse problema. Mas, como disse no início, qualquer coisa vai funcionar, se o design for bom. Apenas use algo com o qual você se sinta confortável.
Tanto php quanto node são single-thread.
O Node.js é assíncrono, de modo que não vai bloquear tarefas subsequentes. Se o processamento for muito demorado podemos delegar para subprocessos.
e porque o aplicativo será feito em react-native o que supostamente facilitaria a integração
Não entendi muito bem essa parte, pois vai precisar criar uma API pra receber os dados no RN e provavelmente em ambos os casos você retornaria os dados em json.
Eu sinceramente iria com a tecnologia que você já usou e tem conhecimento que no seu caso é NODE.
tenho pesquisado ultimamente e analisei que é provável que o projeto use muitos dados
Estamos falando em mil/milhões por segundo?
Projeto interessante, mas sua pergunta poderia ter um pouco mais de contexto:
1 - Quanto tempo terá para realizar esse projeto? Seis meses, um ano ou etc? E se nesse período poderá se dedicar bastante tempo a esse projeto? Pois pode estar trabalhando e conseguir tocar no projeto apenas um dia por semana.
2 - Qual dor o seu projeto se propõe a resolver?
3 - Da onde exatamente esses dados virão? Eu não entendi muito bem se é você quem vai instalar os sensores, se vai pegar de uma api, várias apis ou vai ficar fazendo web scraping nos sites com esses dados?
4 - O final é o que me deixou mais confuso, o que exatamente são os dados que irá precisar? Posso estar errado sobre o que falarei, mas baseado na minha experiência com arduino, que é um hardware limitado, ao conectar com um sensor de umidade, ele não recebia tantos dados assim.
Mesmo sendo vários sensores, se sua aplicação for um aplicativo que apenas informa a umidade do ar de onde a pessoa está, só haveria requisição dos dados e manipulação dos mesmos quando o aplicativo fosse aberto.
Além disso, umidade do ar não é um valor que muda significamente a cada segundo, no mínimo um intervalo de alguns minutos poderá ter.