← Home ← Back to /g/

Thread 107136144

337 posts 50 images /g/
Anonymous No.107136144 [Report] >>107136490 >>107136784 >>107136915 >>107136978 >>107137589 >>107138071 >>107138072 >>107138104 >>107138210 >>107138680 >>107141894 >>107142170 >>107142228 >>107143375 >>107143390 >>107143461 >>107143476 >>107143712 >>107144380 >>107144585 >>107144593 >>107145606 >>107151051
So, What's the cleanest programming language with a nice ecosystem?
Anonymous No.107136238 [Report]
Assembly
Anonymous No.107136249 [Report] >>107137288
Scheme
Anonymous No.107136329 [Report] >>107136759 >>107137640
Zig developers have been making awful choices lately
Anonymous No.107136411 [Report] >>107136915 >>107137537 >>107137807 >>107143001 >>107143722 >>107147682 >>107147836
Jai
Anonymous No.107136490 [Report] >>107136539 >>107136832
>>107136144 (OP)
maybe zig. but only because it does the std.mem.Allocator parameter thing
after using that everything else feels dirty. xcb for example, should be pretty minimal right? well, it loves allocating memory for the most asinine reasons, and it isn't like nuklear or that type of libraries that let you define a custom allocator or memory poll, it just calls malloc. if I had more free time I would probably start something like the radiance system but for real (radiance is ai slop vaporware)
Anonymous No.107136539 [Report] >>107136832 >>107142310 >>107143461
>>107136490
>everything else feels dirty
Literally
After using Zig for 9 months, going back to c++ it feels like a toy
Anonymous No.107136759 [Report]
>>107136329
that's exaggerating, only a few bad apples they fixed up anyway
Anonymous No.107136784 [Report] >>107136804 >>107136920
>>107136144 (OP)
The problem is that if Zig ever stabilizes and becomes viable for non toy projects, /g/ will start hating it.
So if you want to enjoy it, do it now.
Anonymous No.107136804 [Report] >>107136920
>>107136784
Anonymous No.107136832 [Report]
>>107136490
>>107136539
zig is like vim, you can't go back
Anonymous No.107136915 [Report] >>107137047 >>107142567
>>107136144 (OP)
>>107136411
Will Jai beat Zig? Will either of them beat Rust? Wish they did, probably won't.
Anonymous No.107136920 [Report] >>107137082
>>107136784
lmao. rust would be the deadest language ever if anyone gave a fuck about what retards think, or what "committee" nocoders like the guy quoted in >>107136804 thinks.
zig will be fine after it hits v1.0. they should probably harry up a bit though, because it would be embarrassing if yet another generation of languages enters the scene while zig is still stuck in v0.
Anonymous No.107136978 [Report] >>107137574 >>107137596 >>107141859 >>107154661
>>107136144 (OP)
Only one language can be king
Anonymous No.107137047 [Report] >>107154661
>>107136915
Frankenstein C shitware with crust bolted on top will never go away
Let's hope Zig will have it's own ecosystem
Anonymous No.107137082 [Report] >>107137513
>>107136920
perfection takes time
Anonymous No.107137288 [Report]
>>107136249
hearty kek
Anonymous No.107137474 [Report] >>107137624 >>107137664 >>107137666 >>107137706 >>107138151 >>107138225 >>107139854 >>107143558
What makes Zig so special?
Anonymous No.107137513 [Report] >>107137873
>>107137082
i wanted to end my comment with the "perfect is the enemy of good" cliché. how did you read my mind?
Anonymous No.107137537 [Report]
Probably this >>107136411 when it's finally released (never).
Anonymous No.107137550 [Report] >>107138385
It's up to ziggers and nimmers to defeat the jais
Anonymous No.107137574 [Report]
>>107136978
and it's definitely not your python c transpiler
Anonymous No.107137589 [Report] >>107137618 >>107141636
>>107136144 (OP)
every development stack is flawed in some way, pick your poison and get something done. people who constantly participate in "best language" discussions are wasting their time.
Anonymous No.107137596 [Report]
>>107136978
atleast nimony is finally out.
Here's hoping it's not a buggy mess like nim 1 and 2 considering all the new backend infrastructure and IR.
Anonymous No.107137618 [Report] >>107137688
>>107137589
which one is least flawed?
Anonymous No.107137624 [Report] >>107137664
>>107137474
language wise, nothing.
Andrew accidentally stumbled on the good idea of every C alt needing to also be a C compiler though.
Anonymous No.107137640 [Report]
>>107136329
such as
Anonymous No.107137664 [Report]
>>107137474
See >>107137624
Zig is designed to inject itself into existing codebases like a parasite, something every other "c replacement" doesn't do
Anonymous No.107137666 [Report]
>>107137474
io being a struct that you pass in looks very exciting for embedded. not sure why Andrew allegedly only got it on the 4th pass, I assumed he'd do it so right away when saw how allocators were done.
Anonymous No.107137688 [Report]
>>107137618
it depends on what you're trying to do and what systems you're targeting. and you shouldn't discount the value of your own skill set either; the devil you know might be a better option even if another stack is "better" on paper.
Anonymous No.107137706 [Report]
>>107137474
It's C if it wasn't designed by either retarded boomers or baseddevs
Anonymous No.107137716 [Report] >>107137723
C++ works everywhere and has 0 flaws.
Anonymous No.107137723 [Report] >>107139920
>>107137716
how are those modules?
Anonymous No.107137729 [Report]
When will Zig be 1.0?
Anonymous No.107137807 [Report] >>107147836 >>107154670
>>107136411
This.

Jai is being designed by a renowned genius.

The Mona Lisa took 16 years to finish.

Have patience.
Anonymous No.107137873 [Report]
>>107137513
if he (she) told you i would have to kill you
and him (her)
Anonymous No.107138071 [Report] >>107147836
>>107136144 (OP)
Its not zig because im tired of putting up with andrews autism
It might be C3 since it literally just looks like zig but with c style syntax (good) and without andrew kelley certified autism (good)
but I havent used it for anything
Anonymous No.107138072 [Report]
>>107136144 (OP)

Zig is the final solution to the tranny question
Anonymous No.107138104 [Report]
>>107136144 (OP)
Anonymous No.107138151 [Report]
>>107137474
It's what rust wanted to be
Anonymous No.107138210 [Report]
>>107136144 (OP)
When is it going to be 1.0?
>2-3 years
It's been 2-3 years for a long time now.
Anonymous No.107138225 [Report] >>107138266 >>107143576 >>107143673
>>107137474
They're finding new ways to write bugs and unsound optimizations. Result location semantics and parameter reference optimizations are two that I don't think have been fixed still which are shown in this video.

New and exciting behavior
https://www.youtube.com/watch?v=dEIsJPpCZYg&t=14m40s

The BDFL also does massive, breaking rewrites on a whim yet people will claim the language is stable
Anonymous No.107138266 [Report] >>107138965
>>107138225
>They're finding new ways to write bugs and unsound optimizations
[citation needed]
>I don't think have been fixed
They have. Long time ago.
>massive, breaking rewrites on a whim
0.15.2
>people will claim the language is stable
[citation needed]
Anonymous No.107138296 [Report] >>107144886
Andrew never touched a whiteboard, he's just throwing shit at a wall and sees what sticks all while Jai is around the corner
Anonymous No.107138385 [Report]
>>107137550
>It's up to ziggers and nimmers to defeat the jais
nim + zig = nig
Anonymous No.107138557 [Report]
This thread is a really good showcase of why I don't give a shit about anything new in tech, especially programming languages. I will only ever use stuff that is well established. C, C++, and (barely, maybe not even) Rust. I don't have the energy to care about dumb shit anymore.
Anonymous No.107138680 [Report] >>107138701
>>107136144 (OP)
honestly i just got ncdu so i could actually manage disk space. While compiling i see that zig is a dependency
>works great

i'm currently reading ANSI second edition C programming language
should i let new C replacements skew me from the holy C path /g/lowziggers?
Anonymous No.107138701 [Report] >>107138732
>>107138680
C isn't supposed to be the eternal endpoint, maybe you'll get lucky and early adopt the conclusive next replacement.
Either way, just depends on which feels the best in helping you get a project finished.
Anonymous No.107138732 [Report] >>107141509 >>107142567
>>107138701
i'll probably learn C (and x86 ASM) either way, so i can know what makes rust, zig, go, and jai (when it's released) special
Anonymous No.107138965 [Report] >>107141924
>>107138266
>[citation needed]
That video
>They have. Long time ago.
#12064 and #12251 are still open, unsure of the resolution of parameter optimization which I believe to still be an issue

I don't get why you have to lie all the time
Anonymous No.107139854 [Report] >>107140031
>>107137474
a good marketing budget.
Anonymous No.107139920 [Report] >>107141690 >>107142061
>>107137723
Literally not needed, as evidenced by 40years of code that still #JustWorks.
Anonymous No.107140031 [Report]
>>107139854
wrong language crabs have marketing budget ziguanas do it for free
Anonymous No.107140795 [Report]
is it true that you can't attach values/contexts to errors in zig, and is that still the case?
Anonymous No.107141509 [Report] >>107143593
>>107138732
for me the two selling points were the "no global allocator" pattern: any function that allocates memory has to take an allocator as a parameter, there are no implicit malloc calls. this means that, for example, you can use normal libraries even if you are trying to optimize the number of syscalls (games, compilers) or not have syscalls at all (embedded, kernels, bootloaders). and the meta-programming features, there is no preprocessor, you do things like conditional compilation and compile-time constants using compile-time evaluation. this includes compile-time reflection which is useful for generating serialization code for example
Anonymous No.107141636 [Report]
>>107137589
Hey calm down mate, you can't have reasonable arguments like that here
Anonymous No.107141690 [Report] >>107143776
>>107139920
Header files are the greatest crime of C and its legacy though. It makes me absolutely livid that even still in 2025 we are stuck with this garbage.
Anonymous No.107141859 [Report]
>>107136978
>araq pushing GC so hard he rewrites the exact same language 3 times
lmao
Anonymous No.107141894 [Report]
>>107136144 (OP)
Lua
Anonymous No.107141924 [Report] >>107142266
>>107138965
because every critiscm of the language and their top retard gets shut down immediately, everywhere except here.
Anonymous No.107142030 [Report] >>107142567
Rustchads... we won again.
Anonymous No.107142061 [Report]
>>107139920
>y-you don't need them
lmao
Anonymous No.107142148 [Report] >>107142167
Why is Zig so fast?
It compiles as fast as C and runs even faster.
How did they do it?
Anonymous No.107142167 [Report]
>>107142148
[spoiler]profiling[/spoiler]
Anonymous No.107142170 [Report]
>>107136144 (OP)
java
Anonymous No.107142228 [Report] >>107142339 >>107143476 >>107143636
>>107136144 (OP)
Zig is rust without feature creep, awful syntax, extremely slow compilation, jeetscript ecosystem, horrible tooling and corporate dick riding "community"
It's so good you can't go back once you've used it for a while
Anonymous No.107142266 [Report] >>107142465
>>107141924
the only criticism of the language is retards getting upset at an alpha software having breaking changes and that youtube video that's just a list of (fixed) bugs
Anonymous No.107142304 [Report]
Java 8
Anonymous No.107142310 [Report]
>>107136539
It feels good yeah. I hate that the c++ compiler has information that I cant get access to. Why cant I get the name of an enum by its value? You have to do retarded hacks to make that work or manual switch case with returning string manually for each value. Why cant I iterate the fields of a struct (at compile-time)? Why cant I do this, why cant I do that. With zig it feels like the compiler isn't retarded.
Anonymous No.107142339 [Report] >>107142350 >>107142462 >>107142867 >>107144704 >>107144732
>>107142228
How does it compare to Odin?

I've used Odin a bit when I was considering to return to C but was like #YOO why not try something modern? Haven't messed with Zig any yet. Also looked at Nim but did not care for it though I can't remember why at this point.
Anonymous No.107142350 [Report] >>107142462 >>107142582 >>107142867 >>107142973 >>107143583 >>107143649 >>107143685
>>107142339
Odin is C with bells and whistles
Zig is C++/Rust without the bad parts
Anonymous No.107142462 [Report]
>>107142350
Ah, interesting. C++ is definitely due for a less disgusting replacement.

>>107142339
Can't believe I misspelled fukken yolo lmao
Anonymous No.107142465 [Report] >>107142567 >>107143681 >>107143704
>>107142266
That's just a lie, I checked the issues a few weeks ago, the other guy can post them I won't even bother looking for them.
There are a lot of issues like the error values where Andrew is clearly wrong and won't budge.

Zig is not used for anything. A meme terminal made by some ultra rich guy in his free time AI prompting, a literally who DB that nobody in their sane mind would use and a JS runtime that's trying their best to take off by being active on twitter are not serious projects.

Rust has won, I hate Rust.
Anonymous No.107142567 [Report] >>107142959 >>107143260 >>107143576
>>107136915
>>107138732
>>107142030
>>107142465

Rust didn't win anything but eceleb shills and corpo gibs
It will never seamlessly integrate into any serious project
It will always remain as nothing but a mere dependency and an annoyance for developers

Zig on the other hand, can be stapled on top, injected into or even replace large chunks of existing codebases with no effort whatsoever
And the best part is that nobody will complain, because there is nothing to complain about
Anonymous No.107142582 [Report]
>>107142350
good way to phrase it
Anonymous No.107142867 [Report] >>107142983
>>107142339
the approach is different. odin has a lot of features hardcoded into the compiler, zig is more about giving the programmer primitives that can be combined to achieve those features. so while odin has a hardcoded map type (with it's own special syntax), zig gives you tools that will help you write maps. and zig passes parameters explicitly, odin has things like the implicit "context" object, or the "using" pseudo-inheritance

>>107142350
not really. both zig and odin are alternatives to c++, not c. and zig has significantly less features than odin and a stronger focus on maintaining compatibility with the c abi. check their overviews:
https://odin-lang.org/docs/overview/
https://ziglang.org/learn/overview/
Anonymous No.107142959 [Report] >>107143045
>>107142567
>It will never seamlessly integrate into any serious project
Your post has been processed by Rust code in order to end up here and you didn't even notice it.
Anonymous No.107142973 [Report] >>107143045 >>107143495
>>107142350
Not at all. Zig is nothing like C++/Rust, it can't do anything these language let you do on daily basis.
Zig is a C alternative.
Rust is a C++ alternative.
Anonymous No.107142983 [Report] >>107143045 >>107143047 >>107143090
>>107142867
>zig and odin are alternatives to c++,
Zig doesn't even let you do RAII, which is the most basic C++ thing in existence.
Anonymous No.107143001 [Report]
>>107136411
jon would seethe at you uncontrollably for saying jai has a nice "ecosystem".
Anonymous No.107143045 [Report] >>107143076
>>107142959
And what relevance does that have to my post?

>>107142973
>>107142983
Zig gives you all the tools to implement whatever niggerlicious anti-feature you desire and it doesn't need 500 built-in keywords for that
Anonymous No.107143047 [Report] >>107143076
>>107142983
you can defer, which is superior
Anonymous No.107143076 [Report] >>107143141 >>107143185 >>107143210
>>107143045
>And what relevance does that have to my post?
You claimed that "[Rust] will never seamlessly integrate into any serious project". The joke is that in order to make that post, it had to be processed by multiple pieces of Rust code in serious projects and it did in a manner that you did not noticed(seamlessly)
That's the joke

>Zig gives you all the tools to implement whatever niggerlicious anti-feature you desire
Let's see your implemention of a smart pointers that deallocates memory automatically when it leaves the scope.

>>107143047
Show me how you use defer to archive RAII.
Anonymous No.107143090 [Report]
>>107142983
RAII is niggerlicous.
Anonymous No.107143141 [Report] >>107143162
>>107143076
>archive RAII
let me rephrase
who the fuck needs raii when you have defer?
Anonymous No.107143162 [Report] >>107143316 >>107146000
>>107143141
Anyone who wants to ensure the invariance about allocation lifetime and scope in their smart pointer type. This is like the very minimum required to be able to reason about ownership.
Anonymous No.107143185 [Report] >>107143312 >>107143361 >>107144132 >>107144252 >>107144428
>>107143076
>smart pointers that deallocates memory automatically
completely defeats the points of zig's 100% explicit memory management stance but whatever, nigger
const std = @import("std");

pub const SmartPtr = struct {
ptr: ?*u8,
allocator: *std.mem.Allocator,

pub fn deinit(self: *SmartPtr) void {
if (self.ptr) |p| {
self.allocator.destroy(p);
self.ptr = null;
}
}
};

pub fn createSmartPtr(
allocator: *std.mem.Allocator,
value: u8,
scope: *var,
) SmartPtr {
var ptr = allocator.create(u8) orelse return SmartPtr{ .ptr = null, .allocator = allocator };
ptr.* = value;

return SmartPtr{ .ptr = ptr, .allocator = allocator };
}

pub fn smartPtrInitDefer(
allocator: *std.mem.Allocator,
value: u8,
fn_defer: fn (ptr: *SmartPtr) void,
) SmartPtr {
var sp = createSmartPtr(allocator, value, undefined);
defer fn_defer(&sp);
return sp;
}

pub fn main() void {
var allocator = std.heap.page_allocator;

const sp = smartPtrInitDefer(allocator, 42, deinitClosure);
if (sp.ptr) |p| {
std.debug.print("SmartPtr points to: {}\n", .{p.*});
}
}

fn deinitClosure(sp: *SmartPtr) void {
sp.deinit();
}
Anonymous No.107143210 [Report] >>107143246
>>107143076
Project here is codebase, not tens of codebases in a string
And the implementation doesn't bother the end user, only the developers, regardless of whether it has crust in it or not
Anonymous No.107143246 [Report] >>107143279
>>107143210
>Project here is codebase
Yup, all the projects I mentioned here are codebases.
Anonymous No.107143260 [Report]
>>107142567
We've replaced rust trannies with zigger myster meat jews.
Anonymous No.107143279 [Report] >>107143300
>>107143246
Then please show me a project that has rust seamlessly [for the developers] integrated into it
Anonymous No.107143300 [Report] >>107143329 >>107143372
>>107143279
>Then please show me a project that has rust seamlessly
In context of you making that post:
Chromium
Firefox
Android
Cloudflare
Windows
Anonymous No.107143308 [Report] >>107143486
Bros, I am so torn.
I am a Zig enjoyer, but I am unsure if I should use it in my upcoming startup. I need to write a compile, its Zig or C99.
Anonymous No.107143312 [Report]
>>107143185
I kneel...
Anonymous No.107143316 [Report] >>107143345
>>107143162
>muh heckin' ownership
Retard LOL
Anonymous No.107143329 [Report] >>107143345
>>107143300
in the context of him making that post only firefox/chromium is relevant to the user and even then it's not seamless because it takes days to compile them because of Rust lmao
Anonymous No.107143345 [Report]
>>107143316
Not an argument

>>107143329
Yet he didn't noticed that Rust was used in the process of making that post.
Anonymous No.107143361 [Report] >>107143395
>>107143185
Anonymous No.107143372 [Report] >>107143386
>>107143300
I only compile ("develop"/work with) r3dfox which removes rust
>B-B... But cloudflare is rust !!!
Do I compile cloudflare?
Anonymous No.107143375 [Report]
>>107136144 (OP)
The creator of zig changed his hear colour to red. Stay away from rust and zig. The communities are toxic and that means that the long-term direction of both zig and rust will be bad. Go is the only good modern language. Stick to C for any low-level stuff.
Anonymous No.107143386 [Report]
>>107143372
>>B-B... But cloudflare is rust !!!
Who are you quoting?

>Do I compile cloudflare?
I never said you compiled cloudflare. I only said that your post has been processed by Rust code in order to end up here.
Anonymous No.107143390 [Report] >>107143429
>>107136144 (OP)
The creator of zig changed his hair colour to red. Stay away from rust and zig. The communities are toxic and that means that the long-term direction of both zig and rust will be bad. Go is the only good modern language. Stick to C for any low-level stuff.
Anonymous No.107143395 [Report] >>107143418
>>107143361
Use 0.15.2
Anonymous No.107143418 [Report]
>>107143395
$ zig version
0.15.2
$ zig run main.zig
main.zig:18:13: error: expected type expression, found 'var'
scope: *var,
^~~
Anonymous No.107143420 [Report] >>107143429 >>107143443
This is the developer of Zig.
Notice the glaring lack of autistic stare, melanin, make-up and other similar attributes.
Rust will never have this.
Anonymous No.107143429 [Report] >>107143497
>>107143390
>>107143420
Why do you judge technologies based on social aspects and developer faces. Are you trying to act like a female? (you will never be one)
Anonymous No.107143443 [Report]
>>107143420
Here is his post-op photo.
Anonymous No.107143461 [Report]
>>107136144 (OP)
Using Zig since 0.10.1 and every update feels like a huge step forward
When it goes 1.0 I'm dropping everything else for it, it even works as a scripting lang

Also >>107136539
Anonymous No.107143476 [Report]
>>107136144 (OP)
>>107142228
Anonymous No.107143486 [Report]
>>107143308
there are multiple zig projects that are making money so you're safe
Anonymous No.107143495 [Report] >>107143516
>>107142973
Zig is an alternative to Rust except with pedophiles stripped away.
Anonymous No.107143497 [Report] >>107143543
>>107143429
Because the social aspects will affect the long-term development of the language and the tooling. Hyped autistic languages like rust and zig attract weird unstable people. That's not good long-term. Stable boring corpo language like Java, Go, C, C++, and so on attract normal stable people. That means a more stable language and tooling long-term and being focused on what matters instead of fighting for various social issues.
Anonymous No.107143516 [Report] >>107143539
>>107143495
Zig can't do anything you do in Rust or C++ on daily basis.

Also I noticed that Zig programmers can't discuss Zig without comparing it to other languages. Like look at this thread, it has Zig logo but the OP clearly just want to talk about other languages. Is there really so little going on with Zig that the only way you can start conversation about Zig is by talking about everything else but Zig?
And when you actually make the comparison, you make it completely non-technical like you just did.

What a joke of a language.

>inb4 more non-technical arguments
Anonymous No.107143539 [Report] >>107143595
>>107143516
Isn't this how Rust gained traction though? By shitting on C and C++ instead of it's own merits.
Anonymous No.107143543 [Report] >>107144723
>>107143497
>Because the social aspects will affect the long-term development of the language and the tooling.
Yeah, the color of skin and hair of the developer is surely going to make up for lacking technical merit lmao.
Stop acting like a woman.

>Hyped autistic languages like rust and zig attract weird unstable people. That's not good long-term. Stable boring corpo language like Java, Go, C, C++, and so on attract normal stable people.
So far Rust attracts largest corporations. Same corporations that got attracted to C++, C, Linux and every other large, successful FOSS project they contribute to.
And zig attracts no one.
Anonymous No.107143558 [Report]
>>107137474
You can do anything you want in it and it's faster than C
Anonymous No.107143576 [Report] >>107144254
>>107138225
Every bug in that video was fixed months if not years ago
>breaking rewrites
Alpha software

>>107142567
This, No more retarded wrappers and workarounds when you can literally just start writing zig instead of C and it JustWerks
Anonymous No.107143583 [Report]
>>107142350
Odin is more like C++ if it was made in 21st century but you're right on zig
Anonymous No.107143593 [Report] >>107143607
>>107141509
this is the main reason why zig is so special
it literally changes how you think about programming
Anonymous No.107143595 [Report]
>>107143539
No. Rust gained traction because people have been begging for a C++ replacement for literal decades and Rust was the first one that actually delivered.
Rust doesn't even try to compete with C, it is different language that operates on different set of abstractions. What more, a lot of Rust developers recommend learning C first to understand the basics of systems programming. They only dunk on C++ and for a good, technical reason. Rust move semantics, reference semantics, builder methods, explicit non-trivial copies, hygienic macros, module system, proper function types, never/unit/zero-sized types etc has exposed a lot of bad design choices for C++.
This is also worth noting that the way Rust refers to C++ is by taking notes of its mistakes instead of pointless accusation of trannies, pedophiles and whatever other US-centric current thing is talked on social media. There was never need for any of that because users of both languages are competent enough to be able to discuss actual technical aspects of them instead of relying on memes and politics. The way Zig is promoted by non-technical means really gives of vibe of HTMX, which was so notorious for obnoxious, non-technical shilling that it got itself banned from some tech forums lmao.
Anonymous No.107143607 [Report] >>107143621 >>107143913
>>107143593
Literally both Rust and C++(given some special flags) let you work in environments with no global allocator. That's like the basis of any bare metal programming. There is nothing special about zig in this case.
Anonymous No.107143609 [Report] >>107143628 >>107143645
why can't the pedophiles just go back to plebbit instead of invading our zig threads?
Anonymous No.107143621 [Report]
>>107143607
>0 reading comprehension
Anonymous No.107143628 [Report]
>>107143609
What zig thread? OP is asking about any languages.

If you want to have a Zig thread, why don't you try to make one that does not ask about any other language but Zig? Why do Ziggers just can't discuss Zig alone without comparing it to every language under the sun?
Anonymous No.107143636 [Report]
>>107142228
post zig code and name the rust feature creep.
Anonymous No.107143645 [Report] >>107143680
>>107143609
They/Them can't handle competition
Anonymous No.107143649 [Report]
>>107142350
post code in any language mentioned in your comment
Anonymous No.107143651 [Report] >>107143654
>alt-lang users actually talking about the software they're working on challenge
Anonymous No.107143654 [Report] >>107143667
>>107143651
go back
Anonymous No.107143666 [Report] >>107143794 >>107143897
Zig was much easier to learn than C++ so it might be a good candidate to teach students in the future
Anonymous No.107143667 [Report]
>>107143654
just proving my point.
no alt-lang user actually works on anything. they just download the compiler, do a hello world and find language flamewar threads to idle in
Anonymous No.107143673 [Report]
>>107138225
Not a single one of these bugs is still present
Anonymous No.107143680 [Report]
>>107143645
How about you post some code? It's hard to compete against something that doesn't exist.
Anonymous No.107143681 [Report]
>>107142465
roc decided to switch from rust to zig midway, delaying their ability to actually deliver anything usable for a few years.
so you can add a wip language to the meme list ;)
i would still take zig over c++ any day, mind. ("game dev" meme langs don't even deserve a mention)
Anonymous No.107143685 [Report] >>107143690 >>107143732
>>107142350
Except Zig shits on Odin because it's 10x faster
Anonymous No.107143690 [Report]
>>107143685
Do you have any benchmark? Or is this just another empty Zig claim.
Anonymous No.107143704 [Report] >>107143708 >>107147188
>>107142465
>Lies about the bugs still being open
>Conveniently ignores all the successful zig projects and downplays the less successful ones
Lmao, I'll keep writing zig until there is nothing to write
Anonymous No.107143708 [Report]
>>107143704
>I'll keep writing zig
What are you working on right now?
Anonymous No.107143712 [Report] >>107143719
>>107136144 (OP)
I tried Odin the other week but it's slow AF
Zig is really cool but I'll wait for 1.0
Anonymous No.107143719 [Report]
>>107143712
>I tried Odin the other week but it's slow AF
What did you wrote in Odin?
Anonymous No.107143722 [Report]
>>107136411 when it releases is the answer. until then odin is the best choice if you don't care about speed too much, if you do it's c/c++
Anonymous No.107143732 [Report]
>>107143685
It's more like 2-3x but yeah
Anonymous No.107143776 [Report]
>>107141690
The main selling point of zig for me was C/C++ without headers and the preprocessor
Anonymous No.107143794 [Report] >>107143815
>>107143666
I suspect that's what's going to happen when it's stable since C++ is one foot in the grave and the only current replacement is way too bloated/complex to teach to students
Anonymous No.107143806 [Report] >>107144227
Odin was promising but the recent updates are not a good sign
Anonymous No.107143814 [Report] >>107143824 >>107143870 >>107144360
Ruby.
Everythings' an object.
Everything's dynamic.
Everything's reflective.
That includes modules, classes, methods, symbols, regular expressions and primitive data types.
Anonymous No.107143815 [Report] >>107143833
>>107143794
C++ is even more complex and bloated than any alternative to it.
C is more than enough to teach students. It's minimal, opinionated, stable language with great legacy and a lot of important projects. It will always be the best option if you want to teach students basics of systems programming.
Anonymous No.107143824 [Report]
>>107143814
install elixir you caveman
Anonymous No.107143825 [Report] >>107143837
>all these unprompted, random posts shitting on Odin and advocating for Zig
Anonymous No.107143833 [Report]
>>107143815
>opinionated
*unopinionated
Anonymous No.107143837 [Report] >>107143866
>>107143825
programmers became sports fans somehow
Anonymous No.107143866 [Report] >>107143890 >>107143909
>>107143837
No, it's literally Andrew shilling his lang on /g/ out of all places. Why do you think all these people who claim to use Zig ITT never post any personal projects? They don't exist, it's just one samefag trying to create artificial crowd around his programming language.
Anonymous No.107143870 [Report] >>107143880
>>107143814
This
100% White man's language
Anonymous No.107143880 [Report]
>>107143870
It was literally made by Japanese.
Anonymous No.107143890 [Report] >>107143912 >>107153138
>>107143866
No, they don't post personal projects because people on 4chan say naughty words like "nigger" and "pajeet" and don't want those things linked to their actual real life identities and projects. Don't be a retard.
Anonymous No.107143897 [Report]
>>107143666
>students
they will learn javascript and be happy
Anonymous No.107143909 [Report] >>107143912
>>107143866
>newfag plebbitor thinks people will doxx themselves for him
Anonymous No.107143912 [Report] >>107143975
>>107143890
>>107143909
And somehow this is only an issue for Zig programmers and not in literally any other relevant language, kek.
Anonymous No.107143913 [Report] >>107143973 >>107144019 >>107144296
>>107143607
>Literally both Rust and C++(given some special flags) let you work in environments with no global allocator.
anything you do in rust or c++ can also be done in assembly, it is a matter of convenience. the allocator-as-a-parameter pattern that zig uses means that I can use any part of the standard library that allocates memory even in situations where I don't have (or don't want to use) malloc - sure, you can rewrite the libc to use your custom allocator and do the same in c, and then rewrite any external library that you may use to do the same, but you are most probably not going to

to be more concrete, although some stl types do take an allocator parameter (which is rarely used because anyone that cares about it is not using the stl to begin with), most c and c++ libraries do not. if you use linux, you are probably using either xcb, xlib or wayland to write user interfaces (or something built on top of them) - all of these do implicit allocations. some calls allocate memory, some do not, there is no easy way to tell, you have to trace the syscalls or manually inspect the code

to make things worse, up until c++17 (released after zig), using a custom allocator with the stl changed the type signature, so if you had a third-party library that expected std::vector<int>, you couldn't pass it your std::vector<int, MyAllocator>. maybe you are just trolling and don't really care, but it is insane that xcb allocates memory and the programmer has no easy way to fix that or tell it to use an arena or fixed buffer or whatever
Anonymous No.107143973 [Report] >>107144019
>>107143913
pretty much

having used rust and c++ for years and zig for 3 months it makes me feel like i'm not in control of anything when using the first 2 again
Anonymous No.107143975 [Report] >>107143987
>>107143912
Ironically, the only "people" that actually post their projects are rustoids.
Anonymous No.107143987 [Report]
>>107143975
Go to /dpt/. You will see people posting about their own projects in literally every relevant language, except for Zig for some mysterious reason. Just as if no one actually was using it, hmm...
Anonymous No.107144019 [Report] >>107144053 >>107144147 >>107144165 >>107144222
>>107143913
>to be more concrete, although some stl types do take an allocator parameter (which is rarely used because anyone that cares about it is not using the stl to begin with), most c and c++ libraries do not. if you use linux, you are probably using either xcb, xlib or wayland to write user interfaces (or something built on top of them)
I write embedded Rust code. I pass Allocators by argument and store them in structures in literally same way you do it in Zig. All the libraries that are nostd, ie all the libraries that are relevant in embedded context do it in the very same way. There is no global allocator or implicit allocations.
In C++ it's not that pretty but it's not language fault but just C++ programmers having tendency to not really care about anything and accept whatever half baked solution that works.

>all of these do implicit allocations. some calls allocate memory, some do not, there is no easy way to tell, you have to trace the syscalls or manually inspect the code
Even in Zig you can't be sure if a call will allocate a memory or not. When you call std.ArrayList.push, you have no idea if it will allocate new memory or not. There isn't even any allocator passed to that method, if you did not construct that type yourself, you still get that spooky hidden allocations and "you have to trace the syscalls or manually inspect the code". This whole idea of Zig having all allocations being explicit is just a meme and doesn't work in practice in any non-trivial code.

>>107143973
That means you have not learned any of these(as if 3 months was enough to be proficient with C++ or Rust). All these languages are systems programming languages and give you full control over everything you do.
Anonymous No.107144053 [Report]
>>107144019
>std.ArrayList.push
Oh, I think it's append not push, but same shit applies
Anonymous No.107144132 [Report]
>>107143185
Also, I have a question about this code. Even though it doesn't work, I have several questions.
Why is allocator stored as a pointer? What if your allocator object does not actually hold any data and just represents some globally accessible allocator? Do you really need to add this extra dereference when using it? Is this some mechanism of implicit dynamic dispatch, akin to virtual/dyn?
Why is ptr a nullable pointer? This adds yet another overhead by having to check for null in the destructor and null assign. Can't you make the SmartPtr struct have an invariant that the ptr is always non-null and valid from it's creation to the time it goes out of scope?
Won't that defer dellocate that variable as soon as smartPtrInitDefer or its caller returns?
Anonymous No.107144147 [Report] >>107144159
>>107144019
>muh heckin' embed
i make games
Anonymous No.107144159 [Report] >>107144189
>>107144147
I make consoles to play games.
Anonymous No.107144165 [Report] >>107144179
>>107144019
>This whole idea of Zig having all allocations being explicit is just a meme and doesn't work in practice in any non-trivial code.
if it doesn't say that it allocates then it doesn't
Anonymous No.107144179 [Report] >>107144199
>>107144165
Where does the std.ArrayList.append say it allocates? In the documentation? That's no different from C++.
Anonymous No.107144189 [Report] >>107144217
>>107144159
Lmao you're so autistic you miss the point completely
Anonymous No.107144199 [Report] >>107144207
>>107144179
the call location
Anonymous No.107144207 [Report] >>107144234 >>107144284
>>107144199
How does the std.ArrayList.append says it allocates in the call location?
Anonymous No.107144217 [Report]
>>107144189
>Zig does X, Y and Z
>other languages also do X, Y, and the claim about Z is false as shown by W
>I make games
I am the one who misses the point?
Anonymous No.107144222 [Report] >>107144394 >>107144394
>>107144019
>All the libraries that are nostd
by making this distinction you are proving my point

>Even in Zig you can't be sure if a call will allocate a memory or not.
and you can't be sure a rust function won't use-after-free if the programmer decided to go out of his way to prove a point, but most people are going to adhere to the behavior that the language enables and encourages, that's why they chose it

>When you call std.ArrayList.push, you have no idea if it will allocate new memory or not.
std.ArrayList is unmanaged as of zig 0.15.2, but I assume you mean the managed version and the append function. you are passing an allocator:
pub fn append(self: *Self, item: T) Allocator.Error!void {
const new_item_ptr = try self.addOne();
new_item_ptr.* = item;
}
self there is the struct that includes an allocator. and notice that whenever you call the function, you have to either handle or propagate the Allocator.Error, which is a pretty good hint even if you missed the fact that you are passing an allocator. for reference, this is how you usually use arraylist:
fn f(allocator: std.mem.Allocator) !void {
var al: std.ArrayList(i32) = .{};
defer al.deinit(allocator);
try al.append(allocator, 1);
try al.append(allocator, 3);
}
if you used the managed (deprecated) version you wouldn't need to pass it the allocator as an additional parameter, it would go in the first parameter (the "self" pointer), but it is still pretty obvious that there is an allocation happening

>you have to trace the syscalls or manually inspect the code
not really. usually you use something like this:
var gpa = std.heap.GeneralPurposeAllocator(.{
.stack_trace_frames = 20,
}){};
defer std.debug.assert(gpa.deinit() != .leak);
which will fail and give you a stack trace if you try to leak memory on a debug build
Anonymous No.107144227 [Report]
>>107143806
yeah gingertard can't stop making horrible decisions
that and the slow compilation are making me think about jumping ship
Anonymous No.107144234 [Report] >>107144394
>>107144207
Are you retarded?
Anonymous No.107144252 [Report] >>107144261
>>107143185
retard, you are calling fn_defer before you return the pointer from smartPtrInitDefer
Anonymous No.107144254 [Report]
>>107143576
Anonymous No.107144261 [Report] >>107144428
>>107144252
i don't see your code
Anonymous No.107144284 [Report] >>107144394
>>107144207
what do you think "allocator" in try list.append(allocator, item) means?
Anonymous No.107144296 [Report] >>107144301 >>107144446 >>107144495
>>107143913
This is pretty much it
Zig solved memory management with KISS
Memory bugs only happen because confusion caused by ambiguity in the code, something zig simply removes
No need for high level concepts that are just unnecessary mental overhead
Anonymous No.107144301 [Report]
>>107144296
yes and because it's so simple it also compiles 10x faster than c++ or rust
Anonymous No.107144360 [Report] >>107144382
>>107143814
>silently watching the cattle in-fight
Anonymous No.107144380 [Report]
>>107136144 (OP)
Hare
Anonymous No.107144382 [Report]
>>107144360
Anonymous No.107144394 [Report] >>107144440 >>107144465 >>107144512 >>107144545
>>107144222
>by making this distinction you are proving my point
No. I claimed that Rust and C++ let you work in environments with no global allocator.
You responded by talking about how zig does it.
I have shown you that Rust also does it in that way.

>and you can't be sure a rust function won't use-after-free
You actually can for any correct(sound) code.
This is irrelevant to the topic at hand.
We were talking about how Zig allocations are not always explicit. Use-after-free is irrelevant to allocations being explicit or not.
Stop trying to change the topic.

>>107144222
>I assume you mean the managed version and the append function. you are passing an allocator:
>if you used the managed (deprecated) version you wouldn't need to pass it the allocator as an additional parameter
If they changed it they should update the documentations because that's not what is written on the zig.guide and any example I find when I search for this function.
And the point still stands. If this was allowed before then it will be allowed afterwards. At some point your structure will be "managed" and then all that explicitness goes away. Otherwise, you are going to add an extra allocator argument to 90% of your functions and once again you won't know when allocations happen. You already don't really know if std.ArrayList.append will allocate or not, it might or it might not. This uncertainty only amplifies the further you move allocator along the call stack.

>>107144234
>>107144284
pic related
Anonymous No.107144428 [Report] >>107144457 >>107144505
>>107143185
>>107144261
Your AI generated code is embarrassing and fucking retarded. You simply can't implement a smart pointer in zig, there's no concept of a type having any kid of automatic delete behavior when a value goes out of scope. The closest thing you can get is using a scoped arena const std = @import("std");

pub fn main() !void {
var gpa_state: std.heap.DebugAllocator(.{}) = .init;
defer std.debug.assert(gpa_state.deinit() == .ok);
const gpa = gpa_state.allocator();
{ // "smart pointer" scope
var arena_state: std.heap.ArenaAllocator = .init(gpa);
defer arena_state.deinit();
const arena = arena_state.allocator();
// "smart pointers"
const sp1 = try arena.alloc(u8, 100);
_ = sp1;
const sp2 = try arena.alloc(u8, 100);
_ = sp2;
}
// no leaks!
}
Anonymous No.107144440 [Report] >>107144573
>>107144394
1. managed array lists (the docs you linked) that store the allocator are deprecated and slated for removal
2. even then, what do you think Allocator.Error means?
Anonymous No.107144446 [Report] >>107144456 >>107144457
>>107144296
>Zig solved memory management with KISS
>Memory bugs only happen because confusion caused by ambiguity in the code, something zig simply removes
It doesn't. You can't even do RAII with it. You need to manually open documentation and remember to call the destructor just as with manual memory managment. Languages like C++ or Rust allow you to actually bind memory allocations to the lifetime of structures on the type level. This is what solves memory managment. Zig just incorporated GCC's __attribute__((cleanup)) and called it a day.
Anonymous No.107144456 [Report]
>>107144446
>manually open documentation
just *read documentation
Anonymous No.107144457 [Report] >>107144466 >>107144474 >>107144728
>>107144428
>>107144446
>He wants things to happen on their own without explicit instruction to do so
Maybe programming isn't for you
Anonymous No.107144465 [Report] >>107144573 >>107144581
>>107144394
>Stop trying to change the topic.
it wasn't a change of topic, it was an analogy: even though something is technically possible, it is still highly discouraged by the tool and the community
https://en.wikipedia.org/wiki/Analogy

>At some point your structure will be "managed" and then all that explicitness goes away.
no? as I pointed out to you in the part of the reply that you failed to quote, you are still passing an allocator in the first parameter (the pointer to the struct that holds the allocator interface) and you still have to handle the Allocator.Error

>you are going to add an extra allocator argument to 90% of your functions and once again you won't know when allocations happen.
these two don't follow. if you pass an allocator to a function then you know it can allocate, same if you pass it an allocator within a struct. if you don't pass an allocator, then you can assume it won't. it still might, if, say, it decides to use the sbrk syscall directly, but for practically all code you can assume they are not doing that
Anonymous No.107144466 [Report]
>>107144457
How is this related to the conversation at hand, retard?
Anonymous No.107144474 [Report]
>>107144457
It's literally the consoomer meme
These people *need* more
They think less is worse
Anonymous No.107144495 [Report] >>107144589
>>107144296
memory bugs happen because sub 3 digit IQ needs hand holding to write logic
Anonymous No.107144505 [Report]
>>107144428
yeah but why do you need a smart pointer
Anonymous No.107144512 [Report] >>107144597
>>107144394
>pic of a deprecated function
Bad faith.
Anonymous No.107144545 [Report] >>107144653
>>107144394
>You already don't really know if std.ArrayList.append will allocate or not, it might or it might not. This uncertainty only amplifies the further you move allocator along the call stack.
It doesn't matter if any particular try list.append(item) allocates or not because the freeing is taken care of when the backing buffer grows or when the list is deinitialized.
var list: ArrayList = .init(allocator);
defer list.deinit() You can have a thousand appends within this scope and maybe one in every 100 calls will actually cause memory to get allocated. It doesn't matter, you can consider it an opaque implementation detail, either way deinit makes sure it gets freed. There are no leaks.

try list.append(item) isn't even the recommended pattern for populating lists. The better approach is to reserve the space you need up front with try list.ensureUnusedCapacity(num_new_items) and then append the items with list.appendAssumeCapacity(item). This way there is exactly one line of code where the list's backing buffer may or may not grow and exactly one syscall, which is much better in terms of both code hygiene and performance
Anonymous No.107144573 [Report] >>107146111 >>107146206
>>107144440
>1. managed array lists (the docs you linked) that store the allocator are deprecated and slated for removal
Cool. That doesn't change the fact that if you write any non-trivial code you will either end up:
>coming up with managed types that obscure allocations
>propagate allocators up the call chain which will again obscure the actual allocations and possibly bloat your argument count if you use multiple allocators

>2. even then, what do you think Allocator.Error means?
That this function might return an Allocation.Error. The allocation error does not have to be caused in that function though. In any non-trivial code, it is frequent that you bubble errors trough multiple layers and you might even store and manipulate errors using functions that did not created them. Having Allocator.Error doesn't tell you anything.

>>107144465
>it wasn't a change of topic, it was an analogy
It makes no sense as an analogy because having managed types is totally legal and sound in Zig but having undefined behavior outside of unsafe blocks is not sound in Rust.
One is matter of convention, another is matter of correctness.

>no?
Yes

>as I pointed out to you in the part of the reply that you failed to quote, you are still passing an allocator in the first parameter
I was not talking about the new ArrayList implementation. I was talking about code that will use this ArrayList and code that will use that code and so on. At some point you will fall into one of the two categories I mentioned at the start of my post.
Anonymous No.107144581 [Report] >>107146111 >>107146206
(cont.)
>>107144465
>these two don't follow. if you pass an allocator to a function then you know it can allocate, same if you pass it an allocator within a struct.
If you never store allocators, you will have to propagate allocators down the callstack. And considering that most non-trivial function that calls other functions will probably eventually call some function that takes an allocator, you will have to include it everywhere. And if majority of your functions take an allocator just because some other function down the call stack might want to allocate, you lose that information on which functions exactly allocate and which just pass it down somewhere else. And if you instead store that allocator in some structures, you will get these hidden spooky allocations.

>same if you pass it an allocator within a struct
And if you did not construct that struct yourself, you can't know if it has an allocator or not without reading the docs which defeats the whole point of explicit allocations.

>then you can assume it won't.
This is false. You can write a function that gets a reference to a type you have not constructed that has an allocator in it. For example when writing library code.
Anonymous No.107144585 [Report]
>>107136144 (OP)
const std = @import("std");

pub fn main() !void {
try std.fs.File.stdout().writeAll("Hello, World!\n");
}

What is the usecase of wasting my time? Why the need for pub fn main() ! void look how much crap is there, it's easier to just write int main() and be done. also look at the second line below

try std.fs.File.stdout().writeAll("Hello, World!\n");

this is embarrassing, this looks like jeet code wym try what am I trying? Either the function works or it doesn't, if it doesn't you fix it so it works. Look at the real example below

printf("hi");

These are toy languages that nobody will ever care for, as silly as it seems, you can rate them all by syntax. The ones that are trash have awful syntax. C has survived for many decades, how long will this shit survive? It hasn't even been released yet lmao. To create a perfect language, you simply have to take C and add much more checking to the compiler, so it can detect when you fuck up the memory alloc. And of course, for the lazy - a package manager for packages, instead of hoping that the malware bundle you download from 50kb/s server from 1989 will link correctly.
Anonymous No.107144589 [Report] >>107144609
>>107144495
What kind of hand holding did OpenSSL developers needed?
Anonymous No.107144593 [Report]
>>107136144 (OP)
TAKE OFF EVERY 'ZIG'!!
Anonymous No.107144597 [Report] >>107144609 >>107144636 >>107145268
>>107144512
Nowhere on that page it says the function is deprecated. If you google "ArrayList.append zig" in google, all you get is example of people using this very function.
Anonymous No.107144609 [Report] >>107144614
>>107144589
>cherry picking
>>107144597
>google
>examples
rtfm
Anonymous No.107144614 [Report]
>>107144609
So, what kind of hand holding did OpenSSL developers needed?
Anonymous No.107144636 [Report]
>>107144597
Anonymous No.107144653 [Report] >>107144904
>>107144545
>It doesn't matter if any particular try list.append(item) allocates or not because the freeing is taken care of when the backing buffer grows or when the list is deinitialized.
It does. The claim was that all allocations are explicit and that only functions that take allocator as parameter can allocate.
This is only feasible when writing stdlib(which is the biggest zig project so far it seems). In real world code you will either end up writing managed types that obscure allocations or mark every function as potentially allocating by giving it allocator argument which defeats the whole point.

>try list.append(item) isn't even the recommended pattern for populating lists. The better approach is to reserve the space you need up front with try list.ensureUnusedCapacity(num_new_items) and then append the items with list.appendAssumeCapacity(item). This way there is exactly one line of code where the list's backing buffer may or may not grow and exactly one syscall, which is much better in terms of both code hygiene and performance
Cool. And what if instead of writing a toy example that creates a list, you are writing some library that takes constructed object as parameter? You can't know if a call to one of it's methods will allocate or not without checking documentation or playing guessing game based on return type.
Anonymous No.107144656 [Report] >>107144671 >>107144675
Why is Odin so slow?
Anonymous No.107144671 [Report] >>107144687
>>107144656
What was the last thing you've written in Odin?
Anonymous No.107144675 [Report]
>>107144656
the developer is mentally ill
Anonymous No.107144687 [Report] >>107144751
>>107144671
A firewall
Anonymous No.107144704 [Report]
>>107142339
much better standard library
compiles much faster
more control
Anonymous No.107144723 [Report] >>107144808
>>107143543
genetics determine potential technical merit so yeah
Anonymous No.107144728 [Report]
>>107144457
>you want automation?!
>programming is not for you.
lmao
cool to see this variant of /g/eet tard maxxing again
(nta)
Anonymous No.107144732 [Report] >>107144738 >>107144749 >>107144763
>>107142339
I used odin for 4 years and honestly the moment I checked out Zig I never looked back
It's so much faster and easy to read
Anonymous No.107144738 [Report]
>>107144732
What was your last Odin project?
Anonymous No.107144749 [Report] >>107144775
>>107144732
same but for me it was the flexibility
odin is extremely rigid while zig lets me do anything like c
Anonymous No.107144751 [Report]
>>107144687
What kind of firewall was that? Any reasons why you picked such a niche, managed language like Odin for something that sounds like a job for a systems programming language?
Anonymous No.107144763 [Report]
>>107144732
Odin claims to be a game language yet it's as slow as python
Anonymous No.107144772 [Report] >>107144782
>suddenly 5 people just randomly joins thread to talk about how Zig is so much better than Odin
Anonymous No.107144775 [Report]
>>107144749
This and Zig compiles faster than C
Anonymous No.107144782 [Report] >>107144871
>>107144772
>saar my python clone is very good stop blaspheming the odin saar
Anonymous No.107144789 [Report]
Why is Zig so easy to read?
Anonymous No.107144808 [Report] >>107144815
>>107144723
That's why I use Zig.
100% straight and white BFDL who just gets shit done
Anonymous No.107144815 [Report]
>>107144808
What are you working on in Zig right now?
Anonymous No.107144830 [Report]
Odin keeps crashing on windows
Anonymous No.107144871 [Report] >>107144914 >>107144922
>>107144782
No, I am calling you on your blatant shilling and samefagging.

Not a single person ITT can talk about the projects they supposedly do in Zig and Odin, despite claiming to use them for years.
The only Zig code posted ITT is AI generated and doesn't even fucking compile.
The entire engagement in this thread is artificial and plain shilling. Probably done by Andrew himself or his fanboy.
Anonymous No.107144886 [Report]
>>107138296
>around the corner
Neither language will be here (1.0 in the case of Zig) in at least 5 years. Maybe 10.
God, no human will be writing code anymore by that time.
Anonymous No.107144904 [Report] >>107144970
>>107144653
>you can't know if something returns an integer or a string without playing a guessing game based on the return type
thanks for showing that you're a retard and wasting everyone's time
Anonymous No.107144914 [Report] >>107144921
>>107144871
meds nigga
Anonymous No.107144921 [Report]
>>107144914
What are you currently working on in zig?
Anonymous No.107144922 [Report] >>107144948
>>107144871
Have you considered that you're some random retard on 4chins and nobody wants to type out a several paragraph long explanation of the shit they are building? Shut the fuck up already you niggermonkey.
Anonymous No.107144940 [Report] >>107144970
ITT rust tranny with asperger's syndrome having a meltdown because xer language is losing ground
Anonymous No.107144948 [Report] >>107144978
>>107144922
Go to /dpt/, /wdg/, /adgd/, any C++/Java/Rust/Python thread and start asking about what projects people do. You will be flooded with posts about the projects people work on.
But somehow, when you ask supposed Zig programmers they just don't feel like it at the moment. You also never really see anyone showcasing their Zig projects on /dpt/.
Curious...
Anonymous No.107144950 [Report] >>107145020
Can you guys please stop it withn this kind of nigger thread.
I can't handle anymore language hopping. I don't even really know programming fundamentals but I keep language hopping
Anonymous No.107144970 [Report]
>>107144904
Zig and any other language I know of, never claimed that you can tell return type without looking at the return type.

>>107144940
Nice try, but it's already too late to change the topic. This thread is a living proof of how artificial all this Zig shilling and Odin hating is.
Anonymous No.107144978 [Report] >>107144994
>>107144948
>the subreddit
there's like 5 people in there
Anonymous No.107144994 [Report] >>107145003
>>107144978
Dunno, I don't care about reddit. I am talking about this thread, that supposedly is full of people using zig for years but at the same time no one really have any project to talk about..
Anonymous No.107145003 [Report] >>107145011
>>107144994
Why would I dox myself?
Anonymous No.107145011 [Report] >>107145023 >>107145032
>>107145003
Somehow users of other languages keep talking about their projects, but Zig developers can't because that would dox them.
Curious
Anonymous No.107145020 [Report] >>107145056
>>107144950
Instead of language hop, decide on what area of programming you want to do(embedded, gamedev, webdev, scientific, devops, enterprise, etc) and just learn whatever is the industry standard/baseline in that field. After you have done that and got some experience, it will be much easier for you to choose what other technologies to learn.
Anonymous No.107145023 [Report] >>107145124
>>107145011
Link to these projects please
Anonymous No.107145032 [Report] >>107145124
>>107145011
And there's even more users of those other languages not posting their projects because it would dox them
Anonymous No.107145056 [Report] >>107145216
>>107145020
It kind of gets hard when you get mixed feelings and mixed ideas about what you want to do and what you need to do. Like, I'm 32 years old and never been employed in the industry. At the same time, look at the current state of the industry.
I was exaggerating a while ago. I do know programming fundamentals. But I get distracted between stuff that would supposedly help me get a job (maybe C++, Python, Go, with Python in the very last place) and stuff I am interested in doing, like systems dev, maybe Rust and some gamedev. Some weeks or days ago I was very hyped into Odin but barely did a breakout clone in it, now I'm trying to write a static site generator in rust.

I'm just moving without a clear goal at this point.
Still thanks for the advice.
Anonymous No.107145124 [Report] >>107145135
>>107145023
>>107145032
You don't need to link projects to talk about them.
>>107133556 >>107127257 People contributing to a little challenge we had about scanning bitfields
>>107135112 Here is a another C anon posting his testbed for that challenge
>>107140535 Adding twitch (chat?) to mpv
>>107127711 4chan filename string generator
>>107123223 anon making his personal website
>>107143322 "Making a shitty script for key prices on Steam."
>>545745727 anon releasing demo of his game
Can't quote more posts
Anonymous No.107145135 [Report]
>>107145124
>>545745727
>>>/vg/545745727
Anonymous No.107145216 [Report]
>>107145056
Well, it sounds like your issue is more on project management side than technology. There is nothing wrong with using multiple languages depending on situation, but you still need to be able to finish your projects.
Getting a job is a good goal to have if that's what you want. If you decide to get a job, it might become your guide in actually pursuing specific technologies towards proficiency. But if that's not what you want, picking projects with right scope matching abilities and good work hygiene/splitting it into milestones and tasks might improve chances of completing a project. This is something that you can only really work out for yourself by just doing and doing things until you get good at doing.
Anonymous No.107145268 [Report] >>107145388
>>107144597
Anonymous No.107145388 [Report] >>107145567
>>107145268
That's the type's page, not function's.
Anonymous No.107145396 [Report] >>107145494
So...
Seems like the answer to OP's question was Zig and Ruby
Anonymous No.107145494 [Report] >>107146270
>>107145396
I was hoping to see more Zig/Odin debate, since I'm distantly watching them both. But I am starting to think they are maybe oriented toward more different niches than I'd thought. Zig is starting to sound like it's more a C++ replacement, with support for "anything". On the other hand, I get the sense that Odin instead aims to cut out a large number of small features in order to streamline and facilitate the core parts that remain, which would make it a more natural choice for productivity when absolute or bare-metal control is not necessary. Perhaps making it a competitor to Go in some places.
Anonymous No.107145567 [Report] >>107145855
>>107145388
The whole type is deprecated, which obviously includes all of its functions as well
Anonymous No.107145606 [Report]
>>107136144 (OP)
no one here has mentioned Fortran or Ada, both well proven languages. Ada was plagued in the past with really poorly optimized compilers so never was able to get adoption

Julia is the only modern language that is really well designed to where every part of it is both powerful to do serious work yet simple and intuitive as say Python or Javascript. And the ecosystem is all well designed as it fits into a language that is easy to reason with
Anonymous No.107145727 [Report]
The biggest problem in programming is unreadable ambiguous mystery meat code and Zig solves that by being 100% explicit about everything
It's like *actually* human readable assembly
Anonymous No.107145855 [Report] >>107147380
>>107145567
Yes, but the point is that I could not know that. I'm not a Zig programmer. Googling that type and method lead me to deprecated documentation that wasn't marked as such on the page I landed in and to a guide, bunch of examples and reddit threads, all of which were using this deprecated feature.
Still all of this is irrelevant in the grant scheme of things because my argument was more about the inherit problems of explicit allocations in larger projects not about this specific piece of standard API. It was just used as an example, and even if they changed the approach in the stdlib, it does not fix the fundamental issue that will manifest itself downstream anyway as you keep adding more layers of abstractions in your project.
Anonymous No.107145920 [Report] >>107145933
Rust would be perfect if not for cargo
Anonymous No.107145933 [Report] >>107145951
>>107145920
Then use it with Maven like some projects do.
Anonymous No.107145951 [Report] >>107145958 >>107146128
>>107145933
the problem is rust using its own package manager that's full of pajeet slop
Anonymous No.107145958 [Report] >>107145971
>>107145951
You can use Rust without Cargo.
Anonymous No.107145971 [Report] >>107145994
>>107145958
How do I compile firefox without cargo?
Anonymous No.107145994 [Report] >>107145999
>>107145971
You don't need to compile firefox to use Rust
Anonymous No.107145999 [Report]
>>107145994
>*crickets*
Anonymous No.107146000 [Report]
>>107143162
Absolutely niggerlicious and unneeded.
Anonymous No.107146111 [Report] >>107152222
>>107144573
>>107144581
it is an appropriate analogy because it is technically possible to allocate without taking an allocator parameter, by using syscalls directly, for example, but you won't usually see it, just like how it is technically possible to use-after-free in rust but you usually won't see it

>I was not talking about the new ArrayList implementation.
me neither. you seem to have some reading comprehension issues, so I'm going to reword it a little: the append function for the managed list still passes an allocator, it passes it in the "self" parameter, which is a pointer to the managed list, which contains a pointer. these aren't obscure types, you can see that the struct has an allocator

>And considering that most non-trivial function that calls other functions will probably eventually call some function that takes an allocator, you will have to include it everywhere.
the convention is that you don't add an allocator parameter, or an allocator field for your struct, unless you need it. just like any other parameter, you don't add it randomly to functions just in case you might need it in the future

>And if majority of your functions take an allocator just because some other function down the call stack might want to allocate
either there is a function down the line that can allocate and thus takes an allocator, in which case you have to pass the parameter to the preceding functions, or there isn't, in which case you don't. just like with any other piece of data you could pass as a parameter: you don't, unless you have to

>you lose that information on which functions exactly allocate and which just pass it down somewhere else.
this doesn't follow. passing it down means that your function allocates, just down the line
Anonymous No.107146128 [Report] >>107146141 >>107146195
>>107145951
the problem is crates.io having no standards or QA so it becomes infested with 0.0.1 garbage made by teenagers and indians
and even if i avoid all that trash your average person doesn't have enough foresight to not do so as well so your software ends up pulling all of that in as well as the "good" crates you may want to use
not even talking about hecking security, it's just plain and simple bloat

>inb4 more is better
Anonymous No.107146141 [Report]
>>107146128
>inb4 you can hecking selfhost repositories
Anonymous No.107146195 [Report]
>>107146128
The easy solution would be to require providing a git repo for every dependency you want to use
Just this tiny amount of effort would make a normie think twice before pulling something in
As of now they just "cargo search nigger" and install whatever garbage comes up
>B-But I need 50 SLOC external dependency
Anonymous No.107146206 [Report] >>107152233
>>107144573
>>107144581
>if you instead store that allocator in some structures, you will get these hidden spooky allocations.
no? at some point you populated that structure with the allocator so you should be aware that it is there + you still have to handle allocation errors

>And if you did not construct that struct yourself, you can't know if it has an allocator or not without reading the docs which defeats the whole point of explicit allocations.
and where did that struct come from? lets take the old, managed arraylist, it's something like this:
pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type {
return struct {
items: Slice,
capacity: usize,
allocator: Allocator,

pub fn init(gpa: Allocator) Self {
return Self{
.items = &[_]T{},
.capacity = 0,
.allocator = gpa,
};
}

//delcs
//other functions
};
}
notice that the init function takes an allocator. now, suppose that you didn't initialize the structure yourself, and instead called something else that called init - then you must have passed the allocator to that preceding function, and so on, recursively until the call that you did write and took an allocator parameter

and a footnote, that's code more or less straight from the zig std, and you can probably understand it even if you have never seen zig code before
Anonymous No.107146270 [Report] >>107152308 >>107152355
>>107145494
>Zig is starting to sound like it's more a C++ replacement
thats what Andrew intended
Anonymous No.107146499 [Report]
Why is odin so unpopular?
Anonymous No.107146833 [Report] >>107149458
I can't come up with a fun side project to do some programming in my free time. Feels like I've already automated most of the annoying tech related areas in my life. Do you guys know any open source projects in Go or C# that are cool to contribute to?
Anonymous No.107146852 [Report]
are yall just making up programing languages now
Anonymous No.107147188 [Report] >>107147223 >>107147271
>>107143704
>Lies about the bugs still being open
You are the liar. And who knows how many more since the tracker is a mess of issues and proposals that he flip flops on and moves the milestones of

>Design flaw: Swapping struct fields yields unexpected value #12064 Open
https://github.com/ziglang/zig/issues/12064
>A Fix for Aliasing Caused by Result Location Semantics #12251 Open
https://github.com/ziglang/zig/issues/12251
Anonymous No.107147223 [Report]
>>107147188
yawn
you have been spamming these links for over 3 years now
these are non-issues for 99.9999999% of all zig code ever written and quite literally not even in the top 30 list of fundamental bugs or design flaws with zig that actually affect users
Anonymous No.107147271 [Report] >>107147318 >>107148079
>>107147188
Extremely bad faith post
You post these URLs with the knowledge that your average reader won't actually go to those pages and look at those "bugs"
If they did they would realize they're actually quirks that have no reason to be "fixed" and don't actually appear in the wild because nobody writes code like that
It's like pulling up cve-rs as evidence that rust provides no memory safety
Anonymous No.107147318 [Report]
>>107147271
his next reply to your post is going to be a link to the tigerbeetle repo featuring the one time any serious project has ever been affected by one of these bugs
Anonymous No.107147380 [Report]
>>107145855
>i was wrong, let me sperg out about it
Anonymous No.107147638 [Report]
An awesome zig thread absolutely stormed by antishills and rust death cultists.
Remember, successful ideas must be met with strong resistance.
Anonymous No.107147682 [Report]
>>107136411
The ONLY things I don't like about Jai are:
>ugly syntax for range loops, e.g. "0..array.num-1"
The fuck is this? Why can't I just do 0<array.num?
>lazily doing "x := y.z.w" seems nice initially but it's stupidly easy to shoot yourself in the foot with pointer vs copy
This isn't a big one, you could just tell the metaprogram to warn/break if it sees you using it on types you usually shoot yourself in the foot with.

Once it's fully released it will probably be my favourite language, it's just a bit rough around the edges right now.
Anonymous No.107147836 [Report] >>107151086
>>107136411
>>107137807
Jai Sri Ram jonathan blowjob

>>107138071
C3 has retarded generics syntax, why not just angle brackets like every other normal language did? Why do nulangs always try to distinguish themselves by inventing autistic nigger syntax, take for example Kotlin which made Java but a million times more ugly and niggerlicious, it looks like javascript at that point
Anonymous No.107148079 [Report]
>>107147271
>Extremely bad faith post
>fundamental flaws in the language that can't be in 1.0
pick one
Anonymous No.107148198 [Report]
I tried Odin for the first time and this shit is literally slower than python lmaooo
Anonymous No.107148593 [Report]
Zig won
Anonymous No.107149458 [Report]
>>107146833
blockchain
Anonymous No.107151051 [Report]
>>107136144 (OP)
BaZIGa
Anonymous No.107151086 [Report]
>>107147836
>Jai Sri Ram
You post this in every Jai thread but nobody who isn't Indian knows what this means
Anonymous No.107152222 [Report] >>107153161 >>107153174
>>107146111
>appropriate analogy because it is technically possible to allocate without taking an allocator parameter, by using syscalls directly
But I never said anything like that. I only mentioned the natural consequence of trying to have explicit allocations, not about edge case where someone does some hack to write unsound code.

>the append function for the managed list still passes an allocator, it passes it in the "self" parameter, which is a pointer to the managed list, which contains a pointer. these aren't obscure types, you can see that the struct has an allocator
Yes, but when you have to look up code and docs to figure out every time if some argument might have allocator hidden somewhere deep in nested structures then you no longer have explicit allocations.

>the convention is that you don't add an allocator parameter, or an allocator field for your struct, unless you need it
And as your project complexity grows you will have to do that to majority of functions, as you keep adding more abstraction layers. stdlib is not the only kind of projects that you use programming languages for.

>either there is a function down the line that can allocate and thus takes an allocator, in which case you have to pass the parameter to the preceding functions
And when that takes propagates to all your abstractions above then the whole idea of explicit allocations goes out of window. If majority of functions take an allocator then it gives you no useful information.

>this doesn't follow. passing it down means that your function allocates, just down the line
And when every function can do it in some specific situation, then tracking all these conditions for allocations becomes infeasible as your project grows in complexity.
Anonymous No.107152233 [Report] >>107153161 >>107153174
>>107146206
>no? at some point you populated that structure with the allocator so you should be aware that it is there + you still have to handle allocation errors
Just because you are aware does not mean it's still explicit.

>and where did that struct come from?
For example from code you have not written. When using or writing a library for example.

>and instead called something else that called init - then you must have passed the allocator to that preceding function, and so on, recursively until the call that you did write and took an allocator parameter
This is only true if you are writing the final binary, not if you are just writing some library that others will use.

And still. Even if you were the one to write it all your code. The mere fact that some structure include allocators means that any of their function can cause allocations and you just can't know without checking the code or docs. And even if that information is in docs, that function might be called by another function, and another function and so on, and which each layer it is less and less likely that their documentation and code will have any information about some allocations deep in nested function calls. That would make it a leaky abstraction and pain in the ass to refactor because you have to manually propagate all that information through docs. And of course, if you instead never wrote any managed structures and passed allocator as argument to virtually any function that might happen to call some function that allocates somewhere deep nested in the call stack, the result will be the same. As you build more layers of abstraction, such low level detail as allocation will be smudged and every function will seem to might cause allocations in some cases under some state and when every function might allocate or might just pass it somewhere else then all this explicitness goes out of window.
Anonymous No.107152257 [Report] >>107153174
Alright, I think I made my point. You still ignore my point and keep repeating same arguments that I have already addressed multiple times. This pointless discussion is probably just your strategy to keep this masked shill thread alive so maybe someone will look into your toy language. Just like how every time this thread reaches 10 page, a seemingly random poster joins in to say something irrelevant.
This shilling is disgusting, so this is going to be my last reponse to you, Adrew.
Fuck off and buy and ad.
Anonymous No.107152308 [Report]
>>107146270
This explains why he seethes ITT every time someone said Zig is not a C++ replacement.
Honestly, I just thought this thread was made by some fanboy, but seeing this I am not convinced this thread is just Adrew's doing.
Imagine being so desperate that you spent whole day shilling and samefagging your project on a basket weaving forum. Literally Drew-tier behavior lmao.
Anonymous No.107152355 [Report]
>>107146270
This explains why he seethes ITT every time someone said Zig is not a C++ replacement.
Honestly, I just thought this thread was made by some fanboy, but seeing this I am now convinced this thread is just Adrew's doing.
Imagine being so desperate that you spent whole day shilling and samefagging your project on a basket weaving forum. Literally Drew-tier behavior lmao.
Anonymous No.107152814 [Report]
Why is zig so clean?
Anonymous No.107152835 [Report]
After writing C++ professionally for 10 years I can't wait for Zig to be 1.0
Anonymous No.107152847 [Report]
>every time this thread reaches 10 page, a seemingly random poster joins in to say something irrelevant
Anonymous No.107153138 [Report] >>107153163
>>107143890
>No, they don't post personal projects because people on 4chan say naughty words like "nigger" and "pajeet" and don't want those things linked to their actual real life identities and projects. Don't be a retard.
so many people dont get this basic fact. you dont want 4chan references in your shit
Anonymous No.107153161 [Report]
>>107152222
>>107152233
>deep in nested structures
that you populated at some point. imagine a really obscure and complex type from a big evil library, you still had to call
var evil = ComplesLib.Evil.init(alloc);
at some point, and from there on you are aware that "evil" carries an allocator somewhere inside it. I agree with you that in some cases it might be hard to track, but that's how things are with manual memory allocation, and zig helps by making it explicit at some point, even if it is too early for your taste

>If majority of functions take an allocator then it gives you no useful information.
it gives you useful information: the majority of your functions can allocate memory. or not really because

>And when every function can do it in some specific situation
not really. take the arraylist type for example: the functions that don't allocate don't take an allocator parameter, and the functions that can allocate also return an Allocator.Error that the caller has to handle, so it is pretty explicit in both cases. I could write a very simple program to check this, but I would say that only 5% of the functions in the std take an allocator in any form (directly or within a struct parameter), and a similar number for the compiler, both of them big projects

>For example from code you have not written. When using or writing a library for example.
you must have given an allocator to the library call as I said above. I don't know how to rephrase this so you can understand the concept of dependency injection. libraries don't conjure allocators out of thin air, that's not the usual pattern
Anonymous No.107153163 [Report] >>107153184
>>107153138
That doesn't make sense to him because his noname neet friends in dpt dont mind sharing their toy projects you see
Anonymous No.107153174 [Report]
>>107152222
>>107152233
>This is only true if you are writing the final binary, not if you are just writing some library that others will use.
this is the inverse from your previous statement, now you are writing the library instead of calling it. if you are writing a library, then the parts of the api that can allocate should take an allocator. zig is statically typed, which means that you can know at compile time if the type that you are taking as a parameter in your api contains an allocator or not

>The mere fact that some structure include allocators means that any of their function can cause allocations
yes

>and you just can't know
no, you do know they can allocate, error codes are also a good hint

>it is less and less likely that their documentation and code will have any information about some allocations deep in nested function calls.
no. if I pass a function an allocator, it can allocate memory. within that function, if I pass that allocator parameter to some other function, then that function can allocate, and if I don't, then it can't. it is rather self-evident when you do it

>leaky abstraction
it's not really an abstraction and all abstractions in zig are "leaky", or should be, by convention. take the arraylist as an example again: it's just a struct. you could take one and change the value of the internal slice it uses to store things, or change the capacity usize, all the fields are public and both the language and the community actively disregard any notion of "encapsulation"

>>107152257
ok, baby wants to cry. I think it is a tragedy that you are smart enough to imagine hypothetical situations but not enough to understand concepts like recursion or composition, and that you would rather post here than try it out and check your hypotheticals against reality
Anonymous No.107153184 [Report] >>107153202
>>107153163
Because that's how it is. For some reason, it's exclusively Zig programmers that never post their projects.
Just as if they weren't real in the first place...
Anonymous No.107153202 [Report] >>107153212
>>107153184
I think you severely overestimate the popularity of your general
Anonymous No.107153212 [Report] >>107153219
>>107153202
I don't have any general and I was talking about Zig, not anything else.
Anonymous No.107153219 [Report]
>>107153212
>0 reading comprehension
Anonymous No.107154497 [Report] >>107154552 >>107154649 >>107154658 >>107154702
Zig is actually used as a build system in a lot of C projects already
Anonymous No.107154552 [Report]
>>107154497
name 3 relevant ones packaged by distros
Anonymous No.107154612 [Report]
C
Anonymous No.107154649 [Report]
>>107154497
I replaced meson with zig for my shit and It's literally night and day with how much more simple and out of the way it is
Anonymous No.107154658 [Report]
>>107154497
Like which ones?
Anonymous No.107154661 [Report]
>>107136978
> Nim
> Zig
Nig is better. Nim + Zig = Nig

Nig is the niggest of the nigs

>>107137047
> ecosystem
You’ll love Nig’s niggersystem
Anonymous No.107154670 [Report]
>>107137807
> Gai
Fucking gay
Anonymous No.107154702 [Report]
>>107154497
its awesome for that
Anonymous No.107155052 [Report] >>107155095 >>107155142 >>107156651
>explicit allocation
const std = @import("std");

fn nigger() void {
var allocator = std.heap.page_allocator;
var faggot = [10]i32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const buffer = allocator.alloc(i32, 10) catch faggot[0..9];
buffer[0] = 1488;
std.heap.page_allocator.free(buffer);
}

pub fn main() !void {
nigger();
}


How is nigger explicit about allocating here?
Anonymous No.107155095 [Report] >>107155108
>>107155052
>guys I wrote a program that does a double free on purpose this language is literally unusable!
all programming languages assume a bare minimum level of competence, or rather lack of malice, from the programmer
Anonymous No.107155108 [Report] >>107155115 >>107155539
>>107155095
where does nigger say that it allocates?
Anonymous No.107155115 [Report]
>>107155108
In the documentation :^)
Anonymous No.107155142 [Report]
>>107155052
delete this
Anonymous No.107155539 [Report] >>107155590
>>107155108
every sensible coworker will assume it doesn't. but of course, they will use a quick git blame to see who wrote that function. "ugh, it's anon, hate that guy, better double check he didn't do something retarded again"
Anonymous No.107155590 [Report] >>107155767
>>107155539
If your heckin' explicitness relies entirely on trust then it's not a language feature, it's just a standard practice, and all it will take is for zig to get popular and infested with students and pajeets for your standard practice to go down the drain kek
Though, andrew is 100% white so it's no surprise he has faith in this trust based system
Anonymous No.107155767 [Report] >>107155805 >>107155825 >>107155992
>>107155590
if you want compilers to shield you from bad code, i have bad news for you. people use zig because the standard practice is useful to them. if it's not, there are plenty of garbage collected languages
Anonymous No.107155775 [Report]
Rust trannies with their "safety" seem to completely miss the fact that it's best achieved with simplicity
Rust is now C++ tier bloat that requires you to reason about logic a lot
Zig solves this by being as simple and barebones as possible while also making it very easy to build anything you want
Anonymous No.107155805 [Report] >>107156384
>>107155767
>My language has explicit memory management
>Well it actually doesn't but you don't need that anyway
Anonymous No.107155825 [Report]
>>107155767
i accept your concession
Anonymous No.107155992 [Report]
>>107155767
retard
Anonymous No.107156384 [Report] >>107156468
>>107155805
borrow checker getting on your nerves? just use unsafe. garbage collection too safe for you? just call native code. you were always at the mercy of the code other people wrote, compilers are not magic, anon
Anonymous No.107156468 [Report] >>107156522
>>107156384
why are you comparing an actual language feature, which can optionally and not entirely be omitted to a standard practice claiming to be a language feature?
Anonymous No.107156512 [Report] >>107156574
>A simple language
>No hidden allocations
It's clearly implied that the compiler enforces explicit memory allocation when it actually doesn't
Anonymous No.107156522 [Report] >>107156535
>>107156468
because there is no difference in practice, which is what you care about when using the thing, instead of being a whiny snowflake offended by a lack of keywords
Anonymous No.107156535 [Report]
>>107156522
the difference is that you're brown nigger
Anonymous No.107156574 [Report] >>107156596
>>107156512
the standard library is part of zig, anon
Anonymous No.107156596 [Report] >>107156650
>>107156574
That makes no difference
Someone could write a huge popular library full of niggerlicious implicit allocations and that would be it for your explicitness
Anonymous No.107156650 [Report] >>107156705
>>107156596
someone could write a huge popular library full of unsafe blocks and that would be it for your memory safety. someone could write a huge popular library full of memory leaking native calls in your garbage collected language and that would be it for your memory safety. you know why these libraries don't get popular? because they go against the paradigm of the language they are implemented in, so nobody uses them
Anonymous No.107156651 [Report]
>>107155052
Yup, this is it. Zig had a good run, but it's over now.
Anonymous No.107156705 [Report] >>107156749
>>107156650
take a look at top 3 most popular rust crates
Anonymous No.107156749 [Report] >>107156784
>>107156705
apparently none of them relying on unsafe, proving my point. what were you going for here, anon?
Anonymous No.107156784 [Report]
>>107156749
>lying
Anonymous No.107157032 [Report] >>107157057
>300+ comments. zero code from zig proponents. zero coherent talking points. just trivially refutable claims and retarded analogies.
i don't have the time to try <v1.0 languages, but i thought zig was good, and it was/is on my todo list.
but if i didn't know that /g/ and /g/eets are very retarded, and one shouldn't trust their opinion on anything, this thread would have sworn me off zig for good.
Anonymous No.107157057 [Report]
>>107157032
Andrew is a faggot with dyed red hair I don't see why you would need more than that