4 ms·
After three years of trying to push for adoption, I’m also starting to find it depressing. I’ve talked with various people also looking to introduce Elixir or C
by ramchip 8y ago
After three years of trying to push for adoption, I’m also starting to find it depressing. I’ve talked with various people also looking to introduce Elixir or Clojure in my workplace (large company), and even when it’s a perfect fit for the problem, we invariably hit a wall because it’s not popular enough to be considered seriously. Anything not in the TIOBE top 10 or so might as well not exist.
- didibus 8y agoIt's easier to ask for forgiveness then for permission. Next time you get a project, just do it in Clojure or Elixir, don't ask. The beauty of this is, if you are using the JVM, JavaScript or Erlang, it doesn't even have to be green field. You can just write a section of the code in it.
- rapind 8y agoCall me old fashioned, but as a developer if I did this I'd feel completely responsible if it didn't turn out well. Not just to the company paying me for my work (which apparently I feel free to do in whatever way I like?), but also to my coworkers who may have to manage more complexity because of my choices. Imagine if everyone on just a 5 person dev team did this... pretty risky, and potentially company sinking behaviour. I've experienced this ethic in others and it sucked (and the person basically shrugged and walked away). Obviously this could work out well, but I suspect most of the time it doesn't. I'm sure there are situations in which it's perfectly fine though. Like working on your own on a fixed quote greenfield project.
- didibus 8y agoWell, you would be responsible if it didn't turn out well. This obviously assumes that you can pull off a successful delivery. But I feel that goes for any project you take on. It's all about calculated risk. If you don't know the language at all, maybe don't do it on a task where you wouldn't have time to pivot back to a language you know if you didn't succeed. And if it added more complexity, well then it was the wrong technical choice that you made. Normally people switch to Clojure[Script] and Elixir in order to lower complexity and help manage it. If for some reason your project would get more complex with the switch, then don't. I mean, why would you want to switch to a language that you thought would make the code worse? Finally, I guess I see myself as employed by my company to specifically make such decisions and bring about positive change. Also, it's okay to say that you're bored, and you need to keep learning and challenge yourself to your employer, otherwise you'll get disinterested and might look elsewhere for work. And this is a way for you to learn and be motivated which costs nothing to them. I mean, that one you can only do if you're valued on your team, but if you are, and I think you'd be surprised more devs are then they think. It's an option. Now, there's ways to do this that work, and won't feel like a big jab at your employer and your co-workers, but it's not easy, and there are risks you have to be willing to take. I did it at my current job. It does take extra effort on my part. Give other devs good support and mentorship when they need to maintain that part. Plant the seed in their minds beforehand. Let them know you started doing it in a different language, and how it's going. And make sure the end product is good, and explain to the business that it was successful in less time, because of the language choice you made. Etc.
- ramchip 8y agoWhat do you do after the experiment is done? I’ve been through that already for a relatively minor project and been asked not to do it again, even though the project worked out very well. The problem is we end up with something that can’t be properly maintained if I leave, and even if it’s a small service, it tends to grow in scope. Sadly we don’t really use any of the VMs you listed either. People around me don’t doubt that you can do cool stuff in Elixir or Clojure, they just think it’s too hard to hire for these languages, and that the same is possible in any scripting language with Redis, Kubernetes, Kafka, etc.
- didibus 8y ago> Sadly we don’t really use any of the VMs you listed either That might be too much to ask then. A change in runtime is much more difficult then a change in language. That's also the beauty of hosted languages like Clojure[Script] and Elixir. They give you a painless transition which doesn't need new infrastructure, and you can slowly adopt them for parts of your code. > I’ve been through that already for a relatively minor project and been asked not to do it again, even though the project worked out very well I think it's important to emphasise the benefits. This would have taken me twice as long without X language. X language allowed it to be more robust and suffer from less operational issues. Also the business shouldn't know about the language choice as much as possible. You can say things like, because of our use of the Clojure[Script]/Elixir technology and library, the project was delivered twice as quickly. > they just think it’s too hard to hire for these languages, and that the same is possible in any scripting language with Redis, Kubernetes, Kafka, etc. For this it helps to emphasise ease of learning, and quality of engineers. Something like, any talented engineer can pick it up quickly with minimal overhead. If an engineer can't pick it up, they might have been a bad hire. Engineers interested in such languages are normally more passionate, polyglot, and are continuously learning on their own time. They're most likely better engineer then the average, and this is actually a good way to appeal to such high quality talent and recruit good engineers. So basically, you have to be a good marketer and leader, since you'll need to evangelize and lead people into adopting the new language, starting with a good hand off to the next person needing to maintain the code.
- 8y ago