News for hackers. Stuff that matters.
Re:Clojure is Capable by simion314 on Friday December 28, 2018 @03:54AM (#18775646)
>If you can't understand what the code is doing, don't touch it until you can test against it or test against what it's really supposed to be doing. Types don't alter this fact.

Many developers in real projects don't have the opportunity to to work with good code, most of the time you have to work on projects started by others, with a language that is not the one you prefer, with a framework you probably dislike etc, having the language and tools help you figuring how a thing works and how can I fix a bug without having to understand the whole project, creating new unit tests from scratch is very important,

let me give you an example that happened to me, so I work on a SPA app , JS, angular, jQuery (project started by others, I had no choice in frameworks or languages) , I want to fix and improve things to make the users have a better experience(I don't do it for the pleasure or writing code). So I want to change a text that appears on an element, so I get the element ID, it's class, search the code, I find the element but I could not find where the element text was changed. It took me hours (honestly) to find it, dev used the feature in js where you can dinamicaly access object properties and did something like object["select_"+type+"_box"] you could use same feature to call functions obj("function"+"Name").apply... My point is that with languages that let devs do dinamic shit like this you are never 100% sure that your refactor will work, I can't be 100% sure if it is safe to remove this function that appears unused, or to remove this css rule that also appears unused, I prefer 1000 times more an environment that I can be 100% sure that I can remove or rename code. (I know about reflection and similar in static languages but normal projects do not use that)

I am wondering if you never worked with this kind of code bases and this experience is not familiar to you, also if someone will say that I shyould find a job that works with cool language or framework X , I don't , I care about the result of my work, I take pleasure when I fix some hard bug or when a nice feature or improvement lands and our users are happy.

Re:Clojure is Capable by duggan on Friday December 28, 2018 @06:28AM (#18776179)
I think a lot of Clojure developers have worked with gnarly codebases before, probably for the bulk of their careers. It's a common reason for using Clojure in personal projects, and seeking out Clojure work.

There are numerous ways to find satisfaction in work. I'd merely extend the reasons you list to include an enjoyment of the tooling and software you're working with. Might as well try to tick all the boxes.

Re:Clojure is Capable by simion314 on Friday December 28, 2018 @07:09AM (#18776305)
My opinion is that for your personal project, that only you work on is fair to use whatever.

For work projects you can't just join a team and ask let's rewrite it in X. Some developers will try to get satisfaction with the latest and greatest but this is a moving target, a few years back C# was cool, then it was cool to know Scala because is functional, now is cool to uise Rust, GO or some compile to JS and react or similar frameworks, when this are no longer cool this developers leave and somebody else will have to take over and meintein their amateur code (by definition you can't be experienced in new thing since is new)

Anyway I got off-topic, my point is that refactoring your personal project is not the same as refactoring. cleaning up a big old project(in my case 4 year old angular1 project , that probably has a few deprecated dependencies that are no longer cool enough). It would be better a bit to work with a better code in TypeScript and latest React but I personally won't hunt for a new job because of the tools.