/tech/ - Technology and Computing

Technology, computing, and related topics (like anime)

I Fucked Up

Max message length: 6144

Drag files to upload or
click here to select them

Maximum 5 files / Maximum size: 20.00 MB

More

(used to delete files and postings)


Open file (18.37 KB 700x540 asdf.gif)
emerge --emptytree @world Anonymous 02/28/2020 (Fri) 07:42:54 No.1874
Given the chance to start over, how would you redesign the world of computer? Is it still von neumann architecture? How many registers? What langauge or what would be ideal language for system programming?
Forgot to add, you have access to all technology available today. For example ssd and ICs.
I will start with the web. Javascript is a mistake. Many uses of HTTP with js now could be done by real client programs specifically made for their purposes. Local mail clients are more light weight and fast, comapring to the jumping loading box of jewmail. Videos players such as mpv provides so much more function and quality than any browser crap. Clouds are more useful if they behave as a network mounted folder. To enbale such bloat functions, HTTP became a pile of crap. Of course, companies would have to actually spend money on good programmers instead of pajeet ninjas. But libraries and standards can prevent reinventing the wheel.
It would be LISP Machines all the way down. Not exactly lisp machines, but stack machines optimised for eval/apply and SIMD processing and other goodies that make pure FP programs run fast. Virtually no programs self-modify their code, so no one cares if we strictly separate code and memory. On the hardware/OS level we should've started with sandboxing all resource access so we get the cgroups/acl/android/docker model of giving permissions to fuck with your files or get passthrough access to the graphics card. An OS could decide for you whether to give some permissions by default or ask the user or even provide dummy access, like we do nowadays with giving programs a working directory where they're free to do whatever. >>1878 Downloading and running a sandboxed program simply by clicking a URL is perfection. It's too bad the sandbox has 30yo fossils in it and was originally a patch of grass on which you'd sit to look at SGML pages, but web browsers are the best cross-platform tool for instant software we currently have. With a do-over the only thing I would change is that opening a URL with a binary just runs that binary, given the resource model I mentioned above. Also it needs some plugin model, so you could for example drop in a gstreamer/WMP/MPV instance if the browser wants to show a video file on a page.
>what would be ideal language for system programming There's nothing wrong with a language like C or even C itself, you'd just have to do little changes to make it less niggerlicious and stop compiler vendors from adding special snowflake changes that makes everything complicated (by making the base language good so they're not tempted to). You could even bridge more of the gap between a "systems" programming language and a general programming language while you're at it by designing it smartly. Operating systems for sure should be completely redone. Every single one of them. The API should be minimal and sensibly designed. The OS should give you low level access to things like networking without slow and niggerlicious socket systems. It doesn't need to be like Linux where every part has to be a replaceable piece, it just needs to be well made and flexible and let you customize or replace parts afterwards. It SHOULD however be FOSS, since it'll probably eventually succumb to cancer just like everything else, so being FOSS will allow people to take it a new direction without losing compatibility with 95% of all software. Mobile OSes should be just minimalistic desktop OSes with a different UI, not these shitty locked down cancer towns that give you neither control nor transparency and require a shitty bloated language to program for. Graphics libraries need to be rebooted as well. OpenGL is shit, Vulkan is shit. I don't want convoluted cancer that even your own documentation doesn't explain properly, I don't want your shitty snowflake OOP api, just give me something as minimal and straightforward as possible. I don't know enough about hardware to say anything about how to improve them, but GPUs for sure should be more transparent. I think part of the reason graphics libraries are shit is because the GPU is a box of secrets that we don't have access to very deeply. I've heard something about letting programs live in their own space so they basically bypass the OS or something, if that's viable then that sounds neat. You could probably do interesting things with the web too if that's the case. I'm not too familiar with how the internet works, but when I looked into TCP/IP it seemed pretty shitty. It looks like one of those messed up machines that grew beyond it's design, just like everything else about the web. Just reboot the whole thing and design it from the ground up to the purpose that we now know we need. I'm not one of those people who obsessively want to remove scriptability from the web because it'll just inevitably return anyway, possibly in some shitty cancerous way again because the web wasn't designed for it and then someone shoehorned it in. That's why the web should be designed to be scriptable, and offer as much interactibility as possible without scripts, and let you disable it. It shouldn't be able to do anything on it's own if you disable scripts, but it should be able to do various things when you click buttons and shit.
>>1879 >web browsers are the best cross-platform tool Yes. But I would take code and data separation a step further for the web. URL should be a resource identifier for contents, instead of programs. There should be another corss-platform library for quick development, Java (although it sucks) for example is cross-platform. This will push new protocols to be developed for specific needs and the resulting application will be much more optimised. Less data (the downloadable executable) will be transfered. Web servers were designed for content delivery, so mpv can play a video through http just fine. >stack machines and fp Just curious. What is your argument for fp instead of procedure? Also, what do you think is the reason for even customized full stack machines to be slower than registers (since they seem to be)? >sandboxing There is the unix permissions. But selinux was bolted on as an after thought. How different would it be if resource access was implemented right in the hardware? >>1880 >gap between system programming and general This. C is actually good if used well, especially it doesn't have all that oop crap. >no socket Many different kinds of protocols could be adapted if raw access to network is provided. But it may cause fragmentation of the Internet. >graphics and hardware This. Without access to the source of the firmware and even the schematic of the hardware, users are at the mercy of vendors. Not only for GPUs many parts of the hardware is hidden so deep that even driver writers don't know how the device behaves. >tcp and scriptability Nothing is really not scriptable. The web is the prime example. With unix shells, text is scriptable and anything can be text. The problem with the web script is the HTML DOM crap that can't really be manipulated without being a bloated browser. If only well-formated content is passed through the protocol, programs or clients can script all they want at native speed.
Open file (246.81 KB 673x1422 web browsers.png)
>>1879 The web is already the shitty new JVM, we might as well replace it with a Lisp VM before everything is replaced with webASM. https://archive.is/jpuAt
William Shockley, Fairchild, Intel, Texas Instruments, et al, simply exploited the fundamental characteristics of matter & energy designed into the universe from the beginning by God Himself. ICs are designed as they are b/c at the most fundamental level it's the way they have to work. So there's no real way around that basic limitation of physics. The architectures of the designs themselves could be different however, even radically so. For example, if the microprocessor world had gone down the RISC/GPU path predominantly, we would never have run into the end of Moore's Law. We would have a steady exponential growth in compute power for the foreseeable future. This is why GPUs have taken over in ML/AI tbh. Most importantly is the political aspect. When legal systems are explicitly set up to line the pockets of the lawmakers themselves and actively encourage developers of technology to crush competition, then it will inevitably turn out in the end into the pozzed shitshow we have in front of us now. In short; all technology, both hardware and software, must be open, and contain no hidden secrets. This would be the most important--and most difficult to imagine--change in history which would have led to a much more powerful computing world for today.
>>1881 > especially it doesn't have all that oop crap. #include <stdio.h> struct Graphics_point { int x; int y; }; struct Graphics_square { struct Graphics_point lower_left; struct Graphics_point upper_left; struct Graphics_point lower_right; struct Graphics_point upper_right; }; int main() { /* WARNING WARNING WARNING, DON'T DO THIS. BAD OOP!11 */ struct Graphics_square square = {{0, 0}, {0, 4}, {4, 0}, {4, 4}}; printf("OOP BAD!\nDON'T DO THIS OOP CRAP!\n-t. anon\n"); }
>>2143 interesting.

Report/Delete/Moderation Forms
Delete
Report