2009-12-18 27 views
9

Tôi thực sự bắt đầu học Smalltalk. Bây giờ tôi đang sử dụng Squeak, nhưng có cách nào để phát triển trong Smalltalk mà không cần sử dụng máy ảo, nhưng một cái gì đó giống như một IDE?Có cách nào để phát triển trong Smalltalk mà không cần sử dụng máy ảo?

+3

Tôi khuyên bạn nên làm quen với IDE Squeak. Nó không phải là xấu một khi bạn đã quen với nó; trong thực tế, tôi nghe nó thực sự rất hiệu quả so với chu trình viết/biên dịch/chạy bình thường. (Tôi đã chỉ đùa giỡn với nó, vì vậy tôi không thể xác minh cho nó, nhưng sự đồng thuận chung là Smalltalk> IDE truyền thống.) –

Trả lời

24

Một hình ảnh trong Smalltalk tương tự như máy VMware: nó chỉ đơn giản là trạng thái đóng băng của ứng dụng Smalltalk đang chạy. Tất cả Smalltalks sử dụng hình ảnh và phát triển bằng hình ảnh là cách ưa thích để phát triển trong tất cả các Smalltalk. Tương tự như vậy, tất cả các Smalltalk biên dịch thành bytecode và chạy trên các máy ảo, giống như Java, .NET, Python và các máy khác. Nhưng điều đó hoàn toàn không liên quan đến chương trình bạn sử dụng để phát triển chương trình Smalltalk và trải nghiệm bản địa của cảm giác.

Như những người khác đã đề cập, Squeak thực sự đi kèm với một IDE rất tốt — cụ thể là, tất cả các Squeak. Tuy nhiên, tôi không nghĩ đó là những gì bạn đang thực sự yêu cầu. Tốt nhất là tôi có thể hiểu, câu hỏi của bạn là một trong hai hoặc cả hai:

  1. Tôi có thể phát triển cho Smalltalk trong các công cụ mà tôi quen thuộc, theo các phương pháp quen thuộc với tôi không? Ví dụ, trên cơ sở từng tập tin, trong một trình soạn thảo văn bản bình thường?
  2. Tôi có thể tạo các ứng dụng trông bình thường bằng Smalltalk không?

Tôi có thể phát triển cho Smalltalk trong các công cụ mà tôi quen thuộc không?

Trả lời câu hỏi đầu tiên: cho gần như tất cả Smalltalk, không. Định dạng tệp Smalltalk được thiết kế để được thao tác trong một IDE Smalltalk, thay vì trực tiếp trong trình soạn thảo văn bản. Đó là lý do tại sao Squeak, Pharo, VisualWorks, VisualAge và mọi Smalltalk khác mà tôi từng sử dụng tránh việc bạn chỉnh sửa trực tiếp nguồn và thay vào đó cung cấp IDE tùy chỉnh của riêng họ. Bởi vì những công cụ này là nền tảng chéo, IDE của chúng thường không phải là bản địa, mà là đại diện cho cảm giác đa nền tảng được mô phỏng. Trong khi bạn có thể chỉnh sửa nguồn trực tiếp cho tất cả các hệ thống này (ví dụ: bạn có thể chỉnh sửa tệp foo.sources cho hình ảnh Squeak, sau đó sử dụng Trình duyệt thay đổi để tải trong các chỉnh sửa của bạn), không ai thực sự làm điều đó.

Có hai tuyến đường có thể khiến bạn hạnh phúc hơn về vấn đề này. Đầu tiên, như những người khác đã chỉ ra, GNU Smalltalk phá vỡ khuôn, và trên thực tế, có một định dạng dựa trên tập tin thân thiện với biên tập viên. GNU Smalltalk đã không chạy tốt trong Windows cuối cùng tôi đã kiểm tra, và được cấp phép GPL, có thể là một vấn đề đối với bạn. Nhưng nó cho phép bạn sử dụng trình soạn thảo mà bạn chọn. Cả vim và Emacs đều có cú pháp tô sáng cho GNU Smalltalk, và trong khi tôi không biết một gói cho NetBeans, Emacs, hoặc một trong những IDE chính khác, thì sẽ không khó để viết một cái.

Tuyến đường thứ hai bạn có thể thực hiện, nếu mối quan tâm duy nhất của bạn là Squeak trông "xấu xí", sẽ sử dụng Dolphin Smalltalk. Dolphin Smalltalk là phiên bản Smalltalk của Windows. Trong khi tương lai của nó là khó hiểu tại thời điểm này, bạn có thể muốn nhìn vào nó, như bạn có lẽ sẽ cảm thấy nhiều hơn ở nhà trong môi trường bản địa của nó, nếu Squeak làm phiền bạn.

Tôi có thể tạo các ứng dụng gốc không?

Nếu bạn muốn các tiện ích thực sự nguyên bản, bạn có vài tùy chọn tại thời điểm này. Dolphin cung cấp các vật dụng bản địa, nhưng, như tôi đã đề cập trước đây, tương lai của nó là không chắc chắn. Squeak, VisualWorks và GNU Smalltalk cung cấp các hệ thống FFI tốt, và do đó bạn có thể tạo ra các UI gốc, nhưng làm như vậy sẽ tương đối khó khăn và phức tạp. Vì vậy, về cơ bản: nếu điều này là rất quan trọng với bạn, thì ngay bây giờ, sử dụng Smalltalk có thể không phải là lựa chọn tốt nhất của bạn.

Lưu ý rằng có nhiều ứng dụng có tiện ích gốc không quan trọng. Trò chơi và ki-ốt chắc chắn không cần sử dụng các tiện ích chuẩn, nhưng nếu bạn nhìn xung quanh, rất ít ứng dụng chính thống cũng bận tâm đến việc sử dụng chúng. Các sản phẩm của Microsoft nổi tiếng vì có giao diện tùy chỉnh, Chrome trông có vẻ ngoài tầm thường trên mọi nền tảng mà nó chạy trên đó, iTunes rất phổ biến mặc dù trông thật kỳ lạ trên các hệ thống Windows, v.v. Rất nhiều giao diện trên các trang web cũng đã cải thiện mọi người với các giao diện không chuẩn. Vì vậy, có khả năng thực sự rằng bạn chỉ đơn giản là không quan tâm - và như giao diện của Squeak là rất dễ sử dụng, làm cho nó trông "đẹp" khi bạn gần vận chuyển sẽ không khó khăn.

(GNU Smalltalk không có Gtk + bindings rất tốt, có thể chấp nhận được đối với bạn, tùy thuộc vào những gì bạn đang cố gắng làm. Có những ứng dụng lớn, chẳng hạn như The GIMP và Pidgin, bằng văn bản đối với Gtk + trông Tuy nhiên, tôi xin lỗi vì bạn không xem xét rằng một lựa chọn khả thi.)

Tôi đề nghị

Thành thật mà nói, tôi muốn khuyến khích bạn tìm thấy một trong những Smalltalks với một IDE mà bạn thích, và sử dụng nó. Bạn sẽ có năng suất cao hơn rất nhiều sau đó cố gắng sử dụng một trình soạn thảo văn bản, cho dù đó là một trình soạn thảo được tô bóng như Eclipse, hay một cái crappy như Scite. Bạn sẽ mất rất nhiều sự vĩ đại của Smalltalk nếu bạn đi các tuyến đường khác: không có REPL, gỡ lỗi kém hơn, duyệt mã kém hơn, v.v.

Nếu bạn nhấn mạnh vào việc sử dụng môi trường phát triển truyền thống, tùy chọn tốt nhất là GNU Smalltalk. Bạn nên cẩn thận đánh giá liệu bạn có hài lòng với sự ổn định và hiệu suất của nó trên Windows trước khi sử dụng nó hay không, và đảm bảo rằng bạn cảm thấy thoải mái với những ngụ ý của giấy phép GPL của nó, nhưng nếu bạn có, đó là Smalltalk duy nhất thực sự và thực sự xác nhận mô hình phát triển dựa trên tập tin.

+2

+1 Điều tra tuyệt vời về các tùy chọn hiện tại. Cảm ơn. –

+0

Không hoàn toàn: bạn có thể xây dựng các ứng dụng (thậm chí không phải gui, các ứng dụng dòng lệnh) trong Smalltalk/X bằng cách sử dụng make và trình biên dịch stc (cũng là một công cụ dòng lệnh). Bản thân ST/X được xây dựng không có hình ảnh và biên dịch từ các tệp nguồn riêng lẻ. Nhưng ST/X cũng bao gồm một IDE, nếu bạn thích. Vì vậy, phát triển trong IDE, tập tin và thực hiện là có thể. – blabla999

+0

Trừ khi bạn vào mìn ... –

2

Sử dụng máy ảo không ngăn bạn sử dụng IDE. Câu hỏi mà bạn nên hỏi là IDE có tích hợp Smalltalk tốt. Squeak chắc chắn là cách để tìm một Smalltalk IDE

Có lẽ những người khác có ý tưởng khác của IDE, vì bạn đã sử dụng Squeak và dường như không có nội dung. Chính xác thì bạn đang tìm kiếm cái gì mà Squeak không cung cấp?

+2

Tôi muốn phát triển trên Windows cho Windows, không sử dụng giao diện khó khăn của Squeak. –

4

Squeak một IDE. Khái niệm "IDE" được cho là đến từ Smalltalk! Bạn có lẽ muốn một công việc "tập tin định hướng"? GNU Smalltalk là một triển khai thực hiện theo cách đó.

+4

+1 Mặc dù tuyên bố của tôi rằng một điều như vậy sẽ không còn là Smalltalk nữa, GNU Smalltalk có thể rất gần với những gì mà OP đã nghĩ đến. –

4

Nói chung câu trả lời là không vì Smalltalk không chỉ là một ngôn ngữ, mà còn là môi trường, kể cả những thay đổi bạn thực hiện với nó. Bạn có thể dịch nó thành một loại hệ thống tĩnh hơn với một khuôn khổ hơn là một vũ trụ của các vật thể sống, nhưng nó sẽ là một thứ khác. NeXTSTEP và do đó Cocoa về cơ bản đã làm điều này. Vì vậy, câu trả lời có thể là "chắc chắn, nó được gọi là Objective-C."

CHỈNH SỬA: Tất cả những gì đã nói, xem tham chiếu của Logan đối với GNU Smalltalk.

1

Làm việc trong hình ảnh Squeak có thể thực sự thú vị.

Môi trường hơi khó hiểu lúc đầu nhưng nó rất mạnh mẽ.

Làm việc trong một hệ thống trực tiếp giúp bạn dễ dàng khám phá và thay đổi mọi thứ. Bạn có thể lấy một đối tượng trên màn hình nhìn vào trạng thái của nó, chơi với nó, duyệt qua lớp đối tượng, chạy một số mã và thấy sự thay đổi của thế giới.

Trình duyệt Smalltalk cũng tập trung hơn vào việc "duyệt" mã hơn là viết mã. Bạn có thể nhanh chóng tìm thấy tất cả những nơi mà một lớp đang được sử dụng (từ trình biên dịch đến máy chủ http) và hiểu cách tất cả chúng phù hợp với nhau.

Thử làm quen với hình ảnh trong một thời gian. Tôi nghĩ rằng bạn sẽ mất một cái gì đó bằng cách sử dụng một IDE bên ngoài.

0

Nếu bạn tải dự án SVI từ squeaksource, bạn có thể sử dụng các ràng buộc VI trong các công cụ Smalltalk. Tôi cập nhật nó để chạy trong Squeak 4.1, không chắc chắn về 4.2.

Các vấn đề liên quan