가장 생각없이 programming이 가능한 언어는 뭘까요?

winner의 이미지

다양한 programming 언어를 하신 분들이 답변해 주시면 감사하겠습니다.

제가 생각을 많이 하는 스타일인데 생각없이 즉각즉각 하는 생활에 대해서 실험을 하고 있습니다.
Programming도 생각없이 할 수 있다면 좋겠다고 생각했는데요.

어떤게 있을까요?

저는 GW-Basic, Java, Python, C, C++, Java, Ruby 등을 조금씩 했고, 가장 많이 시간을 보낸 것은 C++로 알고리즘을 하는 거였는데
아직 생각없이 프로그래밍을 하는 경지는 도달해 본 적이 없습니다.

FIFO의 이미지

"내일까지 해놔"

winner의 이미지

개그 감사.

jungho_gun의 이미지

ㅋㅋㅋ

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

sugarlessgirl의 이미지

perl, ruby, python 같은 dynamic 한 언어들이 자료구조에 관련된 처리하기가 편했습니다.
언어자체가 굉장히 동적인 자료구조를 제공해주는데다가 데이터 타입도 아무거나 넣어도 되니까요.

그리고 Java 의 익명 클래스라던가 Ruby 의 closure 같은 것도 굉장히 좋았습니다.
변수나 클래스 이름 짓는데 엄청나게 많이 고민하거든요.. -_-
Java 같은 경우는 GC가 있기 때문에 결과 객체를 함수의 리턴값으로 던져주는 것도 굉장히 좋죠..
A(B(C(D(E()))) 같이 쓸 수 있으니까요..ㅋ 하지만 누가 보면 욕할거 같아요..

함수형 언어들은 굉장히 코드를 함축적으로 쓸 수 있어서 좋긴한데.. 그 전에 머릿속으로 생각을 많이해야 될거 같아요..

저는 정말 생각없이 프로그래밍하는 스타일인지라..
일단 유닛 테스트는 필수로 만들어야 됩니다.. 그리고 디버거 없으면 개발 못하죠.. ㅋ

생각없이 짠다 -> 유닛 테스트 돌린다 -> 디버거 돌린다 -> 잘 도는 것 확인 -> 필요하면 프로파일링 툴 돌려서 성능 체크 -> 시간이 아주 많이 남으면 리팩토링..

하지만 사실은
생각없이 짠다 -> 생각나는 대로 몇개 테스트한다 -> 디버거 돌린다 -> 끝.

dynamic한 스크립트 언어들이 좋긴 한데.. 그래도 컴파일 에러라도 내뱉어 주는 C++ 을 써야 안심이 됩니다.
템플릿 떡칠된 코드에서 나는 에러메세지 해석하려면 옥상에 올라가서 바람좀 쐬고와야 할거 같지만요.. -_-;;

이런 답변을 기대하신건 아닌거 같지만.. 재미있는 주제라 몇자 쓰고 갑니다

nineye의 이미지


저랑 약간 스타일이 다르시네요...
저는 프로그래밍을 할 때, 어떻게 만들어야 하는지 설계를 꼼꼼히 하고
그 설계로 만드는 것이 가능하고 효율적이라 생각될 때,
한번에 코딩을 하고, 한번에 컴파일을 한 다음, 실행 ==> 끝
을 추구하는데요...
물론 이런식으로 하면 컴파일을 하는 단계까지는 머리속에서 멀티태스킹이 안되며(
머리 속에 다른 생각을 집어넣으면, 이전에 머리속에 집어넣었던 설계를 다시 정리해야 함),
중간 중간에 문제가 발생할 가능성이 많다는 단점이 있긴 한데, 이 스타일을
고치긴 어렵더라구요...
그래도 전체적인 설계를 꼼꼼히 할 수 있고, 중간 중간 변경될 수 있는 설계를 머리속에서
정리하는 것이 오히려 좋은 구조를 빠른 시간내에 적용할 수 있는 것 같아서 나름 장점도 있다고
생각합니다...ㅋ

그리고 dynamic에 대해서는 저랑 생각이 같으시네요..
dynamic type을 가지는 스크립트 언어는 python을 써봤는데 역시 그냥 단순한 내용을 쓰기에는 편하더라구요.
그런데 성능 및 명확성을 고려해야 할 경우는 자신이 만든 코드가 어떻게 메모리를 할당하는지 또는
어떤 기계어 코드를 만드는지를 알아야하는데, 이런 경우에는 c나 어셈만큼 좋은 것이 없더라구요..

그리고 저도 처음에는 template code에 대한 에러메세지를 보고 토할 뻔 했는데,
익숙해 지다보니 에러 하나 당, 에러 내용이 10줄정도 되어도 한번에 무슨 에러인지 딱 집어내는
내공이 쌓였다는...ㅋ 결국 나머지 내용은 형에 대한 명시이기 때문에..

_________________________________________________________

nineye's blog

_________________________________________________________

nineye's blog

snowall의 이미지

Visual Basic이라는게 있습니다.
무념무상의 경지에서 코딩해도 웬만큼은 굴러가네요 -_-

--------------------------
피할 수 있을때 즐겨라!
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

bookgekgom의 이미지

ㅋㅋㅋㅋㅋ 웃어야하는건가? ㅋㅋㅋㅋ

비베 프로들이 님말을 들으면 화내지 안을까요?

아니..오히려 쉽다고 하는건 칭찬일지도? 오묘하다...

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

JuEUS-U의 이미지

개인적으론 javascript를... = ㅅ=);;
농담이 아닙니다.
class도 되는데 통상적인 언어들에 꿇릴 이유는 없다고 봅니다.

klyx의 이미지

자바스크립트는 정말 생각많이 해야하지 않나요?
특히나 주로 브라우저상에서 돌아간다는걸 고려하면, 내가 지금 쓰고 있는게 표준인지, 각 브라우저에서 지원은 되는건지, 지원안되면 어떻게 회피해야하는지...

kirrie의 이미지

그런 부분은 그냥 prototype이나 jquery, mootools.. 등등의 프레임웤을 쓰면 간단히 해결되는 문제지요. (물론 이런 툴들도 완벽하진 않습니다만...)

자바스크립트의 경우는 완전한 OOP라고 보긴 힘들지만, 함수 언어로써의 묘미는 충분히 가지고 있다고 봅니다.
요즘에 저도 자바스크립트 만지는 재미에 푹 빠져 살고 있어요.
게다가 Jaxer라는 Aptana에서 나온 ajax server(라고 하네요)를 사용하면 서버-사이드에서도 자바스크립트를 사용할 수 있습니다.
내장 dom parser로 서버에서 한 번 parsing하면서 스크립트를 실행하고 결과를 다시 웹브라우져에서 실행하는...
http://www.aptana.com/jaxer 에 가시면 자세한 내용을 확인할 수 있습니다.
--->
데비안 & 우분투로 대동단결!

--->
데비안 & 우분투로 대동단결!

hongminhee의 이미지

JavaScript의 OOP가 어떤 점에서 완전하지 않나요?

winner의 이미지

저보다 먼저 눈치채실 분이 왜 그러세요.
아... 아닌가?
kirrie님의 글을 보면 뭔가 다른 뜻이 있을지도...

klyx의 이미지

class 는 OOP의 한 방법이지, class = OOP 가 아니니까요...
자바스크립트는 프로토타입기반으로 OOP를 지원하고 있는걸로 알고 있는데, 어떤점에서 OOP가 딸리는지 저도 궁금하네요.

winner의 이미지

사실 JavaScript에서 DefineClass 함수를 만들어버리는 사람들도 있어서... 크헐헐.. 더 알 수 없긴 합니다.
제가 생각하기에는 언어 core 차원에서 class based를 지원하지 않고, 특히 그쪽을 원하시는 분들은 private을 통한 data hiding을 꼭 이야기하실 것 같다는 느낌이 들어서요.

완전하다는 것의 의미가 과연 무엇일까요?

klyx의 이미지

갑자기 떠오른 것인데, '완전한 객체지향'을, 모든 자료형이 객체로 다루어지는 것을 의미하는 것일지도 모르겠습니다.
전에 '자바는 int등은 객체가 아니기 때문에 자바는 완전한 객체지향이 아니다'라는 글을 본 기억이 있습니다.
덧붙여서 루비는 1.abs()와 같이 쓸수 있기 때문에 루비는 완전한 객체지향이라고도 적혀있었던거 같습니다...만, 그 글을 못찾겠어서 확실친 않습니다.

kirrie의 이미지

표현이 좀 그렇군요, '완전한 OOP'가 아니라고 하면 뭔가 큰 결점이 있는것처럼..
사실 근데 더도 덜도말고 딱 winner님과 같은 생각만하고 썼습니다. ㅎㅎ;;
깊게 들어가면 전 아무것도 몰라요...
--->
데비안 & 우분투로 대동단결!

--->
데비안 & 우분투로 대동단결!

bootmeta의 이미지

java나 c++처럼 class 구문을 제공합니다.

winner의 이미지

JavaScript의 창시자가 class를 언어 core에 넣자고 주장하면서 반대파를 설득을 참 잘하는 것 같아요. 아마 성능을 이야기하는 것으로 아는데...

하지만 언어덕후들은 좀 떨어져 나가겠군요. 이미 재미 다 봤다고 느낀 사람들은 이미 어느정도 떨어졌겠지만...

aero의 이미지

Javascript로 Perl의 새로운 OOP 프레임웍인 Moose ( http://moose.perl.org )을 본떠서 만든
Joose ( http://code.google.com/p/joose-js/ ) 라는 것도 있습니다.
Mixin뿐만 아니라 Role(trait)도 지원합니다. 예제들을 한 번 보시면 놀라실겁니다.

r0oo0t의 이미지

그러면 객체지향 언어보다 구조적 언어가... 더 생각없이 짤수 있지 않나요?

그냥 C?

/*********************************
*모든것을 방관하고 지켜보며
*모든것을 창조하고 파괴할수
* 있는 '권한'을 가진 자
*
* 루트 == 신 같은 뜻 아닌가?
*********************************/

/*********************************
*모든것을 방관하고 지켜보며
*모든것을 창조하고 파괴할수
* 있는 '권한'을 가진 자
*
* 루트 == 신 같은 뜻 아닌가?
*********************************/

winner의 이미지

이야기들 감사합니다.
확실히 무엇인가를 정의하고 그 정의에 따라 만들어내는 형태가 생각을 하게 만드는 것 같네요.

그렇게 본다면 확실히 Test First 개념 혹은 절차형이나 혹은 prototype based OOP가 나은 듯...

ipes4579의 이미지

PHP..
반수면 상태에서 코딩한 적이 몇 번 있어요.. -0-;

select99의 이미지


생각없이 짜는데 객체지향까지 생각해야되면.. 곤란하죠..

crowdy의 이미지

생각없이 가볍게 작성하려는데 객체 생각해야하고, 객체 생각하면 DAO생각도 해야하고 한다면... 음- 조금 "가볍게"는 아닌거 같군요.

hongminhee의 이미지

‘생각 없이’라는 말을 ‘큰 고민 없이’라고 이해하겠습니다. 그렇다면 각자 가장 익숙한, 많이 다뤄본 언어가 아닐까 생각합니다. 예를 들어 저는 PHP를 안 좋아하는데 PHP는 절 좋아해서;;; 그걸로 간단한 웹 애플리케이션을 만드는데는 고민을 별로 하지 않게 됩니다. 그런데 이것도 C++ 정도 되는 언어라면 아무리 익숙해져도 ‘생각 없이’ 프로그래밍을 할 수 있을 것 같지는 않습니다.

winner의 이미지

요새는 몸을 움직이는 것도 즐겁네요.

PHP가 dahlia님을 좋아하시는 만큼 많은 것을 PHP가 해주었을 것 같네요.
그나저나 모국어의 역할은 역시 크군요.

MIT가 Python 하는 이유가 이래서인가?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.