

We are in an age of “refactoring.” - caviarncheese

Just a rant, but frankly, I&#x27;m tired of all this BS over frameworks, OOP, TDD, design patterns, factory classes, singletons, inheritance, structured data, and generally anything related to &quot;clean code done the right way.&quot;<p>People are getting cult-like over this &quot;clean code&quot; mentality, it&#x27;s like a fanaticism.  The funny thing is, almost all the code I&#x27;ve seen is still spaghetti code, often interconnected within a larger system of more spaghetti-systems, with spaghetti-documentation scattered across the internet and various peoples in an organization.<p>We&#x27;re sort of in an age of refactoring, aren&#x27;t we?  We&#x27;ve seen the demise of &quot;messy&quot; languages like PHP or Perl.  Swift is a refactor of Objective C.  Ruby and Coffeescript are more refactored languages.  Plain old javascript just doesn&#x27;t seem to cut it anymore either - we need framework upon framework, hierarchical trees, patterns, and everything&#x27;s gotta be object-oriented for some reason.<p>But you know what...?  Real life isn&#x27;t organized, and just maybe, code doesn&#x27;t always need to be either.  My apartment&#x27;s not hierarchy-based into neat little tree structures, but it&#x27;s ok.  I know where stuff is, and it&#x27;s even convenient.  My car&#x27;s got a bunch of junk in it too, and I&#x27;m just fine with that.<p>When I code, especially for myself, sometimes I prefer no structure.  Yep, I&#x27;ll avoid OOP just because it takes me 10 minutes longer to type it all out and I think it makes things more complicated.  I don&#x27;t particularly care about private&#x2F;public variables, I just make everything public - it saves me time typing the getters and setters.  My variable names may be obscure, because I don&#x27;t want to spend the extra time typing more descriptive names.  Code might be messy and not the most efficient solution, but as long as it works, that&#x27;s just fine with me.<p>Perhaps 20 years into the future, people will look back on this age of software and think &quot;Why were we so obsessed over making everything OOP and so structured like that?&quot;<p>Anyway, I think the true soul of programming lies in building stuff and launching.   Users don&#x27;t care how beautiful or elegant code is, that&#x27;s something that employees&#x2F;bosses&#x2F;academics care about.
======
yzzxy
First of all: I'm not much of a ruby programmer, but how is it a refactored
language? It goes pretty far from standard Algol syntax. I have read the
syntax was heavily influenced by the differing SOV/SVO structure in english
and japanese, but this may be hyperbole.

As for your main point, I would say have fun working with other human beings
on a project, or working on a project that impacts more than just you. You
apartment only impacts you and those directly associated with you. A
successful programming project will affect far more.

Employees/bosses/academics comprise the majority of the adult populace who can
take care of themselves, and maybe you should take a page from their book. And
if you think users are the ones who "elegant" code is written for, you don't
understand the point of writing good code.

Perhaps try working in a context where your application matters and uses the
hardware it is working on to the fullest extent. Things like concurrency and
performance are difficult with spaghetti code.

Maybe you've only worked on web projects, sites that don't run dynamically on
a server, or are only accessed by a small number of people, so performance
doesn't matter because you just pay a flat $5 for a single digital ocean
droplet. But I'm being presumptuous. I don't know these things about you. So
maybe share your own experience and how you think you have earned the right to
call judgement on best practices developed over many years.

------
djantje
Computers generally don't really mind how you have defined your variable
names, structured your data, and named your functions in your program, it all
gets translated into a memory adres and machine code.

Ofcourse code needs to work, and getting things done is important, speed of
development is part of running a business.

But a program should also be readable & understandable, and maybe re-usable by
a an other human being.

I don't think this implies you need to use OOP, but one of the nice
characteristics is, that is has defined data and operations for a particular
object.

Achieving a high development speed right now, without to much structuring and
human readable & understandable logic in your code, won't do much harm right
now.

Till someone asks you to change something in a working program.

Than re-reading and understanding to much unstructured code, at that time,
kills development speed, which can block a much needed functionality.

And I personally think it is this building & launching of functionality that
your users will care deeply about.

But, still I think there is a sweet spot, somewhere (between spaghetti and
fully structured systems)

[http://cdn-media-2.lifehack.org/wp-content/files/2013/05/THE...](http://cdn-
media-2.lifehack.org/wp-content/files/2013/05/THE-WORLD-DOES-NOT-REWARD-
PERFECTIONISTS.-IT-REWARDS-THOSE-WHO-GET-THINGS-DONE.-2-1024x682.jpg)

------
Ardeof
Do you tell this to people in an interview? [sarcasm] I bet they'd hire you on
the spot if they heard/read this [/sarcasm]

Do tell, please. Not sure if a troll or just really ignorant with the uses of
OOP and "clean code". Original Poster probably also doesn't leave
documentation in his code.

------
rubiquity
> _Anyway, I think the true soul of programming lies in building stuff and
> launching. Users don 't care how beautiful or elegant code is, that's
> something that employees/bosses/academics care about._

Oh, you'll care about the quality of code a whole lot more when developing new
features comes to a grinding halt.

------
ibihim
Try to review your code in a year. Have fun.

------
kyllo
I think it's time for you to get out of Javaland and try a functional
language. Maybe give Clojure a shot if you want to stick with a JVM language.
I think you'll find that the frameworks and patterns aren't even necessary.

~~~
rubiquity
This. I wouldn't even just call it Javaland though, the Ruby world is like
this now too. My favorite part about my journey into functional programming so
far has been that I don't need to stay up to date on whatever the talking
heads of OOP are preaching these days.

Seriously, give functional programming a shot. It isn't as scary or esoteric
as you might think.

------
lucidrains
ok, but if you share your apartment, you'd want it to be clean for the sake of
your roommates right? if you use your car to pick up a date, you'd want it to
be clean and presentable so she'd have a place to sit... it's the same idea
with code.

