New around here? Register your SA Forums Account here!

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
Scionix
Oct 17, 2009

hoog emm xDDD
Ok thank you people trying to explain python to me.

Frankly the whole "it's not really pass by reference OR pass by value" doesn't really make intuitive sense to me but I figure I'll get there eventually.

For the time being, I'm mentally categorizing it as 'stuff is pass by reference in a function when the stuff is mutable' and 'its pass by value when it's not mutable'

I know that is a simplification of 'python assigns names to values, which are really all objects' but it's the only way for me to think about it right now

What is the benefit of doing typing/variable mapping like this, other than 'durr you don't got to put da variable type in da code'

Adbot
ADBOT LOVES YOU

gonadic io
Feb 16, 2011

>>=

Scionix posted:

Ok thank you people trying to explain python to me.

Frankly the whole "it's not really pass by reference OR pass by value" doesn't really make intuitive sense to me but I figure I'll get there eventually.

For the time being, I'm mentally categorizing it as 'stuff is pass by reference in a function when the stuff is mutable' and 'its pass by value when it's not mutable'

I know that is a simplification of 'python assigns names to values, which are really all objects' but it's the only way for me to think about it right now

What is the benefit of doing typing/variable mapping like this, other than 'durr you don't got to put da variable type in da code'

duck typing (whether static or dynamic) is much more flexible - one example that always gets brought up is erlang swapping out code modules at runtime because Butt1.0 has the same fields as Butt2.0 whereas a strict compiler would say "hey buddy you were expecting a Butt1.0 but they're passing some other poo poo I can't accept it"

Soricidus
Oct 20, 2010
freedom-hating statist shill

Scionix posted:

I know that is a simplification of 'python assigns names to values, which are really all objects' but it's the only way for me to think about it right now

What is the benefit of doing typing/variable mapping like this, other than 'durr you don't got to put da variable type in da code'

in the case of python, the benefit was initially that everything was very simple to understand. it was all just dictionaries. an object is a dictionary: call a method = look up the method name in the object dictionary to find the method, and then invoke it with whatever parameters you have. set a variable = write the value to the current scope's dictionary using the name as the key. "foo.bar.baz()" just means "look up foo in the current scope dictionary, then look up bar in foo's dictionary, then look up baz in bar's dictionary, then try to call that as a function". sometimes if you don't find the thing in one dictionary then you look in another (e.g. go from an object's dictionary to it's class's dictionary to the parent class's dictionary; go from the local scope to the global scope).

of course it's ended up being a bit more complicated than that with poo poo like __getattribute__ breaking the simple model, but at its heart it's still just lots of dictionaries

"duck typing" is just the fancy name they bolted on after the fact to describe the behavior created by this simple implementation technique. nothing really knows or care about types, it just blindly reads things out of dictionaries and throws an exception if it can't find what it's looking for. it turns out this is exactly what you want for small-scale prototyping.

allegedly some people manage to make it work well in large scale programs too, and all i can say is they must have a hell of a lot more discipline than i do because whenever i write something large in python it ends up being a horrible fragile mess and i have to throw it away and start over in a statically typed language so the compiler can hold my hand. but maybe that's just me belonging in this thread.

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

Soricidus posted:

allegedly some people manage to make it work well in large scale programs too, and all i can say is they must have a hell of a lot more discipline than i do because whenever i write something large in python it ends up being a horrible fragile mess and i have to throw it away and start over in a statically typed language so the compiler can hold my hand. but maybe that's just me belonging in this thread.

I don't have the audacity to say that I "manage to make it work well" because well I'm a Terrible Programmer, but I seriously don't get much out of the compiler when I do C++ compared to python. In some sense I feel like sometimes it gives me false confidence on things that I should've tested more throughly (be it through unit testing or just running the program)

oh also I get it that people like to use the compiler for refactoring like say renaming variables/functions and I see why it's annoying for them when they try doing something similar in a dynamic language.

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER


try catch is the dream of large scale python

until you meet something new or something you didn’t think of and your world collapses

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

Scionix posted:

Ok thank you people trying to explain python to me.

Frankly the whole "it's not really pass by reference OR pass by value" doesn't really make intuitive sense to me but I figure I'll get there eventually.

For the time being, I'm mentally categorizing it as 'stuff is pass by reference in a function when the stuff is mutable' and 'its pass by value when it's not mutable'

btw I think ned batchelder got the best material on this, he has great examples: https://nedbatchelder.com/text/names1.html

Soricidus
Oct 20, 2010
freedom-hating statist shill

Symbolic Butt posted:

I don't have the audacity to say that I "manage to make it work well" because well I'm a Terrible Programmer, but I seriously don't get much out of the compiler when I do C++ compared to python. In some sense I feel like sometimes it gives me false confidence on things that I should've tested more throughly (be it through unit testing or just running the program)

oh also I get it that people like to use the compiler for refactoring like say renaming variables/functions and I see why it's annoying for them when they try doing something similar in a dynamic language.

yeah it's refactoring that's the problem. not just renaming but also changing signatures. like if you realise a method needs to take two parameters instead of one, in java you add the parameter to the method and then the compiler immediately tells you every other place you need to change to match it. in python you just don't have that because most static analysis tools aren't smart enough to do much beyond "here's a place where a method of the same name was called with one parameter", it can't be sure if it's actually the same method or not so it's up to you to figure out what needs to change.

duck typing also brings pain to undisciplined programmers because nothing forces you to record what assumptions your code is making. in languages like java you have to say explicitly what your interfaces are and what calls them and what implements them, and the compiler yells at you if you deviate from that. in python you can just write code that uses an implicit interface and pass it objects that implicitly match that interface and it all just magically works, which is great because you can write all the code instead of wasting time pacifying the compiler, and you feel super-productive. and then you forget the details or accidentally make things inconsistent, and now your code is an unmaintainable mess and you don't have a clue how all the parts fit together. or at least that's my experience as a terrible programmer.

and sure, tests can help - but the problem with tests is that they're optional and so idiots don't always bother writing them, and sod's law dictates that the test that doesn't get written is the one that would have caught the bug you're trying to fix. static typing may only be able to prevent a tiny subset of the bugs proper testing can catch, but the fact that it's not optional means it's automatically a million times more useful to me.

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

I was writing a toy script in Python and was trying to figure out how I could get a function to only work on the proper sort of thing I wanted it to

and then had an epiphany

Scionix
Oct 17, 2009

hoog emm xDDD
How about guython and it's a programming language just for the fellas

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



you can apparently annotate types since 3.5 but it seems pretty doomed when you have to import a module and use a third party (i think) tool to check them imo

https://docs.python.org/3/library/typing.html

Carthag Tuek fucked around with this message at 01:53 on Feb 1, 2019

floatman
Mar 17, 2009
Apparently the people who started this webapp thought that if you're using a MVC framework, your entire app can only contain models, views and controllers.
There's a comment here that states something to the effect of "here's a function but we have no classification for it so it's being kept here in this random class do not worry kthx".
Like it would have killed them to just make a simple class to store it but nope MVC MEANS MVC ONLY

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost

Krankenstyle posted:

you can apparently annotate types since 3.5 but it seems pretty doomed when you have to import a module and use a third party (i think) tool to check them imo

https://docs.python.org/3/library/typing.html

mypy is like 1.5 party, guido pops in occasionally

Slurps Mad Rips
Jan 25, 2009

There's No Guarantee
c tp s: I'm trying to (desperately) make sure I never have to touch CMake again (this is a lie, but if it means I have to touch it less often then its worth it) by writing a library that does the common operations everyone does in CMake automatically. Even a few of the maintainers are keeping an eye on it. This means I've been deep into CMake and know it to a degree that the average mere mortal is nowhere near understanding. So here's a small "Everything you never wanted to know about CMake" post

  • contrary to popular belief variables in cmake can be any valid unicode byte sequence the hard part is dereferencing said variable. Want to get the value out of it? You'll need to escape each non-alphanumeric non "-./_" byte. This means you can have variables named 💩that can be set as booleans (since an if() dereferences automatically), but can't actually be dereferenced unless you do some magic byte poo poo and that's error prone.
  • this rule of what constitutes a valid identifier also applies to properties, cache vars, you name it except commands. (macros/functions)
  • add_library(whatever::dude::gently caress::it INTERFACE IMPORTED) is basically how you can have namespaced dictionary types in cmake. These exist at the directory scope (the old pre-CMake 2.8 default scope) and are available anywhere below their definition, but not available above.
  • cmake actually supports "destructors" so you can fire events off at the very end of its configure step. just call variable_watch on CMAKE_CURRENT_DIR and when its set to an empty string you'll know you're done configuring.
  • because cmake treats lists as strings separated by semicolons, a lot of the core cmake devs resort to its internal lovely regex engine for escaping. I said "gently caress that" and decided to do string replacements using the old ascii control code separator units of FS,GS,RS, and US. This allowed me to take the above "dictionary" types and then serialize them to disk. vim and emacs render these files in a not terrible way so the data is still readable.
  • remember above when I said "any valid unicode sequence"? I lied. Properties also permit invalid byte sequences, so I can have a key named INTERFACE_${c0} where c0 is the invalid byte C0 and you can't loving stop me.
  • there are more than just ${variable} style variable references in CMake. There is also CACHE{VAR} and ENV{VAR} references for the CMakeCache.txt and environment variables respectively. You can also make custom variable references like the ones found in the ExternalData module. So I said "Well, what if I had a variable syntax to represent a git repository or a zip file or archive?", so now I can do fetch(HUB{catchorg/catch2@v2.6.0}) because gently caress you
  • generator expressions combined with file(GENERATE) allow you to do things like
    • generate a response file for use in some other target
    • generate a custom toolchain that is invisible to the average person because you injected a custom target_sources command
    • generate a pch which the developers of cmake has said would be hard and impossible to do because they are cowards unwilling to enter into a dark contract with an eldritch demon named "Grant"
    • never have to touch grpc or protobuf's bullshit cmake garbage ever again
    • generate unity builds on a per directory basis

How am I getting this loving shitshow of a library out to people? They put a FetchContent call at the top of their build file and watch the fireworks. You'll only ever use like 5, maybe 6, commands unless you're doing some wacky poo poo like generating an ar script as a hack or whatever.


I loving hate cmake

taqueso
Mar 8, 2004


:911:
:wookie: :thermidor: :wookie:
:dehumanize:

:pirate::hf::tinfoil:

that is an impressive amount of hate
i'm sorry

Powerful Two-Hander
Mar 9, 2004

Mods please change my name to "Tooter Skeleton" TIA.


floatman posted:

Apparently the people who started this webapp thought that if you're using a MVC framework, your entire app can only contain models, views and controllers.
There's a comment here that states something to the effect of "here's a function but we have no classification for it so it's being kept here in this random class do not worry kthx".
Like it would have killed them to just make a simple class to store it but nope MVC MEANS MVC ONLY

haha nice. I remember when I first started fiddling with mvc I thought the same thing until I realised that I could just ~create another class directory in the solution~ for common methods or whatever and use a sensible namespace and it was all cool

so sfyl I guess

Powerful Two-Hander
Mar 9, 2004

Mods please change my name to "Tooter Skeleton" TIA.


in other mvc news our "new" dev has now spent close to two weeks rewriting a page that should take at most a couple of days and the checked in code is still riddled in commented out lines and a completely separate set of duplicative controller routes "used for debugging"

like seriously you just need to pass 4 params to a route, apply one filter to a list and return it. that's it. instead we have nonsensical nested if statements that perform the same operations and half of the params passed via a form submit and the others by manual js.

this will be the third person offshore I feel like I've ended up "training" to not write total garbage. if he hasn't tidied it up today I'm just gonna refactor it myself.

Chopstick Dystopia
Jun 16, 2010


lowest high and highest low loser of: WEED WEE
k

Powerful Two-Hander posted:

this will be the third person offshore I feel like I've ended up "training" to not write total garbage.

Farkin hell this makes me relieved our lovely PM won't let me look at our offshore vendors code.

They can't figure out how to send a PATCH to a REST endpoint lol

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


our external actually-passable-PHP devs can't seem to figure out how to make an API consisting of two simple endpoints accept the same input as before after a backend update

instead I have to go through a dozen separate deployed C/C++ (ok a few are python) applications where we call the API and 'sanitize' the input into the new format

we paid them £20k for the attempt

what I'm saying is that I should try freelancing probably

e: I get paid a bit over ~£30k a year because European computer toucher wages suck, for comparison

Private Speech fucked around with this message at 12:29 on Feb 1, 2019

animist
Aug 28, 2018

:eyepop:

gonadic io
Feb 16, 2011

>>=

Private Speech posted:

e: I get paid a bit over ~£30k a year because European computer toucher wages suck, for comparison

move to london if you haven't already, i got double that after 2 years experience

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man

Slurps Mad Rips posted:

c tp s: I'm trying to (desperately) make sure I never have to touch CMake again (this is a lie, but if it means I have to touch it less often then its worth it) by writing a library that does the common operations everyone does in CMake automatically. Even a few of the maintainers are keeping an eye on it. This means I've been deep into CMake and know it to a degree that the average mere mortal is nowhere near understanding. So here's a small "Everything you never wanted to know about CMake" post

  • contrary to popular belief variables in cmake can be any valid unicode byte sequence the hard part is dereferencing said variable. Want to get the value out of it? You'll need to escape each non-alphanumeric non "-./_" byte. This means you can have variables named 💩that can be set as booleans (since an if() dereferences automatically), but can't actually be dereferenced unless you do some magic byte poo poo and that's error prone.
  • this rule of what constitutes a valid identifier also applies to properties, cache vars, you name it except commands. (macros/functions)
  • add_library(whatever::dude::gently caress::it INTERFACE IMPORTED) is basically how you can have namespaced dictionary types in cmake. These exist at the directory scope (the old pre-CMake 2.8 default scope) and are available anywhere below their definition, but not available above.
  • cmake actually supports "destructors" so you can fire events off at the very end of its configure step. just call variable_watch on CMAKE_CURRENT_DIR and when its set to an empty string you'll know you're done configuring.
  • because cmake treats lists as strings separated by semicolons, a lot of the core cmake devs resort to its internal lovely regex engine for escaping. I said "gently caress that" and decided to do string replacements using the old ascii control code separator units of FS,GS,RS, and US. This allowed me to take the above "dictionary" types and then serialize them to disk. vim and emacs render these files in a not terrible way so the data is still readable.
  • remember above when I said "any valid unicode sequence"? I lied. Properties also permit invalid byte sequences, so I can have a key named INTERFACE_${c0} where c0 is the invalid byte C0 and you can't loving stop me.
  • there are more than just ${variable} style variable references in CMake. There is also CACHE{VAR} and ENV{VAR} references for the CMakeCache.txt and environment variables respectively. You can also make custom variable references like the ones found in the ExternalData module. So I said "Well, what if I had a variable syntax to represent a git repository or a zip file or archive?", so now I can do fetch(HUB{catchorg/catch2@v2.6.0}) because gently caress you
  • generator expressions combined with file(GENERATE) allow you to do things like
    • generate a response file for use in some other target
    • generate a custom toolchain that is invisible to the average person because you injected a custom target_sources command
    • generate a pch which the developers of cmake has said would be hard and impossible to do because they are cowards unwilling to enter into a dark contract with an eldritch demon named "Grant"
    • never have to touch grpc or protobuf's bullshit cmake garbage ever again
    • generate unity builds on a per directory basis

How am I getting this loving shitshow of a library out to people? They put a FetchContent call at the top of their build file and watch the fireworks. You'll only ever use like 5, maybe 6, commands unless you're doing some wacky poo poo like generating an ar script as a hack or whatever.


I loving hate cmake

this whips rear end, i hate cmake

Stringent
Dec 22, 2004

The internet is the universal sewer.

Soricidus posted:

yeah it's refactoring that's the problem. not just renaming but also changing signatures. like if you realise a method needs to take two parameters instead of one, in java you add the parameter to the method and then the compiler immediately tells you every other place you need to change to match it. in python you just don't have that because most static analysis tools aren't smart enough to do much beyond "here's a place where a method of the same name was called with one parameter", it can't be sure if it's actually the same method or not so it's up to you to figure out what needs to change.

duck typing also brings pain to undisciplined programmers because nothing forces you to record what assumptions your code is making. in languages like java you have to say explicitly what your interfaces are and what calls them and what implements them, and the compiler yells at you if you deviate from that. in python you can just write code that uses an implicit interface and pass it objects that implicitly match that interface and it all just magically works, which is great because you can write all the code instead of wasting time pacifying the compiler, and you feel super-productive. and then you forget the details or accidentally make things inconsistent, and now your code is an unmaintainable mess and you don't have a clue how all the parts fit together. or at least that's my experience as a terrible programmer.

and sure, tests can help - but the problem with tests is that they're optional and so idiots don't always bother writing them, and sod's law dictates that the test that doesn't get written is the one that would have caught the bug you're trying to fix. static typing may only be able to prevent a tiny subset of the bugs proper testing can catch, but the fact that it's not optional means it's automatically a million times more useful to me.

I'm impressed, this and the one before were really good posts.

Powerful Two-Hander
Mar 9, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Private Speech posted:


e: I get paid a bit over ~£30k a year because European computer toucher wages suck, for comparison



gonadic io posted:

move to london if you haven't already, i got double that after 2 years experience

yeah what the gently caress dude 30k is super low. though tbf spending £££ on offshore people or fixed priced vendor consultants instead of hiring decent people to do the job which provide long term benefits to the company still happens all the loving time because all the accountants see is "resource x is cheaper than resource y" regardless of whether their delivery is remotely comparable.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Stringent posted:

I'm impressed, this and the one before were really good posts.

Yeah, this made me realize that Go is a billion times better than python. Just don't get me started on the error handling and those loving channels that are supposed to simplify concurrency. I learned this last sprint I would've been better off skipping the channels and just using locks/semaphores/etc. Would've saved me some headaches, and the code would've been a lot easier to maintain/follow, I think.

I also learned CTO is terrible at writing maintainable code and whoa big surprise he's a hardcore python dev. After code reviewing some of my Go code he decided to spend pretty much the entire sprint rewriting/refactoring his own Go project to make it more readable. Well, I guess that's something

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


Powerful Two-Hander posted:

yeah what the gently caress dude 30k is super low. though tbf spending £££ on offshore people or fixed priced vendor consultants instead of hiring decent people to do the job which provide long term benefits to the company still happens all the loving time because all the accountants see is "resource x is cheaper than resource y" regardless of whether their delivery is remotely comparable.

my jobs have varied between £30k and £36k over the years, including for a multinational, though yeah it was outside London

I wouldn't even say it's super low, if you look at indeed 30k-40k is the typical wage for non-lead devs outside London, even <30k for web devs

e: a fairly typical junior webdev ad outside London looks like this

quote:

Qualifications

A minimum of 3+ years experience in web development and software design
Expertise in front-end technologies (HTML, JavaScript, CSS), PHP frameworks, and MySQL databases
Extensive knowledge of Wordpress preferred but not essential
E-Learning experience beneficial

Job Type: Full-time

Salary: £20,000.00 to £30,000.00 /year

or this:

quote:

Full Stack PHP Developer
SoulTek - Edinburgh
£20,000 - £28,000 a year - Permanent

Our client are looking for a Full Stack Developer to join a small but growing team in the centre of Edinburgh. You will focus on improving our existing products and inventing new features across all platforms.

Day to Day Tasks:
Maintaining our client’s multiple platforms
Building/inventing new features
Improving efficiency and performance enhancements
Designing and building scalable solutions
Creating intuitive user interfaces

Experience:
PHP
Frameworks
Javascript
NodeJS

Beautiful office space in the heart of Edinburgh
Friday Treats
Be part of a fast growing company

US folks don't know how good they have it (I'm an embedded/linux dev myself, not PHP, but it's the same just £10k higher)

Private Speech fucked around with this message at 13:52 on Feb 1, 2019

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Finster Dexter posted:

Yeah, this made me realize that Go is a billion times better than python. Just don't get me started on the error handling and those loving channels that are supposed to simplify concurrency. I learned this last sprint I would've been better off skipping the channels and just using locks/semaphores/etc. Would've saved me some headaches, and the code would've been a lot easier to maintain/follow, I think.

I also learned CTO is terrible at writing maintainable code and whoa big surprise he's a hardcore python dev. After code reviewing some of my Go code he decided to spend pretty much the entire sprint rewriting/refactoring his own Go project to make it more readable. Well, I guess that's something

if you think go is a substitute for python, you're a terrible programmer

they're for wildly different things (inasmuch as either of them are "for" anything)

coding blows

gonadic io
Feb 16, 2011

>>=
go is bad, python is bad, all langs are bad hth

gonadic io
Feb 16, 2011

>>=
e: scala haskell f# rust is the only good lang

FlapYoJacks
Feb 12, 2009

by vyelkin
Rust is good because it forced c++ to modernize.

Stringent
Dec 22, 2004

The internet is the universal sewer.

Finster Dexter posted:

Yeah, this made me realize that Go is a billion times better than python. Just don't get me started on the error handling and those loving channels that are supposed to simplify concurrency. I learned this last sprint I would've been better off skipping the channels and just using locks/semaphores/etc. Would've saved me some headaches, and the code would've been a lot easier to maintain/follow, I think.

I also learned CTO is terrible at writing maintainable code and whoa big surprise he's a hardcore python dev. After code reviewing some of my Go code he decided to spend pretty much the entire sprint rewriting/refactoring his own Go project to make it more readable. Well, I guess that's something

Well ok, maybe they weren't so good.

cinci zoo sniper
Mar 14, 2013




Private Speech posted:

my jobs have varied between £30k and £36k over the years, including for a multinational, though yeah it was outside London

I wouldn't even say it's super low, if you look at indeed 30k-40k is the typical wage for non-lead devs outside London, even <30k for web devs

e: a fairly typical junior webdev ad outside London looks like this


or this:


US folks don't know how good they have it (I'm an embedded/linux dev myself, not PHP, but it's the same just £10k higher)

you could move to latvia and make more. no, im not joking.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



ive never made 30k but most people i know do :woop:

Xarn
Jun 26, 2015

Private Speech posted:



e: I get paid a bit over ~£30k a year because European computer toucher wages suck, for comparison

wat?

According to google, my yearly eastern european salary is ~40k gbp

Also I've finished my eng. degree last January.

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


I only have a few years experience (and a degree) but yeah I dont get why more companies dont outsource to non-metropolitan UK

Powerful Two-Hander
Mar 9, 2004

Mods please change my name to "Tooter Skeleton" TIA.


we pay fresh grads more than 30k (like way more, maybe 40 now idk) but yeah that's in London

Private Speech posted:

I only have a few years experience (and a degree) but yeah I dont get why more companies dont outsource to non-metropolitan UK


humm I'm originally from Eastern Europe, whereabouts do you live?

There is (was?) a trend of financial companies moving IT out of London to various places but it only works if you have the scale to do it and can pay relocation etc. can't remember any examples off the top of my head, also quite a bit in Ireland as "nearshoring" as everyone slowly cottons on to offshoring being a total disaster.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Captain Foo posted:

if you think go is a substitute for python, you're a terrible programmer

they're for wildly different things (inasmuch as either of them are "for" anything)

coding blows

I didn't say they were substitutes. I'm merely commenting on the design of each language. Python is bad in its intended space. Go is bad in its intended space, but somewhat less so. Typescript is better than python even though they are intended for completely different problems.

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

maybe private speech is talking post-tax figures?

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Finster Dexter posted:

I didn't say they were substitutes. I'm merely commenting on the design of each language. Python is bad in its intended space. Go is bad in its intended space, but somewhat less so. Typescript is better than python even though they are intended for completely different problems.

go is unredeemable trash, though

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


NihilCredo posted:

maybe private speech is talking post-tax figures?

im not, nor are the jobs ive posted

i guess if you go fintech or something you can get more, also racism could play a role a bit maybe seeing as im slav even if my degree and work history is in the uk

anyway im not complaining too much, its enough to live on comfortably when paying half the rent id pay in london. I might even be worse off at ~46k in London once london rent and higher effective tax rates are taken into account

Private Speech fucked around with this message at 14:57 on Feb 1, 2019

Adbot
ADBOT LOVES YOU

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Captain Foo posted:

go is unredeemable trash, though

I... can't disagree... and I also think python is worse

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