RailsConf 09: Robert Martin, "What Killed Smalltalk Could K

  Рет қаралды 85,377

O'Reilly

O'Reilly

15 жыл бұрын

Robert Martin (Object Mentor, Inc.)
"What Killed Smalltalk Could Kill Ruby, Too"

Пікірлер: 83
@llothar68
@llothar68 7 жыл бұрын
And 6 years later, it looks like Ruby and Rails is dying.
@rrr00bb1
@rrr00bb1 7 жыл бұрын
computers stopped getting faster, while devices get smaller and take on more demands. battery life and power consumption now matter. if you scale up, you need to pass on your AWS bill to your customers. pouring a bunch of micro-services into a cluster needs to be efficient. so static-oriented languages are making a comeback (C/C++/ObjectiveC++ not really going away, D, Go, Rust, etc). We are getting diminishing returns from yet another language that makes big performance tradeoffs for higher-level code. Now it looks like we are headed to better tools to just find bugs at compile-time. A factor of 10 in memory consumption and speed matters greatly if you end up running on a mobile device.
@llothar68
@llothar68 7 жыл бұрын
+rrr00bb And don't forget that more and more code is done on the client side and the server side is just a bit business logic and json database. Even templating is done on the web browser.
@rrr00bb1
@rrr00bb1 7 жыл бұрын
Lothar Scholz i was going to mention pseudo-javascript compilers/minifiers, NaCl, etc. it's more urgent in the server-side where the product-seller pays the bills and has to concentrate the compute power. but it's definitely an issue, just sending out the compiled javascript/resources and having it run nicely on a tiny phone - without a horrible battery-sucking experience or terrible queueing and latency.
@KeldonA
@KeldonA 6 жыл бұрын
Play this at 1.5 speed you'll swear blind you're listening to Steve Martin! Thoroughly enjoyed the talk.
@nickbarton3191
@nickbarton3191 5 жыл бұрын
I love uncle bob's talks, they are so real and speak to me of my every day experiences as a software developer. I've been struggling with some UI code of which the logic should be in other objects making it difficult to test. Tomorrow (Monday) I'm going to refactor it and develop those objects TDD style.
@mmille10
@mmille10 11 жыл бұрын
Liked his definition of professionalism: Someone who, in the face of pressure, falls back on their rules and discipline, and operates without fear.
@kevingrieger
@kevingrieger 10 жыл бұрын
This is my favorite programming video on youtube
@philippebackprotips
@philippebackprotips 12 жыл бұрын
Well, Pharo is quite on its way to the spotlight! Anyway, having been programming with a lot of languages, Smalltalk still feels the best of the bunch. Like in "Pleasure to program".
@mbalagueraj
@mbalagueraj 8 жыл бұрын
Maravillosa charla...! delightful talk, thanks Robert.
@richardgreen7225
@richardgreen7225 10 жыл бұрын
What killed Smalltalk? (and could kill Ruby) - Too Easy . . . to make a mess (lacking TDD). - Arrogance: - - Walled community . . . isolated from the outside world. - - - Dealing with poor industry standards / frameworks / schema / protocols. - - Parochial . . . failure to address needs of Enterprise. What could save Rails? - Professionalism - - Sticking to professional practices (e.g. TDD, Clean Code) (don't hack) - - Solving the problem of nasty architectures / schemas.
@bhabanism
@bhabanism 6 жыл бұрын
And Ruby is dead.
@RomyIlano
@RomyIlano 11 жыл бұрын
what a great, passionate speaker!
@CurtisOvard
@CurtisOvard 11 жыл бұрын
"Tests eliminate fear" - great statement
@zetaconvex1987
@zetaconvex1987 11 жыл бұрын
Every minute was entertaining, especially the last one.
@AreHusby
@AreHusby 11 жыл бұрын
I feel his points apply to Scala too, perhaps even more so than to Ruby.
@billsix
@billsix 6 жыл бұрын
I was confused by the introduction, as it appeared to have nothing to do with rails, or programming at all; but oh man I was wrong.watxhing how he weaves various themes together towards his end purpose is inspiring.
@randito
@randito 12 жыл бұрын
What a fantastic speaker...
@horridohobbies
@horridohobbies 9 жыл бұрын
It's easy to make a mess in any language; Smalltalk is not particularly predisposed in this regard. In my decades-long career, I've seen many large, messy projects...and none of them was written in Smalltalk! (Full disclosure: I've professionally used FORTRAN, Tandem TAL, C, C++, C#, Objective-C, Java, Smalltalk, and Python.) The key to avoiding a mess is strict project discipline and good quality management.
@Urthor1
@Urthor1 2 жыл бұрын
Pretty sure, as everyone knows, the truth is it all revolved around "you can't charge money for a programming language." They teach kids Java in high school because it's free. Who can compete with that (equally free Python!).
@horridohobbies
@horridohobbies 2 жыл бұрын
@@Urthor1 Smalltalk is free, too. Pharo is free. Squeak is free. Dolphin Smalltalk (for Windows) is free. GNU Smalltalk (for command line lovers) is free. Amber (for front-end web) is free. Cuis Smalltalk is free. Take your pick. Many businesses prefer robust industrial support for their programming tools. For them, there are Instantiations, Cincom, and GemTalk Systems. So there is something for everyone.
@Urthor1
@Urthor1 2 жыл бұрын
@@horridohobbies Oh well yes it is now, in the 2010s. I was thinking historically, certainly there was a helluva lot less "free (and yes, absolutely free as in beer)" Smalltalk stuff around the late 90s, when the Java/C# inflection point really got going. And free (as in beer) is very important, given what you said: "Many businesses prefer robust industrial support for their programming tools." This is the most important thing. These days this robust industrial support now comes via Github Issues. The FOSS community has *directly out competed* all sorts of paid platforms. This was before I learnt to read, but FOSS absolutely tore Digitalk et al, and many others to bits. The FOSS community plus the Red Hat/MongoDB "open source with platinum grade enterprise hoo-ha" model took apart small talk like a tin can. Because ultimately the Github Issues -> "readable source code" -> feedback loop between hobbyists/academics and industry worked out. It's really important episode to think about a lot of ways, because building those feedback loops, community building, is now the most important thing in open source software. I truly believe that in this era, writing a good README is almost as important as writing good software. Being a community builder who gets a community behind you is more important to getting your software to go further than writing the code almost. From a community building aspect, I wonder how Pharo et al can fit in. The syntax itself is lovely.
@Urthor1
@Urthor1 2 жыл бұрын
Unrelated issue I really think about re the failure of Smalltalk, I'm seeing in Pharo. I think, the degree to which Pharo is divorced from the file system is pretty extraordinary. I've truly never seen any similar *anything* on a desktop computer that completely ignores the wonderfully integrated paradigm of file system, text files, tree graphs. The syntax and the *latency* of the Pharo is extraordinary. Getting my head around a completely different dependency graph of classes is such a challenge. The marriage between mathematical linear evaluation, text parsers, the file system, and functional programming is a very *intuitive paradigm.* That functional/procedural paradigm is very much the zeitgeist right now (lovingly talking about Haskell days in college whilst spitting out Javascript/Python/C# one liner routines in multi-paradigm languages is corporate software in a nutshell. Purity is impossible, instantiating struct blueprints is pretty important for some things). There's a lot of strength there, a lot of intuitiveness. Such a very strong connection to the underlying operating system and how we pass equations to our evaluators via registers. Figuring out how to fit what I have there and love into my model of how Pharo works, while I plough through Pharo by example, is going to be a big challenge. With Pharo especially, you have the graph of how all the subroutines are laid out being very orthogonal to the linearly parsed subroutines themselves. That's very... my head is working at 100% to understand that. And I haven't even touched merge conflicts yet.
@Urthor1
@Urthor1 2 жыл бұрын
Maybe the answer is Elixir haha.
@_mxgel
@_mxgel 5 жыл бұрын
That opening is sick....wow!
@horridohobbies
@horridohobbies 2 жыл бұрын
And irrelevant to a discussion about Smalltalk.
@kurrator1
@kurrator1 11 жыл бұрын
I agree. When it comes to simplicity and ease of use Smalltalk language and its browsers are IMHO better than everything I've seen so far for Java or C#, Ruby, Python, etc.
@CBaggers
@CBaggers 10 жыл бұрын
Wow, this guy is a phenomenal speaker. Best case for test driven development I've seen. Also seems very relevant for lisp
@curiosull
@curiosull 6 жыл бұрын
Almost all the reasons stated I say they apply now with cpp. Instead of enterprise needs we may refer to the web needs.
@ads
@ads 8 жыл бұрын
TLDR: it's just too easy to make a mess (21:40)
@HMijailAntonQuiles
@HMijailAntonQuiles 7 жыл бұрын
Still, the whole Ward Cunningham intro is worth the 15 mins. (I wonder what were the very first 5 mins about...?)
@Khaltazar
@Khaltazar 5 жыл бұрын
@@HMijailAntonQuiles - Robert Martin always does that. He says he likes to do it to be unique and to get the audience's attention and get them thinking.
@HMijailAntonQuiles
@HMijailAntonQuiles 5 жыл бұрын
Sounds like another way of saying that his talk isn't unique and interesting enough per se, so he decided to waste 5 mins of everyone's lives. :/
@ads
@ads 8 жыл бұрын
41:59 professionalism is discipline to wielding of power
@ibraheemmoosa
@ibraheemmoosa 3 жыл бұрын
What did eventually kill Ruby?
@ruffianeo3418
@ruffianeo3418 9 жыл бұрын
What no one ever mentions is that a large base of test code also can prevent fixing stuff which would change the functions interface of the code under test, because it would require tedious maintaining of the test code. Having unit tests is important but not the solution to all problems and they also create new fears while removing others.
@Dacusx
@Dacusx 6 жыл бұрын
Referring to the last statement, I would prefer that surgeon who operates on my heart finishes before "deadline", instead of calmly allow me to die. Also it seems to me CO's and managers of enterprises would want developers to behave similarly.
@fdeutschs
@fdeutschs 13 жыл бұрын
@stingerster No way ! I personally think it totally kills the elegance of the Smalltalk language. Is not that bad but I find it very confusing syntax, particulary dealing with the different ways to handle memory, and not that dynamic as ST or Java. My point of view, of course.
@horridohobbies
@horridohobbies 9 жыл бұрын
IBM thought highly enough about Smalltalk in the enterprise to launch the VisualAge family of software tools in which Smalltalk was deeply entwined. Smalltalk could very well have served enterprise needs, but it was derailed by competitive forces. Smalltalk needed better PR and marketing. Smalltalk is taking a run at web development via Amber and Seaside; it could use some PR and marketing NOW...
@reiknir
@reiknir 9 жыл бұрын
"IBM thought highly enough about Smalltalk in the enterprise to launch the VisualAge family" and then get rid of and cancel it wholesale ........
@horridohobbies
@horridohobbies 9 жыл бұрын
reiknir Exactly. "Derailed by competitive forces." IBM saw Java as a threat and reacted badly to it (as they often do).
@llothar68
@llothar68 7 жыл бұрын
The problem was that when someone complained about the license fees they arrogantly replied that a software developer seat will cost a total of $50000 in licenses (or was it Rational?). Java was free. It was Open Source that killed Smalltalk.
@horridohobbies
@horridohobbies 7 жыл бұрын
Well, Smalltalk is hardly dead: hackernoon.com/what-makes-a-programming-language-cool-f40401f0f929. But you're right, Smalltalk couldn't beat "free." Today, it's a much different story. There are many free Smalltalks. Pharo is most actively being developed. And Smalltalk continues to be commercially used, as it has been for over three decades.
@reiknir
@reiknir 7 жыл бұрын
"Java was free. " It was not free, it was only open sourced a decade after its introduction and even then only partially. Even though IBM implemented their own Java stack, they paid licence fees to Sun.
@Archie3D
@Archie3D 8 жыл бұрын
I don't use TDD. And I don't do debugging that much. Why? I use design by contracts.
@rrr00bb1
@rrr00bb1 7 жыл бұрын
tests are far more popular in environments where you don't have rich types or contracts, as a lot of the tests are effectively doing contract checks (where types are a subset of what you can do with contracts). if you had a dependent type system (even if it were only simple things like null checks) and dbc, you actually do have the simplest tests. dbc would also allow languages to get rid of a lot of unsafe code that is tolerated for performane's sake. i really wish that the long OOP detour of the 1990s had been spent taking DBC into the mainstream.
@ads
@ads 8 жыл бұрын
45:59 Green band and TDD
@coop4476
@coop4476 Жыл бұрын
Ryan Ponte he's talking about you : )
@samsmith1580
@samsmith1580 7 жыл бұрын
Smaltalk never died because it was never a thing. It never had it's day in the sun because it was just too diferent. We have spent the last 40 years coming to terms with what Smalltalk is. C++ and Java were created because people couldn't wrap their head around OO so they created Class orientated Languages. Only now are true OO languages coming back into fashion as the failures of Class based design and design patterns become evident. True OO programing does away with the need for both. Ironically it is java-script with Its incredible flexibility that has opened the worlds eyes to true OO. But JavaScript has too many flaws and Ruby is a far better and consistent language. The main problem Ruby has is that its interpreter is slow. Millions has been pored into the optimizing of the PHP interpreter and Ruby has a very long way to go to catch up.
@piecepaper2831
@piecepaper2831 Жыл бұрын
13y later ruby died 😢
@berkut2006
@berkut2006 12 жыл бұрын
@kefsound lol
@Tygryss84
@Tygryss84 13 жыл бұрын
not that I don't like bob, but I get the feeling that if you seen one his talk, you've seen them all :) - He's a great speeker, and enjoy his listening to him, it's just that I don't feel I learned anything :) - but still it's an hour well spent :)
@zeroxcub
@zeroxcub 8 жыл бұрын
TLDR: too easy to make a mess + developers arrogance
@saf271828
@saf271828 11 жыл бұрын
Every minute to run tests? My ass! Try every five seconds! :-) Unit tests should run fast so you can get immediate feedback. A minute is just too long.
@kefsound
@kefsound 13 жыл бұрын
4 viewers use PHP.
@rh9280
@rh9280 10 жыл бұрын
I can't say I like this guy's attitude. Sound's like he knows everything. It's enough to put me off Rails!!
@3amsleep
@3amsleep 9 жыл бұрын
well... google him and then tell me if he's entitled or not...
@3amsleep
@3amsleep 9 жыл бұрын
im sorry, maybe you googled "lame butthurt comebacks"
@MCNOISE666
@MCNOISE666 10 ай бұрын
🤡
@JosephAnnino76
@JosephAnnino76 10 жыл бұрын
Great insights. I had felt a real sense of arrogance from the Ruby world. It for a long time was the hipster programming language. But that changed. Node.js has provided some competition for cool. Lots of other frameworks in many other languages now compete very well with Rails. There is also a PHP renaissance going on. A lot of ideas the Ruby world was pioneering in putting into practice have made it to other languages, benefiting them greatly, and vice versa. All of this I think has given a little more humility to the Ruby world, which it badly needed, and is important for its survival. Otherwise, this guy is a bit of a sexist blowhard. He has to check some of his own arrogance. For those watching something like this from the outside, his attitude doesn't always jibe well with his otherwise knowledgeably articulated notions of professionalism.
@crabsynth3480
@crabsynth3480 5 жыл бұрын
Sexist blowhard? Was that because of the harmonal thingy? Because that is ridiculous... it was simply a ying yang metaphore... and you have no idea how much he speaks up about the gender gap in programming... ive seen him strongly defend the case for women in programming during many of his interviews and talks.
@MCNOISE666
@MCNOISE666 10 ай бұрын
🤡
@YoLninYo
@YoLninYo 11 жыл бұрын
does linux kernel team use TDD? case closed.
@saadazzz
@saadazzz 11 жыл бұрын
7 viewers use PHP
@holz_name
@holz_name 9 жыл бұрын
You don't need TDD for clean code. Just write your code and in parallel write the unit test that tests for every inputs that are documented. You do have a vision&scope document where the use cases are described? So, for every use case write the code and in parallel write a unit test that tests your code. No dogmatic TDD "laws" are needed, you can write production code and your tests in parallel, no excessive unit tests are needed either. What your use cases don't cover, just ignore it.
@macgyver3239
@macgyver3239 6 жыл бұрын
"Just write clean code". From your lips to God's ears. I know only two programmers who even tried to write clean code.
@ppalacz
@ppalacz 10 жыл бұрын
Mostly entertaining fluff; questionable content. "Too easy to mess up" as the reason? you must be joking.
@sarmala
@sarmala 9 жыл бұрын
"Too easy to mess up" sounds like one of the best reasons something like a programming language can loose popularity.
@raneksi
@raneksi 14 жыл бұрын
Annoys me how he's walking around so anxiously.
@holz_name
@holz_name 9 жыл бұрын
Nice talk about TDD and tests. But in practice even if you cover 100% with tests and use your TDD on the punishment of whipping, nobody will just improve code on a production system. First and foremost, because in software development those maxims are king "what works, works" or "don't change a working system". Second, because of perceived "code ownership", i.e. don't change my code because reasons. Third, because nobody code if they are not compensated, i.e. paid for.
@j-pg9669
@j-pg9669 8 жыл бұрын
Holz Name. Yes "what works, works" until your boss ask you to change something in there. Having to make a change in a clean module take way less time because it take you way less time to understand what the code does. " i.e. don't change my code because reasons" If you have 100% test coverage, then your tests should show the behavior that you expect from a module and the programmers will know they broke something. If you can't trust someone touching your code... Why did you hire that guy?? "nobody code if they are not compensated". Thats an administration issue. If your boss does not understand the benefits of refactoring and clean code, that's sad for you... There is plenty of programmers who are paid for doing some refactoring here and there. sorry for my english...
@holz_name
@holz_name 8 жыл бұрын
J-P G I was comparing the theoretical TDD approach to the real world. In the real world we have those issues, which are economical and social issues. But I agree with you mostly. I myself, I don't think the TDD approach is practical. I just programmed a prototype for an application that will get FOREX data via the OANDA REST API, and if I would have used TDD, I would have spend 1 week and with no design at all. Instead, I do a first a draft of the design, test my classes for my use cases, and if my use cases changed, I change the design and the tests. I more like the Use-Case-Driven-Development model. Is there such a thing? Maybe I invent it and go giving talks and seminars about it.
@j-pg9669
@j-pg9669 8 жыл бұрын
Holz Name I agree that TDD is not the answer for that kind of project! I had long terms apps in mind.
Interview with Robert C. Martin (Uncle Bob)
37:42
Verein der Karlsruher Software-Ingenieure (VKSI) e.V.
Рет қаралды 36 М.
100❤️
00:20
Nonomen ノノメン
Рет қаралды 61 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 21 МЛН
🍕Пиццерия FNAF в реальной жизни #shorts
00:41
RailsConf 2010:  Robert Martin
53:01
O'Reilly
Рет қаралды 42 М.
Uncle Bob The Future of Programming (Kuppelsalen, Copenhagen)
1:19:36
Danske Bank. Group IT. RAPO
Рет қаралды 38 М.
The Scribe's Oath • Robert "Uncle Bob" Martin • GOTO 2017
59:15
GOTO Conferences
Рет қаралды 162 М.
Robert C  Martin  - Professional Software Development
1:00:08
gnbitcom
Рет қаралды 67 М.
Robert C Martin - The Single Responsibility Principle
51:09
gnbitcom
Рет қаралды 103 М.
21. Chaos and Reductionism
1:37:33
Stanford
Рет қаралды 1,7 МЛН
Professor Slavoj Žižek | Full Address and Q&A | Oxford Union
1:15:08
OxfordUnion
Рет қаралды 1,1 МЛН
How much charging is in your phone right now? 📱➡️ 🔋VS 🪫
0:11
iPhone 12 socket cleaning #fixit
0:30
Tamar DB (mt)
Рет қаралды 21 МЛН
Нашел айфоны в мусорке!
0:32
По ту сторону Гугла
Рет қаралды 287 М.
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 10 МЛН