![Linux 서비스 작성을 위한 최고의 언어](https://linux55.com/image/28745/Linux%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%9E%91%EC%84%B1%EC%9D%84%20%EC%9C%84%ED%95%9C%20%EC%B5%9C%EA%B3%A0%EC%9D%98%20%EC%96%B8%EC%96%B4.png)
나는 웹 페이지를 스캔하고 페이지에 문제가 있을 경우에 대비해 나에게 이메일을 보내는 크롤러를 만들고 싶습니다(페이지는 일부 웹 서버의 상태(작동/작동 중지)를 저장합니다).
그러한 서비스를 작성하는 데 가장 적합한 언어는 무엇입니까?
PHP나 Python을 고려했지만, 그것들은 해석 언어이기 때문에(+PHP는 스크립트를 실행할 수 있는 최대 시간 제한이 있습니다), 그것이 가장 적합할 것이라고 생각하지 않습니다.
또한 C/C++는 옵션이 아닙니다. Java에 스레딩이 있고 필요할 수도 있으므로 고려 중이지만 확실하지 않습니다.
답변1
가장 익숙한 언어를 사용하세요. 이 응용 프로그램은아니요CPU/메모리 제한.
방금 언급한 것 Python
. 설명은 되어있지만 이게 왜 문제가 되는지 이해가 안가네요. 유튜브/토네이도/장고/etc. 파이썬을 실행하세요. 특정 목적을 위해 원하는 모든 것예이미 모듈(daemonize, http 등)로 사용 가능합니다.
PHP
언급한 제한 사항으로 인해 적합하지 않은 것 같지만 아파치가 필요하기 때문에 (정확히 사실은 아니지만 무엇이든). 그래도 가능합니다.
Java
또한 매우 적합합니다. 프로세스를 데몬화하고 기존 라이브러리를 사용할 수도 있습니다.
C/C++
약간 많아 보일 수도 있지만 사용 가능한 라이브러리를 사용하면 작업 코드를 매우 빠르게 생성할 수 있습니다.
manatwork가 강조한 것처럼, bash
그것은 또한 적합합니다...
글쎄요, 짐작하셨겠지만, 제 요점은 이런 종류의 응용 프로그램에 "최고의 언어"가 없다는 것입니다. 일종의 http_client 라이브러리와 기타 라이브러리를 구현한 언어 계열이 있습니다. CPU와 메모리는 무제한입니다. 원하는 언어로 즐길 수 있습니다. :) 하지만 일반적으로 말하자면, 만약 이것이당신의서버에서 웹 서비스가 시작되었는지 확인하려면 내부(cron job, nagios 등)를 확인해야 합니다. 집에서는 하드웨어가 작동하고 응답하는지 확인하기 위해 서버에 ping을 보낼 수도 있습니다.
답변2
내가 할 일은 Perl이나 Python과 같은 스크립팅 언어로 작성한 다음 더 나은 동시성 관리와 같은 작업을 위해 필요에 따라 Java로 확장하는 것뿐입니다. 작업을 완료하고 필요할 때 확장하기 위해 항상 가장 간단한 도구를 사용하고 싶어합니다. 나는 두 언어 모두의 열렬한 팬이며 Java를 더 잘 알고 있지만 항상 Java를 사용하기 전에 Perl에서 문제를 해결하려고 노력합니다. Perl은 오프라인 워크로드 처리, 특히 단일 스레드에 적합합니다.
물어볼 또 다른 질문은 애플리케이션별 API의 가용성입니다. 요즘에는 거의 모든 것에 대한 API와 웹 서비스가 있습니다. 그럼에도 불구하고 Java에는 Perl보다 더 많은 API가 있다고 확신합니다. 그러나 최근 IBM Clear Case용 Java API를 찾을 수 없어 실망했습니다. 따라서 일부 버전 관리 통계 및 모니터링의 경우 셸을 사용하여 CLI를 호출하고 추가 처리를 위해 데이터를 Perl에 전달합니다.