News for hackers. Stuff that matters.
Re:So you're using a weird language by Test0129 on Thursday October 06, 2022 @12:26AM (#33104376)
Sure, but you're not really disagreeing with me.

Idiot proof languages are popular. If you want assured money learn an idiot proof LCD language. In fact, everyone should have one in their tool belt to put food on the table.

However, if you're actually a talented engineer these languages will hamstring you and your art. You will probably eventually gravitate to something more heady (such as the less popular languages) and probably even leave your nice cushy gig to give a professional life in that stack a shot. This isn't, however, to say talented engineers don't exist in lowest common denominator language pools. It's just esoteric/less-used languages tends to cause the best quality of talent to come from them owing from many of their problems. If you can be proficient and productive in a language that you can't easily google a solution for, you're probably an excellent candidate for promotion into the higher echelons.

This is a similar phenomenon to editor choice. My anecdata in a little over 10 years of a career has given me the impression that I can tell what kind of developer someone is by their editor. People who use raw vim/emacs tend to better developers. Why? It's not the editor itself. It's that these editors pull no punches and require time and expertise. That dedication is not taught. The easier an editor is to use for a beginner, the more average a programmer tends to be. Again, there are a lot of very talented developers using VSCode or full blown IDEs. But with those editors your signal to noise ratio is quite low. It's anecdata but mixed with the information above you can gather a lot of "metadata" about a person without much effort.

Re:So you're using a weird language by kcb on Thursday October 06, 2022 @12:50AM (#33104507)
It's like the equivalent of judging a carpenter for using power tools because he's just not dedicated and gritty enough to use a manual twist drill.

My anecdata, people who overly focus on language and tools tend to be the worse developers. It's the developers that effectively address the universal problems of writing software people want to use, like api usability, reliability, data consistency, maintainability that have the most props in my book. The best developers I've known weren't particularly attached to any editor, language, or framework.

Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @02:50AM (#33105224)
> It's like the equivalent of judging a carpenter for using power tools because he's just not dedicated and gritty enough to use a manual twist drill.

Serious question: all else equal and without any additional information, between two carpenters who produced the same output in the same time, one with power tools the other without, is there any reason whatsoever to assume one of them is any better than the other?

Re:So you're using a weird language by pjmlp on Thursday October 06, 2022 @04:42AM (#33106007)
Like in the good old days, you take a shot, and let their work speak for themselves, if you got it wrong, well that's life.
Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @07:46AM (#33107005)
My question was not answered. In that scenario you have access to the work both of them do, so it speaks for itself, and it is equivalent work done in equivalent time. Use or non-use of power tools is the only difference. Do you factor that in your judgement or you flip a coin when choosing an employee or supplier?
Re:So you're using a weird language by pjmlp on Thursday October 06, 2022 @09:13AM (#33107790)
You misunderstood my reply, it was flip a coin and let their work speak for themselves, after being hired.
Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @09:26AM (#33107891)
Okay, so this means it's not relevant to you which is... an interesting take. I guess you better operate your business in at-will employment legal landscape (and not feel bad for your employees' families after you fire them left and right this way).

For me I would definitely make use of this extra information before hiring. Hiring a carpenter who's able to work with power tools is likely better, unless I need to foresee a situation where they must work without electricity. Even if they are physically fit, power tools can enable a human to do something not possible at all with bare hands.

For a programmer it's the reverse, if we assume "power tool" is an "easy" language compared to something like OCaml, or maybe tools like VS Code and Copilot compared to vim. These tools don't help overcome a physical limitation, like the power tools of a carpenter, but a mental one. Being able to set up vim fully to be as productive and produce as few bugs as someone with VS Code, or being able to pick up Haskell without being able to immediately get a human answer your every question, exemplifies the type of higher-level skills and learning capability that is the primary value of a human employee compared to a robot.

In other words, in context of this discussion, the equivalent of carpenter's power tools might be much closer to Haskell + vim than JavaScript + VSC.

Re:So you're using a weird language by kcb on Thursday October 06, 2022 @09:44AM (#33108067)
No, drilling holes doesn't make you a good carpenter, use the most convenient tool you have available. Designing a good chair that people want to sit then producing it from idea to reality does.

I'd think manual carpenter is going to have to retire early due to repetitive strain injury.

Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @10:29AM (#33108625)
Same but for a different reason. Being able to overcome the learning curve and become comfortable using power tools to achieve equivalent results makes you a valuable employee as a human, it raises you to a higher level of control and increases your capabilities beyond what you could do with bare hands. (The only benefit of being capable without power tools is if there's no electricity for example. IANAC)

The same with "easy"/mainstream languages: something like OCaml/Haskell/Nim/Nix/etc. is a power tool with a steeper learning curve compared to something like Python/JavaScript/shell scripting; you being able (and willing) to handle it without abundance of learning resources says something about your mental capacity and potential value as an employee.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @10:47AM (#33108895)
This is like one (non tech) company that I was hired at as a dev lead where they were about to embark on writing an “address validation module”. I quickly put an end to the entire project and worked with a vendor to license CASS software.

Companies pay employees to add business value. Not to get into their own flights of fancy to do things the hard way. As you mature, you learn only to focus on things that “make the beer taste better”.

I have yet to see an argument by any of the proponents of “obscure” languages where their choice adds business value.

And the “hard problems” that are being solved by the large companies at a scale that has never been solved are doing so by using mainstream languages.

I’ve never seen a report of a job interview where they asked you to reverse a binary tree in Erlang.

The vast majority of problems that developers are being asked to solve are not that hard technically. They are business problems.

Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @10:58AM (#33109049)
I mean more having learned to be productive in an obscure language as a positive marker regarding your mental capacity, intrinsic motivation, autonomy and initiative. If you then insist on using it for everything, business value be damned, that is a red flag. Choosing an obscure language to tickle your fancy would be negative value to me as a business owner since I need to hire and maintain a team of developers who are all comfortable and proficient in it. However, there are circumstances in which an obscure language might just be the right tool for the job (and overall architecture that can accommodate a small cohesive component written in a different language has its benefits).
Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @12:23PM (#33110305)
You think it’s a red flag for a business to hire people who can add business value?

I’m motivated to get up everyday for the same reason most people are - money.

I bet you’re looking for people with “passion” and who are willing to consistently put in more than 40 hours a week aren’t you? Out of all the millions of things I can do and have done in my free time over my career (including a working hobby as a part time fitness instructor back in my younger days an avid runner and a weightlifter) spending more time sitting at a computer outside of work isn’t one of them.

And the obscure language would hardly ever outweigh the need to recruit developers easily.

Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @01:19PM (#33111109)
> You think it’s a red flag for a business to hire people who can add business value?

Where have you seen that?

> I’m motivated to get up everyday for the same reason most people are - money.

You are quite mistaken. Once they have enough to exist comfortably, people tend to seek meaning not money. The emergence of OSS ecosystem is the best example -- a lot of it, including the most popular OS in the world, came about as hobby projects people did in their spare time. If you're a software engineer, I bet you use products of their passion a lot in your money-making activities.

> I bet you’re looking for people with “passion” and who are willing to consistently put in more than 40 hours a week aren’t you?

Again, all else equal, if I need to make a decision as to who would be a better, more capable employee in absence of other information, the one who managed to be productive in an obscure language would be higher on my list. Just that. Everything else, making people work overtime, etc., is your addition.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @01:44PM (#33111448)
> people tend to seek meaning not money. The emergence of OSS ecosystem is the best example -- a lot of it, including

Look at a list of who the largest contributors are to Linux.

https://news.itsfoss.com/huawei-kernel-contribution/

Most of the contributors are getting paid to do so.

Do you really think most of the 2.7 million developers in the US are contributing to open source?

Re:So you're using a weird language by throwaway290 on Thursday October 06, 2022 @02:33PM (#33112150)
Absolutely the case now, but not quite how these things tend to get started.

Regarding how many in the US contribute, I don't know the stats... Could probably be more if work-life balance/employment security was better.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @03:02PM (#33112535)
Read about the “Dark Matter Developers”

https://www.hanselman.com/blog/dark-matter-developers-the-un...

Re:So you're using a weird language by Test0129 on Thursday October 06, 2022 @10:24AM (#33108545)
> It's like the equivalent of judging a carpenter for using power tools because he's just not dedicated and gritty enough to use a manual twist drill.

I think this is an apt analogy. Mostly because carpenters who use hand tools produce more beautiful, unique works of art. When everything you do is on rails (no pun intended) you don't have the flexibility or creativity to make works of art. It's like saying Ikea tables (the equivalent of an idiot proof language) are just as nice to look at and functional as a purpose-driven hand crafted table. I have my doubts, despite using Ikea when I "just need something done".

Nice one, being it elucidates the art being lost in other fields (and perhaps all over).

Re:So you're using a weird language by kcb on Thursday October 06, 2022 @10:34AM (#33108709)
Your analogy doesn't make sense. There's nothing about the programming languages you consider "least common denominator" that lock you into a specific design, unlike your Ikea table. Actually those LCD programming languages are generally the least opinionated in how you use them.
Re:So you're using a weird language by jjav on Thursday October 06, 2022 @03:03AM (#33105312)
> However, if you're actually a talented engineer these languages will hamstring you and your art.

Early in my career I thought of software as art. I was wrong.

The very last thing I want in any production software team is an artist looking to express themselves. I want the worlds most talented engineers who want to use consistent proven methods to create solid maintainable code with zero surprises.

Code as art has its place, granted, but that place is in the privacy of your own time in a repository with one single contributor. I occasionally still go back to writing lisp for fun, but it has no place in production.

Re:So you're using a weird language by lioeters on Thursday October 06, 2022 @06:47AM (#33106684)
Perhaps it's just a generalization, but I don't think there's such a clear separation between "code as art" and "code as engineering".

The very best engineers are like artists, in that they harness their creativity to solve problems efficiently and effectively, often in innovative and personal ways.

And artists who are respected in the field of software can use consistent methods to produce solid maintainable code. I wouldn't say "zero surprises" though, I'm often surprised by reading the code of an artist, how they achieve extraordinary results with mundane code that a child can understand.

The example that comes to mind is Fabrice Bellard. He's one of the most talented engineers - and I'm sure many of us would agree that his software is a work of art.

Well, as someone who has to manage a team, I completely agree that what's needed are engineers who can consistently produce predictable results. We don't want someone who chooses (or worse, creates!) an esoteric language to pursue their art. But I myself am of the latter persuasion, "writing lisp for fun". And having a team of only non-artistic engineers would be so boring. But then again, boring is what we need most of the time.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @03:08PM (#33112609)
> The very best engineers are like artists, in that they harness their creativity to solve problems efficiently and effectively

As a reformed former dev lead, I wanted a consistent industry standard idiomatic method of writing code and I used a combination of static analysis tools and code reviews to establish a culture to do just that.

I don’t want my C# developers who came from Java writing an AbstractFactoryFacadeBeanProxyDecaratorSingleton.

“Fun” for me is doing anything except being in front of a computer after hours. Between time with my wife, exercise, learning Spanish and just vegging out, computers are the last thing on my mind. I don’t even have a personal computer anymore.

Re:So you're using a weird language by mlatu on Thursday October 06, 2022 @05:30AM (#33106280)
There is the meaning of "art" as "craft" too, and i think this was the intended meaning in the quote you use.
Re:So you're using a weird language by KronisLV on Thursday October 06, 2022 @10:20AM (#33108488)
> Code as art has its place, granted, but that place is in the privacy of your own time in a repository with one single contributor. I occasionally still go back to writing lisp for fun, but it has no place in production.

That reminds me of an excerpt from this humorous (but still relatable) bit of writing: https://www.stilldrinking.org/programming-sucks

> Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

> This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

> Every programmer starts out writing some perfect little snowflake like this. Then they’re told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers’ snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day. Next week, everybody shovels more snow on it to keep the Picasso from falling over.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @01:07AM (#33104584)
> Idiot proof languages are popular. If you want assured money learn an idiot proof LCD language.

You saw that whole spiel about my desire to exchange my labor for money to support my addiction to food and shelter?

> However, if you're actually a talented engineer these languages will hamstring you and your art.

I have no desire to be a starving artist. I turn requirements into code so businesses with money will give me some of it by adding business value. I don’t program to create the next Picasso.

I stopped considering programming “fun” after doing it for 10 years across 4 assembly languages (65C02, 68K, PPC, x86) before I graduated from college in 1996.

> and probably even leave your nice cushy gig to give a professional life in that stack a shot

So tell me again why I would leave my “cushy gig” (and it is the cushiest gig you can imagine in any BigTech company)?

> you can be proficient and productive in a language that you can't easily google a solution for, you're probably an excellent candidate for promotion into the higher echelons.

Every single leveling guideline I have seen at any tech company doesn’t mention “ability to code in an esoteric language well”. It’s all about “scope”, “impact”, “managing ambiguity”, etc. “Coding ability” really only comes into play from junior to mid. After that it is about system design even at the interviews.

Re:So you're using a weird language by sterlind on Thursday October 06, 2022 @01:41AM (#33104759)
> I stopped considering programming “fun” after doing it for 10 years across 4 assembly languages (65C02, 68K, PPC, x86) before I graduated from college in 1996.

this makes me sad to hear. I fell in love with programming at age 7 and still love it at 32. I'm extremely fortunate to enjoy something that pays well, rather than languishing at a cushy job that leaves me empty.

> Every single leveling guideline I have seen at any tech company don’t mention “ability to code in an esoteric language well”. It’s all about “scope”, “impact”, “managing ambiguity”, etc. “Coding ability” really only comes into play from junior to mid. After that it is about system design even at the interviews.

if you're hiring plumbers, sure. it's not all plumbing, though. there's algorithm design, compiler engineering, formal verification, program synthesis, numerical methods, etc. etc.

the really effective people in those fields use (or make) weird languages. Isabelle's written in HOL, Coq in OCaml, Agda in Haskell. having a knack for weird languages is a plus for brainy jobs working on that kind of stuff.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @01:56AM (#33104861)
> I'm extremely fortunate to enjoy something that pays well, rather than languishing at a cushy job that leaves me empty.

My job paying well allowed my wife to buy a vacation home/investment property for the winter and starting at the end of the month fly around the country and stay in mid tier hotels and do the whole “digital nomad thing”.

I spent the first fifteen years out of college having a great time outside of work as a part time fitness instructor (more of hobby) and training and running with friends.

Sure I’m learning a new language now - Spanish.

Re:So you're using a weird language by piaste on Thursday October 06, 2022 @05:32AM (#33106287)
It's very good and healthy to have a life outside of work, but you're still going to spend anywhere between 25 to 60 hours a week working.

Making sure that you actually enjoy those hours has a massive impact on your quality of life.

For an extreme example, what pay cut would you be willing to take if you were able to do fitness training full-time?

> My job paying well allowed my wife to buy a vacation home/investment property for the winter and starting at the end of the month fly around the country and stay in mid tier hotels and do the whole “digital nomad thing”.

This is somewhat off-topic and I don't know you or your wife personally, but I find it flabbergasting that a spouse would choose to do the "digital nomad thing" when their partner can't or won't follow them. Even more so when they're being bankrolled by said partner.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @09:44AM (#33108065)
When I said “my wife” I meant “my wife and I”. I work remotely.
Re:So you're using a weird language by rowanG077 on Thursday October 06, 2022 @01:59AM (#33104883)
I feel this is true. If a person has a few esoteric languages under their belt it says a lot about their drive and passion. If anything if I wanted to find talented devs I would put some more esoteric languages on the requirements lists even if we wouldn't use those languages internally. It's a pretty effective filter.
Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @10:05AM (#33108304)
Why do I feel like when you want developers with “passion” you wouldn’t be satisfied with developers who want to put 40 hours a week in and go home?
Re:So you're using a weird language by rowanG077 on Thursday October 06, 2022 @03:09PM (#33112619)
No, it's not about the hours. A developer with passion is more likely to be highly skilled.
Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @04:39PM (#33113787)
So where do they gain that passion if not from developing off hours?

If you look at the leveling or hiring guidelines for any major tech company, what separates “senior developers” and up from mid level developers are system design, “handling ambiguity”, leadership, “scope”, “impact” and in the case of Google did you write a messaging app.

Even the largest tech companies realize “coding ability” only gets you so far and most developers who want to get ahead would be far better off focusing on the other aspects of software engineering.

Re:So you're using a weird language by rowanG077 on Thursday October 06, 2022 @05:48PM (#33114528)
System design, handling ambiguity, scope and impact are all things that are taught extremely well by just coding a lot. I'm not even sure why you are arguing. Someone who does something more and likes doing it in general will be better at it then someone who spends less time on it and doesn't like it.
Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @06:05PM (#33114702)
So how do you learn “system design” - infrastructure, proper data storage for the problem domain, balancing the trade offs between costs, RPO and RTO, security, caching, sharding to handle scale, scaling, disaster recovery or the stereotypical “how would you design Twitter” System Design tech interview.

Coding has little to do with handling ambiguity.

While I have never been through a BigTech coding interview, I have been through (and passed) a BigTech system design interview, it has little to do with coding.

Designing (and redesigning) systems for large organizations is my $DayJob where I have to be able to explain those concepts.

Re:So you're using a weird language by kaba0 on Thursday October 06, 2022 @12:30PM (#33110392)
I would like to see any form of objective evidence for “if you're actually a talented engineer these languages will hamstring you and your art”.

Even in C that lacks any form of sane abstraction capabilities, people have come up with object systems and what not if they fit a problem domain better. While I think that the language optimum is well past C, there is no significant difference between modern managed languages in any way besides ecosystems — and that is the most important thing.

Re:So you're using a weird language by scarface74 on Thursday October 06, 2022 @12:52PM (#33110765)
Speaking of C the canonical way to do it was to create a struct with function pointers and initialize the struct as you would a class.