Hacker News Comments on
RailsConf 09: Robert Martin, "What Killed Smalltalk Could K
O'Reilly
·
Youtube
·
38
HN points
·
14
HN comments
- This course is unranked · view top recommended courses
Hacker News Stories and Comments
All the comments and stories posted to Hacker News that reference this video.We always make this discussion with friends. I don't think every language should tick the boxes the same way.I also personally like Go a lot. It's filling the gap between C++ and Python for me. If I need something compiled with proper threading support, but C++ would be an overkill, I reach for Go.
Go is designed with a human centric view, IMHO: "Make writing great programs easier rather than design a language with novel/cutting edge features, but with a high cognitive load", and I find it as a noble aim as Rust's guarantees and aspirations.
I understand why people love Rust, but I don't think it's the only one, or the proverbial silver bullet that we finally achieved. Yes, it's nice. Yes, it brings many things to the table, but it's not the final solution for once and for all.
You like Rust? Great, Go for it (unintended pun alert), but I think we need all languages from all paradigms and perspectives.
I find this talk [0] very informative and useful while interacting with other languages and communities. I'm not sharing this with any insinuations towards you, but just find it generally perspective broadening.
[0]: https://www.youtube.com/watch?v=YX3iRjKj7C0 - What Killed Smalltalk could Kill Ruby.
⬐ avgcorrection> Go is designed with a human centric view, IMHO: "Make writing great programs easier rather than design a language with novel/cutting edge features, but with a high cognitive load", and I find it as a noble aim as Rust's guarantees and aspirations.I don’t understand his horrid informal writing style trend. You are clearly not quoting anyone and just providing your own interpretation. So why in the hell are you using quotation marks? In this case you could just ditch the quotation marks altogether since the colon already acts as a separator.
⬐ bayindirh⬐ xpressvideozEqually, I don’t understand the horrid assumption about everyone being born in an English speaking country and has English as the native language.So, why in the hell are you just berating me via a comment box?
I made a mistake, alright, and used quotation marks as a tone modifier, because I know no other way to do that.
However in this case you could just pointed me the right direction without berating, since pointing out the mistake already acts as a kind direction arrow.
⬐ avgcorrection> Equally, I don’t understand the horrid assumption about everyone being born in an English speaking country and has English as the native language.Did I even hint that I was assuming anything about native vs. non-native English speaker? Or blaming non-native speakers? No. Play that wounded ESL violin somewhere else.
> I made a mistake, alright, ...
I said that I think that it is bad style. Alright. I didn’t say that it is wrong. (People are doing it a lot these days so apparently it isn’t wrong.)
⬐ bayindirhThere's no blame, I agree, but expecting everyone to know proper use of quotation marks (incl. uncommon ways) pulls in some assumption about proper grammar, hence some long experience with the language. Quotation marks are simple tools, but they are hard to master, because they have nuanced uses too. Getting these things wrong is easy.> Play that wounded ESL violin somewhere else.
I'm not playing a wounded violin, or any violin for that matter. I'm a double bassist. Jokes aside, I'm not being apologetic, just explaining my position. On the other hand, if reading a comment squarely in your own tone bothers you, you might want to think on that, at least a little.
Your wording of your comment implies that I'm doing something wrong by using quotation marks, and I take a note for that. Why are you so upset because somebody admits that there's a room for improvement?
The only thing I'm not agreeing on is your way of sending the message to this shore, that's it.
The thing is, neither English punctuation, nor Hacker News has many facilities to convey tone while discussing. I like to do that in my writing style to convey feelings and tone of my comment. Quotation marks seemed like a usable way to do that, and I possibly got used to that from literary works I've read, so I copied the method.
However, if a native (or more knowledgeable) person tells me that I'm wrong, I tend to believe them and try to learn the proper way, that's it.
> Go is designed with a human centric view, IMHOIf it were Go's design philosophy, it would have allowed unused variables/imports. Those restrictions are there exactly because they help computers, reducing compilation time. The over-focus of compilation time also stems from monorepos being used by Google, whose purpose is also helping computers.
⬐ bayindirhI think it goes both ways. Yes, eliminating unused variables and imports accelerates compilation. Also, compilation speed is a great deal for Go, but keeping the code devoid of unused variables also reduces the cognitive load of humans a lot. Keeping language simple is another feature which helps both ways.⬐ randomdataFast compilation times are a human-centric goal. The machine couldn't care less if it takes a millennia to compile your program. Only humans care about fast compile times.But, I'm not sure that is even the primary benefit. The primary benefit is that you won't be incentivized to leave unused imports and variables to litter your code, as I see happen all the time in languages that aren't so strict. The Go team has even stated that they decided there would be no warnings because they've learned that warnings get ignored.
⬐ peterashfordthey could have had a flag for people who prefer those issues to be warnings. for me, they slow my debugging down a great deal⬐ bayindirhThen most (if not all) Go programs wouldn’t compile without that flag.If something can be abused, it’s going to be abused.
That talk is https://www.youtube.com/watch?v=YX3iRjKj7C0.
That talk is https://www.youtube.com/watch?v=YX3iRjKj7C0.Another thread on this article: https://news.ycombinator.com/item?id=24449927
https://youtu.be/YX3iRjKj7C0?t=8m33s
Quite interesting, maybe one should also check this older talk:Robert Martin, "What Killed Smalltalk Could Kill Ruby", 2009
First I was reminded of Uncle Bob's talk on programming language hubris:https://www.youtube.com/watch?v=YX3iRjKj7C0
but as I went deeper thought about the effects of programming language tribalism, I was reminded of
http://web.mit.edu/humor/Computers/real.programmers
it's reference to
https://en.wikipedia.org/wiki/Real_Men_Don't_Eat_Quiche
and how this played out as a sound bite in US popular culture at the same time as the decline in women computer science enrollment began to decline. Being in the high school graduating cohort where the decline began, the decline of women in computing a subject I'm interested in. It's one of those subtle cultural/generational differences between me and my boy.
Too much dynamicity? Ward Cunningham: "What killed Smalltalk was it was just too easy to make a mess" (source: https://www.youtube.com/watch?v=YX3iRjKj7C0)
After watching a few Alan Kay talks where he pines for Smalltalk, I happened to watch this Robert Martin talk "What killed Smalltalk could kill Ruby".https://www.youtube.com/watch?v=YX3iRjKj7C0
The tldw reasons he gives for why Smalltalk died:
- too easy to make a mess where adding complexity would be punished late.
- arrogance - community isolated itself from the world and did not address common industry needs
- commercial only - alternative free languages dominated
⬐ vixen99Maybe related to your third reason, as previously noted, IT-related book publisher and seller O'Reilly appears (open to correction) not to offer one single book about Pharo or Smalltalk.⬐ davelnewton⬐ noblethrasherOTOH, there are a bunch of books out for Squeak, and most old Smalltalk books are still very relevant. (And I'd argue some of the best old Smalltalk books are required reading for people that don't work in Smalltalk.)Re; Pharo, yeah, there's only a few self-published books.
I don't recall Alan Kay pining specifically for Smalltalk; mostly he just agitates for a world in which people at least understand the big ideas behind the original articulation of OOP. In fact, Kay tried to kill Smalltalk way back in the 70s[1].[1]: http://mythz.servicestack.net/blog/2013/02/27/the-deep-insig...
For some context on Martin's comments his talk on how arrogance effected Smalltalk is probably relevant:https://www.youtube.com/watch?v=YX3iRjKj7C0
and probably worth watching if you enjoy Uncle Bob's soulful stylings and are interested in his thoughts about programming language communities.
I read the closing remarks:and thought of Bob Martin's What Killed Smalltalk Could Kill Ruby[1]. The technical merits of Smalltalk are such that few claims "to do objects better" are taken seriously. But the lesson of Smalltalk is that "better" isn't just in the technical details. It lives in the model of community that it's speakers adopt. People speak C and JavaScript because they rode along free with Unix and the browser. Even in it's darkest days, Lisp tagged along in AutoCad and Emacs. These languages had practical purposes that let them compete outside of the "what language should I build my next project in" marketplace and outside the segment of professional software developers.Natural Selection: Languages and systems that are of sound design will persist, to be supplanted only by better ones.
Smalltalk was killed by its business models. Without runtime licensing, providing a REPL meant that every application would come with a free copy. Not providing a REPL meant knee-capping the application.
Summary of the links shared here:http://blip.tv/clojure/michael-fogus-the-macronomicon-597023...
http://blog.fogus.me/2011/11/15/the-macronomicon-slides/
http://boingboing.net/2011/12/28/linguistics-turing-complete...
http://businessofsoftware.org/2010/06/don-norman-at-business...
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012...
http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-R...
http://en.wikipedia.org/wiki/Leonard_Susskind
http://en.wikipedia.org/wiki/Sketchpad
http://en.wikipedia.org/wiki/The_Mother_of_All_Demos
http://io9.com/watch-a-series-of-seven-brilliant-lectures-by...
https://github.com/PharkMillups/killer-talks
http://skillsmatter.com/podcast/java-jee/radical-simplicity/...
http://stufftohelpyouout.blogspot.com/2009/07/great-talk-on-...
https://www.destroyallsoftware.com/talks/wat
https://www.youtube.com/watch?v=0JXhJyTo5V8
https://www.youtube.com/watch?v=0SARbwvhupQ
https://www.youtube.com/watch?v=3kEfedtQVOY
https://www.youtube.com/watch?v=bx3KuE7UjGA
https://www.youtube.com/watch?v=EGeN2IC7N0Q
https://www.youtube.com/watch?v=o9pEzgHorH0
https://www.youtube.com/watch?v=oKg1hTOQXoY
https://www.youtube.com/watch?v=RlkCdM_f3p4
https://www.youtube.com/watch?v=TgmA48fILq8
https://www.youtube.com/watch?v=yL_-1d9OSdk
https://www.youtube.com/watch?v=ZTC_RxWN_xo
http://vpri.org/html/writings.php
http://www.confreaks.com/videos/1071-cascadiaruby2012-therap...
http://www.confreaks.com/videos/759-rubymidwest2011-keynote-...
http://www.dailymotion.com/video/xf88b5_jean-pierre-serre-wr...
http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hic...
http://www.infoq.com/presentations/click-crash-course-modern...
http://www.infoq.com/presentations/miniKanren
http://www.infoq.com/presentations/Simple-Made-Easy
http://www.infoq.com/presentations/Thinking-Parallel-Program...
http://www.infoq.com/presentations/Value-Identity-State-Rich...
http://www.infoq.com/presentations/We-Really-Dont-Know-How-T...
http://www.slideshare.net/fogus/the-macronomicon-10171952
http://www.slideshare.net/sriprasanna/introduction-to-cluste...
http://www.tele-task.de/archive/lecture/overview/5819/
http://www.tele-task.de/archive/video/flash/14029/
http://www.w3.org/DesignIssues/Principles.html
http://www.youtube.com/watch?v=4LG-RtcSYUQ
http://www.youtube.com/watch?v=4XpnKHJAok8
http://www.youtube.com/watch?v=5WXYw4J4QOU
http://www.youtube.com/watch?v=a1zDuOPkMSw
http://www.youtube.com/watch?v=aAb7hSCtvGw
http://www.youtube.com/watch?v=agw-wlHGi0E
http://www.youtube.com/watch?v=_ahvzDzKdB0
http://www.youtube.com/watch?v=at7viw2KXak
http://www.youtube.com/watch?v=bx3KuE7UjGA
http://www.youtube.com/watch?v=cidchWg74Y4
http://www.youtube.com/watch?v=EjaGktVQdNg
http://www.youtube.com/watch?v=et8xNAc2ic8
http://www.youtube.com/watch?v=hQVTIJBZook
http://www.youtube.com/watch?v=HxaD_trXwRE
http://www.youtube.com/watch?v=j3mhkYbznBk
http://www.youtube.com/watch?v=KTJs-0EInW8
http://www.youtube.com/watch?v=kXEgk1Hdze0
http://www.youtube.com/watch?v=M7kEpw1tn50
http://www.youtube.com/watch?v=mOZqRJzE8xg
http://www.youtube.com/watch?v=neI_Pj558CY
http://www.youtube.com/watch?v=nG66hIhUdEU
http://www.youtube.com/watch?v=NGFhc8R_uO4
http://www.youtube.com/watch?v=Nii1n8PYLrc
http://www.youtube.com/watch?v=NP9AIUT9nos
http://www.youtube.com/watch?v=OB-bdWKwXsU&playnext=...
http://www.youtube.com/watch?v=oCZMoY3q2uM
http://www.youtube.com/watch?v=oKg1hTOQXoY
http://www.youtube.com/watch?v=Own-89vxYF8
http://www.youtube.com/watch?v=PUv66718DII
http://www.youtube.com/watch?v=qlzM3zcd-lk
http://www.youtube.com/watch?v=tx082gDwGcM
http://www.youtube.com/watch?v=v7nfN4bOOQI
http://www.youtube.com/watch?v=Vt8jyPqsmxE
http://www.youtube.com/watch?v=vUf75_MlOnw
http://www.youtube.com/watch?v=yJDv-zdhzMY
http://www.youtube.com/watch?v=yjPBkvYh-ss
http://www.youtube.com/watch?v=YX3iRjKj7C0
http://www.youtube.com/watch?v=ZAf9HK16F-A
⬐ ricardobeatAnd here are them with titles + thumbnails:⬐ waqas-how awesome are you? thanks⬐ ExpezThank you so much for this!⬐ X4This is cool :) Btw. the first link was somehow (re)moved. The blip.tv link is now: http://www.youtube.com/watch?v=0JXhJyTo5V8
"What Killed Smalltalk Could Kill Ruby, Too" - Robert "Uncle Bob" Martin -- http://www.youtube.com/watch?v=YX3iRjKj7C0
Having tried Ruby for a year, I have experimented this myself. With a strong OOP background, I can assert that it's not even an elite that enjoys ridiculing noobs.It reminded me of this: https://www.youtube.com/watch?v=YX3iRjKj7C0
Also, just look at the top comment in that video. The irony.
Thx for the responses. I just watched "What Killed Smalltalk Could Kill Ruby, Too" http://www.youtube.com/watch?v=YX3iRjKj7C0 pretty interesting
⬐ swombatCan anyone summarise the main points? I don't feel like watching a 1-hour video on this topic just to get to the "mystery".⬐ felixge⬐ binarray2000He basically warns for the ruby community to become too arrogant about their technology and tools and stop following all the good practices of software engineering (especially unit testing), because they "don't need them".It's actually a really inspiring video, I watched it twice so far : )
⬐ kunleyJust try, it's equally inspiring & entertaining pro-TDD anti-ego talk, with some interesting points to history and people behind the scenes (Ward Cunningham!)⬐ ccheever+1⬐ ccheever⬐ beilabsBasically, at 21:30 "What killed Smalltalk is that in Smalltalk, it was just too easy to make a mess."Smalltalk & Ruby are deeply interrelated.Much of the same syntax between the two languages
From 1970s Smalltalk was the language to watch
Smalltalk epitomized Object Orientated Design
Described C++ as a mans language (need balls to code in it and make it work)
Describes Java as an estrogen type language
Smalltalk had a productivity benefit of a factor of 5. Compared to a C application.
Refactoring in Smalltalk was a breeze
What killed Smalltalk? ( umm, at this stage I have no idea, he jumps to a new topic)
Definition of clean code - "when you look at a routine and its pretty much what you expected"
Best metric for clean code is 0 WTFs per minute
What killed Smalltalk is that it was just too easy to make a mess (Finally, 20 mins in!) Quote from Ward Cunningham
So easy to make an indirect and impenetrable system over time
Companies developing in Smalltalk were screwed up at the time
You can make a mess in Ruby, simple, elegant, wonderful language; still easy to make a mess
Projects in Ruby start well, but the framework is often violated over time; making a mess...
Boyscout rule, leave the campground cleaner than when you entered it. (Actual quote - leave life better than you found it) - apply this to your source code. Would make code get better and better as time goes by. Most of the time, cleaning code is hard!
Quote of the presentation - "If you touch it, you will break it. If you break it, it becomes yours. The best policy is to walk away, run. the messes are hard to clean"
Test Driven Development is the solution
Rails and Ruby is great for Test Driven Development.
Other languages have TDD, was born in Smalltalk.
Talks about TDD methods; If you follow TDD, regularly write and run tests, then there is no fear to change code.
Nothing makes a system more maintainable than a suite of tests
He loves Rspec and Cucumber (Behaviour Driven Development BDD)
TDD never really became a part of Smalltalks culture but is integral to the Ruby community
TDD will keep your code clean
There was an arrogance to the Smalltalk community ( I sometimes can see this in the Ruby community )
Our tools are so good, our language is so good we don't need to follow the rules. Smalltalk people didn't want to do regular programming (Enterprise Applications, etc)
Your language may be powerful, but you must be careful with it. just because we can do a thing, it does not necessarily mean we must do that thing (Star Trek quote) Us vs them feeling in the Smalltalk community.
Ruby community is not going to go down this path because: Discipline - TDD makes you feel good inside
Professionalism - did the doctor wash their hands, did you write your tests?
Acceptance - we need to solve the dirty problems ( Need to adapt to the enterprises needs - do not solve only the problems you like.)
We have a great tool in Ruby, we can kill it, let's not do that!
My thoughts - Great presentation style, he's quite funny. Very inspirational lecturer for developers confirming that TDD/BDD are the ways forward for software engineering.
⬐ stcredzeroI've been working in Smalltalk since 1998. The most important points:I just got a vendor to pay attention to an (admittedly subtle) bug in GUI event processing that's been around for 12 years, causing mysterious unhanded exceptions at every company I've worked with since 2003. Their theory before this: delusional customers.- Companies developing in Smalltalk were screwed up at the time - There was an arrogance to the Smalltalk community - TDD never really became a part of Smalltalks culture
Heed this man's advice.
Your developer culture is more important than your technology! A good culture will help maintain good companies and good public relations.
Smalltalk is not dead, just hiding in niches. I plan on starting new projects soon.
⬐ jfWhat are your thoughts on AIDA/Web and Seaside?⬐ stcredzeroSeaside is pretty slick. Cincom's WebVelocity even more so. I'd stay with open licensing, though.If the new projects work out, we will be using Seaside.
⬐ jfThanks! I'm really intrigued with Smalltalk by way of Squeak (I've been working through Squeak by Example). I wasn't sure where I should be looking regarding web development. Thanks for your sharing!already posted...http://news.ycombinator.com/item?id=623823 for the discussion
⬐ lgCome on, it's easy to make a mess in any language except the straitjacket ones nobody uses. Smalltalk is not as well-integrated with Unix as other languages, and also the syntax and libraries are kind of anal, I think that's what killed it.⬐ MartinMondThis video was uploaded 1 day after the conference. I remember searching and not finding any videos of railsconf 09 expect dhh's keynote.Were these videos really available all the time and I just didn't find them?
⬐ NoneNone⬐ devinIf you like Uncle Bob he was caught yesterday singing Clojure's praises.⬐ j23tomthis video made me a day thx for posting.⬐ jhancockMartin's arguments (summarized well by beilabs and stcredzero) are interesting and represent various real problems. But none are what killed Smalltalk.As always, everything points to money...
1 - Smalltalk tech was owned by a small clutch of companies. All had revenue driven by developer licensing. None were able take seriously the thought of radical change to their revenue model.
2 - Lack of licensing costs for Javascript enabled it to be dropped into Netscape with Microsoft following suit. Lack of licensing costs for Java enabled Sun to give it away during a time when revenue for other Sun products was able to fuel the Java giveaway.
3 - Corporate decision makers took a wait and see approach to further engagement with traditional internal IT investment starting around 1996. This was mainly fueled by drive from within these companies to start focusing on internet strategy. Up to this point, most IT organizations were internal focused.
4 - All the major IT companies wanted to try their hand at capturing the internet technology stack.
It took about a year, maybe less, to kill Smalltalk's momentum. In my retrospective opinion, the only thing that would have saved Smalltalk is for the investors at any one of the major Smalltalk vendors to make a radical shift in their business model and give away the core technology and runtime. This would have enabled Smalltalk to be dropped into a browser instead of Javacsript and enabled Smalltalk to make meaningful progress as an "open" language. Even if this happened, IT companies would have attempted to co-opt this new free-er Smalltalk in much the same way they did with Java and Javascript.