2009-05-29 1 views
4

인터넷에서 http를 통해 일부 csv 파일을 다운로드하고 구문 분석하여보다 유용한 매체로 변환해야합니다. 결국 C++ 프로그램은 데이터를 소비합니다. 몇 년 전 필자는 Perl 책을 꺼내서 Perl 스크립트를 작성하여 다운로드 및 구문 분석을 시작했습니다. 하지만 이제 Boost와 Qt를 사용하여 다운로드, 구문 분석 및 C++의 GUI 프론트 엔드를 약간의 노력으로 구현할 수 있습니다. 지난 번 필자가 Perl/Python을 작성한 것은 약 6 개월 전이었습니다. Perl/Python에서이 작업을 수행하는 데 더 오래 걸릴 것이고 Perl/Python 코드는 쓰레기가 될 것입니다. 내가 가진 유일한 도구가 망치라면 모든 것이 손톱처럼 생겼어? 아니면 시간이 바뀌었고 C++은 전통적으로 Perl이나 Python과 같은 스크립트 언어가 지배적 인 영역에서 생산성을 높일 수 있습니까?망치가있는 경우 ... 또는

+2

+1 "내가 가지고있는 도구가 망치 인 경우 모든 것이 못처럼 보입니다."... 단지 망치로 마른 벽에서 나온 나사를 두드리지 마시고 나중에 진흙으로 덮을 수 있다고 말하기 만하면됩니다. . – dotjoe

+3

진짜 질문이 아니기 때문에 투표 마감. C++ 또는 스크립팅 언어로이 작업을 수행 할 수 있습니다. –

+2

귀하의 질문은 무엇입니까? – Zifre

답변

1

집을 짓는다면 망치로 잘 작동합니다. 그러나 공압 프레임 네일러 (pneumatic framing nailer)를 사용하여 집을 짓는 것이 훨씬 쉽습니다.

C++은 훌륭한 언어이며 스크립팅 언어가 지배적 인 영역에서 생산성을 높일 수 있지만 모든 것이 동일하면 텍스트 구문 분석을 위해 perl/python을 사용하면 생산성이 향상됩니다.

-1

C++은 긴 텍스트 문자열을 처리하도록 특별히 설계되지 않았습니다. (오래된 C-Strings를 보시면 ... 그들은 진지하게 악몽이었습니다.) 대조적으로, Perl은 으로 만들어졌습니다.

아마도 C++에서 뭔가 혼란 스러울 지 모르지만 Perl 솔루션은 더 강력하고 유지 관리가 가능할 것입니다.

+2

쉽게 유지할 수없는 perl을 작성합니다. – Alan

2

왜 안 되니?

라이브러리/기능이 부족하여 코드가 해킹 될 경우 C++이 적합하지 않을 수 있습니다. 자주 변경해야하는 경우 C++이 적합하지 않을 수 있습니다. Perl/Python을 아는 사람들이 그것을 유지한다면, C++이 최선이 아닐 수도 있습니다. 등

정말 GUI가 필요합니까? 속도가 필요합니까? C++을 스크립팅 언어로 만들기 위해 변경된 부분은 없지만 그렇게해서는 안됩니다.

이런 상식 시험을 통과하면 왜 안되나요?

3

예를 들어, C++을 사용하여 문제를보다 쉽게 ​​해결하고 생산성을 향상시킬 수 있습니다.

하지만 일반적으로 저는 더 많은 사람들이 이러한 종류의 작업을 위해 python/perl을 사용할 것으로 기대합니다.

9

다른 사람들이 일반적으로 솔루션을 기대할 수있는 것은 무엇이 중요합니까? 을 사용하면 C++에서보다 빠르고 효율적으로 작업을 수행 할 수 있습니다. C++에서 끝내십시오.

1

C/C++ 대 python/perl의 생산성 문제는 저와 관련이없는 것처럼 보입니다. Qt, Boost 및 다른 선반 도구 세트를 사용하여 파서를 작성하려면 직접 해보십시오. 구문 분석 속도가 문제인지 여부는 실제로 지정하지 않았지만 실제로도 그렇습니다. 문제의 경우 일 수도 있습니다.

언어 X가 더 쉬울 수도 있다고 생각하더라도 해당 언어에 대해 새로운 것을 배우고 싶다면 Y 언어로 작성하십시오. 아주 쉬운 작업처럼 들리므로 작성 방법을 써주십시오.

향후 사용에 대해서도 고려해야합니다. 이 프로그램을 어떤 방식으로 확장하고 확장해야 할 경우 특정 언어 선택을 요구할 수 있습니다.

0

C++로 생산성을 높이려면 C++을 사용하십시오. 다른 언어를 배우는 것은 여전히 ​​좋은 생각이지만 때로는 일을 끝내기 위해 알고있는 것과 함께 가야합니다.

아직 알지 못했지만 Boost.Tokenizer 라이브러리에는 escaped list separator을 통해 내장 된 CSV 구문 분석 기능이 있습니다.

0

설명에서 해머 외에도 다른 도구가있는 것 같습니다. 가지고있는 도구가 많을수록 효율적으로 일을 처리 할 수 ​​있습니다. 작업을 끝내기 위해 처분 할 수있는 도구를 사용하고 때로는 더 많은 도구를 구입 (배우기)하십시오.

0

저는 C++을 좋아합니다. 컴파일을 실행하고 테스트하고 클로즈 사이클을 싫어합니다. 특히 데이터를 테스트해야 할 때 그렇습니다.

내 솔루션 : 저는 C++ 응용 프로그램에 포함 된 작은 프로그래밍 환경 [Lua 기반]을 만들었습니다. 으로 실행 시간에 대화 형으로 처리합니다. 왜 하나의 프로그래밍 환경이나 다른 프로그래밍 환경을 고수해야 하는가? 두 세계 모두에서 가장 좋은 을 사용하십시오 ().