Yegor Bugayenko

yegor256.com · Personal blog · on HN since 2014

Yegor Bugayenko, a software entrepreneur, writes opinionated essays on object-oriented programming, project management and programmer pay.

What HN saysCommenters discuss his OOP advice, with one saying his refactor example isn't real OO, and others link his motivation essay and testimonials page.
116HN people shared it
38linked it in comments
390stories submitted
2.9Kstory points
2 years agolast shared
2014people per year2026

Most-shared posts

  1. 1
    OOP Alternative to Utility Classes
    7 people · 10 points · first shared 2014 · 1 comments on HN
  2. 2
    Why getter and setter methods are evil
    5 people · 17 points · first shared 2014 · 7 comments on HN
  3. 3
    ORM is an offensive anti-pattern
    5 people · 15 points · first shared 2014 · 1 comments on HN
  4. 4
    What's Wrong with Object-Oriented Programming?
    4 people · 19 points · first shared 2016 · 2 comments on HN
  5. 5
    To Be Nice or Not to Be Nice? (2017)
    4 people · 17 points · first shared 2017 · discussion on HN
  6. 6
    Daily Stand-Up Injection of Guilt
    4 people · 8 points · first shared 2019 · 1 comments on HN
  7. 7
    How to Pay Programmers Less (2016)
    3 people · 253 points · first shared 2016 · 56 comments on HN
  8. 8
    Continuous Integration is Dead
    3 people · 19 points · first shared 2014 · 6 comments on HN
  9. 9
    How Much Do You Cost?
    3 people · 17 points · first shared 2014 · 2 comments on HN
  10. 10
    Four NOs of a Serious Code Reviewer
    3 people · 5 points · first shared 2015 · 1 comments on HN
  11. 11
    Are You a Hacker or a Designer?
    3 people · 2 points · first shared 2014 · 1 comments on HN
  12. 12
  13. 13
    Don't Create Objects That End with -ER
    3 people · 1 points · first shared 2015 · discussion on HN
  14. 14
    Testimonials
    3 people · first shared 2017
  15. 15
    Homepage
    3 people · first shared 2015

What HN people wrote when they linked it

vips7L · 2024-08-20
That OO refactor isn’t actual OO. The tell tale sign is that it is named by what it does rather than what it is (verb vs noun) and the -or ending in the name [0]. It’s just a function masquerading as a class. The better refactor to introduce OO concepts would have been to introduce an isAdult function on the user class and maybe a formatted function. This + the functional refactor probably would have made for the best code. return users.filter(u => u.isAdult()) .map(u => format(u)); // maybe u.formatted() [0] https://www.yegor256.com/2015/03/09/objects-end-with-er.html
amihaiemil · 2020-01-17
I think you're talking about https://www.yegor256.com/ It was fun work back in the day of Teamed.io. But nowadays, with Zerocracy, it's turned a bit too strange even for my taste, after having worked about 2 years with Teamed.
chupa-chups · 2019-12-17
Discuss it with https://www.yegor256.com and publish the result, I guess it would be an interesting discussion :)
kunkelast · 2019-09-09
I would recommend this blog post about this very subject: https://www.yegor256.com/2017/09/19/what-motivates-me.html (to show the other side of the story, from the PoV of a programmer)
marcosvpj · 2017-04-18
The testimonials are the best: http://www.yegor256.com/testimonials.html
elviejo · 2016-05-01
yegor from yegor256.com Did an award in 2015[0] for good quality software projects. I think his evaluation points are sensible: "Each project must be: * Open source (in GitHub). * At least 5,000 lines of code. * At least one year old. * Object-oriented (that's the only thing I understand). The best projects will feature (more about it): * Strict and visible principles of design. * Continuous delivery. * Traceability of changes. * Self-documented source code. * Strict rules of code formatting. What doesn't matter: * Popularity. * Programming language. * Buzz and trends. " In the end there 158 submissions, 12 finalist and 1 winner. Check them out. http://www.yegor256.com/2015/04/16/award.html
baryphonic · 2021-09-06
"OOP" is itself such an overloaded term that a Smalltalk coder and a C++ coder and a Python coder can each say she works with objects, and yet have entirely different design and organization. By formalizing his definition of OO, Yegor (who is a firebrand for sure[0], but says enough interesting things that I've read a couple of his books and several blog posts) is dispensing with "no true Scotsman" fallacies: if he claims language <X> is not OO per his formal definition, we can take it or leave it. For what it's worth, Alan Kay himself has said things like, "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." He has declined to formally define what he means, but has said, "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things."[1] Even without a formal definition, most languages purporting to be OO clearly fail a common sense interpretation of his criteria. Kay himself mentions Smalltalk and Lisp being the only systems he's aware of that meet his criteria; I tend to think Erlang is spiritually close, though would have to defer to Alan (I find it interesting, too, that the first Erlang VM was written in Prolog). [0]https://www.yegor256.com/2017/07/18/sexual-harassment.html [1]http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
lkrubner · 2019-04-20
Other people have already mentioned Joe Armstrong's 2003 thesis, and I recommend that too. I very much appreciate Armstrong's sometimes contrarian criticism of the tech industry, and I hope I managed to match the tenor of his frustration when I wrote "Joe Armstrong figured out the right way to do everything, and nobody cared" http://www.smashcompany.com/technology/joe-armstrong-figured-out-the-r… About this: "I mentioned how nervous I was; me, sitting on a panel with such other esteemed and brilliant folks" I feel the same when I get put into lists with folks like Joe Armstrong. I've made no significant contributions to the tech industry, whereas other folks have made historic contributions. I'm flattered by stuff like this: https://www.yegor256.com/2016/08/15/what-is-wrong-object-oriented-prog… But it is crazy. I don't belong on a page that includes Joe Armstrong, Rich Hickey and Alan Kay.
sparkie · 2015-06-07
The problem isn't that those principles are bad - they're useful - but the languages we're attempting to use them from are not sufficiently expressive enough to follow them all in a practical way. "Design patterns" and DRY don't mix very well - because the act of implementing a design pattern is largely repetitious. We create XFactory, YFactory, ZFactory for example, with largely the same structure but slightly different logic - then someone takes DRY to the extreme and tries to abstract it away into a FactoryFactory, using reflection or some other tool to get around the host language's lack of expressivity. This is where the mess begins, because it becomes so cryptic to figure out how to use the FactoryFactory to create your own Factory to create some other types you need. It may be trivial to people who've been hacking with the same languages and frameworks for years, but the principle of least surprise is abandonded for new users attempting to use a framework for the first time. Functional programming suffers from the same overuse of idioms which are unwelcoming to novices, and often throws away some useful ones in favor of ease of use. FP doesn't necessarily dismiss OOP, and it's often used in combination with functions to write practical programs. Functional programmers don't see OOP as a problem - it's a very practical tool. The problem is that it's the wrong tool for many problems - particularly if you're just computing functions[1]. That a lot of developers are…
jqpabc123 · 2025-03-23
I've always found people who have such a strong agression toward OO are people who simply cannot grasp it. Here is a list of these people who just don't "get it" and their quotes. https://www.yegor256.com/2016/08/15/what-is-wrong-object-oriented-prog… A particularly pertinent one is from the co-founder of Ycombinator: “Object-oriented programming offers a sustainable way to write spaghetti code.”
hankchinaski · 2023-08-30
ivanche · 2023-07-13
A lot of people, probably. But definitely not the entire community [0]. [0] https://www.yegor256.com/2015/07/28/checked-vs-unchecked-exceptions.ht…
discreteevent · 2021-09-06
This example helped me: [r] > circle mul 2 3.14 r > perimeter mul 3.14 r r > area The first line creates an “abstract” object named circle. It is abstract, because one of its attributes r is “free”. It’s not specified in this object and that’s why the object can’t be used as is, it has to be copied with r specified. For example, this is the circle c with the radius 30: circle 30 > c ( Which would be like c=new circle(30) ) https://www.yegor256.com/2020/11/24/objects-without-methods.html
blevo · 2019-10-04
you make a good point. I think the 'vibe' is part of the problem. It's somewhat dishonest. Why do all companies need to be 'family?' Can't we just respect each other as we get the job done and go home to our actual families? The 'company culture' is a ruse to get employees to have loyalty where the company does not reciprocate. reminds me a bit of the blog post: <https://www.yegor256.com/2015/10/06/how-to-be-good-office-slave.html&g…
saagarjha · 2019-06-24
I was reading through one of the linked articles of why the author doesn't like using null or static objects: https://www.yegor256.com/2014/05/13/why-null-is-bad.html https://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes… Apparently he replaces null with null objects or throwing exceptions, and creates objects for every static method. Go figure. Actually, there are a few gems: > The Map interface (no offense to its authors) has a design flaw. > It is a good practice to make your code as fragile as possible, letting it break when necessary. > The method is basically asking the object about its… race. Black objects go right while white objects go left. That’s what this instanceof is doing, and that’s what discrimination is all about.
Jupe · 2019-05-20
Yes, AOP == Aspect Oriented Programming Logging systems can usually be enabled by package/namespace, and frequently to the class level. I've used AOP to log out the trace of the code (not just the call stack), but can turn it on or off as needed. Authentication acting strange? Enable those logging aspects and browse the log to see where things are behaving strangely, and it may not be in the stack trace of the exception that gets thrown somewhere else. Logging methods and some arguments is hugely helpful; it's like automatic debugging. A quick googling found: https://www.yegor256.com/2014/06/01/aop-aspectj-java-method-logging.ht… and https://nearsoft.com/blog/aspect-oriented-programming-aop-in-net-core-…
tacon · 2019-04-27
While I have no direct experience in their system, Zerocracy[0] appears to exactly match your requirements, modulo your salary or hourly rate. Yegor Bugayenko, aka yegor256[1] online, is very prolific in writing and talking about Zerocracy, among many other topics, e.g.[2] Zerocracy imposes penalties for talking to other developers, instead of communicating solely via tickets and other shared documents, which must limit the politics you detest. [0]https://www.zerocracy.com/toc.html [1]https://www.yegor256.com/about-me.html [2]https://www.yegor256.com/2014/04/20/how-hourly-rate-is-calculated.html While people may dismiss such a system for now, Yegor's prediction is that essentially all software will be delivered this way in ten or twenty years.
harshgupta · 2019-02-06
I found one measure: Hits of Code It measures the "the amount of times programmers touch the lines". Source : https://www.yegor256.com/2014/11/14/hits-of-code.html
nwrk · 2018-12-28
The Testimonials section from author's blog is very "open and honest". Have not seen anywhere else so far. https://www.yegor256.com/testimonials.html
rozhok · 2017-12-10
Nope, the author described why he won't made e-books here: http://www.yegor256.com/2016/11/09/why-no-ebooks.html
MarkusWinand · 2017-11-03
Related posts from the past: What ORMs have taught me: just learn SQL http://woz.posthaven.com/what-orms-have-taught-me-just-learn-sql ORM Is an Offensive Anti-Pattern http://www.yegor256.com/2014/12/01/orm-offensive-anti-pattern.html
kowdermeister · 2017-04-18
What a condescending, shallow view. > The point being these principles are nothing but an explanation of "cohesion and coupling" for dummies in a very primitive, ambiguous, and marketable way. Dummies will buy books, seminars, and trainings, but won't really be able to understand the logic behind them And then he goes and does the same thing: http://www.yegor256.com/about-me.html
depr · 2016-08-08
>The daily standup deserves a blog post of its own I found this to be a really good article about standups: http://www.yegor256.com/2015/01/08/morning-standup-meetings.html
NumberCruncher · 2016-07-23
By "slave" I mean somebody who is not free in the sense of: >> A free man sells the results of his work. A free man cleans someone's house and bills him when the work is done. A free man drives passengers from the airport to their home and bills them when they get there. A free man creates a software module and bills the client when it's ready. A free man translates a document and bills per page. A free man cooks a cake and bills for it. A free man sells results, not time. Also, a free man takes care of the food and security on his or her own. Is it more risky? Yes. Is it more stressful? Yes. But that's what freedom is about. Source: http://www.yegor256.com/2015/07/21/hourly-pay-modern-slavery.html
jstimpfle · 2016-06-24
> Many OOP programmers today spend the bulk of their time thinking about how their objects should work rather than how they should communicate. Which is the "proof" that OOP was oversold. This is called "structured programming". It's not evil :-) http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.…
brudgers · 2016-06-06
Clickable: http://www.yegor256.com/2016/04/05/printers-instead-of-getters.html I think it's an interesting article. It describes a kludge for handling data that could probably be handled more elegantly. So I guess I could be accused of thinking that Java is evil, but I don't. I just think that some tools work better for some jobs and sometimes the tools are ruste and old and sometimes the tools are shiny new. Good luck.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close