D4no0

D4no0

So I went today on an interview for a golang position, and it turned from a technical interview to a cult joining, where he would portray golang as the messiah of the languages to develop APIs and I kid you not it was quite awkward to listen to all of that. The only words that would resonate with the interviewer would be benchmarks and performance and he was telling me that this is the only way to do innovation and they wouldn’t use any frameworks or abstraction libraries. As a reference for all of this their product doesn’t have any hard performance requirements to work optimally.

What do you think about this?
Where the balance between performance and development speed/cost gets shifted from one side to the other?
Are these perhaps just endearment of some senior developers who got bored at work?

Showing Posts 1 to 10

al2o3cr

al2o3cr

Piffle, everyone knows that REAL HARDCORE PROGRAMMERS only use machine code entered one bit at a time with a Morse code key, entered into a CPU that they made themselves with some sand and an Easy-Bake Oven!

15
Post #1
pierrelegall

pierrelegall

Or use a butterflies-based technique instead of the so-called morse-based technique.

D4no0

D4no0 OP

You laugh, but I start to question my sanity. I mean I knew that developers with 15+ years of experience are crazy, but I didn’t expect for it to be so bad :joy: .

pierrelegall

pierrelegall

Yea sorry, it’s a tricky question in fact and in another way, it’s easy to make a joke on this kind of speech. Moreover, I do not have 15+ years of experience, so they know a lot more than me obviously.

However it ticks me because at my last job, the next guideline was to use Go for new back-end developments, even if only few back-end developers had experience with the language. I didn’t see it as a game changer for us in despite of the internal speech.

Firstly, Go seems to be a good language. I don’t like it for the few I read and tried, but who cares? It can produced statically type checked executable with a build-in garbage collector (e.g. some techs see it as a good fit for AWS Lambda). It’s seems to be in my sense in-the-middle between Rust and Elixir: not safe as Rust but easier to master with similar efficiency (let’s say less than 2 times slower), and without the resilience (and the accidental pseudo infinite scalability) of Elixir but way faster per process and built-in concurrency patterns. But if you are looking for a the “chosen one language” because messing with many tools is a pain, it’s a choice to consider.

Secondly, I understand the “cult” you can have on a tool or tool set. I feel the same with Elixir, even if I do not consider myself advanced on this topic. I’m remembering right now moments where people look at me before I talk saying as a joke: “Elixir of course?”. In fact, I try to not answer this myself because I feel a lot of “I really want to use Elixir so I suppose I can’t be impartial to choose the right tool for the right job”.

It’s sometimes hard but we have to, as “software engineer”, to do our best to be pragmatic. A tech lead have to consider multiple parameters: the domain, the tech communities, the tool sets associated with languages, the internal team knowledge… Development speed and production costs can be estimated from this points. But we can add to the list your team wishes/believes is to take into account because it’s not false to say it’s a way to innovate and have fun at work (but not the only way of course). To put on the top the last one as main argument is a mistake.

A recommendation could be to come back to challenge them about their speech, e.g. what is your current and next hosting strategy, which languages did you consider before making this choice, and so why Go, what kind of problem does it solved for you, why a no framework strategy (I really do not understand the last one BTW) :nerd_face:

D4no0

D4no0 OP

They already answered this, their hosting strategy is k8 and their services hold about 1k connections.

As far as he told me, they all come from java world, because my country is filled with java and c# developers.

They said that benchmarks showed them that this is the fastest language for request-response time. We had a lot of discussions on this forum about these benchmarks performance and my conclusion is that the lower level the library, the faster it performs, for example a library written in C used in python might outperform golang.

No idea either, I think this is related to the developer sickness you mentioned, because at the end of our conversation he started telling me that they follow solid principles and clean code principles and some other, witch was obviously that they are the kind of developers that care a lot about academical architecture and patterns, but once again if they are all seniors with a lot of experience, they might be efficient at a such approach.

kanishka

kanishka

When I see SOLID on a job description, I usually stop from applying. My assumption is that the group has completely ignored FP and is enamored with OO when see SOLID noted.

D4no0

D4no0 OP

Let’s not be black and white about this, solid has it’s place and doesn’t apply to only classic OOP languages, even though every developer who has developed for at least 3 years is already using all these principles without even remembering them.

As for FP, I think the steep relearning of concepts keeps a lot of people away from those languages. Not to mention this talk that was started long ago that immutability is bad because it is inefficient and all the performance optimizations done it is just black magic that don’t work in 90% of cases.

As a funny story a few years ago when I was searching for an elixir job, I applied to a japanese company that stated: we don’t care about your resume, everybody has to complete a list of questions before the initial interview. One of the questions was about solid principles in elixir :joy:, the other one was about === in javascript, I trolled them a little with the responses and they declined me.

dimitarvp

dimitarvp

I think you should run away screaming.

On topic, I’ve made the mistake of prioritizing speed and “elegance” over features a few times in the last years, which tells me that I should probably gradually exit programming as a profession because I have no patience for the people who are all “features features features every day!” anymore. But more seriously, that also depends on the people and the team; sometimes people just don’t click.

As for your example, it seems these people are so relieved that they left Java that they now evangelize Golang. Sadly us the people are prone to being hyped up (another example is divorced people suddenly finding 50% of everyone they see attractive :smiley:).

You can’t call yourself “senior programmer” if you are prone to hype. I’ve made that mistake before and I am extremely ashamed to this day because even back then I thought of myself as a “senior” but then understood that I was only wishing I was. Took me some more years afterwards to start looking at things in better perspective. And nowadays I hesitate to call myself “senior programmer” at all. Maybe I am just senior (as in, aging). :smiley:

Golang is quite a good language and has an excellent ecosystem. I’ll immediately agree with @pierrelegall that it’s the perfect middle ground between Elixir and Rust. But that being said, there is no shortage of problems it’s just a terrible fit for; like anything that requires sum types for example and no, their awful way of imitating them only creates more problems (topic for another time).

To me Golang is a much better Python. That’s it. Shouldn’t be a religion but for some reason people turn everything into a religion.

10
Post #9
D4no0

D4no0 OP

Thanks for the detailed response!

I was lucky to begin my career at a small company (Lightcyphers) in my city, the owner is a professional coming from telecom industry with 20+ years of experience, having worked at big name companies like Nokia. He had zero tolerance for the BS coming from the IT industry. It taught me a lot of valuable lessons about what really is important and how perspective changes when you have limited resources to work with, and how throwing more money/people at something doesn’t solve the problem.

The sad thing about this is that you never know who you are going to work with until you actually start, maybe with time you make connections, however we are talking about tens of years (or maybe I’m antisocial).

These ranks were always a mystery for me, I mean I’ve seen people with twice my experience (10+ years) that worked all their life in only one technology and field, not having any soft skills and they would call themselves seniors, idk.

I can’t say about the ecosystem, maybe I didn’t have luck with what I was working or too spoiled by elixir ecosystem but I had to implement a lot of basic functionality from scratch at some point. As for abstraction level I totally agree.

Python excels at what it was designed at the beginning, to be a very accessible, batteries included language for beginners. At some point in time (most probably with the adoption of machine learning tools) it started to rise in popularity and extended out of it’s scopes, much like javascript.

imkleats

imkleats

There’s a segment of Golang aficionados who ardently say “the standard library’s net/http package can already handle everything you need it to do”, and of the prominent frameworks, there are those that use standard-library-compatible request handler interfaces & those that don’t. The purist crowd seems to feel the former frameworks are unnecessary and the latter frameworks are an even bigger affront to their sensibilities. (Not an expert opinion, and mostly based on what I’ve seen stated in golang subreddit threads.)

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews