스몰 토크를 배우기 시작 하시겠습니까? [닫은]


82

내 질문은 간단합니다!

  1. 시간이 있다면 스몰 토크를 배우기 시작 하시겠습니까? 왜? 왜 안돼?
  2. 스몰 토크를 이미 알고 계십니까? Smalltalk를 추천하는 이유는 무엇입니까? 왜 안돼?

개인적으로 저는 Ruby on Rails 프로그래머이고 정말 좋아합니다. 하지만 스몰 토크에 대해 생각하는 이유는 다양한 블로그를 읽고 어떤 사람들은 루비를 "스몰 토크 라이트"라고 부르기 때문입니다. 제가 스몰 토크에 관심이있는 두 번째 이유는 Seaside 입니다.

누군가 이전에 같은 전환을 한 적이 있습니까?

편집 : 사실, Smalltalk / Seaside에 대해 가장 흥분한 것은 WebDevRadio의 다음 에피소드입니다 : 에피소드 52 : 해변의 Randal Schwartz (다른 것들 중에서)

답변:


61

Ruby를 좋아한다면 Smalltalk를 좋아할 것입니다. IIRC Seaside는 Gemstone / S OODBMS의 일부인 Gemstone VM 으로 이식되었습니다 . 이것은 Ruby보다 훨씬 더 나은 스레드 지원을 제공하므로 대용량 시스템을위한 더 나은 백엔드입니다. 이것은 그것을 자세히 살펴볼 좋은 이유가 될 수 있습니다.

스몰 토크를 배워야하는 이유 :

  • 정말 정말 멋진 프로그래밍 환경입니다. 일단 당신이 그것에 대해 생각하면 (C ++ 또는 Java에 익숙한 사람들에게 약간의 문화적 충격을주는 경향이 있습니다) 당신은 그것이 작업하기에 정말 좋은 환경이라는 것을 알게 될 것입니다. 내가 사용한 오래된 Digitalk는 사용하기 매우 즐거운 시스템입니다. Kent BeckMartin Fowler 와 같은 많은 오래된 XP 및 OO 전문가 유형 은 그날 Smalltalk에서 이빨을 자르고 때때로 대중 앞에서 좋은 옛날을 그리워하는 소리를들을 수 있습니다 (인용에 대한 Frank Shearer에게 감사드립니다, +1)- 애자일 개발은이 플랫폼에서 시작되었습니다.

  • 역사상 가장 생산적인 개발 플랫폼 중 하나입니다.

  • 몇 가지 성숙한 구현이 존재하며 놀랍도록 큰 코드 기반이 있습니다. 한때 개발자의 생산성과 출시 시간이 상당히 중요한 금융 시장에서 유행했습니다. 1990 년대 중반까지 애플리케이션 개발에 적합한 상업적으로 지원되는 고수준 언어를 원했다면 (LISP를 제외하고) 마을에서 유일한 게임이었습니다.

  • 배포는 간단합니다. 이미지 파일을 적절한 디렉토리에 놓기 만하면됩니다.

  • 실제로 이유는 아니지만 Gang of Four Book 은 몇 가지 예제에 Smalltalk를 사용합니다.

스몰 토크를 배우지 않는 이유 :

  • 그것은 틈새 시장의 무언가입니다. 일자리를 찾는 데 어려움이있을 수 있습니다. 그러나 서버를 소유하고있는 일종의 .com 애플리케이션을 생성하는 경우 이는 문제가되지 않을 수 있습니다.

  • 많은 사람들은 레거시 시스템으로 간주합니다. 플랫폼에는 상대적으로 새로운 개발이 거의 없습니다 (시사 이드가 약간의 르네상스를 주도하고있는 것처럼 보이지만).

  • 기존의 소스 제어 시스템과 잘 어울리지 않는 경향이 있습니다 (적어도 90 년대 초반부터 사용했습니다). 이것은 여전히 ​​사실 일 수도 있고 아닐 수도 있습니다.

  • 그것은 다소 고립되어 있고 스스로 노는 것을 좋아합니다. Python 또는 Ruby는 처음부터 통합을 위해 구축되었으며 더 난잡한 경향이 있으므로 타사 소프트웨어와 통합하기가 더 쉽습니다. 그러나 다른 다양한 주류 시스템은 이러한 유형의 고립성으로 인해 다소간 고통을 겪으며 사용을 크게 방해하지 않는 것 같습니다.


1
Ruby는 Gemstone에도 포팅되었습니다. Maglev라고합니다. infoq.com/news/2008/04/maglev-gemstone-builds-ruby
brian d foy

"전통적인 소스 제어 시스템과 잘 어울리지 않는 경향이있다"는 의미는 무엇입니까?
detly

4
전통적인 스몰 토크가 소스 코드를 저장하는 방식은 그것이 이미지와 관련 소스에 포함되고 파일을 변경한다는 것을 의미했습니다. (예를 들어) C에서 얻을 수있는 멋진 프로그램 파일 세트를 얻지 못했습니다. 스몰 토크 시스템은 (a) 독점적이며 (b) 비싸고 () 경향이있는 특수한 스몰 토크 인식 소스 제어 시스템을 요구하는 경향이있었습니다. c) 다른 모든 것과 호환되지 않습니다.
ConcernedOfTunbridgeWells

그리고 Monticello가 이러한 문제의 (a)와 (b)를 다룰 것입니다. Squeak은 이미이를 많이 사용하고 있으며 SqueakSource에는이를 사용하는 많은 프로젝트가 있습니다. 그래도 여전히 사마귀가 있습니다. git-Monticello 프로젝트가 실제로 사용되면 (c)도 길가에 떨어질 것입니다.
Frank Shearar 2010 년

2
나는 일반적으로 대답을 좋아하지만 Smalltalk는 타사 소프트웨어와 잘 작동합니다. 많은 API가 보이지 않는 것은 기술적으로 통합 할 수 없기 때문이 아니라 틈새 시장이기 때문입니다 (따라서 외부 소프트웨어가 필요한 사람이 적기 때문입니다). 그 효과에 대한 두 번째 이유 (기술적이지 않은)는 스몰 토커가 다른 덜 재미있는 기술보다는 스몰 토크의 문제를 처리하는 것을 선호하기 때문입니다.
Sebastian Sastre 2011

45

글쎄, 당신이 나를 이름으로 언급했기 때문에 나는 차임해야한다고 생각합니다.

내가 그 팟 캐스트 인터뷰에서 말했듯 이 http://MethodsAndMessages.vox.com/의 내 블로그에서 반복적으로 시연했듯이 올해 는 " 스몰 토크의 해 "입니다. 그리고 지난 10 개월 동안 스몰 토크 옹호 활동을 해왔으니 실제로 일어나고 있음을 알 수 있습니다. 더 많은 고객이 스몰 토크와 시사 이드로 눈을 돌리고 있으며 스몰 토크 공급 업체는 이러한 새로운 관심을 포착하기 위해 열심히 노력하고 있습니다. 더 큰 규모의 스몰 토크 회의가 계획되고 있습니다. 더 많은 채용 공고가 게시되고 있습니다. 더 많은 블로그 게시물이 작성되고 있습니다.

오늘 스몰 토크를 선택하면 혼자가 아닙니다. 거기에 다른 많은 사람들도 있습니다.

편집하다

글쎄, 몇 년 후, 나는 이제 대신 Dart 를 추천하고 있습니다. Google에서 시작했지만 현재 ECMA위원회가 소유 한 훌륭한 언어입니다. node.js 스타일로 서버 측을 실행하지만 JavaScript로 트랜스 파일하여 최신 브라우저에서 클라이언트 측도 실행합니다. 많은 좋은 책, 블로그, 도움말 채널, IDE 지원, 공개 라이브 pastebin . 확실히 다리가 있다고 생각합니다. 현장이나 온라인에서 가르치기위한 코스웨어를 작성하고있을 정도로 충분합니다. 그리고 저의 작품에 한두 권의 책이 있다고 확신합니다. 그리고 옛날 스몰 토커 인 Gilad Bracha는 디자인의 주요 공헌자이므로 Dart에는 스몰 토크가 많이 있습니다.


2
이것이 Stack Overflow가 멋진 이유입니다! 답변 주셔서 감사합니다!
Christoph Schiessl

호기심으로 인해 관심의 유입에 대해 자세히 설명해 주시겠습니까? 마인드 쉐어가 발생하는 아이디어가 있습니까?
ConcernedOfTunbridgeWells

Ruby가 확실히 도움이되었다고 생각합니다. Javascript와 Objective-C도 마찬가지입니다. 순수한 OO를 이해하지 못하는 사람들에게 이러한 언어는 스몰 토크가 빛을 발하는 방식을 추정 할 수있는 친숙한 시작점을 제공합니다.
Damien Pollet

그런 다음 Seaside 사람들은 좋은 PR을, DabbleDB와 Avi Bryant와 Rails conf에서 Maglev 쿠데타를했고 Randal도 꽤 보컬합니다. :) 또한 Google V8의 Lars Bak은 Self에서 왔습니다. Smalltalk와 Lisp에서, 과거의 미래에서 온 이상한 언어 :)
Damien Pollet

30

스몰 토크는 배우기에 좋은 언어이며, 좋은 점은 그것을하는 데 하루 밖에 걸리지 않는다는 것입니다. 단순한 학문적 언어 그 이상입니다. 사람들은 수십억 달러를 처리하는 거대하고 확장 가능하며 복제 가능한 애플리케이션을 구축하고 있습니다. 그들은 그것에 대해 많이 이야기하지 않습니다. 예를 들어, GemStone 및 Orient Overseas Container Lines : A Shipping Industry Case Study를 참조하십시오 .

Seaside는 스몰 토크를 배워야하는 좋은 이유이지만 레일스보다 훨씬 더 나은 것을 찾을 수있을 것이라고 생각하지 않습니다.

나를 설득 한 것은 GemStone이었습니다. 저는 Gemstone의 GLASS (GemStone, Linux, Apache, Smalltalk, Seaside)를 정말 좋아합니다. 그것의 킬러 부분은 대부분 당신이 그것에 대해 생각하지 않고 당신을 위해 모든 객체 지속성을 처리하는 GemStone입니다. 그들의 데모 중 일부를보고 사람들이 GemStone으로 무엇을하는지 듣는 것은 "큰 응용 프로그램"이 무엇을 의미하는지에 대한 나의 생각을 재설정했습니다.

Rails에 대해 저를 가장 괴롭히는 부분은 객체 관계형 매핑입니다. Ruby는 GLORP (Smalltalk를위한 ActiveRecord를 처리하는) 나 Perl 또는 다른 어떤 것에서도 마찬가지로 힘들 기 때문에 루비에 반대하는 것은 아닙니다. 개체를 데이터베이스 테이블에 매핑하는 것은 매우 어렵습니다. GemStone을 사용하면 데이터베이스에 대한 생각이 사라 지므로 데이터베이스 작업도 사라집니다. 마치 거대한 돌 (또는 원숭이 무리)이 제 등에서 벗겨진 것과 같습니다.


1
두 번 투표했으면 좋겠는데 ... 전적으로 동의합니다.
Sébastien RoccaSerra

1
ORM보다 ODB의 우월성을 보여 주면 +1. 다른 하나에서가는 것은 확실히 당신이 할 수있는 무언가이다 느낌
ryan0

15

> 팔과 다리 비용이 들지 않는 스몰 토크 개발 환경을 찾지 못했습니다.

구글 - 무료 스몰 토크

Cincom Smalltalk, Squeak, GNU Smalltalk


Squeak은 정말 좋습니다! 순수 OOP, 완전한 그래픽, 멋진 사용자 인터페이스, 오픈 소스 (일부는 이에 대해 동의하지 않음), 어느 정도 이식성 ...
Joe Pineda

1
Squeak은 +1이며 초보자를위한 멋진 메일 링리스트가있는 훌륭한 커뮤니티가 있습니다.
Sébastien RoccaSerra

Squeak의 경우 +1, 개체 탐색기 (또는 이름이 무엇이든간에)는 개체 모델의 작동 방식을 학습하는 데 매우 중요합니다.
Mauricio Scheffer

3
Pharo는 무료이며 모든 최신 도구를 갖추고 있습니다 ..
Dafydd Rees

15

스몰 토크를 배우면 OO (Alan Kay)를 발명 한 사람의 관점에서 객체 지향 소프트웨어 개발의 기초가 될 것입니다. 겹치는 윈도우 환경에 대한 아이디어는 Smalltalk에서 나왔습니다.

스몰 토크를 배우는 데 걸림돌은 다음과 같은 흐름 제어를위한 이상한 구문을 가진 메시지 전달 시스템이라는 것입니다.

i < 60
   ifTrue: [ self walk ]

그것은 내가 너무 많은 곳을 보지 못한 일관성을 가진 매우 성숙한 클래스 라이브러리를 가지고 있습니다. 모든 환경 (상용 스몰 토크 포함)의 클래스 라이브러리에는 언어 마스터로부터 배울 수있는 소스가 있습니다. 스몰 토크를 프로그래밍 할 때 저는 항상 환경에서 어떻게 수행되는지 질문합니다.

Smalltalk는 일반적으로 시스템의 모든 개체에 대한 라이브 환경 인 이미지로 구현됩니다.

대화 형 디버거는 실제로 Ruby와 Smalltalk를 분리합니다.

Seaside는 웹 개발 프레임 워크이며 Smalltalk에 새로운 주목을 받았습니다. 적중 내 디버깅 및 원활한 리치 클라이언트 유형 개발 경험을 허용하는 연속 기반 환경입니다 (최상위 애플리케이션 플로우는 단일 방법으로 설계 될 수 있음). script.aculo.us와의 통합은 Smalltalk 내에서 쉽게 호출되는 방식으로 이루어졌습니다.


1
구문은 이상하지 않습니다. 실제로 매우 우아합니다. 다음과 같이 읽어야합니다. "i <60"의 결과가 무엇이든 여기에 코드 (인수로 전달 된 코드 객체)가 있습니다. 이것이 사실이라고 생각하면 평가됩니다. 재미있는 점은 "i <60"이 모호하고 통계적인 것을 반환해도 작동한다는 것입니다.
blabla999

... 그리고 그 모호하고 통계적인 것은 그것을 처리하는 방법을 (방법으로서) 결정할 수 있습니다. 이러한 방식으로 재정의 할 수없는 단일 builtIn 연산자 또는 제어 구조는 없습니다.
blabla999

10

Nigel, 내가 한 인용구는 다음과 같습니다.

지금은 뭔가를 한 지 오래되었지만, 스몰 토크를 지명했지만, 생각을 컴퓨터 코드로 전달할 수 있다는 점에서 아직도 그와 비슷한 것을 발견하지 못했습니다. 언어 뿐만이 아닙니다. 멋진 브라우저 환경, 라이브러리, 명확하고 잘 디자인 된 코드를 작성하는 문화가 다른 어떤 것보다 빠르게 스파게티를 만들 수 있습니다. JavaOne의 참가자들이 Java가 다른 어떤 것보다 훨씬 더 생산적이라고 칭찬 할 때 갈색 종이 봉지가 필요했습니다. 오, 내 클래스 경로 분류로 돌아가서 ...-Martin Fowler (Software Development Magazine, 2001 년 1 월)

여기 에서 찾았습니다 .


9

큰 앱에 스몰 토크를 사용하지 않을 것이라고 생각하는 포스터에 동의하지 않을 것입니다. 하지만 저는 일주일도 안되어 상당히 멋진 (소문자 참고) 프로토 타입 앱을 만들었습니다.

92 년부터 ST에서 OO를 배웠습니다. 정말 기뻤습니다. OO에 대한 진정한 배경 지식을 얻었습니다. 수업에서 생각하기. 유형이 없습니다. ST는 메시징을 정말로 강조합니다. 무언가를 알고 싶다면 객체에 메시지를 보내고 답을 얻으십시오. IMHO, 정신 및 IDE는 실제로 결합 및 응집력으로 올바른 일을하도록 권장합니다.

Java day job에서 나는 파일, 제네릭, IDE가 ST IDE보다 생산성이 떨어지는 일식과 같은 일에 갇혀 있습니다. 일정보다 빨리 개발을 마칠 때만 ST를 사용했습니다. 사실 그것은 매우 생산적이었고 우리는 너무 많은 재사용을 얻었고 나는 할 일이 없었기 때문에 다른 프로젝트로 옮겨야했습니다! (좋아요, 추정하는 법을 배우는데 시간을 할애했을 수도 있습니다 ...)

Squeak을 다운로드하고 좋은 책을 찾아서 플레이하십시오. 유일한 단점은 하루 공연이 Java 또는 C #을 사용하는 경우 ST를 사용할 수 있기를 바랄 것입니다. 당신은 더 빨리 집에 도착할 것입니다.

크리스 브룩스


9

모두에게 Lisp (Scheme) 또는 Smalltalk를 배우는 것이 좋습니다.

Smalltalks에는 문화 충격을 극복하면 놓치고 싶지 않은 멋진 IDE가 있습니다. 그리고 예, Squeak, Dolphin, Smalltalk / X 및 Visualworks (비 상업용)의 두 개 이상의 무료 서비스가 있습니다.

Lisp는 수학적인 기초가 더 깨끗할 수 있습니다.

문안 인사

추신 : 실제로 나는 둘 다 배우는 것이 좋습니다!


8

루비를 몰라 ..

스몰 토크는 순수한 OO 언어입니다. 가장 인기있는 'OO'언어 (예 : C ++, Java 등)의 시뮬레이션 된 OO뿐만 아니라 실제로 OO를 이해할 필요가 있다고 느낀다면 스몰 토크로 플레이하는 것이 좋습니다.

스몰 토크에서 모든 것은 속성, 행동 및 메타를 가진 객체입니다. 시뮬레이션에는 객체에서 사용하는 데이터 유형이 있습니다.

나는 그것을 가지고 놀라고 말하고 싶습니다.


1
SmallTalk에서 "클래스"조차도 클래스 클래스의 인스턴스 인 객체입니다 !!! 이것은 내가 그것을 grokked 때까지 나를 화나게했다!
Joe Pineda

1
Ruby는 클래스조차도 객체라는 점에서 순수한 OO 언어입니다. 블록, 메서드 및 널 포인터의 참조도 마찬가지입니다.
Alan

4
Ruby는 Smalltalk에서 많은 아이디어를 얻습니다 (Matz가 자유롭게 설명합니다). 여러모로 'Pragmatic'(Hunt와 Thomas에게 사과) 스몰 토크와 유사한 언어로 볼 수 있습니다.
ConcernedOfTunbridgeWells

7

나는 완전히 당신의 입장입니다. RoR을 사용하고 Smalltalk 땅을 조사하고 있습니다. 내가 중요하다고 생각하는 몇 가지 장단점은 다음과 같습니다.

장점 :

  • 성숙하고 안정적인 환경
  • 빠른 개발주기
  • 더 많이 생각하고 덜 쓰게 만듭니다.

단점 :

  • 다른 생각이 필요
  • 아직도 이해하지 못함

내가 스몰 토크에 대해 알게 된 것은 매우 재밌습니다. Lisp 및 Erlang 항목을 검색 할 때 Google 결과에 계속 표시되는 것은 바로이 것입니다. 어느 날 나는 그것을 확인하고 멋진 Windows 환경에 놀랐습니다. 얼마 후 Aida / Web 프레임 워크를 발견했습니다. 이 프레임 워크로 웹 개발을 통해 스몰 토크를 배우기 시작했습니다.

아직 거기에 있지는 않지만 너무 흥미로워 서 가만히 앉아있을 수 없습니다 ... :-) 나는 다시 재미 있습니다.


5

시간이 있으면 배우기 시작하지 않을 것입니다. 왜 안돼? C # 또는 Java를 배우는 것이 더 생산적이고 재정적으로 수익성이 있기 때문입니다.

반면에 당신의 취미가이고 고고 학적 발굴을하고 싶다면 Alan Kay를 조사하여 스몰 토크의 무엇, 언제, 왜 그리고 어떻게하는지 시간을 보내는 것이 좋습니다. 매혹적인 이야기와 놀라운 사람 (결국 그는 Turning Award를 수상했습니다). 그런 다음 언어에 대한 느낌을 얻기 위해 약간의 소리를 내며 놀아보십시오. 그 후에는 블록, 클로저 및 객체 지향 원칙에 대한 존경 / 이해를 새로 발견 할 수 있습니다.

저는 스몰 토크를 알고 사용하고 있으며, 약 15 년 동안 계속 유지 하고 있으며 친구에게 스몰 토크를 추천하지 않습니다. 왜 안돼? 고용은 가지고 있고 계속해서 얻는 좋은 것입니다. 스몰 토크를 통해 많은 것을 배울 수 있지만,이 시대에 유익하게 취업하기는 쉽지 않습니다.

또한, 당신은 Seaside에 대해 흥분한 것처럼 보였고 저는 Seaside / GemStone 파트너십을 가정 할 것입니다. 나는 GemStone을 꽤 오랫동안 사용해 왔고 두 사람이 함께 매우 매력적입니다. 성공에 필요한 시장 점유율과 추진력을 얻을 수 있기를 바랍니다.


5

하지마! 정말로 배우기 시작하면 더 이상 다른 것으로 프로그래밍하고 싶지 않을 수 있습니다.

lisp 프로그래머라면 이것은 사실이 아닐 수 있습니다.


4

물론입니다. 스몰 토크를 배우십시오! 이것은 2015 년이고 스몰 토크는 Pharo 덕분에 다시 상승세를 보이고 있습니다. Pharo는 무료입니다. Pharo는 강력한 엔터프라이즈 도구로 빠르게 진화하고 있습니다. 버전 4.0에서 곧 5.0이 될 것입니다. 단 4 년 만에 상당히 성숙해졌습니다!

그런 다음 웹용 Smalltalk 인 Amber 가 있습니다. 또한 무료이며 빠르게 진화하고 있습니다.

스몰 토크의 명성 에도 불구하고 이것은 당신 아버지의 스몰 토크가 아닙니다. Modern Smalltalk는 흥미롭고 유망합니다.

스몰 토크 일자리가 (아직) 많지 않다는 것은 사실입니다. 그러나 여러분이 스몰 토커의 새로운 물결에 충분히 모이면 업계는 이에 적응할 것이며 비즈니스에서 스몰 토크가 더 많이 채택 될 것입니다. 문제는 비전이 있습니까?


3

저는 첫 번째 대학원 수준의 객체 지향 프로그래밍 과정 (1988 년경)에서 스몰 토크를 배웠습니다. 교사는 더 트렌디 한 언어로 넘어 가기 전에 "순수한"OO 언어로 시작하는 것이 가장 좋다고 생각했습니다 (학기 말에 약간의 C ++를 사용했습니다).

그 기준으로, 순수한 OO로 시작하는 것이 가장 좋지만, 요즘에는 둘 다 "거의 순수한"OO 인 Java 및 C #이 있습니다. OO가 아닌 기능을 무시하면 얻을 수있을만큼 가깝습니다. 언어의 Pure-OO 하위 집합으로 자신을 제한합니다.



3

나는 꽤 오랫동안 소프트웨어 엔지니어로 일했습니다. 나는 사람들이 스몰 토크를 몇 번 불러오는 것을 들었고, 확실히 스몰 토크는 1980 년경부터 있었지만, 소프트웨어 주류로 자리 잡지 못한 것 같은 언어 중 하나입니다. Objective C, CLIPS, PL / I 등과 같은 것입니다. 들어봤을 수도 있지만 대부분의 사람들이 프로그래밍하지 않은 것입니다.

특정 직업에 필요한 경우가 아니면 스몰 토크를 배우는 데 시간이 걸리지 않을 것입니다. 몇 년 전의 몇 가지 스몰 토크 튜토리얼과 예제를 살펴 봤는데, OO 프로그래밍의 특정 측면에 대해 분명한 이점이있는 것 같습니다 (메시지 개념이 멋져 보입니다). 그러나 슬프게도 주류가 아니며 그다지 추진력을 얻지 못하는 것 같습니다.


3
Objective-C ...이 진술이 여전히 2012 년 기준이라고 생각하지
마십시오

@sjas 얼마나 사실! 이제 Smalltalk에 필요한 모든 것은 주요 개발자가 새로운 장치 틈새 시장을 만들고 장치 용 앱을 작성하기위한 사실상의 언어로 Smalltalk를 지정하는 것입니다!
오우거 시편 33

2

이 스레드는 저에게 매우 실제적이되었습니다. 웹 애플리케이션으로 소프트웨어 마이그레이션을 계획하고 있습니다. 데이터베이스 기반 소프트웨어입니다. 특히 대안을 확인하고 있습니다 1) Rails 2) Seaside

Gemstone / S에 대한 수치를 데이터베이스로 얻을 수 있다면 그것도 고려할 것입니다. 그래서 저에게는 이전보다 스몰 토크를 더 잘 배워야한다는 의미입니다. 앞으로 15 년 동안 내 작품이 될 수 있기 때문입니다. 오랫동안 마음에 들지 않는 소프트웨어를 사용하면 안됩니다. ;-). Gemstone / S가 "킬러"응용 프로그램 중 하나라는 인상을 받았습니다. 하지만 객체의 지속성은 여전히 ​​매우 어려운 분야입니다 ....


2

1) 네! 언어를 배우는 것은 항상 좋습니다. 언어를 배우려면 쉽고 빠르게 배울 수있는 강력하고 영향력있는 언어로 만드십시오.

스몰 토크는 OO 개념을 배우기위한 탁월한 언어 및 환경으로 남아 있습니다.

아래로 내려가는 것은 모든 객체입니다. 이것은 작업에 대한 정말 일관된 접근 방식을 만듭니다.

Integer는 Class Integer의 인스턴스입니다. 문자열은 문자 객체의 모음입니다. 클래스는 정의하는 클래스에 대한 단일 인스턴스 객체입니다.

제어 구조는 클래스 부울의 인스턴스에 get 메시지를 전송하여 작동합니다.

익명 메서드 (코드 블록, 일명 블록)조차도 ​​객체입니다.

모든 것은 객체에 메시지를 전송함으로써 이루어집니다. 구문은 엽서에 맞출 수 있습니다.

스몰 토크의 개념과 구현의 명확성은 Java, Ruby 및 C #으로 직접 전달되는 사고 방식을 개발할 수 있음을 의미합니다. 파이썬도 마찬가지라고 생각합니다.

영국의 주요 대학이 스몰 토크를 사용하여 개체 지향 컴퓨팅에 대해 매년 5,000 명의 사람들을 교육시키는 것은 개념을 명확히하는 데 매우 유용합니다.

Squeak 5가 방금 출시되었습니다. 점진적 가비지 수집 기능이있는 새로운 Cog / Spur VM에서 성능이 크게 향상되었습니다.

Pharo 4는 아름답고 깔끔한 데스크탑 테마를 가지고 있습니다. 다음 버전 인 Pharo 5가 곧 출시 될 예정입니다. Cog / Spur VM을 사용하는 것으로 이동하고 릴리스에는 약 5,000 개의 클래스가 있으며 구성 브라우저 도구를 통해 네트워크에서 추가 클래스 패키지를 쉽게 사용할 수 있습니다.

Squeak 5는 1 세대 Raspberry Pis에서도 성능이 뛰어나며 새로운 $ 5 Raspberry Pi zero에서는 거의 50 % 더 빠릅니다. 99 달러면 Raspberry Pi 2, 화면 및 케이스를 구입하여 성숙하고 완전한 기능을 갖춘 IDE를 실행합니다.

스몰 토크 (예 : Naiad 및 Spoon)에서 조정되고 분산 된 OO 시스템에 대한 최첨단 연구가 수행되고 있습니다.

세계 최대 규모의 기업 데이터베이스 중 일부는 세계 최대 선적 컨테이너의 60 %를 추적하고 세계 최대 은행의 거래 시스템을 포함하여 Smalltalk에서 실행됩니다.

Smalltalk를 일종의 초강력 CoffeeScript로 사용하여 Amber Smalltalk로 작성 하고 브라우저에서 실행되는 JavaScript로 변환 할 수 있습니다.

Squeak, Pharo 및 Amber는 모두 무료, 오픈 소스, 오픈 라이선스 언어 및 환경입니다.

Squeak 및 Pharo는 MacOS, Windows 및 Linux 용 기능을 어디서나 실행할 수있는 한 번만 쓸 수있는 기능을 제공합니다. (아마도 RiscOS).

Dolphin Smalltalk는 기본 Windows 룩앤필을 대상으로하며 최종 사용자에게 배포하기 위해 완성 된 작업의 닫힌 .exe를 컴파일 할 수 있습니다. 공급 업체에 의한 Dolphin의 추가 개발은 중단되었지만 완전히 작동하며 모든 Smalltalk와 마찬가지로 대규모 확장이 가능하도록 설계되었습니다. (Squeak의 3,000 개에 비해 Pharo에는 현재 5,000 개의 클래스가 있다고 언급 했습니까? Pharo는 Squeak 3.9의 포크입니다.)

** Squeak, Amber, Pharo, Cuis 및 Dolphin을 설치하고 시작하는 방법 가이드는 다음 위치에 있습니다. ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- up-and-running.html

Seaside 웹 프레임 워크는 Squeak 및 Pharo에서 실행됩니다. 보다 전통적인 AidaWeb 프레임 워크와 마찬가지로 훌륭하고 성숙한 도구입니다.

VisualAge, VisualWorks 및 Gemstone은 모두 엔터프라이즈 급 강력한 시스템을 제공합니다. Gemstone은 트랜잭션 및 지속성을 갖춘 무한 확장 가능한 개체 데이터베이스를 제공합니다.

2) 예-이미 사용하고 있습니다.

Open University를 통해 배웠고 즉시 Ruby (Pickaxe 책의 사본과 내 쪽의 라이브러리 참조)에서 생산적이었습니다. Java와 Xerox Moo 코드를 사용하는 데 큰 도움이되었습니다.

반응 형 대규모 다중 플랫폼 모바일 앱을 관리하고 배포하는 앱을 작성하기 위해 방금 돌아 왔습니다.

곧 Amber를 사용하여 JavaScript 모바일 앱을 다시 작성할 것입니다.


1

나는 당신이 무엇을 찾고 있는지 정말로 모른다.

작성할 다른 언어를 찾고 있다면 사용 가능한 라이브러리에 크게 의존 할 것이라고 생각합니다. Ruby도 Smalltalk도 모르지만 Ruby on Rails와 같은 종류의 애플리케이션을 작성하는 가장 효율적인 방법은 Smalltalk가 아닐 수 있습니다.

Ruby에 대한 아이디어를 배우고 싶다면 이것은 매우 좋은 조치 일 수 있습니다. 나는 양적 정보가 없지만 도구 이상의 아이디어를 알고 있거나 작동 방식을 파악하면 도구 (예 : 언어 시스템)를 사용하는 것이 더 좋습니다.

다양한 종류의 객체 지향 언어를 배우고 싶다면 Java 또는 C ++와 같은 Smalltalk (Ruby와 크게 다른 경우), 그리고 Common Lisp Object System을 배우는 것이 좋습니다.

다른 것을 배우고 싶다면 Smalltalk가 좋은 선택이 될 수 있습니다. 나는 또한 Common Lisp를 제안하고, 다른 사람들은 의심 할 여지없이 다른 제안을 할 것입니다 (요즘 좋은 Forth 시스템을 얻을 수 있습니까?).


Seaside를 보지 않은 것이 분명합니다. Ruby-on-Rails 종류의 애플리케이션을 작성하는 가장 효율적인 방법은 분명히 Seaside를 사용하는 것입니다.
Stephan Eggermont

Seaside를 보지 않았고 Ruby 또는 Smalltalk를 사용하지 않았으므로 이것은 일반적인 조언입니다. Seaside를 지적 해 주셔서 감사합니다.
David Thornley

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.