Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
MrMoo
Sep 14, 2000

Keetron posted:

My favorite vendor API thing was with a vendor that kept pointing to the docs when I had questions so when I found a difference in behavior between the API and the specs and pointed that out, they said nothing but without warning changed the API a week or three later. gently caress everyone who integrated with the actual instead of the documented use, I guess?

That’s fine to a degree, you need a spec and it’s better to be the docs than the implementation.

It’s all too levels of webdev poo poo to have “examples” as docs and completely undefined implementation with different behaviour on each set of api calls.

Adbot
ADBOT LOVES YOU

Half-wit
Aug 31, 2005

Half a wit more than baby Asahel, or half a wit less? You decide.

Keetron posted:

and then this one time, at a big bank, the only status codes send out by the core insurance application API was 200 and 500, the second with the message "Internal server error". When asking for a bit more information in the response, I was told that it was not allowed for reasons of security and compliance. I then learned that in bank language this means "gently caress off".

500 Internal server error , is this...SIP?

ErikTheRed
Mar 12, 2007

My name is Deckard Cain and I've come on out to greet ya, so sit your ass and listen or I'm gonna have to beat ya.
How do you go about picking a language/language(s) to pursue for your next job?

I've been doing development for like 10 years and the bulk of my experience is in Java. At my current job I'm basically only doing Ruby and some frontend JS stuff (React or a trashfire of CoffeScript and Backbone depending on the project).

I had a Java + Python shop reach out for an interview, so I went to practice my Java a bit and...I think I hate it now?

If I had to do JVM dev again I'd really prefer to do Kotlin but there appear to be almost no non-android Kotlin jobs in the US. Ruby has been pleasant enough but I get the vibe from the community that it's on the decline, though there still seem to be a lot of ruby/rails job postings.

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





ErikTheRed posted:

How do you go about picking a language/language(s) to pursue for your next job?

don't.

persue good workplaces with quality coworkers. the language you use (with very few exceptions, like you invented ruby or you're a type theory phd) is one of the least important factors in job satisfaction

Achmed Jones
Oct 16, 2004



the talent deficit posted:

don't.

persue good workplaces with quality coworkers. the language you use (with very few exceptions, like you invented ruby or you're a type theory phd) is one of the least important factors in job satisfaction

This is correct advice.

ErikTheRed
Mar 12, 2007

My name is Deckard Cain and I've come on out to greet ya, so sit your ass and listen or I'm gonna have to beat ya.
That's a fair point, in the past teammates and managers tended to have the most impact on how good/bad the jobs were.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


At the same time, you should study languages that you're interested in. If none come to mind, pick something that's different from what you've already done. Even if you don't use it on the job, the experience of thinking about programming in a different way will be helpful.

Gildiss
Aug 24, 2010

Grimey Drawer

the talent deficit posted:

don't.

persue good workplaces with quality coworkers. the language you use (with very few exceptions, like you invented ruby or you're a type theory phd) is one of the least important factors in job satisfaction

I haven't seen any places that would consider people without X years of experience in their specific language of choice though.

Yeah, programming is a skill and the languge is just a way of applying that. But most employers don't see it that way.

Carbon dioxide
Oct 9, 2012

The above is all kinda true but to add to that:

I can strongly suggest learning a less popular language.

Java and Python are huge and nowadays nearly everyone learning software dev in school knows these languages. So all those people who don't really like programming but do it because it gets them a decent salary, they stick to Java/Python for the rest of their lives. Some move to Kotlin because it's Java with less boilerplate. But that's about it. If you look up Java stuff on the internet you can find an answer to any question you might have - but it's much harder to find people who are really passionate about the language. It's nothing to be passionate about, because it's just a fact of life.

People who really like programming, who want to know more, who are dedicated to help out the community, tend to go on and learn other, smaller languages.
In my case that was Scala. Still jvm-compatible but quite a bit further away from Java than Kotlin is.

It's those who like programming, those who are passionate about learning more, about teaching the language, about improving the programming community, who tend to end up in those less-popular languages. On top of that, a company who chooses Java does so because everyone else does. A company who chooses Scala or whatever does this from a conscious developer-backed decision. It means it's more likely that developers actually have a say in the day-to-day of the company.

As an example of what I mean, consider ScalaBridge. It's a worldwide volunteer organisation that teaches programming (using a Scala course) to underrepresented groups in software development for free, to give them a chance to enter the market and increase diversity in the field. ScalaBridge isn't the only Bridge organisation, there's ones for Ruby, Clojure, Go, Elixir, Elm, and Rust as well. They all teach underrepresented people programming in their own favorite language. But there aren't any Bridges for Java or C# or Python. I really believe this is because the people doing Java etc. aren't as dedicated to programming in general, simply because it's too common of a language.

So, do you want to stay safe in the big popular languages and is programming just a job for you? Java, C#, Python.
Are you actually passionate about programming and do you want to meet communities who are willing to help you expand your horizons? Any of the less popular languages.

Progressive JPEG
Feb 19, 2003

Pick the subject that you’re interested in working on, then learn the tools and languages commonly used by that subject.

Also Scala specifically is at a dead end - only used by projects that were founded during the brief period when it was fashionable - so 2013-2015 or so. It was a cool experiment but other languages (including Java itself) now do what Scala tried to do, better.

Carbon dioxide
Oct 9, 2012

Progressive JPEG posted:

Pick the subject that you’re interested in working on, then learn the tools and languages commonly used by that subject.

Also Scala specifically is at a dead end - only used by projects that were founded during the brief period when it was fashionable - so 2013-2015 or so. It was a cool experiment but other languages (including Java itself) now do what Scala tried to do, better.

Java is still trying to catch up to Scala and still failing. The other day I saw people on Twitter cheering about some feature in the upcoming Java 14 that has been in Scala for ages. And whenever Java does it they have to make it backwards compatible which usually leads to ugly syntax. Implementing monadic structures in Java is a bitch.

Scala is in active development, Scala 3 / Dotty is nearing release. There are a huge amount of actively developed libraries and applications written in and for Scala, such as Apache Kafka, Akka HTTP, Streams and Actors, the Play framework and so on. The market percentage of Scala grows year to year and the yearly things that make graphs of the most popular languages according to programmers show Scala users are some of the coders who give the highest ratings to their language.

I'm actually a bit afraid that Scala will cross a line soonish where it becomes commonplace enough that its community loses a bit of the passion and excitement.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Hi, it is me, a developer who went into the industry because it seemed like a decent living and picked Java because it was popular and thus signaled employability to me. For this reason I also quickly went to use Spring Boot as the systems architecture of microservices appeals to me and there was a ton of demand.
After using java for a while I wanted to do a few things and got annoyed by the java verbosity so now I mostly do Kotlin, for which I can see demand picking up.
Things I love about the JVM ecosystem is that just about every question has been asked and many problems are solved so I can stand on the shoulders of giants and see very far. Things I really dislike is that there are so many people who barely can code (which was me for a while as well!), that almost every application I encounter has really weird anti-patterns that just hurt my brain. These patterns just signal a lack of understanding from the writers (again, as did I and still do in a lot of aspects) but they are the people you have to work with regularly.

My understanding is that Go will be the next best thing or already is. I will stick with Java / Kotlin for a while and learn JS/React so I can make the backend available to the enduser through a basic FE. As an independent contractor, employability is important. For me as a person it is important people pay me good money to come into the office and solve their puzzles for them by touching the computer in magic ways and I will ride this gig out till the end, it is just to good.

Xarn
Jun 26, 2015
Scala is terrible to the point I'd rather work in a Java shop.

Progressive JPEG
Feb 19, 2003

Kafka only uses Scala for the broker itself, while the client libraries are Java since that’s what the rest of the world uses. In the meantime the more recent features in the Kafka ecosystem like ksql and Schema Registry are all written in Java, leaving only the original broker itself implemented in a mix of Scala and Java as a historic artifact.

Akka/Play framework was last relevant in 2016 or so? I honestly haven’t heard a thing about it since around then. Meanwhile it looks like Lightbend last took funding in 2017 so they’re probably due to re-up, get bought out, or close shop soon.

This is exactly what I mean - Scala was used during a brief interval when it was trendy but has turned out to be a flash in the pan. Other languages have adopted the good parts of Scala, while skipping the bad parts like type incompatibility and painful tooling. As a result there isn’t any reason to use Scala anymore outside of legacy code from the period when Scala was perceived as the next big thing.

And this is the exception that proves the rule: don’t pick languages in isolation, instead pick an interesting subject matter and learn the languages and tools that are being used to do that.

BabyFur Denny
Mar 18, 2003

Carbon dioxide posted:

Java is still trying to catch up to Scala and still failing. The other day I saw people on Twitter cheering about some feature in the upcoming Java 14 that has been in Scala for ages. And whenever Java does it they have to make it backwards compatible which usually leads to ugly syntax. Implementing monadic structures in Java is a bitch.

Scala is in active development, Scala 3 / Dotty is nearing release. There are a huge amount of actively developed libraries and applications written in and for Scala, such as Apache Kafka, Akka HTTP, Streams and Actors, the Play framework and so on. The market percentage of Scala grows year to year and the yearly things that make graphs of the most popular languages according to programmers show Scala users are some of the coders who give the highest ratings to their language.

I'm actually a bit afraid that Scala will cross a line soonish where it becomes commonplace enough that its community loses a bit of the passion and excitement.
You are confirming the post you're quoting by bringing up projects all from that 2013-2015 phase.
And scala can't even stay compatible between minor versions (i.e. 2.10 to 2.11) so I'm looking forward to the fun that scala3 will be.

Carbon dioxide
Oct 9, 2012

I don't know what your folks are talking about, all these projects are still in active development and used by a lot of projects.

Are you saying I also shouldn't use Java libraries where version 1 was released in 2015 and that are still in active development because they were first thought of long ago?

Yes, the version incompatibilities are a hassle but it's usually not that bad for minor version upgrades and it certainly beats still being stuck to syntax from 20 years ago because Java has decided to be backwards compatible forever (also it isn't, really, but when Java is backwards incompatible it's subtle and you usually only find out at runtime when something breaks). For Scala 3 the switchover is gonna be large, I just hope the migration tooling and documentation they're already writing will help us a lot.

Hollow Talk
Feb 2, 2014

Progressive JPEG posted:

Kafka only uses Scala for the broker itself, while the client libraries are Java since that’s what the rest of the world uses. In the meantime the more recent features in the Kafka ecosystem like ksql and Schema Registry are all written in Java, leaving only the original broker itself implemented in a mix of Scala and Java as a historic artifact.

I've played around with Kafka and Kafka Streams in Clojure, just using Java Interop to use the Kafka libraries directly, and it's been quite nice.

I wouldn't mind a LISP job more generally, but most Clojure jobs I see are in writing e-commerce and web microservices, which I care little about. I'm actually still surprised how much of data integration and data science settled on Python, given its lovely threading model, typing model, and mutability.

:saddowns:

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Carbon dioxide posted:

I don't know what your folks are talking about, all these projects are still in active development and used by a lot of projects.
It's fine that you're firmly in the Scala camp but the point of the posters is that all major Scala development in these projects was done 5 years ago and that more recent development of those projects (and all development of generally newer projects) is not happening in Scala.

I hope that Scala 3 will be good, but at this point it feels like most momentum is lost and people don't really care.

If, like you, you're in the middle of the Scala community this is probably different since everyone's excited. Outside of the community nobody cares anymore.

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man

Hollow Talk posted:

I've played around with Kafka and Kafka Streams in Clojure, just using Java Interop to use the Kafka libraries directly, and it's been quite nice.

I wouldn't mind a LISP job more generally, but most Clojure jobs I see are in writing e-commerce and web microservices, which I care little about. I'm actually still surprised how much of data integration and data science settled on Python, given its lovely threading model, typing model, and mutability.

:saddowns:

I have a suspicion it was numpy and matplotlib early on and that was pretty much all she wrote

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Carbon dioxide posted:

A company who chooses Scala or whatever does this from a conscious developer-backed decision. It means it's more likely that developers actually have a say in the day-to-day of the company.

A company that chooses Scala effectively signals that they want to either have a perpetual hiring problem or get bent over a barrel for comp. Semi-esolang selection is job security, not principle.

Mega Comrade
Apr 22, 2004

Listen buddy, we all got problems!

Carbon dioxide posted:

A company who chooses Scala or whatever does this from a conscious developer-backed decision. It means it's more likely that developers actually have a say in the day-to-day of the company.


It's also just as likely the company is run by some senior dev who's been there forever and insists on everyone using whatever his current pet language is instead of the best one for the job.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Carbon dioxide posted:

Scala is love. Scala is life.

Hello, passionate developer here, I'd be happy to learn another language and have done so when necessary, but as an Android developer who's been stuck on legacy projects for a while now I've been doing Java all day and I'm just too drained after work from other commitments like Having A Life to spend my time out of work ducking around with other languages. Having children reduced my spare time programming to ~0, so I haven't had an opportunity to play around with other things outside of work. I'm glad that you think that Scala is Turbo Keen and all but please don't think that anyone who still uses Java is a mouth breathing moron, some of us just have other priorities than evangelizing.

Carbon dioxide
Oct 9, 2012

Volmarias posted:

Putting words in my mouth

Let me just say that I barely spend any time at all outside of working hours programming or learning to program or whatever. I learned Java in univ and everything else was learned on the job.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

Carbon dioxide posted:

As an example of what I mean, consider ScalaBridge. It's a worldwide volunteer organisation that teaches programming (using a Scala course) to underrepresented groups in software development for free, to give them a chance to enter the market and increase diversity in the field. ScalaBridge isn't the only Bridge organisation, there's ones for Ruby, Clojure, Go, Elixir, Elm, and Rust as well. They all teach underrepresented people programming in their own favorite language. But there aren't any Bridges for Java or C# or Python. I really believe this is because the people doing Java etc. aren't as dedicated to programming in general, simply because it's too common of a language.

Holy poo poo this is funny.

CPColin
Sep 9, 2003

Big ol' smile.
Hi everybody,

If you're at a Java shop or, God forbid, a Groovy shop, convince your coworkers to switch to Kotlin. It'll make life better for all of us.

Love,
Colin, who is the only developer in his department and is slowly throwing away piles of lovely Groovy/Grails code and replacing them with Kotlin+Spring Boot

redleader
Aug 18, 2005

Engage according to operational parameters
you can objectively compare how passionate developers are simply by comparing the esoteric-ness of the languages in their cv

Achmed Jones
Oct 16, 2004



Also how estranged their family is. The more abandonment issues the kids have, the closer the dev is to 10x

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


I'm not 100% sure I agree with it, but The Python Paradox (2004) raises some interesting points.

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





Gildiss posted:

I haven't seen any places that would consider people without X years of experience in their specific language of choice though.

Yeah, programming is a skill and the languge is just a way of applying that. But most employers don't see it that way.

i didn't say don't learn new skills. just don't start with your favorite language and seek employment based primarily on that

cyka blyat
Sep 12, 2018

1999. What appeared to be a harmless meteorite crashing in the Nevada desert has turned out to be Darc Seed, an evil alien creature with horrible powers. By shooting strange magnetic rays, Darc Seed had turned the helpless nation into zombies and had brought the Statue of Liberty to life to do his dirty work. These rays had also given him control over many deadly weapons, but none were more powerful than the legendary samurai sword, Shura. When the great head of the samurai, Namakubi, heard that the sword had fallen into evil hands, he set off immediately for the United States. For only he possessed the strength and knowledge needed to recapture the magical sword and free the U.S. from the evil clutches of Darc Seed.

I'm not really sure why people are so focused on languages. Languages are a means to an end. I am honestly interested on why you are so focused on languages.

I myself am a JavaScript engineer who has been using Java 11 and React for the past year. It works, it is fine, and I solve interesting problems. I am less concerned with the idiosyncracies of the language and more with the problems I am trying to solve.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
Yeah, but people are always gonna get passionate about their tools. It's true in jobs, in all industries. And it's fun.

Achmed Jones
Oct 16, 2004



There's a certain point in a computer-toucher's career where they stop considering themselves as knowing language x and start considering themselves as knowing how to program. After that point, languages only are important with respect to their effect on a career, how painful they are to work with (usually this isn't much of a problem), and the level of interest in whatever domain they specialize in, if such exists.

Before that point, though, knowing particular languages seems important

Bongo Bill
Jan 17, 2012

Languages are useful in that they can be built in such a way that make certain kinds of programming mistakes more difficult to make.

captkirk
Feb 5, 2010
If your current familiarity with a company's chosen language is a significant factor in their hiring decision it means they don't want to give you the time to learn and that is definitely a warning flag to me.

ulmont
Sep 15, 2010

IF I EVER MISS VOTING IN AN ELECTION (EVEN AMERICAN IDOL) ,OR HAVE UNPAID PARKING TICKETS, PLEASE TAKE AWAY MY FRANCHISE

ultrafilter posted:

I'm not 100% sure I agree with it, but The Python Paradox (2004) raises some interesting points.

Not really. The key points:

quote:

Hence what, for lack of a better name, I'll call the Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.

This is, well, myopic on both sides.

First: to be blunt, hiring better programmers is not usually the primary goal of a company, as compared to a research think tank or something. The primary goal is typically to make money. The secondary goal then is to produce software that will make money. The tertiary goal is to hire progammers than can produce that software.

...put another way: you don't need to hire 10X programmers to janitor your signup form and your internationalization.

Second: what makes a job good or bad is, over time, how much of an rear end in a top hat your coworkers are and how unreasonably demanding your clients (internal or external) are. This has little to do with how smart your coworkers are past a certain point.

Carbon dioxide
Oct 9, 2012

captkirk posted:

If your current familiarity with a company's chosen language is a significant factor in their hiring decision it means they don't want to give you the time to learn and that is definitely a warning flag to me.

Indeed.

ulmont posted:

First: to be blunt, hiring better programmers is not usually the primary goal of a company, as compared to a research think tank or something. [...] you don't need to hire 10X programmers to janitor your signup form and your internationalization.

So, that changes the question to, do you wish to work for a company that asks you to do 'janitoral' programming as you call it, or a company that is exploring new fields and asks their programmers to investigate solutions to unsolved problems.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...
I'll take the one that pays me promptly and handsomely, thanks.

captkirk posted:

If your current familiarity with a company's chosen language is a significant factor in their hiring decision it means they don't want to give you the time to learn and that is definitely a warning flag to me.

Strange how they would want you to be effective as soon as possible rather than taking months to, maybe, get up to speed, especially when there are other candidates waiting in the wings.

Achmed Jones posted:

There's a certain point in a computer-toucher's career where they stop considering themselves as knowing language x and start considering themselves as knowing how to program. After that point, languages only are important with respect to their effect on a career, how painful they are to work with (usually this isn't much of a problem), and the level of interest in whatever domain they specialize in, if such exists.

Before that point, though, knowing particular languages seems important

:hai:

The language is a means to an end to get your foot in the door. If you're a competent developer you can learn whatever language you'll need to.

captkirk
Feb 5, 2010

Volmarias posted:


Strange how they would want you to be effective as soon as possible rather than taking months to, maybe, get up to speed, especially when there are other candidates waiting in the wings.


Every employee has spin up time, they're learning the tooling, the code base, company process, company code patterns and style, who on the team knows what, etc. Learning a new language is a fairly small part of that for most people beyond entry level. If a company is trying to optimize for minimal spin up time too much I consider that a warning sign because it points towards planning and scaling issues or just bad culture.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Carbon dioxide posted:

So, that changes the question to, do you wish to work for a company that asks you to do 'janitoral' programming as you call it, or a company that is exploring new fields and asks their programmers to investigate solutions to unsolved problems.

I prefer stable, established companies that produce software as their primary source of revenue, which tends to mean they have non-insulting amounts of money they're willing to direct towards their developers.

It also tends to mean that I work most often on existing code bases, many of which are shall we say extremely legacy. Sometimes the business people will ask me to add or change some poo poo that is very basic, which sure could be classified as janitorial. Other times the business people will ask me to add or change some poo poo that looks very basic but actually requires I do a ton of investigation, careful refactoring and modification, and sometimes advise against the change in favor of something completely different. I enjoy it quite a bit, though I don't fault anyone for preferring green field over brown.

I don't want to work for a corporate CRUD factory whose revenue isn't directly tied to the software I produce, because that's not quite so fulfilling. And while the prospect of working on something brand new nobody's ever solved might sound exciting on its face, it also sounds a lot less stable, and for me this is a job, a means to a life outside of work, so as long as they're still paying well, I'll choose the stability.

Adbot
ADBOT LOVES YOU

Xarn
Jun 26, 2015

captkirk posted:

Every employee has spin up time, they're learning the tooling, the code base, company process, company code patterns and style, who on the team knows what, etc. Learning a new language is a fairly small part of that for most people beyond entry level. If a company is trying to optimize for minimal spin up time too much I consider that a warning sign because it points towards planning and scaling issues or just bad culture.

OTOH my experience says that going from "this person writes Python and JS" to "this person can now write C++ without his team tearing their hair out during code review" is pretty long road.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply