Навіщо використовувати Ruby замість Smalltalk? [зачинено]


121

Рубі стає популярною , значною мірою завдяки впливу Рубі на Рейки, але відчуває, що зараз бореться через підліткове життя. Є багато подібності між Рубі та Малимталом - маглев є свідченням цього. Незважаючи на те, що має більш незвичайний синтаксис, Smalltalk має всю (якщо не більше) об'єктно-орієнтованої краси Рубі.

З того, що я прочитав, Smalltalk, здається, переміг Рубі:

Здається, що Рубі просто винаходить колесо. Отже, чому розробники Ruby не використовують SmallTalk? Що Рубі не має Smalltalk?

Для запису: Я Рубін, який мало досвіду в Smalltalk, але я починаю цікавитись, чому.


Редагувати: Я думаю, що проблема простоти сценаріїв була вирішена GNU Smalltalk . Як я розумію, це дозволяє писати невеликі розмови у звичайні старі текстові файли, і вам більше не потрібно бути в IDE Smalltalk. Потім ви можете запустити свої сценарії за допомогою:

gst smalltalk_file

47
Тому що всі досі чекають "Малого розмови на равликах"?
Марк Рушаков

10
Технічно він називається "Seaside" (www.seaside.st) і працює досить швидко на Gemstone VM, який має компілятор JIT. Є також порт Рубі до Драгоценного Каменю, що називається Маглев.
ЗанепокоєнийOfTunbridgeWells

3
Переглянувши всі ці коментарі нижче, будучи шанувальником рубіну протягом останніх 5 років, тепер я спокусився якнайшвидше вивчити маленькі розмови
Amol Pujari

1
GNU Smalltalk - це майже єдина безкоштовна реалізація, яка не є складно поєднаною з GUI. Я думаю, це все ще є критичним.
eonil

Посилання "управління розподіленим джерелом" порушено.
Піовезан

Відповіді:


88

Я більше Pythonista, ніж користувач Ruby, однак ті ж речі стосуються і Ruby з тих же причин.

  • Архітектура Smalltalk дещо острівна, тоді як Python та Ruby були побудовані з нуля для полегшення інтеграції. Smalltalk ніколи не отримував гібридної підтримки додатків так, як Python і Ruby, так що поняття "smalltalk як вбудована сценарійна мова" ніколи не приживалося.

    Як убік, Java було не найпростішим у взаємодії з іншими кодовими базами (JNI досить незграбний), але це не завадило йому набути розуму. Аргумент взаємодії IMO важливий - простота вбудовування не зашкодила Python - але цей аргумент має лише помірну вагу, оскільки не всі програми вимагають цієї можливості. Крім того, пізніші версії Smalltalk значною мірою вирішили проблему острого.

  • Бібліотека класів більшості основних реалізацій малих розмов (VisualWorks, VisualAge тощо) була великою і мала репутацію досить крутої кривої навчання. Більшість ключових функцій Smalltalk приховано десь у бібліотеці класів, навіть основні речі, такі як потоки та колекції. Мовна парадигма - це теж культурний шок для того, хто не знайомий з нею, і детальний погляд на програму, представлений браузером, зовсім інший, ніж звикли більшість людей.

    Загальний ефект полягає в тому, що Smalltalk отримав (дещо заслужену) репутацію за те, що важко вчитися; потрібно дуже багато часу і зусиль, щоб стати дійсно досвідченим програмістом Smalltalk. Ruby та Python набагато простіше вивчити та привести нових програмістів до швидкості.

  • Історично склалося, що впровадження основних процесів Smalltalk було досить дорогим та потрібним екзотичним обладнанням для запуску, як це можна побачити в публікації net.lang.st80 з 1983 року . Windows 3.1, NT та '95 та OS / 2 були першими операційними системами масового ринку на основному апаратному забезпеченні, здатним підтримувати реалізацію Smalltalk з гідною інтеграцією до власної системи. Раніше апаратне забезпечення Mac або робоча станція були найдешевшими платформами, здатними ефективно працювати з Smalltalk. Деякі реалізації (зокрема Digitalk) досить добре підтримували операційні системи ПК і досягли певної тяги.

    Однак OS / 2 ніколи не був настільки успішним, і Windows не досягла прийняття мейнстріму до середини 1990-х. На жаль, це збіглося з піднесенням Інтернету як платформи та великим маркетинговим поштовхом за Java. Java захопила більшу частину розумної частини в останній частині 1990-х, зробивши Smalltalk трохи також побіжною.

  • Ruby і Python працюють у більш звичайній ланцюжку інструментів і не є щільно пов'язаними з конкретним середовищем розробки. Хоча використовувані мною IDAL Smalltalk досить приємні, я використовую PythonWin для розробки Python значною мірою тому, що він має чудовий редактор з підсвічуванням синтаксису і не піддається ногам.

    Однак Smalltalk був розроблений для використання з IDE (насправді Smalltalk був оригінальним графічним IDE) і все ще має деякі приємні функції, які не реплікуються іншими системами. Тестування коду з підсвічуванням та "Показати це" - це все ще дуже приємна особливість, яку я ніколи не бачив у програмі Python IDE, хоча я не можу говорити за Рубі.

  • Smalltalk трохи пізно завітав на вечірку веб-додатків. Ранні зусилля, такі як VisualWave, ніколи не були надзвичайно успішними, і лише тоді, коли Seaside вийшов, гідні веб-рамки отримали прийняття в колах Smalltalk. У тому ж час Java EE була повністю життєвий цикл прийому , починаючи з маячних Fanboys просувати його і , нарешті , стає нудно , і перейти на Рубі, -} Як

    не дивно, Seaside починає отримувати трохи MindShare серед знавця таким чином ми можемо виявити , що Smalltalk атракціони , які повернутися до популярності.

Сказавши це, Smalltalk - це дуже приємна система, коли ви розробили, як керувати нею.


1
Я думаю, що точка бібліотеки класів не є базовою. Я знаю, що і Smalltalk, і Ruby, і бібліотеки класів дуже схожі. Будь-які проблеми, з якими я навчався, я би вивчав іншу. Спершу зробивши більше рубіну, це значно спростило навчання бібліотекам Smalltalk. Вони надзвичайно схожі в більшості місць. Я нічого не думаю про бібліотеку класів чи мову, що робить Smalltalk складнішим, ніж Рубі.
Шон Т Аллен

2
І VW, і В.А. Малийґалк користувалися репутацією крутої кривої навчання через розмір бібліотек класів. Це було досить широко визнано в той час. Я дізнався Smalltalk від старої версії DOS Digitalk Smalltalk / V, яка мала набагато меншу бібліотеку класів. Посібник для цього був приблизно такого ж розміру, як і книга PP Ruby, і подібно до цієї книги, посилання на бібліотеку класів становило близько половини від загальної кількості сторінок. Однак бібліотеки класів для VW і VA значно, набагато більше.
ЗанепокоєнийOfTunbridgeWells

79

Коли я виходжу з дому вранці, щоб піти на роботу, я часто борюся з рішенням зробити так, щоб лівий чи правий вивернути з мого шляху (я живу посеред вулиці). Будь-який спосіб доставить мене до місця призначення. Один із способів веде мене до шосе, яке, залежно від трафіку, швидше за все, доставить мене до офісу. Я можу їхати дуже швидко хоча б частиною шляху, і я маю хороший шанс побачити гарну дівчину чи двох на шляху до роботи :-)

Інший спосіб дозволяє мені подорожувати по дуже феєричній, вітряній задній дорозі з повним покриттям дерева. Цей шлях досить приємний, і два підходи, безумовно, веселіші, хоча це означає, що я дістанусь до офісу пізніше, ніж я б взяв шосе. Кожен спосіб має свої достоїнства. У дні, коли я дуже поспішаю, я зазвичай буду їздити по шосе, хоча я можу зіткнутися з дорожнім рухом, а також збільшую шанси потрапити в аварію (якщо я не буду обережним в поспіху). Іншими днями я можу вибрати деревну стежку і проїхатись, насолоджуючись краєвидом і розуміючи, що біжу пізно. Я, можливо, спробую пришвидшити, підвищуючи свої шанси отримати квиток або самому спричинити ДТП.

Жоден спосіб не кращий за інший. У кожного вони є свої переваги та ризики, і кожен досягне мене до своєї мети.


5
Яка міждержавна, а яка - вітряна зворотна дорога з деревним покривом? lol
Charlie Flowers

9
Чарлі: саме це робить дзен :)
xofz

32
А на якій мові красуні дівчата?
Олов'яний чоловік

25

Я думаю, що у вашому питанні дещо відсутнє суть. Ви не повинні вибирати, ви повинні навчитися їх обом!

Якщо ви справді знаєте, що можете вибрати наступний фреймворк (vm, інфраструктура), тоді вам потрібно вирішити, що використовувати, і можете задати конкретне запитання із плюсами і мінусами з точки зору того, що ваша програма має намір укласти.

Я використовував маленькі розмови (люблю це) і рубін (люблю це).

Вдома або для проекту з відкритим кодом я можу використовувати будь-яку мову, що мені подобається, але при виконанні роботи я повинен перейняти.

Я почав використовувати рубін (на роботі), тому що нам потрібна була сценарій мови, яка вела себе більш-менш рівномірно під Solaris, Linux та Windows (98,2000, xp). На той час Рубі був невідомим середньому джоу, і рейок не існувало. Але продати його всім було легко.

(Чому б не пітон? Правда? Я одного разу тиждень полюю на помилку, що трапилася, коли термінал перетворив мій простір на вкладку і наміри зіпсувались).

Тож люди почали дедалі більше кодувати рубіни, бо це так розслабляло, насолоджуючись, а не хмарою на небі.

Пол Грехем підсумовує це

Безумовно, правда, що більшість людей не вибирають мови програмування просто на основі своїх достоїнств. Більшість програмістів кажуть, якою мовою користуватися хтось інший.

і

Щоб бути привабливою для хакерів, мова повинна відповідати написанню програм, які вони хочуть писати. І це означає, можливо, дивно, що це має бути добре для написання програм, що викидаються.

А коли опинилися на землі Лісп, спробуйте замінити LISP на дрібну розмову

Бібліотеки, спільнота та імпульс Рубі хороші

Тож якщо LISP все-таки потужніший за Ruby, то чому б не використовувати LISP? Типовими запереченнями проти програмування в LISP є:

  1. Бібліотек недостатньо.
  2. Ми не можемо наймати програмістів LISP.
  3. За останні 20 років LISP нікуди не пішов.

Це не переважні заперечення, але їх, безумовно, варто розглянути.

і

Тепер, маючи на увазі вибір між потужною мовою та популярною мовою, може бути відмінним сенсом вибрати потужну мову. Але якщо різниця у потужності незначна, популярність має всілякі приємні переваги. У 2005 році я б довго і важко задумався, перш ніж вибрати LISP за Ruby. Я, мабуть, зробив би це лише в тому випадку, коли мені знадобився оптимізований код або макроси, які виступали повноцінними компіляторами.


4
Ах, "останні 20 років"?!?! Я думаю, ви мали на увазі "останні 51 рік". :-)
DigitalRoss

1
@DigitalRoss - я б поїхав з 20; LISP насправді був певним колом у певних колах, але (незважаючи на ViaWeb) жодних нових «вбивцьких додатків» насправді не спостерігалося з 1980-х. Однак технології, засновані на LISP, насправді отримали досить багато фінансування у 60-ті, 70-ті та 80-ті; люди дійсно думали, що LISP збирається місцями досить довгий час.
Занепокоєний

2
@DigitalRoss Так, якщо ви ігноруєте такі речі, як продовження, багатометоди, макроси, оптимізація хвостових викликів, у верхній частині моєї голови.
Френк Ширар

Я завжди вважаю такі аргументи менш приємними. Немає кращої мови, і будь-який інженер з програмного забезпечення може робити lisp, схему, ruby, php або c або будь-що інше. А якщо він не зможе, він може це вивчити за 2 тижні. Мова - це лише інструмент. Вам не потрібно спати з цим.
Едгар Клеркс

22

Я б сказав протилежне: Синтаксис Smalltalk - це один із найпростіших та потужних синтаксисів мови програмування.


7
Просто хочу сказати амінь!
Schpaencoder

19

Це правда, мови дуже схожі. Неглибокий спосіб інтерпретації - це викликати Ruby Small Band-кавер-групи. Більш розумне тлумачення полягає в тому, що закрита система Smalltalk його ізолювала, тоді як участь Рубі в екології Unix і звичка привласнювати особливості з кожної мови під сонцем надає їй нескінченно криву прийняття та інтеграцію без зусиль з інструментами kickass, як Git.

Джайлз Бокетт


17

Здогадайтесь, хто це сказав? (Цитата близька, можливо, не точна): "Я завжди думав, що Smalltalk обіграє Яву. Я просто не знав, чи будуть називатися" Ruby ", коли це зробили".

Барабанний дріб ....

...

Відповідь ... Кент Бек



15

що Рубі має той Smalltalk?

  • Масова, поточна підтримка основних платформ (IronRuby та jRuby), що збагачують набір бібліотек
  • Євангелісти, як Дейв Томас, які роками гастролюють по країні, проповідуючи євангелію своєї мови. Я бачив Дейва на конференціях Java , де він заявив, що він не знає Java і що він віддає перевагу Рубі.
  • Сильна, поточна нерухомість на книжкових полицях
  • Творець Рубі сказав, що думає про програміста: у синтаксисі Рубі, здається, є ця дзенська привабливість. Це важко підключити, але, здається, гальмує вентилятори.
  • Творчі, динамічні презентації, як Джайлз та ця, що набувають розуму

Я думаю, що ваш погляд добре сприйнятий. Як казав один із знайомих, Рубі може бути "старим вином у новій пляшці" стосовно Smalltalk. Але іноді нова пляшка має значення. Вино має бути в потрібному місці в потрібний час.


Ваша перша куля вимкнена. Підтримка JVM та .NET VM означає середнє лайно для Smalltalk, оскільки кожна реалізація вже працює на VM (як ще вони можуть так добре працювати в декількох операційних системах, правда?) Синтаксис Ruby складніше, ніж у Smalltalk. Важко визначити, яка частина проблеми з цим;)

1
Так, частиною причини, чому деякі люди можуть використовувати jruny / ironruby, є відносна незрілість ruby ​​vm, але є кілька дійсно приємних бібліотек для .net / jvm, які вони, можливо, захочуть використовувати, які не мають еквівалентів в іншому місці плюс його набагато простіше для деяких підприємств зв’язатися зі своїми кодами Java / c #.
Роман А. Тейчер

2
Зрозуміло, я вважаю, що плекання "сильної, сучасної нерухомості на книжкових полицях" є одним з покарань складної мови без живого, динамічного середовища. Коли я кодував C ++, у мене були полки, наповнені готча книгами. Після переїзду до Smalltalk (через Ruby) я не пропускаю їх ні на один біт. Покладаючись на саму IDE для більшості вказівок, я рідко залишаю зображення для більш швидкого пошуку в Google і
детально ознайомив

14

Биє мене. Я провів рік, перевіряючи Рубі і робив невеликі проекти, щоб побачити, як мені це сподобалось. Я думаю, що я фанатик Smalltalk, тому що кожного разу, коли я сів працювати з Рубі, я зітхнув і подумав, що "я справді вважаю за краще робити це в Smalltalk". Нарешті я поступився і повернувся до Smalltalk. Зараз я щасливіша. Хеппіер - кращий.

Хто, звичайно, напрошується на запитання «Чому?». Ні в якому конкретному порядку:

  1. Тому що IDE видуває все, з чим я коли-небудь працював. Сюди входить купа платформ від ISPF на мейнфреймах IBM до Visual Microsoft. машини як в символьному режимі, так і під X-Windows.
  2. Тому що образ - прекрасне місце для життя. Я можу знайти там, що хочу. Якщо я не можу зрозуміти, як зробити щось, я це десь знаю на зображенні є прикладом того, що я намагаюся зробити - все, що мені потрібно зробити, - це полювати, поки не знайду. І це самодокументування - якщо ви хочете побачити подробиці того, як щось працює, просто відкрийте браузер у класі, який вас цікавить, подивіться на метод, і ось як це працює. (Гаразд, зрештою ви потрапите на щось, що називає примітивом, і тоді це "тут є дракони", але це зазвичай зрозуміло з контексту). Можна робити подібні речі в Ruby / C ++ / C, але це не так просто. Легше - краще.
  3. Мова мінімальна та послідовна. Три види повідомлень - одинарні, двійкові та ключові слова. Це також описує пріоритет виконання - спочатку одинарні повідомлення, потім двійкові повідомлення, потім ключові слова. Використовуйте дужки, щоб вирішити проблеми. Дійсно, синтаксис - це все зроблено з надсиланням повідомлень. (Гаразд, присвоєння не надсилає повідомлення, це оператор. Так само оператор "return" (^). Блоки вкладені квадратними дужками пар ([]). Там можуть бути один або два інші "магічні" біти, але чорт маленький ...).
  4. Блоки. Так, я знаю, вони там в Рубі (та інших), але, повісивши, ви буквально не можете програмувати в Smalltalk, не використовуючи їх. Ви змушені навчитися ними користуватися. Іноді примушувати це добре.
  5. Об'єктно-орієнтоване програмування без компромісів - або альтернатив для цього питання. Ви не можете робити вигляд, що ви "робите предмети", роблячи те саме, що старе.
  6. Тому що це розтягне ваш мозок. Зручних конструкцій, до яких ми всі звикли (якщо тоді, то ще, робіть час, для (;;) тощо), вже немає, тому вам доведеться дізнатися щось нове. Всім вищесказаним (і більше) є еквіваленти, але вам доведеться навчитися думати інакше. По-іншому це добре.

З іншого боку, це можуть бути просто суперечки хлопця, який програмував з тих часів, коли мейнфрейми керували землею, нам довелося пройти п’ять миль, щоб працювати через сліпучі снігові бурі, в обох напрямках, а комп'ютери використовували пампушки для пам’яті. Я нічого не маю проти Ruby / Java / C / C ++ /, вони всі корисні в контексті, але дайте мені Smalltalk або дайте мені ... ну, можливо, я повинен навчитися Lisp чи Scheme або ... :-)


1
Я подумав, що питання: "Що у Рубі не має Smalltalk?"
Маурісіо

1
@Mauricio, а @Bob відповів: "Бий мене".
системович

1
Блискуче кажучи, любимо! Чому щось не може бути краще, незважаючи на те, що він менш популярний? Якщо ви не погоджуєтесь, я смію сказати, що ви не отримаєте Smalltalk ;-)
Amos M. Carpenter

@aaamos - дякую. Я підозрюю, що причина Smalltalk не користується популярністю - це №6, і меншою мірою №5. Маленький розмова - це не місце "синтаксису" вашої мами - це інакше. Наприклад, якщо ви знаєте C, тоді C ++, Java і C # всі відчувають себе досить комфортно. І "як" і "чому" поведінка Smalltalk може бути дещо вигадливим. (Я загрожу, що якщо новий Smalltalker не відчує, що їхня голова викручується, або вони такі блискучі, що його негайно виграбують, або просто не отримують. Так, мені цікаво, як "блискучий" "річ би відчувала :-).
Боб Джарвіс - Відновіть Моніку

Ви пробували налагодження за допомогою pry (та плагінів) та живого кодування з гарячим перезавантаженням збережених файлів? Це було найкраще досвід роботи з програмуванням.
Rivenfall

11

Маленькі розмови: люди пересилають ifTrue: [подумайте] ifFalse: [не думаючи]

Рубі: люди думають вперед, якщо не думати назад

1) Управління потоком повідомлень, що нагадує RPN у Smalltalk, схоже на Lisp - це регулярно і круто, але примхливих людей.

2) Ruby дозволяє людям писати код, використовуючи ідіоматичний спосіб, коли люди говорять - чи не хліб, якщо немає причин цього не робити.

оновлення переписав зразок Smalltalk, щоб насправді було більше юридичного коду ..


4
Англійська мова - це, мабуть, один із найгірших способів вираження інструкцій програмування. Я маю на увазі, що це викликає достатню плутанину серед людей, не кажучи вже про комп'ютери. Невже? Хто повинен робити благ? про те, що? Також ваш рубіновий код не має сенсу і не дійсний. Повинно бути: Ruby: people.think_forwards, якщо люди.think_backwards? і SmallTalk має бути: Smalltalk: (люди думають_наперед?) ifTrue: [люди думають_наперед])
donalbain

2
Ви також можете додати метод, який називається, якщо: aBlock до класу BlockClosure з категорії Kernel-Methods Category, який би оцінював aBlock і ifTrue: оцінював викликовий блок.
Рікардо де Кілло

3
@donalbain, я не припускав, що це були буквальні заяви програмування, але вказували на порядок висловлювань. Я вважав це досить очевидним, коли писав свою відповідь.
Енді Дент

1
@donalbain Дуже правда, насправді вона існує. Більше рубіноподібного потоку управління живе на веб- сайті github.com/randycoulman/SuffixConditionss . Енді, у вашому коді є помилка - відсталі люди не думають, тому вам слід було надіслати #ifFalse: ;-P
Шон ДеНігріс

У Smalltalk поганий маркетинг: дивний синтаксис та зображення. Ruby є більш нормальним, але також має хороший синтаксис якості. Java набирається і компілюється, що заспокоює клієнтів. Я б не проти вивчити та використовувати дивний синтаксис, якби це не вплинуло на мій власний "маркетинг" як програміста.
Rivenfall

8

Ruby - це поточна мова гудіння. Зараз простіше продавати на ньому програмне забезпечення, ніж мова, розроблена в 70-х.


Той факт, що він був «розроблений у 70-х», не має нічого спільного з тим, як важко розвиватися.
gracchus

3
і мій коментар не має нічого спільного з розвитком.
coder1

3
Вибачте, я схильний неправильно читати, коли втомився, тому мені доводиться витрачати час відпустки, вибачаючись перед людьми, яких я знущався.
gracchus

8

Громада! У Ruby і особливо Rails є така велика спільнота. Коли возилися з маленькими розмовами, здавалося, що про Smalltalk написано не так багато екранських ролей, статей, публікацій в блогах тощо.


7

Ви відповіли на питання в своєму першому рядку: "Рубі стає популярною"

  • Навколо Ruby є багато цікавих модулів, проектів і таких.
  • Якщо у вас є проблеми зробити щось у Ruby, неважливо буде десь знайти допомогу.
  • Ruby встановлений на a Зараз багатьох комп’ютерах (він за замовчуванням включений в OS X, багато дистрибутивів Linux, а також є хороші інсталятори для Windows) - я не бачив невеликих повідомлень, встановлених за замовчуванням на будь-якій машині, яку я використовував ..

Я б сказав, що один чи інший мову вищий за інший, не має значення. Як приклад, PHP може бути не "найкращою" мовою коли-небудь, але я б все-таки розглянути можливість використання її через Ruby on Rails ("кращий" інструмент для створення веб-сайти), оскільки вона настільки поширена.

В основному конкретні плюси і мінуси мови набагато менш важливі, ніж усе, що її оточує, а саме - спільнота.


7

Ruby (або будь-яка інша мова) популярніша, ніж Smalltalk (або будь-яка інша мова), оскільки ми живемо в хаотичному Всесвіті. А саме:

  • Від самого Дейва Томаса, "[після відео" про те, як створити блог за десять хвилин "... Рубі перейшла від гарної маленької нішевої мови до" мови, на якій ви писали програми Rails "( Рубі конференція Основна примітка 2010 року ).
  • Ранні постачальники Smalltalk стягувались надмірно
  • Малий розмова, оскільки він був винайдений (достроково) 30 років тому, багатьом трапляється як стара, "мертва" мова (як FORTRAN)
  • корпорації вважають Smalltalk такою конкурентною перевагою, що вони приховують його використання

Хоча мови схожі за функціями OO, перевагою вбивці Smalltalk є живе, відкрите середовище (набагато неправильно зрозуміле «зображення»). Після того, як ви перевірите цей приклад програмування в Smalltalk , дебати закінчуються .


5

Для мене це не стільки випадок того, що має Рубі, а те, чого не має Рубі. І те, що він не має, - це потреба у вітчизняному машині та повному середовищі.

Smalltalk - це чудово - там, де я вивчив поняття OO, але для зручності використання я переживаю Ruby. Я можу записати код Ruby в улюблений редактор і запустити його з командного рядка.

Отже, для мене саме це я вибираю Ruby over Smalltalk.


Але йти вперед і навчитися Smalltalk теж.
Саймон Найтс

Відповідно до моєї редакції: GNU Smalltalk дозволяє використовувати улюблений редактор і запускати з командного рядка.
двійка-дурень

Так - Дякую - просто подивився та скачав копію!
Саймон Найтс

2
Ну, він також не має чудової веб-основи. Рейки в порядку, але це не Приморський
Стефан Еггермонт

3
Будь-яка платформа smalltalk дозволяє писати код smalltalk у вашому улюбленому редакторі. Але якщо вам подобається відключатися від живого світу, це ваш вибір. Просто знайте, що ви втрачаєте близько 90% продуктивності, роблячи це.
Ігор Стасенко

5

Я думаю, кожен, хто деякий час працював з Рубі, визнає її глибокий борг перед Smalltalk. Як один із цих людей, що мені подобається в Рубі над Smalltalk? Я думаю, що з суворої мовної точки зору, це цукор. Ruby - це навмисно дуже синтаксично-цукриста мова, тоді як Smalltalk - дуже синтаксично мінімальна мова. Ruby - це по суті об'єктна модель Smalltalk з синтаксисом цукру Perlish. Мені здається, мені подобається цукор, і я вважаю, що це робить програму більш цікавою.


1
Рубі має іншу модель об'єкта для Smalltalk. Я б сказав, що "під впливом", але не те саме. Ви можете писати рубінові програми прототипним способом, уникаючи необхідності створення нових класів. Хоча це незвично, Smalltalk просто не підтримує цього.
Дафідд Різ

2
Мені подобаються дрібні розмови, тому що я можу вигадувати та використовувати власний синтаксичний цукор, коли мені це потрібно. Цукру немає потреби, якщо ви вже можете все робити з мінімальним синтаксисом.
Ігор Стасенко

5

Ви можете легко знайти роботу, роблячи Рубі.Хоча я дуже люблю Smalltalk, потрапити в нішу Smalltalk практично неможливо. Тут є робота, але якщо ви не зайшли, коли це було популярно, зараз практично неможливо.

Всі інші причини бліднуть до незначущості, оскільки вам потрібно витратити багато часу, зосередившись на реальній роботі, щоб правильно вивчити мову. Якщо ви не самостійно заможні, найкращий спосіб зробити це - це вплив на роботі.


4

Оскільки дистрибуції Smalltalk були оцінені в кілька разів по 1000 доларів США, тоді як Ruby безкоштовний.


4

Ruby - це Smalltalk, як арабські цифри - римські цифри. Та сама математика, простіший синтаксис.


3
Це неправильний шлях. Smalltalk має набагато простіший синтаксис.
Стефан Еггермонт

1
Тільки якщо ви думаєте в rpn. Більшість людей цього не робить. Я насправді пишаюся тим, що ця посада продовжує отримувати голоси та зменшувати голоси.
саль

12
RPN? Java: foo.bar () Perl: foo-> bar () Python: foo.bar () Smalltalk: foo bar Отож, крім простого синтаксису, якщо ви заявляєте, що Smalltalk є RPN, ви повинні сказати, що всі основні мови OO є "RPN".
Рандаль Шварц

2
Просто порівняйте кількість ключових слів Ruby порівняно із кількістю ключових слів Smalltalk. І це, лише початок! Синтаксис Smalltalk поміститься на серветці, спробуйте це зробити з Ruby, і вам буде важко.
froginvasion

3

Я зробив невеликий Smalltalk - IDE - це одне, що я пам’ятаю - чи має Ruby хороша підтримка IDE?


Так. TextMate чудовий, підтримка Eclipse хороша, а Emacs має пристойний режим.
Піт

6
Якщо ви думаєте, що "TextMate / Eclipse / Emacs" порівняний із вбудованою IDE Smalltalk, ви не бачили справжнього Smalltalk!
Рандаль Шварц

Я все ще пропускаю select -> 'Show it' з IDE в системах, з якими я будую сьогодні - за одним винятком: інструменти розробки SQL Server дозволяють виділити вибір та виконати його як запит. Малий розмова є впливовим, якщо нічого іншого!
ЗанепокоєнняOfTunbridgeWells

IDE, найближчий до Smalltalk, це ІМХО ArachnoRuby. Він краще інтегрований, ніж будь-який Emacs / TextMate і т. Д. Однак, схоже, люди дуже задоволені тим, що декілька вікон відкриті різноманітними інструментами З повагою
Фрідріх

@Friedrich Re: "люди доволі задоволені кількома вікнами, що працюють із різноманітними інструментами" ... "Мови програмування вчать не бажати того, чого вони не можуть надати. Ви повинні думати мовою ..." - Пол Грехем
Шон ДеНігріс

3

Використовуйте Ruby, оскільки у нього можуть бути ділові ноги, Smalltalk - ні.

Я можу вам сказати з особистого досвіду. Ще використовуйте Smalltalk, любите його і використовували пару ароматів. Незважаючи на те, що Smalltalk - це чудова мова, і це все, що ви згадали, ви, звичайно, не зможете переконати середнього директора CTO / CTO використовувати Smalltalk для нового проекту. Звичайно, можливо, вам навіть важко переконати консервативного директора CTO / CTO використовувати Ruby. Зрештою, ви повинні бути дуже обережними, якщо хочете довготривалої комерційної підтримки та здатності знаходити працівників на вулиці, які можуть підтримувати ваші системи в майбутньому. Як приклад, Smalltalk був дійсно великою справою на початку 90-х, і IBM вклав значні кошти в нього в кінці 90-х. Для IBM Smalltalk буде наступною мовою для всіх бізнес-додатків. IBM поставив Smalltalk на все, включаючи їх основні системи. Java стала популярною, захопила ринок, і Smalltalk став нішевим гравцем. Більше року тому IBM скинула мову (термін їх заходу). Також погляньте на Історію. ParkPlace і Digitalk, де перші великі комерційні гравці на арені Smalltalk, вони злилися, а потім перестали працювати.


Smalltalk "має ділові ноги" - якщо у вас вже є правильний фон і ви можете знайти потрібні можливості ...
Dafydd Rees

Ваш заголовок завищений. Не весь бізнес обмежений короткозорими ОГС. Як сказав Пол Грехем, коли він докладно розвінчав міф про те, що основна мова є більш безпечною: "Вам буде важко переконати гострого боса, щоб дозволити вам будувати речі в Ліспі ... Але якщо ви працюєте на стартап, який не робить" у вас ще немає гострих босів, ви можете ... використовувати технологію, яку ваші конкуренти, нерухомо приклеєні до середньої мови, ніколи не зможуть відповідати ".
Шон ДеНігріс

2

Я люблю і Smalltalk, і Ruby - але виявили, що Ruby більше стосується того, чим я займаюся щодня, і ближче до серця (практично кажучи). Що пропонує Ruby, що Smalltalk не пропонує?

  • Текстові сценарії
  • Низькі вимоги до впровадження (працює в інших місцях)
  • Легше не вивчити і обґрунтувати (Perl і Python програмісти будуть НЕ проблема
  • Простіше переміщати програми - текстові файли!
  • Добре взаємодіє з рідним середовищем
  • Куди завгодно Java працює, jRuby працює ...
  • Більша та значно активніша спільнота

Деякі згадали gst (GNU Smalltalk); проблеми все ще зберігаються.


У яких «місцях» працює Рубі, а не у Smalltalk? Наприклад, Pharo Smalltalk працює на Mac, Windows, Unix, взагалі без ОС (чи може це зробити Ruby?) І переноситься на різні мобільні платформи (Android, iOS).
Шон ДеНігріс

Як щодо FreeBSD та OpenBSD? (ні, я не знаю відповіді ...) Як щодо Solaris та HP-UX та OpenVMS? Я також не хотів би використовувати ні Ruby, ні Smalltalk на Android, ні на iOS. Найбільша проблема - це не ОС, а пам’ять: Ruby працюватиме значно менше пам'яті, ніж Smalltalk.
Май

Мабуть, є FreeBSD VM (див. Останню кулю ОП на forum.world.st/SOB-minutes-3-6-12-td4453817.html ). Я не впевнений у інших. Що стосується Android та iOS, чи хочете ви використовувати Smalltalk, є інше питання, ніж воно доступне ;-) Люди публікували успішні експерименти на тих платформах, з яких я бачив деякі перспективні екранізації.
Шон ДеНігріс

Це мені також нагадує - я пригадую маленьку розмову для долоні.
Май

2

Використовуйте все, що робить вас більш потужними та швидшими, щоб перемогти свій виклик.

Для нас , трохи в рамках будинку, ми побудували на березі моря - це справді наша наддержава.

Я люблю спільноту RoR, вона має правильне ставлення. Це дуже цінно. Але в той же час, технологічно, морське узбережжя робить вас сильнішими проти складніших проблем.

Ви можете робити чудові приморські веб-програми, використовуючи речі з відкритим кодом.

dabbledb був сартупом, заснованим на узбережжі і, ей! Цього року Avi продала його щебетати щебетати!

Я кажу, що вам не потрібно чекати, коли інші схвалюють вашу ініціативу.

Просто займіться цим. Зробіть це. Покажіть нам, що працює.

Ти не один. Ми на одному човні.


2

Цікава перспектива Роберта Мартіна (від RailsConf 2009): "Що вбило малих розмов , теж може вбити Рубі"


2
Ця розмова припускає, що невелика розмова є мертвою (це не так), і що рубін досить схожий на дрібну розмову в просторі та часі, що її може спіткати така ж (не) доля. Це не так.
Рандаль Шварц

0

Я думаю, що частина проблеми - це середовище розвитку - це - час виконання. Це дає багато сил, але це також дає більшу криву навчання.

Ось привіт світовий підручник.

Це дуже відрізняється від інших мов, де мені просто потрібно знати, як відкрити текстовий редактор і скопіювати та вставити текст, натиснути зберегти та запустити компілятор. Я МАЮ знати, як використовувати довкілля. Цей підручник навіть не показує мені, як створити базову програму (яка, швидше за все, є виною цього підручника), яку я можу запустити.

Однозначно вища вартість простого просування речі, ніж більшість інших мов.

Більшість мов мають приємний привабливий код, який вони можуть показати. Я не бачив цього з Smalltalk. Я також думаю, що у Smalltalk є певна стигма, оскільки вона існує так довго, і вона все ще відносно незрозуміла.


Внизу сторінки: самоінформуйте: "Привіт, світ!". Я погоджуюся, що крива навчання крутіша, але використовувати "привіт, світ" як доказ, я думаю, це занадто багато. :)
jop

Моя суть полягала в тому, щоб побачити, як написати щось просте, наприклад привіт робочий, навчальний посібник повинен розповісти, які вікна потрібно відкрити. Назви та використання вікон - це не те, про що я можу здогадатися. Мені знадобилося трохи клацнути навколо, щоб знайти вікна, про які мова йшла.
Стів г

1
Відповідно до моєї редакції: GNU Smalltalk дозволяє використовувати улюблений редактор і запускати з командного рядка.
двійка-дурень

ruby -e 'ставить "привіт світ"'
Marcel Valdez Orozco

1
pharo [ім'я файлу зображення] -e "самоінформувати:" привіт світ ""
Шон ДеНігріс

0

Я думаю, що НАЙБІЛЬШЕ відмінність полягає в тому, що Ruby набагато більше схожий на perl в плані USEAGE. Smalltalk ніколи не зміцнився в мовах «сценаріїв».

VM дуже класний, і я сподіваюся, що у ruby ​​буде щось подібне до нього, тому ми можемо ставитись до всього, що в нашій ОС написано в рубіні, як до об’єкта в просторі пам'яті, проте до цього часу я просто насолоджуюся стислим коротким синтаксисом Ruby, здатністю просто написати мініатюрний сценарій і повторно використовувати його пізніше. Ruby отримала всі переваги perl, і OOP набагато більше схожий на smalltalk, ніж на хак OOP Perl.


0

Я б пішов далі, ніж відповідь Йонке, і сказати, що зараз існує велика кількість мов, які мають дуже сильну спільноту, майже достатню для будь-якого смаку, і підмножина з них має основне розпізнавання (тобто ваш менеджер дозволить вам використовувати їх у працювати також).

Вивчити основи мови досить просто, але щоб фактично її використовувати ефективно, потрібно вкласти достатньо часу для вивчення платформи та інструментів, а також синтаксису та ідіоми. IIRC, МакКоннелл стверджує, що для того, щоб стати справді досвідченим, потрібно три роки.

Враховуючи ці речі, важко виправдати витрачання багато часу на таких мовах, як LISP та Smalltalk, хоча вони цікаві та, можливо, навчальні.


0

Як запізнення в дискусії, головна проблема з Smalltalk та Lisp полягає в тому, що ви не можете запустити їх із CGI або FastCGI на спільному хостингу.

Немиті маси ніколи не збираються ними користуватися, якщо для їх використання потрібні VPS або виділені сервери. IMHO Seaside перевершує майже будь-що, але чи буде він працювати на Dreamhost або Webfaction?


Цікаво, чи це все ще великий бар'єр, коли, наприклад, Digital Ocean пропонує VPS за $ 0,007 / год.
Шон ДеНігріс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.