I deleted all my go projects.

  Рет қаралды 14,220

anthonywritescode

anthonywritescode

Күн бұрын

Пікірлер: 98
@xp84
@xp84 4 күн бұрын
Always be wary of Google "open-source" projects, they only care about their specific usecases.
@redark7
@redark7 4 күн бұрын
That’s a pretty big flaw. Shares libraries are key to interact between different programs, if only one can be present, it is a disaster. The loading of the DLL should handle repeated symbols.
@anthonywritescode
@anthonywritescode 4 күн бұрын
yeah kind of the point of shared libraries is the they can be shared. sad really
@autistadolinux5336
@autistadolinux5336 4 күн бұрын
Rob Pike hates shared libraries (.SOs, .DLLs) since Plan 9 days (like 1990s - early 2000s) as this becomes quite hard to port and make packages for unix systems and, at least on his part, it should changed by static libs or a service running as process. The thing is that this works when you are in a Plan 9 environment, because the whole filesystem is the part of a "exposed api" for the process as everything lives inside its own private namespace and you can mount and unmount services as a normal user, so you can make things secure and encapsulated and you see this theme quite a lot in Plan 9, one example: even the sockets are not exposed as kernel API but as a service mounted as a file server in /net, so you can literally make a listen socket in shell script and then pass that to a program/service you want to host on. But we are not in a Plan 9 environment (unfortunately). They are still trying to push Plan 9 even to this day, or at least the ideas, in Go.
@kRySt4LGaMeR
@kRySt4LGaMeR 4 күн бұрын
funniest part is that as most perf hacks, it might not even be the substantial enough to even justify its existence. many times engineers want to check-in code to improve performance but refuse to profile it.
@andrecarvalho1128
@andrecarvalho1128 4 күн бұрын
The mantra of "never break user space" comes to mind. Even if it's unintended behaviour, if there's stuff depending on it, you don't break it.
@greyshopleskin2315
@greyshopleskin2315 4 күн бұрын
The days of good software engineering practices are dead. This is what we get now. Broken software that breaks ours, and JS
@jimstanley_49
@jimstanley_49 2 күн бұрын
That reminds of an anecdote from, I think, The Unix Hater's Handbook? (I read this an eternity ago. It might even be referencing the mantra.) Back in the "wild west" days of Unix, some basic program like cp or mv was written and shared. A couple of days later, the programmer found a more efficient method, or a massive performance boost, or something like that. It wasn't implemented, or became an option instead of default because as default if would change something in the API and he already had 5 users depending on the original behaviour.
@wexwexexort
@wexwexexort 4 күн бұрын
you must delete em, for the sake of the title. archiving is not enough.
@dawidp749
@dawidp749 4 күн бұрын
Exactly, what a clickbait
@Mallchad
@Mallchad 4 күн бұрын
I mean it's a git project... Deleting a git project doesn't mean anything in 99% of cases because they will always be backed up somewhere, as per the design of git.
@JohnZakaria
@JohnZakaria 4 күн бұрын
So you want him to break other people's build? Do left pad all again? Nah man
@Eltaurus
@Eltaurus 3 күн бұрын
@@JohnZakaria or, you know, just select a less clickbaity title
@MurtagBY
@MurtagBY 2 күн бұрын
why?
@ivolol
@ivolol 4 күн бұрын
Didn't python recently formally 'isolate' its interpreter state so you can run two separately at the same time? So like, the opposite direction of this problem?
@anthonywritescode
@anthonywritescode 4 күн бұрын
indeedy!
@DavidDellsperger
@DavidDellsperger 4 күн бұрын
Go has always been somewhat strange to me with their emphasis on the git repository as effectively part of the distribution mechanism, etc.
@user-kt0jl90sfwj8cb
@user-kt0jl90sfwj8cb 2 күн бұрын
That's not the worst part. The worst thing is their requirement to create special files or directories in your repository in order to work with version 2 and higher tags (e.g., v2.0.1).
@shoe3
@shoe3 4 күн бұрын
I don't think they understand how damaging this is to the longevity of Go. There's a lot to criticize about Perl, but it has survived and will continue to survive because of how seriously they took backwards compatibility.
@rosomak8244
@rosomak8244 4 күн бұрын
Yeah. They tried perl 6. None cared and they are stuck where they where. Meanwhile none cares about perl. That's call.
@centerfield6339
@centerfield6339 Күн бұрын
Didn't Perl change so completely they had to rename the language?
@mbunkus
@mbunkus Күн бұрын
@@centerfield6339 What you're probably thinking of is the language that started out as being "the next major version of Perl, Perl 6". Turned out they wanted to do so many & so different things that, while still looking a lot like the classic Perl we all know, it really wasn't anymore. Simultaneously a lot of other folks expressed interest in continuing to maintain & slowly evolve the classic Perl (Perl 5.x.y) in the well-known backwards compatible way. The result is that both camps amicably decided to go different ways. The new language was therefore no longer called Perl or Perl 6, but something new: Raku. There's an interpreter for it called Rakudo (there also was Parrot, but that's been discontinued). So nowadays when we talk about Perl, we mean the classic Perl 5.x.y variant. Both projects are very much alive & well.
@KasasagiWad3
@KasasagiWad3 4 күн бұрын
the performance hit of multiple non-global thread handlers and garbage collectors may be a legitimate reason to only allow a single shared object, but if multiple shared objects is unintended behavior it's undeniably a bug on all other platforms where this still works, and they really should open an issue so that this misuse can be prevented.
@tompov227
@tompov227 4 күн бұрын
I always felt that Go was trying to be a better C but all it did was move around what was inconvenient about C. Like some things that were awful in C were nice in Go, but so many things that were fine in C are just agonizing in Go. I really do not like it as a language.
@MakeKasprzak
@MakeKasprzak 4 күн бұрын
Thats so extremely odd. I can't be sure, but this may mean something like a pair of VST audio plugins written in Go would also break (assuming VSTs can be recompiled, and dont just get run in Wine). Huh.
@jtw-r
@jtw-r 4 күн бұрын
Oh interesting… you’ve got my attention. Do you happen to know of any VSTs off the top of your head that are built using go? I have an intel mac and a couple DAWs I could test this on.
@duke605
@duke605 4 күн бұрын
Came into this video thinking "Another dev with skill issues going to shit on Go" but... ya that's a problem :/
@anthonywritescode
@anthonywritescode 4 күн бұрын
arguably this is the opposite of a skill issue lmao
@duke605
@duke605 4 күн бұрын
@@anthonywritescode indubitably. Quite the skill needed to find the issue
@MrAlanCristhian
@MrAlanCristhian 4 күн бұрын
​@@anthonywritescode Sorry for the off-topic, but I have a question. Each subinterpreter has his own garbage collector? It is possible to call gc.collect() in one subinterpreter without pausing the others?
@isodoublet
@isodoublet 3 күн бұрын
Aren't skill issues the entire motivation for go's existence?
@muhammedadel9673
@muhammedadel9673 4 күн бұрын
It is sad to see CGO devolve from one of their selling points to being the ostracized child that most language veterans tell you not to approach but maybe this a good time to try zig i guess?
@user72974
@user72974 4 күн бұрын
Go found it's niche. Small, static binaries often used as CLIs or in containerized environments. Nothing wrong with that. Just like there's nothing wrong with other languages to appeal to other use cases being developed, like Zig.
@muhammedadel9673
@muhammedadel9673 4 күн бұрын
@@user72974 By all means that's what i use it for, but we all want our favorite languages to do everything don't we?
@SumitSingh-yo5qg
@SumitSingh-yo5qg 3 күн бұрын
If possible, in your next videos I would like to see what you're working on sentry these days :D
@rednafi
@rednafi 4 күн бұрын
Go just isn't great if you need to use shared libraries or do FFIs. But at the same time, it's the fastest language that's this easy to write, so they had to make a choice. I love Python, but I wouldn't want Go to turn into Python, where ergonomics and features trump everything else. Go tries to strike a different balance, where you gain quite a bit of performance by giving up a few niceties. I feel like the maintainers made the right choice here.
@anthonywritescode
@anthonywritescode 4 күн бұрын
why even provide build-shared at all if it can't be shared
@TheBypasser
@TheBypasser 4 күн бұрын
C is very easy to write, and I doubt there is anything that beats threaded SSE-oriented C code in performance ;) On MCUs I'd say Assembly, but on PCs say, MSVC compiles a decent code that is really tough to outmatch manually.
@zhamed9587
@zhamed9587 3 күн бұрын
There are languages other than golang and python :) Java and C# are both superior for example
@Zandman26
@Zandman26 3 күн бұрын
Go is a lot better on threads than both C# and Java (have written both for over 10 years).
@zhamed9587
@zhamed9587 3 күн бұрын
@@Zandman26 golang doesn't have system threads. Java has virtual threads now, which are better than golang's, because they also offer structured concurrency
@hansdietrich1496
@hansdietrich1496 4 күн бұрын
Oh boy. I also had my share of discussions with a bunch of idiots, explaining them that some of their softwares misbehaviour is a bug and should not be redefined as feature. I feel you!
@austinraney
@austinraney 4 күн бұрын
To be fair this was (is?) a problem in python also. You cannot embed multiple python interpreters in the same process. While this isn’t great, there are work arounds like subprocessing with proxy objects that are kind of awful in themselves, but it is doable. Go is not trying to be a traditional compiled language that enables every use case and I kind of love that about it. I love your content, but this seems like a little bit of an overreaction IMO. Can’t win the all!
@anthonywritescode
@anthonywritescode 4 күн бұрын
works fine with sub interpreters. if you're going to make build-shared it should at least be and to "shared" no?
@zhamed9587
@zhamed9587 4 күн бұрын
You can't spell "goof up" without go.
@evanfreethy2574
@evanfreethy2574 Күн бұрын
The Go community just lost one of the good ones
@RoamingAdhocrat
@RoamingAdhocrat 4 күн бұрын
point of order: thumbnail should feature a stop sign
@jakesurrett3518
@jakesurrett3518 21 сағат бұрын
Zig >> Go
@royler8848
@royler8848 2 күн бұрын
I'm shocked, great video
@ericng8807
@ericng8807 4 күн бұрын
unsubbed, unfollowed, leaving the discord, unfriending from pokemongo
@RoamingAdhocrat
@RoamingAdhocrat 4 күн бұрын
PokemongoDB
@ongeri
@ongeri 4 күн бұрын
PokeMariaDB
@boboshermusurmonov978
@boboshermusurmonov978 4 күн бұрын
So basically, Go just got it's own version of GIL bottleneck ))
@anthonywritescode
@anthonywritescode 4 күн бұрын
global wacky mutable state
@adamconnor1898
@adamconnor1898 3 күн бұрын
Well, so much for using Go with python. Aren't people increasingly using Rust for that? Of course, it sucks if underlying libraries of interest only exist in Go.
@anthonywritescode
@anthonywritescode 3 күн бұрын
yeah rust has been super nice for embedding
@nometutentegiapreso
@nometutentegiapreso 4 күн бұрын
asottile taking inspiration from filosottile, lol
@lifelover69
@lifelover69 4 күн бұрын
i don't understand, can you elabore more please?
@nometutentegiapreso
@nometutentegiapreso 4 күн бұрын
@@lifelover69 The author of the article mentioned at 1:30 is known as "filosottile" on GitHub and Twitch, and Anthony is known as "asottile" on GitHub 🙂
@nometutentegiapreso
@nometutentegiapreso 4 күн бұрын
​@@lifelover69the author of the article mentioned at 1:30 is known as "filosottile" on GitHub and Twitch, whereas Anthony is known as "asottile" on GitHub 🙂
@SuperFakeMinecraftChannel
@SuperFakeMinecraftChannel 4 күн бұрын
​@@lifelover69 1:30
@MelroyvandenBerg
@MelroyvandenBerg 4 күн бұрын
owhno! I love go quite a lot for some of my small projects. Low memory usage and efficient code.
@MelroyvandenBerg
@MelroyvandenBerg 4 күн бұрын
They do say: "We can review patches to make these cases work better, but we can't promise to fix them ourselves."
@alexeiboukirev8357
@alexeiboukirev8357 4 күн бұрын
I guess Go, having a complex runtime, is not a language to write Python extensions in. It works very well in other scenarios, and there is no reason to abandon it altogether. But you are you and choose your own path. Good luck.
@mrswats
@mrswats 4 күн бұрын
This looks kind of dumb, tbh.
@AceofSpades5757
@AceofSpades5757 4 күн бұрын
Come back to Rust. Rust will always love you.
@PouriyaJamshidi
@PouriyaJamshidi 4 күн бұрын
Start using Nim instead :P
@mamamikazala
@mamamikazala 4 күн бұрын
That's what I'm tempted to do tbh. I'd like to learn an additional language besides Python, but I don't have much time so I'd like to make a wise choice. Do you use Nim? If you do, how do you like it? I hear it's not that hard to learn if someone knows Python.
@byte__3076
@byte__3076 4 күн бұрын
@@mamamikazala It's a nice language, not that difficult to learn if you come from Python, though it was inspired by other languages mostly. The metaprogramming system is nice and it it also easy to develop extensions for Python. Also there are (not plenty but enough) resources to learn it such as the official tutorial/documentation, nim by example, rosetta code, some youtube playlist, etc. Only downside I can think of is that there are not a lot of libraries tough you can start building many projects already (you have good library for CLIs, RestAPI)
@PouriyaJamshidi
@PouriyaJamshidi 3 күн бұрын
@@mamamikazala I do use Nim both personally and at work. It is a fantastic language and I highly recommend it. Very easy to write, read and maintain. It is also easy to learn if you already know Python but it gets a little bit of getting used to since it is a typed language.
@ac130kz
@ac130kz 4 күн бұрын
Go was made for web services, I don't get why the hell people keep using it for mission critical software, such as Docker, or tooling
@anthonywritescode
@anthonywritescode 4 күн бұрын
? what. it was created to make systems tools
@ac130kz
@ac130kz 4 күн бұрын
@anthonywritescode I don't get it from its featureset. Easy "green" threading model, json integration out of the box, built-in http server, gc-first memory allocation, fast compilation and stuff. To my mind it feels very much rapid iteration web development oriented
@roccociccone597
@roccociccone597 4 күн бұрын
It's an issue sure, but your use case seems a little contrived for Go. Who the hell uses Go to make Python modules. Just use C at this point.
@spectrapulse2104
@spectrapulse2104 4 күн бұрын
Have you ever written a parser in C?
@anthonywritescode
@anthonywritescode 4 күн бұрын
then why does build-shared exist
@Mallchad
@Mallchad 4 күн бұрын
​@@spectrapulse2104 Yes. I would indeed. like to write a new string library for every project
@isodoublet
@isodoublet 3 күн бұрын
Go is truly a uniquely terrible project
@SR-ti6jj
@SR-ti6jj 3 күн бұрын
It's just so mid
@Requiem100500
@Requiem100500 4 күн бұрын
python dev detected, opinion rejected just kidding, it's actually a valid reason, I would be mad as well
@alejandroioio6784
@alejandroioio6784 4 күн бұрын
All those languages ​​were stillborn, Go, Rust, etc... they don't provide anything really substantial to change.
@ac130kz
@ac130kz 4 күн бұрын
yet you can write any FFI you want with Rust...
@coosisv6231
@coosisv6231 4 күн бұрын
@@ac130kz Rust can do ffi for c easily, but the other way around is more buggy. Since it doesn't use headers you have to use some sort of tool(cbindgen) to generate header files for you, and a lot of times it just doesn't work without manually tweaking a bit
@alejandroioio6784
@alejandroioio6784 4 күн бұрын
@@ac130kz If you are going to call functions in other languages ​​from rust, why use rust then?
@ac130kz
@ac130kz 4 күн бұрын
@coosisv6231 well, even C++ bizarre quirks, when working with it from C, it's not like Rust is alone in this regards. At least they don't scrap it like Go's devs did
@ac130kz
@ac130kz 4 күн бұрын
@alejandroioio6784 wdym? If you have a huge industry standard library written in C, for example, you surely won't start rewriting that instead. And if you mean writing in raw C, oh, yeah, that's gonna create a lot of the same problems that led to development of Rust in the first place
10 Signs Your Software Project Is Heading For FAILURE
17:59
Continuous Delivery
Рет қаралды 38 М.
Vampire SUCKS Human Energy 🧛🏻‍♂️🪫 (ft. @StevenHe )
0:34
Alan Chikin Chow
Рет қаралды 138 МЛН
Finally. Professional Paper. - reMarkable Paper Pro
21:55
ShortCircuit
Рет қаралды 468 М.
I Tried Putting my Fluid Simulation on a Planet
27:23
Sebastian Lague
Рет қаралды 444 М.
your tests should have 100% coverage
18:56
anthonywritescode
Рет қаралды 6 М.
I walked the length of a state (ish)
23:34
Stand-up Maths
Рет қаралды 137 М.
Microsoft, what did you do??
9:12
The Friday Checkout
Рет қаралды 123 М.
The Return of Procedural Programming - Richard Feldman
52:53
ChariotSolutions
Рет қаралды 65 М.
Apple's storage pricing is INSANE! Do this instead.
15:25
Jeff Geerling
Рет қаралды 844 М.
Who Let Microsoft Do This
12:34
Brodie Robertson
Рет қаралды 39 М.
What's Zig got that C, Rust and Go don't have? (with Loris Cro)
1:23:53
Developer Voices
Рет қаралды 200 М.
This Open-Source E-Ink Screen Is My Favorite New Gadget
13:55
Snazzy Labs
Рет қаралды 324 М.