I'm still waiting for the day we get a proper alternative to JavaScript.
If I had to make one, it would have a Bash-like syntax
I'm still waiting for the day we get a proper alternative to JavaScript.
If I had to make one, it would have a Bash-like syntax
I see your pitiful vibe coding and raise you... SPITE CODING 👿
What's this dude talking about?! Everyone knows no one hates React like people who code in React 😂 No one is gonna get pissed off watching this.
Do React devs really hate React?
I don't, but it can be really annoying when I accidentally fall for a common trap that I supposedly know how to avoid after all these years! Gah.
I think it’s great and I’ve been working with it for 6 years. Many issues were resolved over time. We didn’t even have hooks back when I started! Those were dark times. And the new compiler helps with memoization.
I used to be a React dev. The only thing I hated more than React was my boss.
I remember years ago when React was the savior of web apps Swooping in engineers from the clutches of JQuery and AngularJS (not to be confused with Angular 2+). Components we’re gonna make things simpler than the mess of JS files and global state.
And generally that’s true but we’ve traded that off for a mess of hooks and 700 line nested functions in nested functions and obtuse rules that only apply to react and not JS.
Complex web apps are hard.
I moved from Visual Basic (3 no less!) to C because I needed to optimize the performance of a software synthesis (like, sound synthesis) application I was developing at the time (mid-1990s). It boggles my mind to this day how much fucking work you had to do just to create a simple window in C. It instantly made clear why UIs at the time were so bad and I went back to Visual Basic for the UI with a compiled C DLL to do the heavy lifting.
There's no excuse for why UIs are still so bad today.
The "excuse" is more or less the 20 or so replacements that have been made and died. I think Microsoft alone is responsible for 5 over the life of Windows.
We've more or less kinda settled on HTML only because it's already wide spread. But it's not perfect so more standards for the standards pile. Don't worry, react will end up buried by the next thing on the pile eventually.
We’ve more or less kinda settled on HTML
It's funny, one of the modern UI glitches that I hate the most is when a long bit of text is just truncated with ellipses instead of the whole thing being shown and you have to hold the mouse over to get it in a tooltip, or shudder actually click on the thing. HTML is great at word-wrapping and allowing the whole UI to "flow" with variable heights and widths as necessary - and yet that is never allowed to happen in apps.
this is like when I built that web server in x86 assembly lol.
I bet that thing was fast!
I mean, just because you implemented something in a low level lang, it doesn't mean you're gonna have the fastest implementation. Even in high level langs, there's usually heavy optimization involved in things that are done all the time (e.g. web servers)
Meh. Even hosting static files in a RAM disk over localhost, you're 99% as good as you can be by using the sendfile() system call. The kernel can copy data from one file descriptor to another faster than any userspace program can. Implementing the Length header is a stat() call.
If you're not on a RAM disk and not on localhost, then disk access or network throughput will predominate.
Assembly is not magic go faster sauce.
Who do you think is better at writing assembly? @harbard@fedia.io or a modern compiler with hundreds of contributors.
I once write a web app in C, but this terrifies even me.. though Tsoding, the guy in the video, did that, too..
Speaking of coding out of spite, is nobody going to mention that his C code features a struct with over 20 fields in it?
Sometimes you can't not have a god class (struct in this case). When doing UI specifically, I always end up with one.
You can try using encapsulation to reduce the amount of fields technically, but in the end it's the same amount of information in a single god class.
Oh man. You should see the source code for IOS (the Cisco one not Apple).
Spent 5 years working on it out of college. I think it's the most cursed code base you can imagine.
Not necessarily because of the massive struct defs everywhere. They are kinda needed when you're running an entire OS as basically a set of interacting Linux processes pretending to be an OS.
At some point Cisco realized they could not compete without putting a Linux kernel as their base. So they basically just copy and pasted the old code written in the early 90s for the IOS and put it into a set Linux processes.
To be clear. It's not just the front end. They didn't really change the code much from the old IOS. Its a cluster fuck of interprocess communication hacks that probably seemed like a good idea at the time.
It is a massive pain in the ass to code because you're basically doing everything on the Linux kernel and then frustratingly have to write the CLIs for IOS just so Cisco can continue to sell their proprietary OS with some of the most unnecessary hardware locks. Massive learning curve for any new engineer.
Literally, no one on the entire switching team knew how to send a message from a specific process to the IOS process. I had been assigned something that needed it. So I somehow figured it out and was "the guy" for that for the time I spent there.
Fuck. I'm gonna start ranting more if I go any further. But yeah, sometimes you need a massive struct because some idiot decided that forcing a closed source CLI on the market is a good idea for profits.
Definitely not a good idea for coding. But you learn quickly that no one actually cares about good code in this industry. There is no time for it. There is no reason for it. Just spit out garbage until it works and your manager won't care.
If you want clean code. Go write an open source project or a personal project.
I used to work for Cisco but I can't say what it's like internally. Not because of an NDA but because I literally have no idea. I worked for a much smaller competitor of theirs that they acquired, obviously just to remove a competitor from the marketplace. We were all allowed to work remotely but given nothing at all to do for six months and then everybody (except the executives, of course) was laid off.
Literally just had the same thing happen to me. This time at Microsoft. Worked for a small startup. It got bought out in 2023 after investments in actual hardware that wasn't named Nvidia died.
Layoffs on most of our engineers. Somehow I survived and basically did no work for 2 years. Was finally laid off.
I hated it. But I basically stole a salary from Microsoft for two years. Fuck these big tech companies.
That's not uncommon, is it?
Not really, but I'd probably try to organize those into sub structures where it made sense. A data structure holding the UI state and FFT data all flat is kinda messy imo since it becomes unclear what is actually required where.
You can tell there ought to be substructures because he used comments to label the different groups. That's a code smell right there.
Yeah that's what I usually do, as long as it's passed by reference there isn't anything too bad here.
There used to be a UI library on the Amiga called MUI.
It used a bunch of C macros to let you define the window and all the controls. Was honestly pretty good considering it was like 30 years ago.
Unrelated but there is microui, a 1100 loc library in ansi C for a basic UI.
It was a pleasure to work with!
Right? I can't tell you how disappointed I was to move to a "real" PC later and find the tools to be so much worse. Like you could position stuff with a GUI in VB or Delphi, but if you wanted to resize a window, it was a real faff to get everything moving about as it should.
What's React?
React is what powers your Windows Start Menu.
Wtf is that real
Yes, as well as parts of the settings menu. What's not to love about constantly loading and unloading javascript just by clicking around in native apps? CPU spikes are good for your health.
React is a Javascript based web development programming language developed by Facebook to make pages run faster and better. I learned it as part of a MERN stack full web development course.
to make pages run faster and better.
Huh, well that's a funny way of saying "break the model of web page as document and fuck up the entire web!"
Yeah because documents are limiting and we want to do stuff that executables can do but with a better distribution model.
Shoulda been something more like Java Web Start.
Maybe. But performance, availability, and security killed a number of viable options. Flash was always more ubiquitous than Java on the web but it eventually died too.
Flash was also cancer that ruined web pages.
The reason Java Web Start wasn't, was specifically because once you clicked on the link, it downloaded the app and started it as a real desktop application, with its own window and taskbar entry and whatnot. It didn't rely on being embedded in HTML (I'm specifically not talking about Java applets, BTW -- they sucked too) or manipulating the DOM for its UI; it could use Swing and have the same look and feel as a native application.
Oh stop it. Are you saying you don't enjoy pressing the "Back" button in your browser, but staying on the same page. Therefore breaking the page so you refresh and lose whatever the fuck you were doing? /s
Used for rendering UIs on a Document Object Model. JS was a mistake.
can your React do that?? didn't fackin think so dabs mockingly
Data visualization ≠ UI and signal processing is traditionally done in C
That looks like buttons in the thumbnail, on the left of the visualisation.
I'd say that's enough to call it UI.
UI. User Interface. The bridge between a system and a user. So anything, literally any information transfer from the user to the system OR from the system to the user, is a User Interface.
A definition so broad as to be useless.
Is it a UI when someone calls memcpy to move data from a file to a screen buffer?
why would you take the least charitable interpretation? there is no need to be hostile.
and the answer, of course, is that it can be, as long as the information copied is meaningful for displaying to the user.
you're basically asking the equivalent of whether putting things into an array is an algorithm, which of course has the answer "it can be, depending on how you put it in". so basically, the operation you're highlighting is not the point.
Not it isn't.
A command line literally is a UI.
You seem to be confusing GUI and UI?
This isn't hard, you're just trying to make it to be.
Memcpy from a file to a screen buffer is as much a UI as pouring water in a pot is a soup.
I did not make this definition. However, this does not give you the freedom to make up your own definition and treat it as a fact. Don’t spread wrong information.
I'm going to go with no, since that step is not transferring data to a human, it's transferring it internally within the computer.
UI can refer to either the medium, such as a visual display, speaker system, or keyboard, and it can also refer to a specific layout of information (like the Qwerty layout, or a webpage layout).
I wouldn't consider the USB protocol UI just because it can transmit HID Events, only the keyboard or mouse as a whole is UI.
You could almost call HID events UI, but I'd still argue they're more of a computer-device interface than a human-device interface
Would you agree that the dashboard of a car is UI? If so, isn't that just data visualization?
The person on the video, known online as Tsoding (or by some as "mista azozin"), was writing a music visualizer program using the raylib library for writing videogames. raylib doesn't have code aimed at UI handling, meaning he had to manage the UI by himself. He likes doing a little bit of trolling, so that's why he picked that title.
Tsoding does by far the most entertaining recreational programming sessions I have ever seen on the Internet, so, despite them being quite long (about two hours), I recommend you watch at least a little bit of his videos/streams if you have time.
If you're interested specifically on this video in question:
Lakh views? 🤔
More specifically, an Indian divider for large numbers, kind of like how 万 (read 'man') works in Japanese. While Japanese (and I think Chinese) divide numbers greater than 1,000 in increments of 1万, or 10,000, up until you hit 100,000,000, in India, large numbers get split into lakh, representing groups of 100,000.
It's so neat how different cultures adapted to numbers. Like French have something like 4 times 20 (and?) 2 to mean 82. In Hungarian if you say billió, that is one trillion rather one billion. We riff on the ending of million to express billion: milliárd.
Oh, Is it my turn to tell the Indian Numbering System?
Here how we divide
100 > Sau Hundred 1000 > Hajar Thousand 1,00,000 > 1 Lakh Hundred Thousand 1,00,00,000 > *1 crore * Ten Million 10⁹ > 1 Arab 100 Crores or 1 Billion 10¹¹ > *1 Kharab * Hundred Billion 10¹³ > 1 Nil Hundred Trillion 10¹⁵ > 1 Padma Quadrillion 10¹⁷ > 1 Sankh Hundred Quadrillion
Honestly "C + SDL + Lua" is basically the best, most sane"full stack" I have ever used.
IMO it allows for the perfect level of abstraction.
top 95 comments