Software Development and Programming Careers (Official Discussion Thread)

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ

:hubie:
I wouldn't say terrible, but im sure his arguments are valid. 2 jokes that come to mind are "Python is the 3rd best option for any problem" and "There's 2 types of programming languages, ones that people complain about, and ones nobody uses". So I take these posts/complaints with a grain of salt, as ulttimately, the business doesn't care until it costs them time or money.

I do agree, for bigger, more complex systems, you probably want something a bit more structured than python. I like it for my Data Engineering pipelines, small backend apis, and for expermintal stuff (messing around with pdfs, web scraping, and data entry automation). Never seen Rust though. Is that a compiled language?
 

null

...
Joined
Nov 12, 2014
Messages
28,835
Reputation
4,851
Daps
46,017
Reppin
UK, DE, GY, DMV
I wouldn't say terrible, but im sure his arguments are valid.

it's bordering on terrible.

2 jokes that come to mind are "Python is the 3rd best option for any problem" and "There's 2 types of programming languages, ones that people complain about, and ones nobody uses".

how many people use complex maths?

yet it underpins almost everything in our modern way of life.

popularity is not the arbiter of correctness.

he gave "reasons" and in 10 years of seeing topics in this direction i have yet to see "counter reasons".

he is right about the error search space being much bigger with python.

and he is right about it fostering bad practice.

in reply it's mostly just euphemisms, red mist and/or hand waving it away.

So I take these posts/complaints with a grain of salt

taking facts with a grain of salt :patrice:

, as ulttimately, the business doesn't care until it costs them time or money.

surely we should be more concerned with the industry and the larger effect.

I do agree, for bigger, more complex systems, you probably want something a bit more structured than python. I like it for my Data Engineering pipelines, small backend apis, and for expermintal stuff (messing around with pdfs, web scraping, and data entry automation). Never seen Rust though. Is that a compiled language?

yes rust is compiled.

cat hw.rs

fn main() {
println!("hw");
}

rustc hw.rs

./hw
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
it's bordering on terrible.



how many people use complex maths?

yet it underpins almost everything in our modern way of life.

popularity is not the arbiter of correctness.

he gave "reasons" and in 10 years of seeing topics in this direction i have yet to see "counter reasons".

he is right about the error search space being much bigger with python.

and he is right about it fostering bad practice.

in reply it's mostly just euphemisms, red mist and/or hand waving it away.



taking facts with a grain of salt :patrice:



surely we should be more concerned with the industry and the larger effect.



yes rust is compiled.

cat hw.rs

fn main() {
println!("hw");
}

rustc hw.rs

./hw
Meh, I'm the wrong one to argue with on these things, cause I don't care that much. I said take it wit a grain of salt because I've seen multiple posts why language x is terrible and a good amount of people still use said language.

I don't mind learning or relearning any language, but development has always been an art in my life, and python has been solid enough for me to get done what I need without a lot of overhead. Rust is fairly new, so I haven't really seen it applied at the job anywhere yet. But I'm sure with time, if it and other languages are able to address the reason people use python, with all those other facts mentioned, then python will be phased out.

For my use cases, Python gets the job done. When I need to get back into game development or something more complicated, I'll switch back to C# ( or whatever Unity uses these days) or I'll learn Rust, since it sounds like its pretty solid.

Edit: Now that I'm thinking about this, I like this discussion. I change my original statement of I don't care that much. Do you champion Rust or have a preference in programming language?
 
Last edited:

null

...
Joined
Nov 12, 2014
Messages
28,835
Reputation
4,851
Daps
46,017
Reppin
UK, DE, GY, DMV
Meh, I'm the wrong one to argue with on these things, cause I don't care that much. I said take it wit a grain of salt because I've seen multiple posts why language x is terrible and a good amount of people still use said language.

I don't mind learning or relearning any language, but development has always been an art in my life, and python has been solid enough for me to get done what I need without a lot of overhead. Rust is fairly new, so I haven't really seen it applied at the job anywhere yet.

Rust is being used in the linux kernel in place of C.


But I'm sure with time, if it and other languages are able to address the reason people use python, with all those other facts mentioned, then python will be phased out.

For my use cases, Python gets the job done. When I need to get back into game development or something more complicated, I'll switch back to C# ( or whatever Unity uses these days) or I'll learn Rust, since it sounds like its pretty solid.

Edit: Now that I'm thinking about this, I like this discussion. I change my original statement of I don't care that much. Do you champion Rust or have a preference in programming language?

I don't champion any language really. My arguments and position are similar to the author.

Any comments about the benefits./drawbacks of strong typing especially related to error space (for example)?
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
Rust is being used in the linux kernel in place of C.




I don't champion any language really. My arguments and position are similar to the author.

Any comments about the benefits./drawbacks of strong typing especially related to error space (for example)?
No, not really. I think the point of python is make it low barrier to entry and move quickly. There are situations where what I'm trying to accomplish doesn't need to be super performant and I dont need the extra overhead of a compiled strongly typed language. But as I said, when you start working on complex systems, especially ones where you need to manage a variable amount of objects and memory, then you should move out of Python.

I understand the bad practices that Python allows, because even though you have the ability to do many/some (i havent checked off a list so I'm not sure how much) of the strongly typed languages things, they are mainly best practices and not built into the functionality of the language. Also, its hard to tell when your project is changing from a simple use case to a complex, especially for someone who only learned python. There are tradeoffs in between languages, and I don't think any language is terrible (Im lying, I hate javascript, lol). Any language that needs to be phased out gets phased out naturally

Edit: I also haven't ran into these issues of unexpected types for a variable in production code with python. I know how they can happen, but again, I haven't worked within a complex python codebase where you need to create test cases for every possible input.
 
Last edited:

null

...
Joined
Nov 12, 2014
Messages
28,835
Reputation
4,851
Daps
46,017
Reppin
UK, DE, GY, DMV
No, not really. I think the point of python is make it low barrier to entry and move quickly.

the point of all of these languages is to "build stable systems" surely

There are situations where what I'm trying to accomplish doesn't need to be super performant and I dont need the extra overhead of a compiled strongly typed language.

name an overhead of a strongly typed language.

weakly typed languages have the overhead because objects are bound dynamically.

But as I said, when you start working on complex systems, especially ones where you need to manage a variable amount of objects and memory, then you should move out of Python.

I understand the bad practices that Python allows, because even though you have the ability to do many/some (i havent checked off a list so I'm not sure how much) of the strongly typed languages things, they are mainly best practices and not built into the functionality of the language. Also, its hard to tell when your project is changing from a simple use case to a complex, especially for someone who only learned python. There are tradeoffs in between languages, and I don't think any language is terrible (Im lying, I hate javascript, lol). Any language that needs to be phased out gets phased out naturally

Edit: I also haven't ran into these issues of unexpected types for a variable in production code with python. I know how they can happen, but again, I haven't worked within a complex python codebase where you need to create test cases for every possible input.

what about the error space problem. that's bound up with the issue of technical debt. i've mentioned it at least twice and it is one of the main points of the article that i posted.

that does not amass after just 5 - 15 years (python and similar languages craze window).

:hubie:

i'm using the python jsonschema library now to do something and it is crap.

clearly cobbled together by a bunch of hobbyists.
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
the point of all of these languages is to "build stable systems" surely
I don't think that's the point of programming languages. I think its the point of some programming languages. Ultimately, it comes down to the engineer/solutions architect overseeing the project

name an overhead of a strongly typed language.

weakly typed languages have the overhead because objects are bound dynamically.
The overhead of what one needs to be written and known in order to get their code done. For instance, if I want to just read data from an api, then write it out as a parquet file, and maybe add a couple extra fields, its pretty simple code, using pandas and the request libraries. I don't need to know the schema of the data I'm getting when I'm getting it. With statically typed languages, its a bit more verbose. Plus, from my experience, you'll need to know all the fields you need before hand, not sure if there's a package in C#, Java, or Rust for the same.


what about the error space problem. that's bound up with the issue of technical debt. i've mentioned it at least twice and it is one of the main points of the article that i posted.

that does not amass after just 5 - 15 years (python and similar languages craze window).
Again, this is something that I think is a tradeoff. The simpler the system, the less the error space problem is that big of an issue. Complex enterprise software isn't something I'd use python for, but for data engineering work or ai model training, you don't have these huge error space problems. Even the article states he's ran into the error handling when deploying new versions of BIG python applications.

:hubie:

i'm using the python jsonschema library now to do something and it is crap.

clearly cobbled together by a bunch of hobbyists.
Yea, I've never used jsonschema, looks annoying, lol. Have you tried pydantic? That'll at least have you working with an object.
But yea, you'll get those type of libraries at times in python. I'd say python has more non software engineers working within it than statically typed languages, so it wouldn't surprise me that there are less cobbled together libraries in those.
 

null

...
Joined
Nov 12, 2014
Messages
28,835
Reputation
4,851
Daps
46,017
Reppin
UK, DE, GY, DMV
I don't think that's the point of programming languages. I think its the point of some programming languages. Ultimately, it comes down to the engineer/solutions architect overseeing the project

yes they are. i'm not going to go in circles about it but each layer of abstraction in computing is intended to bring more order from more chaos.

the primitives at each layer should increasingly protect the user/developer from themselves.

The overhead of what one needs to be written and known in order to get their code done. For instance, if I want to just read data from an api, then write it out as a parquet file, and maybe add a couple extra fields, its pretty simple code, using pandas and the request libraries. I don't need to know the schema of the data I'm getting when I'm getting it. With statically typed languages, its a bit more verbose. Plus, from my experience, you'll need to know all the fields you need before hand, not sure if there's a package in C#, Java, or Rust for the same.

given that a dev is type agnostic, if it is not binary it can be held in a (unicode) string.

Qt has a variant type from what I remember which is a DB any (many) type type.


not a lot of work to be honest.

the error space increase is not just an order of magnitude, it is intractable.

Again, this is something that I think is a tradeoff. The simpler the system, the less the error space problem is that big of an issue. Complex enterprise software isn't something I'd use python for, but for data engineering work or ai model training, you don't have these huge error space problems. Even the article states he's ran into the error handling when deploying new versions of BIG python applications.

anything non trivial is going to hit technical debt issues with weak typing when someone new to the code base has to change it.

that debt does not become apparent under years later.



Yea, I've never used jsonschema, looks annoying, lol. Have you tried pydantic? That'll at least have you working with an object.
But yea, you'll get those type of libraries at times in python. I'd say python has more non software engineers working within it than statically typed languages, so it wouldn't surprise me that there are less cobbled together libraries in those.

i'm using jsonschema just for this one task and then i will hand off the future python development to others.

i'm just defining some data and giving them a starting point for loading, deserializing, validation.

so it won't be for long.

for my next step i am free to use any reasonable language - so its gonna be done in c++, rust :takedat: or (yup) python.

... as python is better for the resume ... :hhh:

rust is an potential (safer) replacement for c++ so I need to practice.
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
yes they are. i'm not going to go in circles about it but each layer of abstraction in computing is intended to bring more order from more chaos.

the primitives at each layer should increasingly protect the user/developer from themselves.



given that a dev is type agnostic, if it is not binary it can be held in a (unicode) string.

Qt has a variant type from what I remember which is a DB any (many) type type.


not a lot of work to be honest.

the error space increase is not just an order of magnitude, it is intractable.



anything non trivial is going to hit technical debt issues with weak typing when someone new to the code base has to change it.

that debt does not become apparent under years later.





i'm using jsonschema just for this one task and then i will hand off the future python development to others.

i'm just defining some data and giving them a starting point for loading, deserializing, validation.

so it won't be for long.

for my next step i am free to use any reasonable language - so its gonna be done in c++, rust :takedat: or (yup) python.

... as python is better for the resume ... :hhh:

rust is an potential (safer) replacement for c++ so I need to practice.
Yea, I think we disagree on point one, but I do understand other software dev's issues with python. I used to dislike it too coming form the C# space mainly because of the dynamic typing, but I like it for what it is, a versatile scripting language. I also haven't experienced these huge tech debt issues in python code bases that have been around for 5+ years.
 

null

...
Joined
Nov 12, 2014
Messages
28,835
Reputation
4,851
Daps
46,017
Reppin
UK, DE, GY, DMV
Yea, I think we disagree on point one, but I do understand other software dev's issues with python. I used to dislike it too coming form the C# space mainly because of the dynamic typing, but I like it for what it is, a versatile scripting language. I also haven't experienced these huge tech debt issues in python code bases that have been around for 5+ years.

the question of whether weak typing fosters technical debt (etc) cannot boil down to my personal experience.

gotta factor in the experiences of others, the rational, the reasoned arguments.

the scientific approach.

-

in the first moon landing they couldn't proceed based purely on what they had personally experienced before.

otherwise the astronauts would have suffocated on the moon or have come to some other unfortunate end.

repeat ad-infinitum for most professions.

-

the guardrails of the merits of languages are the principles which form the education of every programmer.

or should.

:hubie:
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
the question of whether weak typing fosters technical debt cannot boil down to my personal experience.

gotta factor in the experiences of others, the rational, the reasoned arguments.

the scientific approach.

-

in the first moon landing they couldn't proceed based purely on what they had personally experienced before.

otherwise the astronauts would have suffocated on the moon or have come to some other unfortunate end.

repeat ad-infinitum for most professions.

-

the guardrails of the merits of languages are the principles which form the education of every programmer.

or should.

:hubie:
The moon landing is a complex situation that requires nuance and complex math. Like you CANNOT fukk that up, cause people's lives can be lost. I would never consider python for some system like that. Now if you're using the example of going to the grocery store cause I need to pick up some milk, I'd say python is like a bike, and statically typed languages are like cars. I can give you all the reasons why a car is better to go to the grocery store with, but if I'm just going to pick up some milk, its really not that big a deal. Cars had a trunk, extra space, they're faster. I can play my music. But I have to follow all the streets. I can't take any shortcuts unless they're wide enough for my car. Then if the distance is really short, do I really want to open the garage, back the car out of the driveway, make sure I have enough gas, figure out the parking situation? Me, if I'm going to jut pick up some milk, I'm going to walk or take a bike...unless is cold, lol. I'm taking he car then
 

Sunshine

Banned
Supporter
Joined
Mar 11, 2022
Messages
428
Reputation
360
Daps
1,026
Are any of you in Bioinformatics?

If so, what is your most frequently used language between Julia, Python, AWK and R?

Also, for multi-omics data, are you guys using ML or DL on your team?
 

Regular Developer

Supporter
Joined
Jun 2, 2012
Messages
7,860
Reputation
1,726
Daps
22,095
Reppin
NJ
I moved up to managing. Not gonna lie, I'm a lil nervous :lupe:.

But now I'm seeing what my manager's had to go through. The emails don't stop. I have no new meeting invites since the beginning of the week, yet my calendar is full for the rest of the week. Microsoft teams keeps pinging :damn::damn::damn:
 
Joined
Apr 3, 2014
Messages
71,910
Reputation
17,068
Daps
305,859
I moved up to managing. Not gonna lie, I'm a lil nervous :lupe:.

But now I'm seeing what my manager's had to go through. The emails don't stop. I have no new meeting invites since the beginning of the week, yet my calendar is full for the rest of the week. Microsoft teams keeps pinging :damn::damn::damn:



But did the money move up? :mjgrin:
 

Obreh Winfrey

Truly Brehthtaking
Supporter
Joined
Nov 18, 2016
Messages
20,667
Reputation
25,191
Daps
131,047
I moved up to managing. Not gonna lie, I'm a lil nervous :lupe:.

But now I'm seeing what my manager's had to go through. The emails don't stop. I have no new meeting invites since the beginning of the week, yet my calendar is full for the rest of the week. Microsoft teams keeps pinging :damn::damn::damn:
Well what I've learned about management from being an IC is escalate, create a false sense of urgency, suck off leadership, get paid :manny: .
 
Top