As I type this, every top-level comment here is a criticism or a nitpick. A cool new feature is being added to Ruby. People have done difficult and meaningful work that benefits others. And this is the response here.
I'm psyched for this feature. As someone who has worked primarily with Ruby and Elixir, I really appreciate the design and safety affordances of immutable data. I'm glad there's a bit more immutability in Ruby and that, in general, the language keeps progressing. Thank you Ruby language devs.
Yeah, I'm happy to see this. Every Ruby shop I've worked for has some kind of hand-rolled immutable struct, possibly in addition to various implementations provided by libraries. The backwards compatibility reasoning for not adding an immutable flag to Struct (my first instinct) makes sense. Struct has always been kind of wonky anyway. Getting both positional and kwargs for free is great. I also appreciate that they kept the implementation minimal for now. The pull request shows a very elegant way of implementing default arguments using only language features, which is a good sign:
Measure = Data.define(:amount, :unit) do
def initialize(amount:, unit: '-none-') = super
end
The libraries that provide immutability often provide stronger enforcement than this new Data class. I like the idea of something like this as part of Ruby core, but this was a chance to do it right and I don't think they took it far enough.
You're thinking deep immutability? I'm not sure that's ever going to make sense to bundle with the language. Too many caveats.
I'd rather see incremental additions to this minimal Data API than trying to do too much at once. Lots of love for the Ruby dev team but they don't always have the clearest idea of what problems their users are trying to solve.
Yes, that's exactly what I was thinking. The problem is that without deep immutability this is still open to abuse/miss-use. When I'm creating an immutable struct I'm trying to prevent future developers from accidental mistakes.
Yeah, I do not even get why people hate Ruby so much. They do rarely even attack the actual weaknesses of Ruby but instead goes on about Rails specific stuff, the slow performance (a Ruby < 1.9 issue, these days it is as fast as Python if not faster) or just imagined stuff which has never been true.
Ruby is a flawed language (I especially dislike the lack of real namespaces) but the hate it gets is often not based in reality.
I associate Ruby with a particular era of hipster web and app development, ~2007-2010. I don't know why but it's not quite attractive.
That said the serious reason I don't try it out is because I fear it would be like Python, and I don't need two Pythons in my life. If Ruby had been dominant I'd likely be using Ruby and thinking the same of Python.
a particular era of hipster web and app
development, ~2007-2010. I don't know why
but it's not quite attractive.
That was a really fun era.
~1997-2007 was fun but it was a mess. It seemed like every project was its own bespoke "framework" and everything was a Java or PHP spaghetti monstrosity.
2007-2014 was the era when "majestic monolith" MVC frameworks with a strong emphasis on automated tests really began to coalesce. Rails led the way here, I think. It was a brief island of sanity if you ask me. MVC may not be perfect but it's a fine choice most of the time for anything CRUD.
I suppose there was kind of a "hipster" aesthetic around Ruby/Rails (Ruby devs kind of prided themselves on being quirky or whatever, as opposed to staid corporate Java drones, I guess?) but I did not find it to really be a factor.
2015-present has been a nightmare. Nearly every web application is now two apps: front and back-end. For apps with highly interactive UIs this is an obvious win but for the vast majority of web applications it has been a disaster. User-facing performance of the modern web is awful and I have never felt less productive as a developer. Every developer thinks they need to do things "like Amazon" or "like Facebook" and just.... no. The Javascript community has absolutely lost all connection with sanity and the era of the full-stack developer is over.
During that timeframe, I dismissed Ruby/Rails for similar reasons.
First of all, regardless of what everyone says regarding how "inovative" Rails was, Tcl and Python did it first, with AOLServer and Zope.
During the .com wave, I was part of a startup with a product for CMS development, that was basically inspired from AOLServer, although we did our own thing.
It supported Windows 2000/NT, Aix, HP-UX, Solaris, Linux (only for dev purposes), SQL Server (Sybase and Microsft variants), Informix, Oracle, Access (only as demo concept), and we were in the process of adding DB 2 support as well.
We went down in the .com crash, and Lisbon isn't SV, so hardly anyone heard of us, but it doesn't change the fact we were already better than Rails v1.0 in 1999.
Second, I know Python since version 1.6, so Ruby hardly brings anything other to the party than a Smalltalk inspired workflow, without the IDE experience.
Yeah it is definitely from that era 2007~ ruby though is like the friendly python. Dependency’s usually just work and it doesn’t get mad at your style - it’s very accepting and importantly IMO the stack traces are much easier to use to identify the root cause of a bug compared to python …
I do think the same thing about python. The occupy a ver similar space and I already know ruby, so I have very limited incentive to start doing stuff in python. But that doesn’t mean I dislike it, or believe it’s a bad language.
Having worked in PHP and Ruby, the parallels to the hate is obvious to me. Enough people have done enough meaningful work in both languages that any possible downside or nitpick has been discovered and voiced.
It's like when a game/band/tv show becomes popular, the more popular the more toxic the community becomes, and the louder the hate seems to be. I don't want to pull names out of hats, but pick any of the most used languages and you'll be able to find people banging on about objectively bad parts of the language, and yet they're still the most popular languages.
Admittedly, I don't really prefer Ruby over other languages, but just like PHP I wish people would stop being so dramatic over it. It's plenty good enough to get shit done, if someone likes working with it power to them.
Let’s make a very simple naive test using Google search, "I love Ruby" matches 98,400 results, while "I hate Ruby" returns 7,740 results (from my current terminal).
There is even a book named "I love Ruby" it seems.[1] Compare that to the existence of "The UNIX-HATERS Handbook".[2]
Can you be more precise about what features you miss in Ruby modules compared to "real namespaces"?
I don't know, to me Ruby just feels like a slightly more user friendly PHP.
Vaguely similar in performance to Python and PHP (not an order of magnitude off), slower than Java and .NET (for typical web based workloads with mainstream frameworks, .e.g Rails vs Django vs Laravel vs Spring Boot vs ASP.NET), still good enough for most web projects out there.
Even Rails just seems like your average flagship framework, if not an entire platform - certainly on the heavy side, with its own quirks and opinions, but definitely a safe option for getting things done.
It's jarring to see Ruby's popularity be on the decline, though you could also say the same about PHP in many cases.
There are namespaces, there just aren't standards like Python.
And there aren't many good Ruby developers. There are too many noobs who write Ruby code that make my eyes bleed. I know, because I have to see this at work and they're supposedly "rockstar" developers. Ha! I swear most so-called "engineers": 0. don't grok software engineering, 1. weren't formally-trained in software engineering AND computer science, and 2. happily push shitty code that there will be no incentive to refactor through automated means.
If you want to enforce coding standards in Ruby, you better learn LISP / S-expressions, because that's what Rubocop uses.
Ruby, having at least million users around the world, is in immortal category.
What fascinated me in the original post is "...data model on the principles of the Value Object, introduced by Martin Fowler."
I mentioned Haskell because there is a long, long history of the use of immutable objects in computing science, dating back to Church and Turing's communication. The immutability is what differentiates lambda calculus and Turing machine.
That is why I remembered Haskell and the video above.
Yet, it is "introduced by Martin Fowler," for some reasons.
Hacking on Java frameworks is mostly a pain. Both from IDE tooling (too much RAM, configuration fighting,...) to the documentation. Basically it made simple problems harder for just "JAVA" reason.
For comparison, i've spent many months to hack on Java framework in a company before to deliver a hackable feature.
By the same time, i also released 3 production applications from scratch with Rails.
The issue is not Java is impossible to have such productivity, it's the mindset, the culture issues from Enterprisey people.
Again, that culture was already there decades before Java came to be, COM, SOM, CORBA, Taligent, ER model, Booch method, Rational Unified Process, Structured systems analysis and design method. Yes, I am an old dog at this game.
Had Ruby and Rails been embraced at the same scale, you can bet there would exist a comparable flavour of Ruby EE.
As i said, it's about the mindset that matters (rather than throwing me a bunch of design patterns).
If you're at work and want to get shit done fast for the salary reason: There's no reason NOT to use Rails.
If you want to go enterprise, use something lightweight and modular, composable instead. Throwing a bunch of inheritable BeanClass serves no purpose on the job.
No, unix philosophy is what make things work together as i see. A big mess of inheritance tree doesn't solve large scale problem. That's the misunderstanding of "large scale engineering" that i've seen from most companies.
You don't solve problem by solving it. You solve it by decomposing it, and compose again.
As someone who has done a lot of "enterprise" Java, I feel your pain.
> The issue is not Java is impossible to have such productivity, it's the mindset, the culture issues from Enterprisey people.
I do think that a lot of it will depend on what sorts of projects people work with, as well as how old the frameworks are. Some design choices made in the development of those will certainly show their age. Consider this article, for some nice arguments in that regard: https://earthly.dev/blog/brown-green-language/ (I'd say this also applies to frameworks, not just languages themselves)
I'd vaguely rank the frameworks and libraries as follows:
- Java/Jakarta EE: pretty dated at this point, you'll mostly see it in legacy projects, generally not a "modern" feeling experience, if you need to configure a separate web server instead of an executable .jar file, you're going to have a bad time
- Spring: if you see plain old spring, you'll have a bad time, it's the definition of "enterprise" code and will waste lots of your time
- Spring Boot: can be good if you start a new project with a recent version, still somewhat enterprise but lots of integrations are just plug & play
- Dropwizard: takes a bunch of idiomatic Java packages and glues them together, comparatively lightweight, you can even get by without dependency injection, most of the cruft that you need to deal with ends up being because of the language itself instead of a framework with bunches of weird dynamic class loading and reflection
- Quarkus/Vert.X/...: new frameworks and libraries that try to build something more modern and performant, generally you can look in the direction of these for many of the modern projects that you want to do, though their lack of maturity might show sometimes (e.g. if you try doing something unsupported, or just run into their learning curve, e.g. how the Vert.X event loop works)
I guess I can sum up my thoughts with:
Is Java as a language inherently a bit more annoying to work with than some of the other web dev languages? Definitely.
Have its frameworks and the language itself gotten better in the past years, especially after newer versions than Java 8 came out? Yes.
Are many out there going to pick it for its decent static type system, good runtime performance (JVM is great) or bunches of stable packages? Sure.
Are some going to be pigeonholed into working with horrible legacy projects that are absolutely demotivating and show off the worst of the language? Sadly, also yes.
Are others going to look in the direction of something like Kotlin, which attempts to solve some of its nuisances, or maybe other languages altogether? Also yes.
But at the end of the day, a lot of it comes down to familiarity: if you feel like you'll be more productive in .NET, Node, Ruby, Python or another language, and there aren't external external factors that force your hand in a particular direction, pick whatever fits your needs the best.
Java could be a much nicer language with much less allowance for architectural space programs.
Type classes were introduced into Haskell as early as 1988-1989. At 1991 you could have programming in language with parametric polymorphism, type inference and principled (albeit called ad-hoc) overloading, there was at least one.
The ST monad, one of the first effect-containing abstractions, was introduced as early as 1992 - I think it was close to introduction of IO monad.
So, at the time Java was introduced in 1995, it could have all these nice properties which greatly simplify programming and make architectures easier to understand and more future-proof (Haskell's solution to an Expression Problem [1] is one of the simplest, it uses what was available in 1995, more or less).
Programming languages exist primarily to provide pretty paths for certain kinds of development, which is to say by the structure of the language they make certain kinds of solutions more natural to the developer, while making others more painful. Java's pretty path is large, object oriented towers of classes, with state scattered rough-shod throughout the application.
To be fair, there has been some effort to ease the insanity. Record classes, lambdas, and the like lessen the pain of trying to write Java against its original orthodoxy. But before that, a simple "sort list of lists by first value" method involved making a class available in the current scope that implemented Comparator<List<X>> which contains a method "compare".
As opposed to "sortby (comparing fst) list_o_lists"
Languages are orthogonal to the desires of technical architects, solution architects and business analysts, that control the helm of enterprise shops.
There was no Java when GoF book came out, CORBA and DCOM were used all over the place, SOAP was initially driven by Microsoft and its COM/.NET group (see Don Box), when enterprise architects get FP into the enterprise, scalaz happens.
I don't hate Ruby, but at my previous workplaces the Ruby evangelists would absolutely lose their minds if you criticized anything about it. They'd even jump to ad hominem and personal attacks. "Man it seems Ruby has a lot of pitfalls for engineers that aren't intimately familiar with each and every one of its ins and outs!" ... would get a response, "it's because you're just fucking stupid and a horrible engineer."
> As I type this, every top-level comment here is a criticism or a nitpick.
This is maybe going to sound snarky, but honestly I really am being serious: at this point, what else do you expect from this website? HN has a well-earned reputation of being a bunch of kneejerk-critics and naysayers.
Personally, I do expect this behavior, but I also call it out, because I don't accept this behavior.
For better or worse HN is my community. Its given me so much over the years, even as it's infuriated me much of the time. As I recognize patterns of dysfunction I highlight them, so that the community can understand & overcome them.
And I do think I see incremental progress. Not to say I caused that progress, I have no idea what if any role I played from my modest soap box (I suspect very little), but I think there's every reason to hope for the better.
Good point. I can rattle off criticisms of an idea instantly if it happens to touch my little corner of the industry I've been working in for over eight years. It's rare at this point that I ever encounter a novel idea that I haven't already given thought to.
I hear you and I agree. The HN vibe is nitpicky, for sure. I was a little surprised the comments here were 100% negative (or not positive, to be fair). I usually wouldn't bother reading all the comments, but I care about Ruby, so I was a little more irked by the negativity than usual. :)
The core of that reputation is because people on HN want the best and many of them know that expecting the best can be an effective way of getting it.
Yes, there are critics who are not ‘in the arena’, but for the rest I see a lot of care (AKA taste as defined in Ira Glass’ words on “The Gap”) put in to the comments.
I'm sure there is a lot of care, but I also see a lot of people abusing the concept of care in order to troll.
I have had/seen this conversation over and over again on HN:
Commenter: This topic sucks, I wish people would stop posting it to HN.
Me: I understand this topic isn't interesting to you. Why don't you ignore it and click on something else?
Commenter: I care so deeply for this community, I hate to see this topic reduce it's SNR.
Does the commenter care about HN? Presumably. Does that make their complaint legitimate? No. They're bothered by how a subset of people on the site want to discuss some topic, and they're manufacturing a reason that sounds better than, "I don't want to see it."
But no one is entitled to have articles that are to their taste posted to HN. Sometimes this is expressed more like, "this isn't appropriate for the HN audience." But the audience of an HN post isn't what anyone imagines HN looks like, it's the subset of HN members who find that post in particular to be interesting and worthy of discussion.
Have you ever been in a room with someone trying to change the subject you are deep
in thought about? Two things happen: A) you don't notice, and B) they might start trying to find new tactics if they are still willing to engage at all.
I speak from a good deal of experience with this. Active listening was a good crutch for me in a lot of ways, but it works very poorly with people more and more often these days (especially online) and by the time you reach texting and forum posting, you basically just have to read walls of text before you can respond.
I hate to say it but sometimes I just need to interrupt you! Same goes the other way. Please, PLEASE, chime in with some reverb or retaliation. (Hell, maybe one day I'll earn a slap on the back ;)
Then you have the next problem. It spirals... like a positive feedback loop. You find yourself in a thrilling conversation/argument with someone only to have completely alienated the rest of the room. Now what? Is anyone else even paying attention? Would they have liked to, but you both just flew past them and dove straight into your threads?
I think this stuff is insanely hard in the real world sometimes, and only harder online. I like HN partially just because I feel like a lot of people here kinda get that.
P.S. I'm also the kind of person who types really long emails, then spends a while trying to edit them down. Sometimes I just don't have the energy. Sorry for the hypocrisy.
Are you telling me I long-windedly went on a tangent?
I'm open to this criticism I'm just not entirely sure I'm correctly interpreting you. (It certainly wouldn't be the first time I was told I was unclear or long-winded.)
I don't mean to speak out of turn, but just to offer you information, your experience really reminds me of how friends have described ADHD to me. I'm just putting that out there in case it's useful, make as much or as little of it as you care to.
> your experience really reminds me of how friends have described ADHD to me
I can't speak to how often this happens for people without ADHD, but it is a very common trait for those with ADHD (and describes me rather well on most days).
For what it's worth, my interpretation was that they were criticizing you so much as elaborating/describing/explaining a different perspective on the same phenomenon you described (or at least, a similar phenomenon)... and then that turned into its own tangent. of a tangent of a tangent.
So, bringing these tangents all the way back to the OP: ADHD is hard, communication is hard--especially with people. Communication patterns are context sensitive. Toxic communities are easy, toxic communication patterns are easy, and establishing constructive communication patterns for a broad community of people is hard. Ruby's community tends to be mostly nice, although it's a lot less popular and energetic than it was 12 years ago. Ruby itself is marvelous--haters be damned--even when there's a little truth in the criticism. I think that its positive impact on the industry as a whole is hard to measure (almost every commonly used web framework before Rails, Rails, almost every commonly used web framework before Rails; and the languages like Rust and Elixir are hugely influenced by the idioms, ergonomics, and aesthetics of Ruby, IMO). And adding Data in ruby 3.2 is a great little building block and will probably replace 90% of my Struct usage. And I've been wondering if I should backport it, wait for all of my projects to hit 3.2+--I'm hoping there will be a good implementation in the "backports" gem soon--or just use one of the gems that will create an adapter layer over it (I'm sure one or more of the dry-* gems will be built on it, and I'm using them in a few places anyway).
So, I was going to type a six word reply ("yeah, this is a common ADHD trait.") and this accidentally got blurted out. So yeah. ADHD. ;)
I never said it was perfect, but care as it’s expressed in the world never is. There is always a vocal majority who cut down and even a vocal minority who actively work to ruin what is good, but care is like the sun: no matter what it’s always out there helping things grow.
I'm about 15ish years in and I have a jaundiced view of the jaundiced view. I've learned a lot of "the right way" things from HN that are genuinely better. True shop knowledge from people "in the arena" with expertise building and running the kind of systems I build and run. There are a lot of pricks though, to be sure.
I can see why this was added, but I don't see myself using it anytime soon.
If I just need a bundle of attributes and don't care about immutability then I will continue to use Struct.
If I do need immutability I will continue to use dry-struct (https://dry-rb.org/gems/dry-struct/1.0/) which has much deeper guarantees of immutability and type enforcement.
People who like commenting on this website do so because they like to debate. If you agree with something you can upvote and move along. Like this comment, for instance, is an attempt to refine an idea posited by you regarding the mentality of HN commenters. For some reason, I enjoy that.
Regarding this feature, it's cool but I'm surprised they introduced a new concept just to add immutable structs.
I agree. I come here for the comments. Most of the time I barely care about TFA itself. I just want to learn something new by reading what smart people are saying. Formed and refined a lot of opinions during my time here.
My only criticism is that Ruby doesn't need more features.
ES6 suffers from this disease to a fairly extreme degree, and you can see this schism in the JS community back to the semicolon war in the early 2000s. Kotlin as well, unfortunately, as it's otherwise generally a really nice language.
There are so many language structures and shortcuts. And unless you spend a large amount of time becoming truly fluent in all of them, you're never going to be able to read all the "clever" code that uses them.
These structures are not common across languages, either, so if you jump between codebases in multiple languages... good luck.
The one feature Ruby absolutely needs is proper modules and libraries, like Python and Javascript. The current system modifies global name space and interpreter state, it's essentially #include from the C preprocessor.
Toxic positivity is what's causing the slow decline in HN. Inventing potential new features is easy; quickly culling bad ideas is the most vital part of real progress.
Design and safety in Ruby? Common. While my experience is mostly ROR I believe it reflects how Ruby is supposed to be developed. It's an insane convoluted system built to resemble the writing style of VB. So many aliases. So many different ways of doing things that are subtly different.
The amount of time I have lost because of some piece of code (a block) that gets executed somewhere else and I have no clue how that works is insane. And every time I need to go and dig in the implementation details to identify the params passed in because there is no enforcement at write time. I want my types!!! Why would you voluntarily write code where you throw out the types. The thing that is most useful...
See that's an important thing people don't realize about a new civil war.
In the civil war you had various clearly defined government apparatuses that chose to withdraw themselves from the union to form a new nation state. This time however it isn't a certain group of geographic area it is divided along urban vs rural lines. If a "civil war" were to come again it is much more likely that we'll see something more along the line of the "The Troubles" that happened in Northern Ireland than anything approximating what happened in the 1860s.
Were those civil wars? Or did they fall short? There's no simple, clear line. What we can almost certainly expect is terrorism, civil unrest, and moves toward legal autonomy short of actual secession. It will probably be a decade or so before we can tell whether those things (plus the reactions to them) are leading to an actual civil war.
I think you're right, and I'd go one step further to suggest that it's already happening. The path to radicalization for young American males is well known and straightforward and already delivers stochastic terrorism (not isolated events) on behalf of specific interests.
I hate to "be that guy" but this ends up being a both sides issue. There was a notice sent around to some churches after the RvW appeal to be vigilant since they had received some info on people possibly acting violently towards churches since they blamed them for it. (Edit to add: Please see https://janesrevenge.noblogs.org/2022/06/26/janes-revenge-ni... -- these are pointedly anti-fascists, the opposite of the right. So this is a both sides issue.)
Americans just don't seem to want to get along and understand on any side of the aisle. I can't talk politics to my family since they're all charged on their views and if I differ we just argue.
Ah, yes, both sides have tried resorting to violence.
One side has tried resorting to violence in order to prevent the other side from voting, enshrine one religion as the law of the land, guarantee one "race" its supremacy, and literally overthrow the legitimately elected government.
The other side has tried resorting to violence when the first side asserted control over half of their bodies, murdered them in the streets while under the supposed motto of "serve and protect", and tried to take away their right to vote and literally overthrow the elected government.
Yes, I can see that "both sides" are clearly equally bad. After all, if someone stabs you in the gut, and you punch him in the face, you're just as bad as he is, right?
So on the one hand, you have vandalism and arson (https://en.wikipedia.org/wiki/Jane%27s_Revenge), and on the other multiple mass shootings with deaths (just one of the many, from this year which is from a right winger: https://en.wikipedia.org/wiki/2022_Buffalo_shooting). I do not excuse this "Jane's Revenge" group, but that is some really weak both sides stuff. Especially because a lot of right wing church groups act violently towards abortion clinics! Which is a real glass houses moment.
Yeah no. The political and especially terrorist acts are not two side issues, they in fact flow from right much more. It is just that right always gets benefit of doubt.
But also, overturn of RoW is long term work of evangelicals.
This is a VERY bold statement to make without citing any sources.
If for instance you were to look across recent world history you will find many communist ( left ) groups/factions are exceedingly violent toward civilians and account for millions of civilian deaths.[0]
In this country very recently, "...New York City Mayor Bill de Blasio... blamed anarchists and "far-left extremist" groups, including antifa, for inciting and organizing violent riots"[1]
I am not say that violence is not perpetrated by those on the right but your statement is a gross misrepresentation.
Gotta love how you responded to contemporary risk of violence in America with link to ... great purge in Russia in 1938. And a link that does not shows left wing as more violent then right wing.
Also, I said majority and I stand by that. The terrorism in USA is more likely to go from right wing then from anything else (including muslims). It is right wing media and politicians who promote violence. It is right who is actively talking about violent usurpation of power and builds militias. It is right wing who engineered 6.1. and repeatedly tried to blame left and "antifa" for it. It is right wing who is trying to get control over education by harassing and threatening (actual physical threats) opposition.
There is also no symmetry in who gets promoted and wins elections on either side. The more aggressive and radical side on right wing is having control over the party. As much as they try to make it look like there is symmetry with Democratic leadership, there is none. If anything, democratic leadership is incapable to stand up to them and constantly looking for non-existent bipartisanship. America does not have actual communist party or activism going on to speak of. Communists are not getting votes. It does have fascist politicians getting more and more votes within GOP. And it does have right wing trying to frame any social system they dont like or public education as "communist" to make it look like there is symmetry.
The point is not that it is coming from one side or the other but rather to blame one side is to loose site of what is happening. My post was simply to show there is violence all along the spectrum. The post following my post regarding Anti-Communist mass executions is a good example of bringing balance to the conversation with evidence/sources.
If you are to "stand by" your statement then provide some evidence.
>Communists are not getting votes
I feel the Communist Party USA would like to differ. [0]
Furthermore, marxist/communist voters since "1988 to present: Voters urged to support the Democratic Party"[1]
Therefore, your statement about fascist ( not sure your intended meaning ) can be said about marxists/communists. Event the communist party wants you to vote for Democrats.
Except that in this case the "violence" is actually defence. It's the Church that's the source of birther's fringe ideas, which led to laws that violate fundamental human rights.
Wow, memory lane here. My first programming job was working on Symbian apps. I think I had a 1MB heap and something like an 8KB stack to work with. Good times!
I'm an old timer. I paid a small, one-time fee over ten years ago and have used Pinboard (not without some frustration) ever since. I paid the subscription fee when I received the email a couple days ago. It only seems fair.
Glad that this topic is important to you, too! I should be able to follow up on your comment soon. Because the article is long, I want to make sure I have time to give it a thorough read.
I spent a lot of time on it and about halfway through the process decided it needed to be split into two parts. The second part is still in draft status.
Even though the article is long, it's very specific. I left some things out for sure. A book on naming makes sense, if for no other reason than we need to be having these conversations.
Nice! You'd asked for my thoughts on this article [0]. Choosing the correction level of abstraction is an important part of naming, so I appreciate that the article focuses on it. (In case anyone is curious, this topic is discussed in the book, too.)
Walking through the Abstraction Ladder with an example is a useful approach here. I'm curious if the same takeaways could be achieved in fewer words (it looks like the article is currently ~3,000 words). I've personally found the Pyramid Principle [1] to be a helpful starting point for determining which points I'd like to make within a piece of writing and then structuring the content around those, which may be applicable here, too.
Thanks for reading and providing feedback. Yes, it definitely could've been shorter, but everything in it is intentional. Many longer pieces suffer from lack of editing, which was definitely not the case here. Looking forward to your book!
As a motorcyclist, this has become my primary concern on the roads in the past few years. I constantly and actively check for drivers using their phones. If I can see their eyes or heads glancing up and down, I get far away. If they're having trouble staying in their lane, I get far away. At night, if their faces are illuminated in a blue glow, they're holding their phones and I get far away. I use those techniques in addition to all the other safety measures you get taught by the MSF. If I didn't love riding so much, I'd quit. Seriously. It's more dangerous than it's ever been. You have to be so diligent. But on two wheels, an open road without distracted drivers is still as glorious as it has ever been.