Вы бы начали изучать Smalltalk? [закрытый]
мои вопросы-это просто!
- вы бы начали изучать Smalltalk, если бы у вас было время? Почему? Почему бы и нет?
- вы уже знаете Smalltalk? Почему вы рекомендуете Smalltalk? Почему бы и нет?
лично я программист Ruby on Rails, и мне это очень нравится. Однако я думаю о Smalltalk, потому что я читаю различные блоги, и некоторые люди называют Ruby чем-то вроде "Smalltalk Light". Вторая причина, по которой я интересуюсь Smalltalk Приморский.
может быть, кто-то сделал тот же переход раньше?
EDIT: на самом деле, что меня больше всего взволновало в Smalltalk/Seaside, это следующий эпизод WebDevRadio: эпизод 52: Рэндал Шварц На побережье (среди прочего)
21 ответов
Если Вам нравится Ruby, вам, вероятно, понравится Smalltalk. IIRC Seaside был портирован на драгоценный камень VM, который является частью их драгоценных камней / S OODBMS. Это имеет гораздо лучшую поддержку потоков, чем Ruby, поэтому это лучший бэк-энд для высокообъемной системы. Это может быть хорошей причиной, чтобы взглянуть на него поближе.
причины выучить Smalltalk:
Это очень хорошая среда программирования. Как только ты осознаешь это (это...) имеет тенденцию быть немного культурным шоком для людей, привыкших к C++ или Java) вы найдете, что это очень хорошие условия для работы. Даже действительно дерьмовый smalltalk как старые Digitalk те, которые я использовал удивительно приятная система для использования. Многие из старых типов XP и O-O guru, таких как Кент Бек и Мартин Фаулер вырезать зубы на Smalltalk обратно в день и иногда можно услышать тоску по старым добрым дням на публике (спасибо Фрэнк Ширер для цитирования, +1) - гибкая разработка возникла на этой платформе.
Это одна из самых производительных платформ развития в истории.
существует несколько зрелых реализаций, и там есть удивительно большая база кода. В какой-то момент это стало довольно модным в кругах финансового рынка, где производительность разработчиков и время выхода на рынок-довольно большое дело. До середины 1990-х годов он был более или менее единственная игра в городе (с возможное исключение LISP) , если вам нужен коммерчески Поддерживаемый язык высокого уровня, подходящий для разработки приложений.
развертывание легко-просто поместите файл изображения в соответствующий каталог.
Не совсем причина, но Банда четырех книг использует Smalltalk для довольно многих из их примеров.
причины не узнать Smalltalk:
Это что-то вроде нишевого рынка. У вас могут возникнуть проблемы с поиском работы. Однако, если вы производите какой-то .com-приложение, где вы владеете серверами это не может быть проблемой.
многие рассматривают его как устаревшую систему. На платформе относительно мало новых разработок (хотя Seaside, похоже, немного возрождается).
Он имеет тенденцию не играть хорошо с традиционными системами управления версиями (по крайней мере, с начала-середины 90-х годов, когда я его использовал). Может быть, это так, а может быть, и нет.
Он несколько изолирован и любит играть сам по себе. Python или Ruby созданы для интеграции с нуля и, как правило, более неразборчивы и, следовательно, легче интегрировать с программным обеспечением 3rd. Однако,различные другие более основные системы страдают от этого типа изолированности к большему или меньшему степень, и это, похоже, не сильно затрудняет их использование.
. Это отличный язык, созданный Google, но теперь принадлежит комитету ECMA. Он запускает serverside в узле.JS стиль, но и на стороне клиента в современных браузерах путем транспилирования на JavaScript. Много хороших книг, блоги, каналы помощи, поддержка IDE,публичный живой pastebin. Я думаю, у него определенно есть ноги... достаточно, чтобы я писал курсовую программу, чтобы преподавать ее на месте или в интернете, и я уверен, что есть книга или две в работах от меня. И Гилад Брача, старый мелкий Говорун, является основным вкладчиком в дизайн, поэтому в Dart много мелкой речи.
Smalltalk-хороший язык для изучения, и самое замечательное, что для этого требуется всего день. Это гораздо больше, чем просто академический язык. Люди создают огромные, масштабируемые, воспроизводимые приложения, обрабатывающие миллиарды долларов. Они просто не говорят об этом. См., например, камень и Ориент морских контейнерных линий: Пример Отрасли Судоходства.
Seaside хороший повод выучить Smalltalk, но я не думаю, что вы найдете его заказы на порядок лучше рельсов.
то, что убедило меня, было драгоценным камнем. Мне очень нравится стекло Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). Убийственная часть этого-драгоценный камень, который обрабатывает все настойчивость объекта для вас в основном без вас думать об этом. Увидев некоторые из их демонстраций и услышав о том, что люди делают с GemStone, я сбросил свою идею о том, что означает "большое приложение".
часть, которая меня больше всего беспокоит о Rails, это объектно-реляционное отображение. Это ничего не имеет против Ruby, потому что он сосет так же сильно в GLORP (который обрабатывает ActiveRecord для Smalltalk), или Perl, или что-нибудь еще. Сопоставление объектов с таблицами базы данных просто болезненно. С GemStone мышление о базе данных исчезает, поэтому работа с базой данных тоже исчезает. Это как огромный камень (или стая обезьян) снимается с моей спины.
изучение Smalltalk даст вам основы объектно-ориентированной разработки программного обеспечения с точки зрения человека, который изобрел OO (Алан Кей). Идея перекрывающегося оконного пространства пришла из Smalltalk.
камнем преткновения для изучения Smalltalk является то, что это система передачи сообщений со странным синтаксисом для управления потоком, например:
i < 60
ifTrue: [ self walk ]
Он имеет очень зрелую библиотеку классов, которая имеет согласованность, я не видел слишком много мест. Класс библиотеки в любых условиях (даже коммерческих слухов) имеет источник, который позволяет учиться у мастеров языка. При программировании Smalltalk я всегда задаю вопрос, как это делается в среде.
Smalltalk обычно реализуется в образе, который является живой средой для всех объектов в вашей системе.
интерактивный отладчик действительно отделяет Smalltalk от Ruby.
Seaside является основой веб-разработки и дал Smalltalk новый прожектор. Это среда, основанная на продолжении, которая позволяет отладку внутри хита и плавный богатый опыт разработки типа клиента (верхний поток приложений может быть разработан в одном методе). Это интеграция со сценарием.акуло.us было сделано таким образом, что его легко вызвать изнутри Smalltalk.
> не удалось найти среду разработки Smalltalk, которая не стоила бы обеих рук и ноги
Google - бесплатный smalltalk
Cincom Smalltalk, писк, GNU Smalltalk
Найджел, у меня есть одна цитата:
хотя прошло уже много времени с тех пор, как я что-то делал с ним, я назначаю Smalltalk, я все еще не сталкивался с чем-то похожим на него для возможности передачи мыслей в компьютерный код. Дело не только в языке: это замечательная браузерная среда, библиотеки и культура написания четкого, хорошо продуманного кода так быстро, как что-либо еще может выкрутить спагетти. Когда участники JavaOne превозносили, как Java была настолько более продуктивным, чем что-либо еще, мне нужен был коричневый бумажный пакет. Ну что ж, вернемся к сортировке моих классных дорожек... -- Martin Fowler (Software Development Magazine, Jan 2001)
Я нашел его здесь.
Я не знаю Руби..
Smalltalk-это чисто OO язык. Если вы чувствуете необходимость действительно понимать OO, а не только имитировать OO самых популярных языков " OO " (например, C++, Java и т. д.), Я бы рекомендовал вам играть с smalltalk.
в Smalltalk все является объектом, с атрибутами, поведением и мета. В симуляциях у вас есть типы данных, которые вы используете в своих объектах.
Я бы сказал, играть с ним, вы будете только выгода.
не согласен с плакатом, который считает, что вы не будете использовать Smalltalk для больших приложений – именно там он сияет. Но я создал довольно groovy (примечание в нижнем регистре) прототип приложения в течение недели тоже.
Я узнал ОО в ST, начиная с 92, невероятно рад, что я это сделал. Это дало мне реальную основу в OO. Мышление на занятиях. Никаких типов. ST имеет реальный акцент на обмен сообщениями. Если вы хотите что-то узнать, отправьте объекту сообщение и получите ответ. ИМХО, этос и IDE действительно поощряет вас делать правильные вещи с вашим сцеплением и сцеплением.
в моей работе Java day я застрял с файлами, дженериками, IDE, такими как eclipse, которые на порядок менее продуктивны, чем любая ST IDE. Я использовал ST единственный раз, когда я закончил разработку досрочно. На самом деле это было так продуктивно, и мы получили так много повторного использования, что меня пришлось перевести в другой проект, так как мне нечего было делать! (Хорошо, возможно, я мог бы потратить время на то, чтобы научиться оценивать...)
скачать писк, найти хорошую книгу и играть. Единственным недостатком является то, что если ваш дневной концерт использует Java или C#, вы в конечном итоге захотите использовать ST. Ты вернешься домой раньше.
Крис Брукс
Я рекомендую всем изучать Lisp (Scheme) или Smalltalk.
слухов есть прекрасные Иды, которые вы не хотите пропустить однажды у вас культурный шок. И да, есть несколько бесплатных: Squeak, Dolphin, Smalltalk/X и Visualworks (Non-Comercial).
Lisp может быть еще чище в своей математической основе, хотя.
в отношении
PS: На самом деле я рекомендую изучать оба !
Я полностью на твоем месте. Я использую RoR и смотрю в Smalltalk land. Вот некоторые плюсы и минусы, которые я считаю важными:
плюсы:
- зрелая & стабилизированная окружающая среда
- быстрый цикл разработки
- заставляет вас думать больше и писать меньше
плюсы:
- требует другого мышления
- все еще не совсем понял это
Это довольно забавно как я узнал о Smalltalk. Это была одна вещь, которая keept появляется в результатах Google при поиске Lisp и Erlang. Однажды я проверил его и был поражен хорошей средой windows. Несколько мгновений спустя я нашел AIDA / Web framework. Я был подключен и начал изучать Smalltalk через веб-разработку с помощью этой структуры.
еще не совсем там, но это чертовски интересно, я просто не могу сидеть на месте... :- ) Мне снова весело.
не начал бы изучать его, если бы у меня было время. Почему бы и нет? Потому что было бы более продуктивным и прибыльным в финансовом отношении изучать C# или Java.
с другой стороны, если ваш любитель и хотел бы пойти на археологические раскопки, то я бы предложил потратить некоторое время на то, что, когда, почему и как smalltalk, исследуя Алана Кея. Увлекательная история и невероятный человек (ведь он заслужил поворотную награду). Тогда, возможно, поиграйте со скрипом немного, чтобы получить чувство языка. После этого у вас может быть недавно найденное уважение/понимание блоков, замыканий и объектно-ориентированных принципов.
Я знаю и использую Smalltalk, уже около 15 лет, все еще сохранение это, и не рекомендовал бы Smalltalk другу. Почему бы и нет? Занятость-это хорошая вещь, чтобы иметь и постоянно. Хотя вы можете многому научиться из Smalltalk, вы не можете легко превратить это в прибыльную работу в этот день и возраст.
кроме того, вы, казалось, были в восторге от Seaside, и я бы предположил партнерство Seaside/GemStone. Я использовал драгоценный камень в течение некоторого времени, и оба вместе очень привлекательны. Я надеюсь, что они смогут получить долю рынка и импульс, необходимые для успеха.
Smalltalk: Получение Сообщения:http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html
нет! Если вы действительно начнете изучать его, вы, возможно, больше не захотите программировать в чем-то другом.
Это может быть неверно, если вы программист lisp.
Я преподавал Smalltalk в одном из первых курсов объектно-ориентированного программирования уровня магистратуры (около 1988 года). Учитель решил, что лучше всего начать с "чистого" OO langauge,прежде чем переходить к более модному (мы сделали немного C++ в конце семестра).
по этой мере, все еще лучше начать с чистого OO, хотя в эти дни у нас есть Java & C#, оба из которых "почти чистые" OO-достаточно близко, что вы можете получить, игнорируя их не-OO особенности, и ограничивая себя в чисто-ОО подмножества языков.
Если вы хотите лучше понять Экстремальное программирование (и даже Scrum), я бы сказал да.
Почему нетерпеливые программисты Java должны изучать Smalltalk:
http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/
Я был инженером-программистом уже несколько лет. Я слышал, как люди несколько раз поднимали Smalltalk, и, конечно, Smalltalk был вокруг с 1980 года, но это один из тех языков, которые, казалось, никогда не попадали в основной поток программного обеспечения. Что-то вроде Objective C, CLIPS, PL/I и т. д.-Что-то, о чем вы, возможно, слышали, но что большинство людей никогда не программировали.
Я, вероятно, не буду тратить время на изучение Smalltalk, если мне не нужно для конкретная работа. Несколько лет назад я просмотрел несколько руководств и примеров Smalltalk, и похоже, что у него есть некоторые явные преимущества для некоторых аспектов программирования OO (например, концепция сообщений кажется классной). Но, к сожалению, это не мейнстрим, и не похоже, набирает силу.
абсолютно, учиться Smalltalk! Это 2015 и Smalltalk снова на подъеме, благодаря Фаро. Фаро свободен. Pharo быстро развивается в мощный инструмент предприятия. В версии 4.0, и скоро будет 5.0, она значительно окрепла за четыре года!
то есть Янтарь, что является Smalltalk для интернета. Он также Свободен и быстро развивается.
несмотря на репутация Smalltalk, это не твоего отца язык Smalltalk. Современный Smalltalk является захватывающим и перспективным.
Это правда, что Smalltalk заданий не (пока) в изобилии. Но если достаточное количество из вас объединится в новую волну Smalltalkers, то индустрия адаптируется к ней, и мы увидим более широкое внедрение Smalltalk в бизнес. Вопрос, есть ли у вас видение?
эта тема стала очень актуальной для меня. Я планирую миграцию программного обеспечения в веб-приложение. Это программное обеспечение на базе базы данных. Я специально проверяю альтернативы 1) рельсы 2) побережье
Если я могу получить цифры для драгоценного камня / S в качестве базы данных, я также рассмотрю это. Поэтому для меня это означает, что я должен научиться Smalltalk (лучше), чем раньше. Потому что это может быть моя работа на ближайшие 15 лет. Вы бы (и не должны) работать с программным обеспечением вы не как долго ;-). У меня сложилось впечатление, что Gemstone/S является одним из "убийственных" приложений. Но сохранение объектов по-прежнему является очень сложной областью....
1) да! Всегда хорошо выучить язык. Если вы собираетесь выучить язык, сделать его мощным, влиятельным языком, который можно выучить легко и быстро.
Smalltalk остается выдающимся языком и средой для изучения концепций OO.
Это все объекты, полностью вниз. Это создает действительно последовательный подход к работе.
целые числа являются экземплярами класса Integer. Строки-это набор символов объекты. Классы являются одноэлементными объектами экземпляра для класса, который они определяют.
структуры управления работают, отправляя сообщения get экземплярам класса Boolean.
даже анонимные методы (блоки кода, блоки ака) являются объектами.
все делается путем отправки сообщения объекту. Синтаксис может быть установлен на открытке.
ясность концепции и их реализация в Smalltalk означает, что вы можете развивать способы мышления, которые передача непосредственно в Java, Ruby и C#. Я ожидаю, что это верно и для Python.
Это настолько хорошо для прояснения концепций, что крупный британский университет использовал Smalltalk для обучения 5000 человек в год объектно-ориентированным вычислениям.
писк 5, только что был освобожден. Оно приобретало главные увеличения представления от своего нового VM Cog / Spur, который отличает с прогрессивным отброс-сбором.
Pharo 4 имеет прекрасную чистую тему рабочего стола. Следующая версия, Pharo 5, будет выпущен в ближайшее время. Он перейдет к использованию VM Cog/Spur, у него будет около 5 000 классов в выпуске, а дополнительные пакеты классов легко доступны из сети через инструмент браузера конфигурации.
Squeak 5 работает даже на Raspberry Pis первого поколения и почти на 50% быстрее на новом $5 Raspberry Pi zero. $ 99 покупает вам Raspberry Pi 2, экран и корпус-работает зрелый, полностью функциональный IDE.
исследование ведущей кромки выполняется на скоординированных, распределенных системах OO в Smalltalk (например, Naiad и Spoon).
некоторые из крупнейших в мире корпоративных баз данных работают на Smalltalk-в том числе отслеживания 60% грузовых контейнеров в мире, и торговых систем в крупнейшем банке мира.
вы можете использовать Smalltalk как своего рода супер-powered CoffeeScript, писать в Янтарный Smalltalk и транспилирование на JavaScript, запущенный в браузере.
Писк, Фаро, и Amber - это все свободные, открытые языки и среды с открытым исходным кодом.
Squeak и Pharo обеспечивают запись-один раз, запустите в любом месте средства для MacOS, Windows и Linux. (Возможно, и Рискос тоже).
Dolphin Smalltalk нацелен твердо на родной внешний вид Windows, и позволяет компилировать закрыт .exes вашей готовой работы для распространения среди конечных пользователей. Дальнейшее развитие Dolphin поставщиком остановилось, но оно полностью функционально, и, как и все Слухов, призванных значительно расширяется. (Я упоминал, что у Фаро теперь 5 000 классов по сравнению с 3000 у писка? Фаро-это вилка скрипа 3.9)
** * существует руководство по установке и запуску скрипа, янтаря, Фаро, Cuis и Дельфина на: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html
Приморский веб-фреймворк работает на писк и на Pharo. Это замечательный зрелый инструмент, как более традиционные рамки AidaWeb.
VisualAge, VisualWorks и драгоценный камень все обеспечивают системы предпринимательств-степени робастные. Gemstone обеспечивает бесконечно масштабируемую базу данных объектов с транзакциями и сохраняемостью.
2) Да - я уже использую его.
Я узнал это через открытый университет и сразу же был продуктивен в Ruby (копия книги кирки и библиотечная ссылка на моей стороне). Это очень помогло мне с Java и с Ксерокс му-код.
Я только что вернулся к нему, чтобы писать приложения для управления управлять и распространять отзывчивые, массово мультиплатформенные мобильные приложения.
Я ожидаю, что скоро я буду переписывать свои мобильные приложения JavaScript с помощью Amber.
Я не знаю, что вы ищете.
Если вы ищете другой язык для записи, я думаю, что это будет сильно зависеть от доступных библиотек. Я не знаю ни Ruby, ни Smalltalk, но кажется вероятным, что наиболее эффективный способ написать Ruby на Rails-виды приложений не могут быть Smalltalk.
Если вы хотите узнать идеи Ruby, это может быть очень хороший шаг. У меня нет ничего количественного, но я всегда чувствовал лучше использовать инструменты (например, языковые системы), если я знаю больше, чем просто инструменты, если я знаю идеи, стоящие за ними, или как они работают.
Если вы хотите изучать различные типы объектно-ориентированных языков, вы можете захотеть изучить Smalltalk (если он значительно отличается от Ruby), что-то вроде Java или C++, а также, возможно, общую объектную систему Lisp.
Если вы просто хотите узнать что-то другое, он вполне может быть хорошим выбором. Я бы также предложил Common Lisp, и у других людей, несомненно, будут другие предложения (можете ли вы получить хорошую систему Forth в настоящее время?).
Да, мне это интересно. Пытался начать уже один раз, но не смог найти среду разработки Smalltalk, которая не стоила бы обеих рук и ноги.