2009-10-07 4 views
7

저는 C 프로그래머이고 웹 개발에 익숙하지 않습니다. 어떤 웹 -C 기술 (오픈 소스)이 웹 개발을 위해 빨리 배울 수 있습니까?C 언어 용 웹 기반 개발

업데이트 : 내 질문은 클라이언트 및 서버 기술을 기반으로합니다.

+0

나는 웹과 다른 거의 모든하지만, 컴파일 된 C 프로그램을위한 파이썬을 사용 - O3 플래그는 흥미로운 속도와 약 40 년 이상의 라이브러리 및 최적화를 제공해야합니다. FastCGI는 이것을 가능하게합니다. http://www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch2c.htm http://stackoverflow.com/questions/2149709/c-language-fastcgi-with-nginx – timkofu

답변

4

저는 현재 웹 개발을 위해 C++ (C++이 아닌)를 많이 사용하고 있으며, "빨리 배웠다"는 것이 거의 없습니다. 웹 애플리케이션의 특정 모듈은 성능을 위해 C로 작성 될 수 있지만 C++이 가장 가능성이 높지만 작업에 적합한 언어는 아닙니다.

+1

예 - memcached는 C로 작성된 무언가의 예입니다 – RichardOD

+0

memcached는 웹용으로 많이 사용되고 있지만 memcached는 정확히 웹용 물건이 아닙니다. 그리고 그 동안 우리는 C++로 갈 생각을지지합니다. –

0

요즘 클라이언트 측에서 많은 "웹 프로그래밍"이 발생합니다. C에서 Javascript로 크로스 컴파일러를 조사 (또는 발명하지 않는다면), 사람들의 브라우저에서 많은 C 코드를 실행하지 않을 것입니다.

물론 서버 측에서는 기분이 좋으면 C로 작성하고, 일부 사람들은 자유롭게 작성할 수 있습니다.

+0

그것은 다소 분명합니다. 그는 서버 측 부분에 대해 이야기하고 있습니다. –

+0

내 질문은 클라이언트/서버 쪽 모두를 기반으로합니다. 질문을 업데이트 중입니다. –

0

누군가가 당신이 언어 대체 - 유행 - 하나을 사용할 것을 제안하기 전에, 나는 당신이 c로 개발을하는 방법을 알고 이해하는 것이 C로 웹 개발을해야한다고 말하고 싶습니다. 프로토콜, 마크 업 등의 특성. 라이브러리 요구는 여기에서 최소한입니다. 아무도 당신의 필요와 당신의 아름다움에 대한 인식에 맞는 것을 말할 수 없습니다.

+0

실수로 게시물에 태그를 사용하는 것을 조심하십시오. –

+0

고마워, 크리스. 나는 그것이 허락되지 않는다 ;-) –

+3

당신이 자신의 URL 디스패치, 인증, DB 레이어, 템플릿 프로세서와 당신이 처음으로 잘못 될 많은 것들을 쓰고 싶다면 라이브러리 요구는 극히 적다. 두 번째, 너무). 혼자 작성하는 것은 좋은 방법이지만 전문 웹 응용 프로그램을 만드는 것은 매우 불행한 방법입니다. – zoul

13

나는 거만하게 들릴 것 같지만 당신이 'C 프로그래머'라고 말하는 대신에 당신은 프로그래머이고 웹 프로그래밍에 더 적합한 언어를 배우라고 말해야합니다. 재미있을 것입니다, 당신은 더 나은 프로그래머가 될 것이고 응용 프로그램은 매우 좋을 것입니다.

나는 이론 상으로는 어떤 언어로도 훌륭한 웹 응용 프로그램을 작성할 수 있다는 것을 알고 있지만 실제로는 'webapp sense'언어로 작성하는 것이 더 쉽습니다. 다른 많은 것들이 있다면.

+0

이것은 분명히 최고의 대답입니다. – RichardOD

2

클라이언트 쪽에서는 선택의 여지가 거의 없습니다. HTML/CSS/Javascript에 대해 알아야합니다.

서버 쪽에서는 다양한 옵션이 있습니다.

나는 웹 개발에 뛰어 들기 전에 C 프로그래머 였고, PHP가 등장했을 때, C와 구문 적 유사성이 있었기 때문에 매력을 느꼈다. (훨씬 더 좋음) 많은 표준 C 라이브러리 함수도있다. (sprintf, fread 등).

PHP는 절차상의 언어로서의 성능이 뛰어나기 때문에 시작하기에 알맞은 곳이며, OO를 원격으로 수행 한 적이 없다면 발을 젖히는 좋은 방법이 될 수 있습니다.

이것은 PHP가 지구상에서 가장 훌륭한 언어라고 말하는 것은 아닙니다. 많은 문제가 있습니다. 그러나 무거운 C 배경에서 오는 누군가를위한 "첫 번째 웹 지향 언어"로서, 나는 훨씬 더 나은 것을 생각하기가 어려웠습니다.

+1

"php"는 원래 "개인 홈페이지"를 의미합니다. 이것은 정확하게 언어가 좋은 것입니다 ;-) –

+0

그래, 그게 정확히 PHP가 원래 좋은 것입니다. 성장하여 PHP에서 이름을 "PHP Hypertext Preprocessor"로 변경했습니다. 이는 사람들이 웹에서하는 일을 잘 설명합니다. 똑 바른 C (농담을 쓰는 프로그래머)가 쉽게 전환 할 수 있다고 생각하는 또 다른 웹 중심 언어가 있다면 제안 해주십시오. – timdev

+0

"php"에 관해서는 이름 변경을 정당화하기에는 충분하지 않다고 생각하지만 내 의견 만이 유일한 것이 아니며 놀라는 주제가 아니라 (필자의 놀랍게도) 논쟁의 여지가있는 의견은 환영받지 못한다. 그래서 나는 그것으로 나아 가지 않아야한다. 그리고 저는 C++ 이상의 전환이 필요하다는 것을 확신하지 못합니다. –

0

클라이언트 쪽에서는 C에서 아무 것도 할 수 없습니다. 서버 측에서는 C에서 cgi 세트를 만들 수 있다고 주장 할 수 있습니다.이 cgi는 독창적 인 클라이언트 코드 (html + css + 자바 스크립트) 예술 웹 응용 프로그램의 상태가 발생할 수 있습니다.

그러나 이것은 내 경험에 근거하여 매우 어려운 길이며 웹 응용 프로그램이라는 특별한 환경에서 좋은 통찰력을 갖지 않으면 실제로 따라갈 수없는 것입니다. 또한 최종 결과는 최상의 Frankenstein과 같은 짐승이 될 것입니다. 저를 믿으십시오.

내 제안은 웹 개발을 공부하는 것입니다. 즉, 클라이언트 측 html + css + javascript 및 서버 측 스크립팅 솔루션입니다. 아마 PHP와 같은 스크립팅 솔루션을 선택하면 도움이 될 것입니다. 왜냐하면 PHP와 구문 적으로 근접해 있기 때문입니다.하지만 IMHO는 작업의 쉬운 부분입니다. 클라이언트 측 (html + css + javascript)이 아름답고 안정적이며 사용자 친화적 인 웹 응용 프로그램을 만들기 위해 어떻게 작동하는지 이해하면 집중해야 할 부분입니다. C 프로그래밍에 대한 배경 지식 때문에 스크립팅 측면을 더 쉽게 시작할 수 있습니다.

행운을 빈다!

2

나는 웹 개발을위한 C (안 C++)의 오늘날 많이 사용 잘 모르는 것 같아요 - 오픈 소스 아니지만

의 G-WAN 웹 서버가 유일한 예는 I C.에서 웹 개발을 알고

그것은 당신이 즉석에서 실행되는 C 스크립트를 작성할 수 있습니다

:

http://g-wan.com

당신의 experien을 감안할를 C에서 ce, 그 도움이 될 수 있습니다.

+0

굉장! 나는 이처럼 실제로 뭔가를 찾고있었습니다. 감사. – timkofu

4

당신은 KORE

코레은 C.

코레 확장 가능한 웹 API를 작성하기위한 웹 응용 프로그램 프레임 워크를 사용하기 쉬운 응용 프로그램을 구축하기 위해 API를 사용하기 쉬운 노출하는 것입니다 시도 할 수 있습니다. 다음은

#include <kore/kore.h> 
#include <kore/http.h> 

int page(struct http_request *); 

int 
page(struct http_request *req) 
{ 
    http_response(req, 200, "Hello world", 11); 
    return (KORE_RESULT_OK); 
} 

코레가 필요없이 시작하기 쉽게 만드는 「Hello World」의 응답으로 모든 요청에 ​​응답 할 것입니다 C로 코드를 웹 응용 프로그램을 작성하여 진행하는 방법에 간단하게이의 예입니다 make와 같은 빌드 프레임 워크와 함께 바이올린.

내장 명령을 사용하면 Kore 응용 프로그램을 만들고, 컴파일하고 실행할 수 있습니다.

당신이 자신을 메이크를 구축하고 함께 라이브러리를 연결하는 것을 선호하지만 경우, 이동하기에

$ kore create myapp 
$ cd myapp 
$ kore run 
compiling myapp.c 
myapp built succesfully! 
[parent]: running on https://127.0.0.1:8888 
[parent]: kore is starting up 
[wrk 0]: worker 0 started (cpu#0) 

Source