Câu hỏi Bạn có bắt đầu học Smalltalk không? [đã đóng]
Câu hỏi của tôi rất đơn giản!
- Bạn có bắt đầu học Smalltalk nếu bạn có thời gian không? Tại sao? Tại sao không?
- Bạn đã biết Smalltalk chưa? Tại sao bạn nên giới thiệu Smalltalk? Tại sao không?
Cá nhân tôi là một lập trình viên Ruby on Rails và tôi thực sự thích nó. Tuy nhiên, tôi đang nghĩ về Smalltalk vì tôi đọc nhiều blog khác nhau và một số người gọi Ruby như "Smalltalk Light". Lý do thứ hai tại sao tôi quan tâm đến Smalltalk là Bên bờ biển.
Có lẽ ai đó đã thực hiện chuyển đổi tương tự trước đây?
CHỈNH SỬA: Trên thực tế, điều khiến tôi hứng thú nhất về Smalltalk / Seaside là Tập sau của WebDevRadio: Tập 52: Randal Schwartz trên bờ biển (trong số những thứ khác)
76
2017-09-29 14:57
gốc
Các câu trả lời:
Nếu bạn thích Ruby, bạn có thể sẽ thích Smalltalk. IIRC Seaside đã được chuyển đến VM đá quý, là một phần của Gemstone / S OODBMS của họ. Điều này có hỗ trợ thread tốt hơn nhiều so với Ruby, vì vậy nó là một back-end tốt hơn cho một hệ thống âm lượng cao. Đây có thể là một lý do chính đáng để xem xét kỹ.
Lý do để tìm hiểu Smalltalk:
Đó là một môi trường lập trình thực sự tốt đẹp. Một khi bạn đã có đầu của bạn xung quanh nó (nó có xu hướng là một chút của một cú sốc văn hóa cho những người sử dụng để C + + hoặc Java) bạn sẽ tìm thấy nó là một môi trường thực sự tốt để làm việc in Ngay cả một smalltalk thực sự crappy như Những cái cũ của Digitalk mà tôi sử dụng là một hệ thống đáng chú ý để sử dụng. Nhiều kiểu XP và O-O cũ như Kent Beck và Martin Fowler cắt răng trên Smalltalk trở lại trong ngày và đôi khi có thể được lắng nghe khao khát những ngày xưa tốt đẹp ở nơi công cộng (Cảm ơn Frank Shearer đã trích dẫn, +1) - Phát triển nhanh có nguồn gốc trên nền tảng này.
Đó là một trong những nền tảng phát triển hiệu quả nhất trong lịch sử.
Một số triển khai trưởng thành tồn tại và có một cơ sở mã lớn đáng ngạc nhiên ngoài kia. Tại một thời điểm nó đã khá hợp thời trang trong vòng tròn thị trường tài chính, nơi năng suất phát triển và thời gian để thị trường là khá nhiều. Cho đến giữa những năm 1990, nó ít nhiều là trò chơi duy nhất trong thị trấn (Với ngoại lệ có thể có của LISP) nếu bạn muốn có một ngôn ngữ cấp cao được hỗ trợ thương mại phù hợp cho phát triển ứng dụng.
Triển khai rất dễ dàng - chỉ cần thả tệp hình ảnh vào thư mục thích hợp.
Không thực sự là một lý do, nhưng Gang of Four Book sử dụng Smalltalk cho một số ví dụ của họ.
Lý do không học Smalltalk:
Đó là một cái gì đó của một thị trường thích hợp. Bạn có thể gặp khó khăn khi tìm việc. Tuy nhiên, nếu bạn đang sản xuất một số loại .com ứng dụng nơi bạn sở hữu máy chủ điều này có thể không phải là một vấn đề.
Nó được nhiều người xem như một hệ thống di sản. Có khá ít phát triển mới trên nền tảng này (mặc dù Seaside dường như đang lái một chút thời kỳ phục hưng).
Nó có xu hướng không chơi độc đáo với hệ thống kiểm soát nguồn truyền thống (ít nhất là vào giữa những năm 90 khi tôi sử dụng nó). Điều này có thể hoặc vẫn không thể xảy ra.
Nó hơi ngây thơ và thích chơi một mình. Python hoặc Ruby được xây dựng để tích hợp từ đầu và có khuynh hướng phức tạp hơn và do đó dễ dàng tích hợp với phần mềm của bên thứ ba hơn. Tuy nhiên, khác nhau chính thống hơn hệ thống bị loại hình này của insularity đến một mức độ lớn hơn hoặc thấp hơn và điều đó dường như không cản trở việc sử dụng của họ nhiều.
57
2017-09-29 15:51
Vâng, vì bạn đã đề cập đến tôi bằng tên, tôi cảm thấy tôi nên kêu vang.
Như tôi đã nói trong cuộc phỏng vấn podcast đó, và như tôi đã nhiều lần chứng minh trong blog của tôi tại http://MethodsAndMessages.vox.com/, đây là "năm của smalltalk"Và bây giờ đã thực hiện tuyên truyền Smalltalk trong mười tháng qua, tôi có thể thấy rằng nó thực sự đang xảy ra. Nhiều khách hàng đang chuyển sang Smalltalk và Seaside, và các nhà cung cấp Smalltalk đang làm việc chăm chỉ để nắm bắt dòng chảy mới của sự chú ý. Các cuộc hội thảo của Smalltalk đang được lên kế hoạch.
Nếu bạn chuyển sang Smalltalk hôm nay, bạn không đơn độc. Có nhiều người khác cũng đang ở ngoài đó.
Chỉnh sửa
Vâng, một vài năm sau, tôi hiện đang đề xuất Dart thay thế. Đó là một ngôn ngữ tuyệt vời có nguồn gốc từ Google nhưng hiện do một ủy ban ECMA sở hữu. Nó chạy serverside theo kiểu node.js, nhưng cũng có thể sử dụng trong các trình duyệt hiện đại bằng cách chuyển sang JavaScript. Rất nhiều sách hay, blog, kênh trợ giúp, hỗ trợ IDE, công khai sống pastebin. Tôi nghĩ rằng nó chắc chắn có chân ... đủ để tôi đang viết courseware để dạy nó tại chỗ hoặc trực tuyến, và tôi khá chắc chắn có một hoặc hai cuốn sách trong các tác phẩm của tôi. Và Gilad Bracha, một Smalltalker thời xưa là một đóng góp lớn cho thiết kế, vì vậy có rất nhiều Smalltalk ở Dart.
42
2017-09-29 22:23
Smalltalk là một ngôn ngữ tốt để học, và điều tuyệt vời là nó chỉ mất một ngày để làm điều đó. Nó không chỉ là một ngôn ngữ học thuật. Mọi người đang xây dựng các ứng dụng khổng lồ, có thể mở rộng, có thể nhân rộng xử lý hàng tỷ đô la. Họ không nói nhiều về nó. Xem, ví dụ, GemStone và Orient Overseas Container Lines:
Nghiên cứu điển hình về ngành vận chuyển.
Seaside là một lý do tốt để học Smalltalk, nhưng tôi không nghĩ rằng bạn sẽ thấy nó có sức mạnh lớn hơn Rails.
Điều đã thuyết phục tôi là GemStone. Tôi thực sự thích GLASS của Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). Phần giết người trong số đó là GemStone, xử lý tất cả các đối tượng kiên trì đối với bạn chủ yếu mà không cần bạn nghĩ về nó. Nhìn thấy một số bản demo của họ và nghe về những gì mọi người đang làm với GemStone đặt lại ý tưởng của tôi về "ứng dụng lớn" có ý nghĩa gì.
Phần mà tôi làm phiền nhất về Rails là ánh xạ đối tượng-quan hệ. Đó là không có gì chống lại Ruby bởi vì nó hút chỉ là khó khăn trong GLORP (mà xử lý ActiveRecord cho Smalltalk), hoặc Perl, hoặc bất cứ điều gì khác. Việc ánh xạ các đối tượng tới các bảng cơ sở dữ liệu chỉ là đau đớn. Với GemStone, suy nghĩ về cơ sở dữ liệu biến mất, do đó công việc với cơ sở dữ liệu cũng biến mất. Nó giống như một hòn đá khổng lồ (hay một đội khỉ) bị lấy ra khỏi lưng tôi.
26
2017-09-29 22:27
Học Smalltalk sẽ cung cấp cho bạn nền tảng trong phát triển phần mềm hướng đối tượng theo quan điểm của người đã phát minh ra OO (Alan Kay). Ý tưởng về một môi trường cửa sổ chồng chéo đến từ Smalltalk.
Một trở ngại khi học Smalltalk là nó là một hệ thống truyền thông điệp với một cú pháp lạ để kiểm soát luồng như:
i < 60
ifTrue: [ self walk ]
Nó có một thư viện lớp rất trưởng thành mà có một sự nhất quán tôi đã không nhìn thấy quá nhiều nơi. Thư viện lớp trong mọi môi trường (ngay cả Smalltalks thương mại) có sẵn nguồn cho phép bạn học từ các bậc thầy của ngôn ngữ. Khi lập trình Smalltalk, tôi luôn đặt câu hỏi như thế nào trong môi trường.
Smalltalk thường được thực hiện trong một hình ảnh mà là một môi trường sống cho tất cả các đối tượng trong hệ thống của bạn.
Trình gỡ rối tương tác thực sự tách riêng Smalltalk khỏi Ruby.
Seaside là khung phát triển web và đã cho Smalltalk một sự chú ý mới. Nó là một môi trường dựa trên tiếp tục cho phép gỡ lỗi trong nội bộ và một trải nghiệm phát triển kiểu Rich Client mượt mà (luồng ứng dụng hàng đầu có thể được thiết kế theo một phương thức đơn). Việc tích hợp với script.aculo.us đã được thực hiện theo cách dễ dàng gọi từ bên trong Smalltalk.
15
2017-09-29 15:15
> không thể tìm thấy một môi trường phát triển Smalltalk mà không tốn cả vũ khí và chân
Google - miễn phí smalltalk
Cincom Smalltalk, Squeak, GNU Smalltalk
13
2017-09-29 15:11
Nigel, một trích dẫn tôi có là:
Mặc dù đã lâu rồi kể từ khi tôi làm bất cứ điều gì với nó, tôi đã đề cử Smalltalk, tôi vẫn chưa bắt gặp bất cứ điều gì khá thích nó vì có thể chuyển ý nghĩ thành mã máy tính. Nó không chỉ là ngôn ngữ: Đó là môi trường trình duyệt tuyệt vời, các thư viện và văn hóa viết mã rõ ràng, được thiết kế tốt nhanh như bất kỳ thứ gì khác có thể quăng ra spaghetti. Khi những người tham gia tại JavaOne đã extolling như thế nào Java đã được nhiều hơn nữa sản xuất hơn bất cứ điều gì khác, tôi cần một túi giấy màu nâu. Ồ, quay lại để phân loại các lớp học của tôi ... - Martin Fowler (Tạp chí phát triển phần mềm, tháng 1 năm 2001)
Tôi tìm thấy nó đây.
9
2017-09-30 13:17
Tôi không biết Ruby ..
Smalltalk là một nguyên chất Ngôn ngữ OO. Nếu bạn cảm thấy cần phải thực sự hiểu OO, và không chỉ là OO mô phỏng của các ngôn ngữ 'OO' phổ biến nhất (như C ++, Java, v.v.), thì tôi khuyên bạn nên chơi với smalltalk.
Trong smalltalk tất cả mọi thứ là một đối tượng, với các thuộc tính, hành vi và meta. Trong các mô phỏng, bạn có các kiểu dữ liệu mà bạn sử dụng trong các đối tượng của mình.
Tôi sẽ nói chơi với nó, bạn sẽ chỉ được hưởng lợi.
8
2017-09-29 15:09
Sẽ không đồng ý với người đăng những người cho rằng bạn sẽ không sử dụng Smalltalk cho các ứng dụng lớn - đó chính xác là nơi nó tỏa sáng. Nhưng tôi đã tạo ra các ứng dụng nguyên mẫu khá hấp dẫn (lưu ý chữ thường) trong một tuần nữa.
Tôi đã học OO ở ST bắt đầu từ năm 92, vô cùng vui vì tôi đã làm như vậy. Nó đã cho tôi một nền tảng thực sự trong OO. Suy nghĩ trong lớp học. Không có loại nào. ST có trọng tâm thực sự về nhắn tin. Nếu bạn muốn biết một cái gì đó gửi một đối tượng một tin nhắn và nhận được một câu trả lời. IMHO, các đặc tính và IDE thực sự khuyến khích bạn làm điều đúng với khớp nối và sự gắn kết của bạn.
Trong công việc Java ngày của tôi, tôi bị mắc kẹt với các tập tin, generics, IDE giống như nhật thực là các đơn đặt hàng của cường độ kém hiệu quả hơn mà bất kỳ IDE ST nào. Tôi đã sử dụng ST thời gian duy nhất tôi đã hoàn thành một sự phát triển trước thời hạn. Trong thực tế nó đã rất hiệu quả, và chúng tôi đã tái sử dụng rất nhiều, tôi đã phải được chuyển sang một dự án khác, vì tôi không có gì để làm! (Ok, có lẽ tôi đã dành thời gian để học ước tính ...)
Tải xuống tiếng rít, tìm một cuốn sách hay và chơi. Nhược điểm duy nhất là nếu buổi biểu diễn ban ngày của bạn đang sử dụng Java hoặc C #, bạn sẽ mong muốn bạn có thể sử dụng ST. Bạn sẽ về nhà sớm hơn.
Chris Brooks
8
2017-10-14 11:41
Tôi khuyên mọi người nên học Lisp (Scheme) hoặc Smalltalk.
Smalltalks có IDE tuyệt vời mà bạn không muốn bỏ lỡ một khi bạn đã vượt qua cú sốc văn hóa. Và có, có nhiều hơn một miễn phí: Squeak, Dolphin, Smalltalk / X, và Visualworks (Non-Comercial).
Lisp có thể thậm chí còn sạch hơn trong nền tảng toán học của nó, mặc dù.
Trân trọng
PS: thực sự tôi khuyên bạn nên học cả hai!
8
2017-12-23 00:53