4,075 karma · joined October 16, 2009
Professionally: backend systems, cloud-native infrastructure, Kubernetes, CI/CD, and developer tooling. Personally: an application developer who enjoys building leverage.
I still enjoy dropping into unfamiliar codebases, building small studies in miniature, and leaving systems a little easier to work in than I found them.
Currently building:
Seevee: an agent-driven resume workbench that treats a career as a conversation instead of a document.
Timerbox: a cross-platform Gio desktop timer inspired by the workflow I've relied on for years.
Blog: dpritchett.net
GitHub: github.com/dpritchett
LinkedIn: linkedin.com/in/danielpritchett
Email: dpritchett@gmail.com
Edit: I imagine that's perfectly natural - when I was in backoffice IT I strongly desired to transition into project management so that I could transition into people management so that I could make meaningful decisions and get credit for them. It's probably the same in product companies except low-level devs will want to manage products so they can manage divisions so they can run big-name tech companies. Currently I'm working as a consulting dev in a small dev consultancy and I don't feel the same pull in that direction that I used to. I think maybe all we really need is to be taken seriously and to have some meaningful work.
You forget how many people get paid to specialize in Excel :)
I'm a Ruby/Rails developer (and I run MemphisRuby) and while I seriously enjoy working with Rails I don't expect it to be as popular ten years from now.
Rails is still tremendously good at what it does and I don't think it's likely that another framework or language is going to beat it at its own game. The real question is whether or not the things that Rails does best will continue to be important in the marketplace.
We've already seen parts of Rails's core competencies carved out by other tools: Erlang/Node/Go enable saner async programming. Backbone/Angular/Ember enable rich web applications. Scala/Clojure/Go/etc. on the "fast compiled backend services" front. Even PHP is keeping pace with the times (Composer, Laravel) just enough to keep its adherents from having a real reason to jump ship.
Ruby and Rails are still pretty much as good as it gets for rapid development of web applications (the backend parts of MVC, anyway), and there's a growing Ruby niche for configuration management (Chef, Puppet, etc).
Personally I find my investment in learning and working with Ruby has been a great way for me to experience a much wider variety of technologies and architectures than I would have otherwise. Thanks to Rails work I've learned tons about AMQP, Postgres, Chef, Backbone, JavaScript, CSS, Ansible, DNS (bind), and more that I just wouldn't have had the same exposure to in a slower-paced development environment.
Your ending line about "still in wide use but not frequently selected for the best new projects" is a bit complicated. Certainly any language stays in wide use once it falls out of fashion and its projects categorically move to the "legacy" phase, but "best new projects" is a bit much. A lot of what we might think of as the 'best' projects are driven by fashion just as much as technical merits.
I'm totally OK with paying companies to build useful proprietary stuff when they're spinning out a few open source artifacts now and then.
Docker-on-linux-on-vagrant is a nice compromise though.
(defn example [n]
(let [square #(* % %)
halve #(/ % 2.0)
add3 #(+ % 3)]
(-> n square halve add3 str)))
> (example 1)
"3.5"The lets might look like so (warning- silly example):
(defn n-squared-over-two-plus-three-as-str [n]
(let [squared (* n n)
halved (/ squared 2.0)
added (+ halved 3)]
(str added)))
> (n-squared-over-two-plus-three-as-str 1)
"3.5"
Sure, I could've just done this as a deeply-nested structure: > ((fn [n] (str (+ 3 (#(/ % 2.0) (* n n))))) 1)
"3.5"
... but it's harder to read, debug, and reason about. You wouldn't do that in a non-functional language either! I suppose the tolerance for deep nesting is different for different programmers.[1] https://github.com/dpritchett/cloball/blob/62300d31666ab1261...