pain..
no not bread
Tom cardy is probably in the top 10 best things to ever happen
He takes cringe and makes it good
Poisson
Avec boisson
Sacre bleu! (Despite my years of French classes and the context of the conversation, there was a brief flash of a moment when I got excited because someone was discussing my favorite probability distribution. Oh well.)
La chat est sur la table.
La table est sur la terre.
Pain is to rue like bread is to street.
At least ours is still OOP lol
si pamatuju že nám to učitel říkal jako OZP (objektově zaměřené programování) lol
Czech?
Oh dear God
et râpè
Same for Portuguese
Same for Spanish, but we mostly do things in English
Thanks! I had to work in code written by French people once.
don't forget about the POG
In Romania we say "Programare orientata pe obiect" which is also POO. Or I guess POPO if you count the preposition "pe".
POPO is kinda fun too tho
POPO means Ass in German
I thought it was Arsch.
There can be multiple words; Ass, bum etc.
The things I learn from /r/ProgrammerHumor
Well it's the nice form you use with children for example. Hintern or Gesäß are probably the neutral forms.
Arsch is how you say it in Sean Connery.
If anything, that makes it accurate
And "shit" in Spanish.
That was the first POO I got taught in university and it confused me so much.
POPO means poop in Spanish
The police is sometimes called popo in The Netherlands, even though the official word for police is politie.
POPO means shit in Spanish
In spanish is "Programación Orientada a Objetos"
"Programação Orientada a Objetos" in Portuguese.
User deleted comment
2.6y
It's pretty amazing, in Romania we also call it POO, SIDA and ADN. Gotta love dem latin roots.
Hmm.. the national foreign-aid organisation of Sweden is called SIDA - I wonder if that has lead to any confusion :)
German we just use the English form AIDS. DNA is also quite common but usually it's DNS (acid - Säure)
Speaking of Acid, a lot of people say LSD (LysergSäureDiethylamid) instead of LAD, which would be its english counterpart like in AL-LAD or ETH-LAD.
Or you're trying to talk about Python, Perl, or PHP OOP. Or my college class Processes of OOP.
poop poop poop pooop
And that's relevant with smalltalk. That was the first POO I got taught in university and it confused me so much.
And every other latin language
Oui
Same in Portuguese, programação orientada à objetos. Aka POO
In México we Say "Programación orientada a objetos" wich is also POO
same in Spanish "Programación Orientada a Objetos"
Dutch would I guess be Object Georiënteerd Programmeren
Same in Spain (programación orientada a objetos)
Royale POO
Go back to your ordinateur
In The Netherlands we say Object georiënteerd programmeren, so it's still OOP like in English.
Spanish: Programación Orientada a Objetos
"I always knew that one day Smalltalk would replace Java . I just didn't know it would be called Ruby"
- Kent Beck
Am I crazy for thinking ruby is great but rails sucks ass
Rails was great when came out, not sure it is to work with now.
I think there’s a level of prescriptiveness that’s helpful, but with rails (and railsy type frameworks like ember) it gets to be so much that it obfuscates too much and makes it harder to understand what’s going on.
This. I struggle with this with Ruby and Python in general. Sometimes these languages are magic, and can do so much for me in one line. But, sometimes it's so magical I can't figure out how to write that line, or what it does after I've written it.
Rails compounds this problem for me a lot.
And God forbid you want to do something slightly different than the prescribed way. You're gonna have a bad time.
Right. Well I find that when you do, suddenly you’re adding some atrociously large and or unwieldy library. It’s really hard to just write for what you need and limit complexity.
I really enjoy Go after working in Ruby for years. Maybe I appreciate type safety a bit more? I miss gems though.
I’ve been doing Rails for a decade now. It’s still pretty great. The learning curve is a bit steep because there’s a lot of moving parts that are interdependent. If you insist on fighting it or doing things a specific way, you may have a bad time. Otherwise it’s great at solving a pretty common set of problems, is well supported and maintained, and has improved a lot over the last decade.
It gives inexperienced engineers way too much rope to hang themselves (and their future code base) with. Typed parameters (like in PHP) would be a godsend.
Ruby may have partially succeeded but elixir will finish the job
When did Ruby replace Java? Did I miss something?
It didn’t, but there’s a whole swath of programmers who were focused on building Java web apps in the late 90s, early 2000s that really fell hard in love with Rails. It’s been my experience that those guys are generally convinced that the second rails explosion is right around the corner.
I thought it was mostly dead, but this latest round of job searching really proved me wrong. Rails was everywhere. So who knows, maybe it’ll happen.
Never heard much about Ruby, then got hired a couple months ago to write Ruby (no Rails) and I gotta say I welcome any resurgence it might have.
It's quite nice to write in.
I just signed on for a heavy Rails shop, so after years of avoiding it I’m finally diving in. It’s definitely a bit of a shift in thinking, but so far I’m mostly enjoying it. I think all my complaints at this point are all part of getting over the “this is different and therefore bad” phase.
My only exposure to Ruby was writing connectors in Workato. That didn’t give me a feel for the language.
I’ve spent most of my career avoiding it, but I just signed on to a Rails shop, so like it or not I’m all in now. I definitely see the appeal, but it’s a different overall mindset to be sure
Ironically, Ruby is dying language, when Java for some reason is not
"Some reason" being that the language actually evolved in the right direction. There are better languages but it's not that bad anymore.
“Some reason” is actually that it was already used to build a large number of applications in the enterprise environment and they gain no benefit to change to anything else.
I think it mostly has to do with Spring carrying it
Yeah well say that to php though. Java definitely evolved faster and better (though I've heard php is trying to follow nowadays).
I would argue that PHP was not as pervasive in the enterprise environment even at it’s peak. That combined with it’s slow evolution led to it’s decline.
It's true, but I think the decline of java has definitely slowed down a lot due to the fact that it simply holds up to modern languages.
Yeah you are missing up on some features, but developping in java is not gonna significantly change the time it takes to complete your microservice and you're pulling from a MUCH bigger talent pool than other techs.
Stuff like kotlin is a step up for sure though.
I don't like java that much, but I gotta admit, I think it makes sense to use it (and I do ).
Java survives because it is taught at university level. the future of Java is kotlin
...and no one cares about Clojure
Scala gang sitting over here in the corner with you.
I care! Love me some Clojure. (Tho I lucked out and get to work with Elixir, which is similarly wonderful.)
BEAM go brrrrrrrrr
Except at Shopify, interestingly.
User deleted comment
2.6y
I'll never willingly use a language that ends each block with an "end" word. That's what Fortran did and it's the 137th reason why Fortran sucks. If God wanted us to end blocks using "end" he wouldn't have given us curly braces.
Braces are perfect for code blocks because they are easily seen in a page of text, yet they are unobstrusive. They are easily parsed by text editors, so we get a highlight of the whole block when we hover the mouse cursor over a brace. This feature alone is enough for me to want to use only languages with brace blocks.
Most curly braces languages think that indenting code is a best practice and it is something you should do. What if this best practice was mandatory?
Python and F# gang
The thing with python syntax isn't the indenting. It's that indenting is syntax. Move something one level of indent? Now it's in a different scope. That can be really hard to catch. It's as bad as if in C-like languages that optionally require braces.
Python syntax would be greatly improved simply by having some lexical element demarcating code blocks whether that's braces or begin/end or whatever.
One big plus for having tokens that demarcate blocks is that you can lint the code to apply standard formatting to make everything line up. In Python, at best you can change 3 spaces into 4 to lone things up.
indenting code is a best practice and it is something you should do
I agree. That's why I indent my OpenGL C code like this:
glBegin(GL_QUADS); {
glNormal3f(0.0, 0.0, 1.0);
glTexCoord2f(0.0, 0.0); glVertex3f(0.0, 0.0, 0.0);
glTexCoord2f(41.67, 0.0); glVertex3f(18.75, 0.0, 0.0);
glTexCoord2f(41.67, 17.67); glVertex3f(18.75, 7.95, 0.0);
glTexCoord2f(0.0, 17.67); glVertex3f(0.0, 7.95, 0.0);
glTexCoord2f(0.0, 0.0); glVertex3f(4.05, 7.95, 0.0);
glTexCoord2f(14.18, 0.0); glVertex3f(10.43, 7.95, 0.0);
glTexCoord2f(14.18, 4.44); glVertex3f(10.43, 9.95, 0.0);
glTexCoord2f(0.0, 4.44); glVertex3f(4.05, 9.95, 0.0);
} glEnd();
Indentation should follow logical rules, and that goes beyond the syntax of the language. In the case of OpenGL, same as many other systems, there are operations that are connected logically in a block. Python has no way to handle that.
Typically, you would have a context manager dealing with glBegin and glEnd in a language like Python and using context managers comes with a with block.
People that hate on significant white space are exactly the type of people that should be forced to use significant white space until they are fixed.
I don't understand the meme, can somebody explain lol
Everything in Smalltalk is an object. These objects interact with each other by passing to each other. There basically isn't any syntax and no control statements (if, else, for, function), because these functions are implemented as methods on the objects. This makes it incredibly flexible and because everything has to be an object / method, it enforces an actually good structure and perfect OOP
Wow, I never knew about this! Bear with me, I never write any code in Smalltalk. Java, yes.
I am sorry for my dumb question, but if smalltalk doesn’t have any control statement. How do we make one then…
It is like, I do a recursive method instead of for-loop or something?
IIRC (I haven't used smalltalk for over a year, and then only for a month or so) code blocks are also objects, and can be evaluated multiple times.
booleans have methods such as ifTrue and whileTrue which take code blocks as arguments, so in practice it looks a lot like a control statement.
I see, that is interesting. Thank you for sharing! Really appreciate your knowledge
Nah, instead, control structures are performed by passing messages to objects. In Javanese, "passing messages" would loosely translate as "invoking methods".
So, think, instead of
if (foo) {
Do this
}
you'd write
foo ifTrue: [ do this ]
Where foo
is something that evaluates to a boolean and [ ... ]
is a block closure.
Booleans define ifTrue:
, ifFalse:
, and also ifTrue: ifFalse:
Digression, wherever you see
:
there that means a message that takes an argument.ifTrue:
is the signature for a method that takes one argument.ifTrue: ifFalse:
is the signature for a method that takes two arguments (one afterifTrue:
, the second afterifFalse:
)
Looping? You send messages to block closure. Simplest:
[ some code. some boolean expression ] whileTrue.
Here whileTrue
is a method that takes no arguments. Equivalent to:
do {
some code
} while (some boolean expression)
If you wanted while (...) { ... }
instead, you could also:
[ some boolean expression ] whileTrue: [ some code ]
There are also methods for repetition, like integer repeat: [ code ]
or integer to: integer do: [ code ]
and some other variations.
Yeah the actor model that elixir inherited
That actually comes from Erlang.
Although as far as I remember reading, the Erlang creators weren't trying to implement the actor model of concurrency, and it was only later that they found out that their approach was quite similar to the actor model. I think there are differences, but I'm not familiar with the theory to know what they are.
On a related note, Alan Kay (the creator of Smalltalk) and who coined the term OOP, said something along the lines of people misunderstanding him, and how the emphasis should have been in the message passing and not in the objects and classes. Hence, why some people think that Erlang (and Elixir) might be close to the original intention of OOP. Although that's debatable, I guess.
Anyway, that's from the top of my head, so take it with a grain if salt. I haven't had the chance to try Smalltalk to really judge it firsthand.
Cool, thanks
I've used java but this is the first time I'm hearing about smalltalk - so here's what I think it means. Basically OOP in java is chaotic asf whereas in smalltalk it's organized and streamlined (probably)
How hard would it be moving from processing (in which I'm fairly competent) , to java, which processing is based on?
not very hard.. would just require you to learn more syntax
Thanks!
While there will be additional syntax, I think the main growth areas for you will be in concepts related to the specific things you decide to build.
You are unlikely to make the same kinds of GUI applications that you might make in processing using Java because Java isn’t great at making UI (thus the value of processing). Two areas (not the only ones) where Java is strong are: 1) system tools e.g. moving files around your computer and 2) back-end web development (calling custom functions when specified urls are requested, manipulating a database, and responding with data).
Either of those domains will entail learning about what the respective applications do as well as how to specifically do it in Java. That said, processing helps build a solid foundation from which to learn any of these things :)
Thanks for the detailed response... I was mainly thinking of trying to learn java as it'll look better on my resume, but as I'm not really attempting to become a software engineer (carrier-wise) maybe I'm better off not bothering! Especially as I'm not even aiming to do the things you said java is better at in my personal projects.
Many thanks again.
Can I ask what direction you do want to pursue with your career at this stage? It’s possible that code isn’t helpful to you but also that there’s another language or paradigm that might be a good fit. Don’t feel limited to Java just because it’s most similar to processing; most of what you’ve learned will carry over regardless.
It’s more important to learn what a for loop is + when and why you’d use it, than it is to learn the syntax for creating one. That’s something you’ve been learning already. For reference, here are a couple domains and associated languages/tools:
Web development: html, css, js
Data science: Python or R
Game development: Unity or Unreal
EDIT: format
It is the same language so it would not be hard. Also you can get processing as a library for Java if you want to keep using the things added by processing (like PVector PImage etc)
Ah yes I know that, but didn't want to go round claiming to be semi proficient in java then immediately go "erm let me just import these libraries" 😂
But yeah if I do make the switch I'll definitely use processing as a library for my own stuff, given that my software is all geared around graphics, generative visuals etc.
Cheers for chipping in! 👍
My uni literally learned java with an introductory course in processing. Moved on to Java afterwards in further courses.
so an endless series of near hits? God that gives me anxiety, I think I prefer the left one.
Loose coupling, localized interactions, no need for orchestration... I don't know that it applies to Java, but it sounds pretty ideal.
I believe Alan Kay wants to pass you a message.
It lives on sortof in Objective C.
Man, I miss ObjC. It was the first language I took to learning completely on my own in highschool back when I was into the iOS jailbreaking scene.
Too bad it was so tightly coupled (in practice, not theory) to Apple's ecosystem.
Yeah. I learned it a couple years ago because I wanted to get into the jailbreak scene, which is still pretty decent. I am still rocking a jailbroken iPhone.
yes well if they didn't insist on it being your entire operating system it probably would have been more popular
back then it was kinda necessary tho
Did the internet just decide to invent this language over night as a troll? I've never heard of this language. Smalltalk.
Not a single class in college or Uni ever mentioned this language (and those classes love going over programming history).
Yet according to the Wikipedia article, Smalltalk won 2nd place for "most loved" programming language in the 2017 Stack Overflow developer survey and is and is regarded as one the most influential languages ever, where nearly all OOP languages take inspiration from it.
How have I never heard of this?!
You need to be over 40 y.o.. ;P It was taught when I was at university in early 90s.
Am 50. Can confirm.
We're probably at a point where we need historians to look at how our field developed and teach that as well. There's the same ideas with new names coming out every decade and people keep repeating the mistakes of earlier generations...
Only time I’d heard it mentioned was by Steve Jobs in some interview way back.
Same boat as you, I have never heard of it either.
But, it's a thing.
https://learnxinyminutes.com/docs/smalltalk/
Syntax is interesting
https://www.codeproject.com/Articles/1241904/Introduction-to-the-Smalltalk-Programming-Language
Username... doesn't fit.
Right? That account should only post invalid links lol
I only heard of it in the same way I heard of Firefly: something people thought was cool that never really took off.
We learned Lisp and Scheme in college, which were only used in college.
It's not like lisp isn't used, e.g. reddit was written in Common Lisp, alas they switched to Python.
It was a niche language but it introduced and/or combined elements common to OO languages today. It ran on a virtual machine and had an integrated development environment. Back when it was introduced it was pretty amazing from a CS point of view but as an interpreted language running on a virtual machine it didn't exactly perform well so it's use in industry was limited.
It was an amazing language/environment that in many ways was far ahead of its time. In the late 80s/early 90s going from C or early C++, SmallTalk was like seeing a spaceship after thinking an old pick up held together with duck tape and bailing wire is the coolest vehicle that exists.
I still have my SmallTalk V manual for nostalgia.
idk. the language is sadly pretty much dead now..
LOL that’s what they say about COBOL.
I mean... Yea? Aren't they both pretty dead now?
Cobol is the language that we wish was dead.
Banks worldwide: "Will never be"
You're too young. I learned about Smalltalk reading Byte magazine in 1981.
And, frankly, I always thought it's vastly overrated.
Find a graybeard who loves Ruby. They’ll tell you everything you ever wanted to know about Smalltalk
is u/RichardKennethEng on reddit?
TL;DR; 20 years ago people considered Smalltalk a dead/dying language.
20+ years ago people would talk of companies whose codebase was Smalltalk. That they could not hire Smalltalk devs and so would hire devs who knew other languages and train them into Smalltalk. Then the devs would leave because of attrition and the fact that it wasn’t a great career path. Then said companies would go over the same cycle again.
….
Students and inexperienced devs pay too much attention to language “features”. The weight of libraries, tooling and dev population is often not well understood by them.
Did the internet just decide to invent this language over night as a troll? I've never heard of this language. Smalltalk.
I'm not sure! Used to work with a bunch of old engineers (still do, just different ones) who one day decided to make small talk about Smalltalk. One of their nuclear fuel assembly design tools was still written in it. I'd never heard of it before or since except on this subreddit recently.
It's not a widely used language. The 3 most common uses are education, finances and oil industry.
r/smalltalk exists but it's a wasteland.
They being said I work with smalltalk, and really like it.
Live coding is something that you really miss in other languages.
Honestly you are lucky. It is the worst language that i have ever used. It is only perfect for OOP purists that would insert 63715 classes in a recursive way just to run a print. The syntax is horrible, it has to run in a different environment (which can be complete trash, we had to use Pharo, and the professor told us thst one time he changed the font size and the entire program killed itself and had to be reinstalled). It incentivises classes with the minimum amount of lines possible so that you make that unreadable net of classes that have 10 lines of code tops. I hated that class because it was taught by OOP purists, and it does not surprise me that they chose smalltalk as the class language. If you want to see why the language failed then look for its "design text" (dont really know the name, it shows the philosophical ideas behind the implementation of smalltalk), you will get the vibe that it was written by 5 dudes smoking weed in a room without doors or windows.
Also the design text says that good languages persistent through time, while bad ones are forgotten, which I find hilarious because almost no one uses smalltalk.
User deleted comment
2.6y
That's Groningen.
Groningen!!!! Do you know the context of the video?
Hooligans of Groninger soccer club battling it out against Hooligans from a soccer club from another European country if I recall correctly.
Student studentService = this.studentSerivice
Java is the most distressing thing to happen to computing since MS-DOS.
- Alan Kay
This is kind of weird to hear from him. SmallTalk people are the ones who pedaled Java, especially its marketing campaign. Java was basically built by people who wanted SmallTalk.
I mean, I don't like Java, but I'm also not a huge fan of SmallTalk. I find it strange though that the two languages, which aren't that far apart, suddenly have that much antagonism.
After hating all the languages possible, now the sub will hate programming philosophies 😂😂
I chuckled at this. The fight on the left is just funny whenever someone brings it up. I saw someone say "someone yelled ai is just a bunch of if statements
"
The only application done in smalltalk is it's editor ...
not really
any OOP language can result in the left gif with a shitty developer.
ok maybe except JavaScript.
I would think JavaScript would be even worse with a shitty developer, since it essentially enforces nothing
yeah that’s what i meant. i didn’t think i had to put it in so many words given that JavaScript is already a constant punching bag on this subreddit.
totally agree
mini motorways be like
I program in smalltalk for work daily. Even as old as it is the language is an absolute blast to work in. It takes a bit to wrap your head around. Everything is an object.
Super fun to debug in, inspecting instances of objects and running methods on the fly. Fixing whole messages and then running it immediately. Some of the best times you respect it are when a whole system is absolutely hosed and you can just reach where you need to make your fix and send it.
Down side is if you get some folks that don’t respect encapsulation you can really rip through the system for anything from nearly anywhere. It can get messy.
If it had more usage today. There’s a good chance it would be my go to for many projects. For now I’ll leave that to c#.
:) ikr right. what smalltalk are you using
VisualWorks!
best smalltalk imo. happy for you c:
Can sb explalain?
I hadn't heard of smalltalk before and now I want to go back
why?
*Everything in Java
fixed it
Unrelated to the meme, but where is that left video from?
Imagine a system of smart cars connected on a WAN operating in synch like that. Drive manual at your own risk
Scene on the right is from Argentina.
Honestly, I'm glad smalltalk has passed away. It was a beautiful concept that never really materialized as envisioned by its creators.
Amazing!
At least lisp didn’t die, right?…. Right?!?
i mean only partially.. however it is receivable
And... And I oop-
Обьектно-ориентированное программирование (ob'jektno-orijentirovannoje programmirovanije)
Now I have anxiety
If you’re living in Germany, near Freiburg im Breisgau, Frankfurt am Main or Berlin, we’re a company which develops an HR software in Smalltalk. And we are looking for developers: https://jobs.hrworks.de/de?type=fullTime&discipline=itAndSoftwareDevelopment
Experience in Smalltalk is optional
Unfortunately, it's syntax makes me want to blow my brains out. C derived syntax or nothing. Having a semi-standardized syntax across languages makes learning faster.
cringe
Python's OOP is pretty whack too.
Did you know that in french we say Programmation Orientée Objet, yes we say POO