Idk, Battlefield struggles to run smoothly in my 9 year old laptop with integrated graphics, while Terminal has no problems at all. Maybe it's the Battlefield devs the ones that need to work on their optimization.
"how do you survive the cognitive dissonance of believing you are a righteous code style warrior who does everything correctly and having results that are so bad while other people have results that are so good at the same time". God damn. lmao
A lot of "clean coders" just care about asthetics, how many lines each method has, etc, while at the same time implementing the worst and most overcomplicated solution for every problem.
I write embedded real-time critical software. I feel like my modern development environment is slower, buggier, and more difficult to use than the environment I was using in 1997. The one thing that is marginally better is graphical diff/merge functionality. That is literally the only improvement that I can point to in 25 years. Just getting the environment variables and path names (we still haven't solved the mystery of / v. \ for mixed windows and unix environments, lol) correct is a major chore. We are literally creating containers for virtual machines to do our builds "to reduce the complexity." I didn't have to do that crap when I was first starting. I imagine my old compiler would kick ass on a modern computer. Compile times seem longer rather than shorter even though the computer is millions of times faster and the complexity of the programs is not that different. Maybe it is because of my embedded environment, but I pretty much detest object-oriented programming. I think its disadvantages outweigh its advantages. I remember reading an Ada book talking about one of its advantages being compile-time resolution of function overloading versus run-time. As someone who walks stack traces when a system crashes and is looking at assembly language trying to figure out what name-mangled function was actually running when the system crashed, I can definitively say that ambiguous symbol tables and information hiding are not the advantages that they are made out to be. "We can make more complicated systems though." But can you? I deal with more stupid wrong parameter passed bugs than I ever used to. The guys writing these bugs are super smart, but the complexity just gets to a point where it is hard to hold it all in your head at once - particularly if you are getting interrupted with "why is the project not working yet?" status meetings. Software engineering has always sucked as far as I can tell. Yourdon's Death March was originally published in 1997. Sad to look back on that era as "the good old days."
Carmack has a thing about this that he's been rating about for years. Ever since he left Id and started to see how the other half did it. System programmers and game programmers live in two completely different environments. And it gets downright silly. Real world example. Game devs are using Visual Studio or some other IDE, they're tossing their code into a full exhaustive debug before compile. Tracing everything back and doing whatever they can to eliminate bugs and slow downs so everything runs faster, smoother, and with less crashes. System devs are still on VIM and Emacs. But here's where it gets downright stupid. Visual Studio is a bug filled mess. They literally make the tool all the game devs are using to do all these amazing ultra complex things that are thousands of times more complex than Visual Stuido, but cannot be bothered to run their code through their own debugging software they created for Visual Studio before they ship it. Even when John can get people to use an IDE, he cannot seem to get system devs to consider debug passes to be part of the process. Finish code, now spend two to three times that long just debugging it, then compile it. Everything should be properly ran through a process to get rid of problems, and it's just not. Yet they'll spend months on some widget that has nothing to do with actual functionality that ticks a checkbox. They only wanna debug when there is a problem. Which is something that just does not work in game dev world. All those edge case bugs waiting to blow up the entire code base compile fine, but given enough time they are all going to hit and cause a performance problem that games cannot allow. Now look at all the stuff we're using everyday. None of it has been properly debugged in years. Everything slows down, everything crashes, everything just sucks more.
@@halycon404 Yeah, I'm a VIM guy, but I can use Emacs. Neither are really approved for the development I do anymore, so I am stuck with Notepad++. It isn't bad, but I am less productive than I would be in Vim. Some of the younger developers I work with have literally no concept of how the computer actually works. They couldn't walk a stack trace if their life depended on it. A real shame too, because some of them are quite brilliant. They have never had to learn, and I feel like the lack of understanding impacts their code quality inadvertently. I feel like simple issues like reentrancy are harder to comprehend when you don't have an understanding of the underlying assembly language, context switches, and interrupt service routines.
@@halycon404 visual studio at least doesnt corrupt your code like it used to back with the visual studio 6 days. but maybe its just god stuffing with the software, and making it not work, its not microsofts fault. If anythings going wrong it could something wrong with your computer, I found .Net reliable, but 3dsmax was totally crap bugwise, blender isnt the best (not all parts of it), I prefer those new cadders for 3d printing, I find their methods are more fault tolerant. But it is actually going slow today but its the first time its ever happened, has it actually had a gain in bugs recently??? maybe its worse for it now!!!
Because intellect is NOT the number 1 quality that a technical professional must possess. It's "merely" the third or fourth. Anglo-Americans refuse to accept this. German technical pros know that all people are stupid and the whole process is designed for stupid people and for simplicity and in the end their things work. You say that you work on embedded real-time and you "walk stack traces". The ship has already sunk for you. The German teams working on these kinds of projects, through the design of the project and actually spending money for development tools, eliminate the need for these kinds of big-effort-low-reward activities.
I have to keep coming back to this every so often. Today it was due to someone on Hackernews saying that "VSCode is one of the greatest pieces of engineering of our time.".
I"m so happy to know there are other people out there concerned about this. I can never articulate it properly but dude, everything is getting so bad. People keep gluing these "assets" from "stores" and "repositories" together and calling themselves programmers, and the result is a 7 GB text editor that uses 32 GB of RAM when it works at all. But it's cool because their "packages" are "signed."
been trying windows terminal for a few weeks. the first thing I was disappointed at was the fact that it wasn't actually a new terminal, but just another thing like cmder. still, pretty cool, find out about the json themes and whatever so at least it looks nice (something not very important for a terminal I suppose). it uses like 70MB of RAM as opposed to cmder's 2MB, but still pretty cool. now the other day I find out that you can't drag tabs to reorder them, and I go googling around and end up in the main github issue about it and it turns out they have to prioritize the development of Edge first because that uses some thing called "Sets" which would be used, in turn, for the tabs in Windows Terminal. this thing was in development potentially for YEARS, with the fucking tabs being one of the most prominent "features", and you CAN'T FUCKING DRAG THE TABS BECAUSE THEY HAVE TO FINISH SOME OTHER PROGRAM WHICH USES SOME FRAMEWORK WHICH THEYRE THEN GOING TO USE IN THIS PROGRAM WHAT THE HELL
I wonder how much of this is because of low IQ because of dysgenics, and how much of it is wilfully doing stuff in a bad manner in order to have a longer, less challenging employment. A lot of it seems comfort-driven, people want 'nice' code, not working code.
@@NukeCloudstalker > how much of this is because of low IQ because of dysgenics Well, considering all studies into IQ distribution over time have either found no evidence for genetic effects, or very small effect sizes (0.038 IQ points per decade it in Kong et al. (2017), for example), I would say almost none. There is still much room for more research in this space though, and I am not an expert in the field by any means.
@@hemerythrin The heritability of intelligence is not really questionable. IQ-distribution over time will not get you any meaningful results, as IQ is by definition normally distributed, you'll find the same distribution for each generation, unless you find ways of comparing scores cross-generation (people have done this, they find that genetic markers for IQ is definitely dropping, and that IQ scores are too - but masked by the Flynn effect). I agree that there is room for more research, but the evidence doesn't show no effect - and larger effect sizes than you've shown. We are getting less intelligent, and one strong factor in this is genetic. I suggest you take my following reading recommendation to heart, its a short book that can easily be read in a single day in the weekend, but quite packed with relevant arguments, counter-arguments and so on. The issue is that the Flynn-effect has masked genetic decline of intelligence, by making up for it by rapid, large-scale environmental improvements - improvements that you cannot keep making, we've "used up" that, and now we're actually seeing a decline over time in several western nations (and that's just the ones that have been studied - most haven't). If you're genuinely interested in the topic, read the book "At Our Wit's End". It presents this case using all the studies your heart could desire, if nothing else we ought to be aware of this possibility, so we can analyze the issues that may arise from it properly, instead of acting in darkness. I do recommend it.
@@NukeCloudstalker "soft is bad because devs are stupid" is not a good explanation because it is a reification of intellect, in fact it's not an explanation at all, it's a way to put a label on a problem by saying "well, it's a form of stupidity too". IQ doesn't have anything with it because firstly at best it's supposed to indicate a level of intellect, not vice versa, secondly, trying to find that correlation is a reification by itself.
@@ligma-agen Windows has a colossal amount of legacy code that makes it very difficult to interface with correctly. And Microsoft "prides" themselves in backwards compatibility with older software and OS's. Literally, you ccould change a small thing with a win32 applet and multiple software would lose compatibility. It's that fragile! Some Win devs have to build around all the madness with fancy curtains, while tip-toing around to ensure they don't f**k something up. That's the reason Jeffrey Snover just created Powershell and a whole new language to interface with the system and said, and I quote "Don't ever ask me to fix the Windows command prompt". Even though it should be, It's really not as easy as Jonnathan thinks it is(nothing really is when dealing with Windows lol). To "fix" it may require some major refactoring, which again would lose Microsoft a crapton of backwards compatibility.
@@jupiterapollo4985not really, Microsoft just doesn't have competent people to do it. Apple for example built a whole fucking framework to emulate the legacy apps, and not just a legacy apps for the same architecture but apps that use another instruction sets, not once but did it twice. Not fan of Apple, but they did good job, far better than any Microsoft could do, shame, Microsoft peaked in the 90s and now they are dog shit. Microsoft could refractor the entire OS and built a framework as interface for legacy apps. Building a terminal is fucking easy for a trillion dollar company, but they are not competent to do it.
@@maxrinehart4177 Calling the Microsoft devs incompetent is very disingenuous. Some of the best software we use today have come from Microsoft such as the Office suite, Azure cloud, powershell, vscode, visual studio etc. The reality is the Microsoft devs are heavily controlled by corporate and can only do so much with the limitations they are given. Corporate doesn't want them to f**k around with win32 applets, so they don't. But calling them incompetent is a very low blow, as I'm sure there are and have been some very intelligent, hard working people working at that company.
@@jupiterapollo4985 The quake engine, the source engine, the unreal engine and the doom engine are all extremely old, and all have extremely old code still running in their respective modern versions, and all of them have a console that is capable of running at however many frames per second the system is capable of generating all while rendering games in the background, as well as processing all the logic involved. And games keep being produced nowadays in all of those engines I've listed. Old does not mean bad. If that were the case, then the windows terminal would have been slower in the past than it is now. The old code and backwards compatibility is not what is making it slow. Even if that were the case, what is stopping microsoft from making a completely brand new terminal program from the ground up? Since you are watching Jon's content, I suppose you also know Casey muratori, which means you most likely have already seen his refterm implementation. Is there any excuse for any operating system to have a terrible terminal or console in the year 2023? I think not.
3:35 "Alright, let me- here, let me, let's, let's get some context, ok? **typing** So like... there's like, video games that come out, right?" Absolute machine
I often think the "cmd" terminal is an active propaganda tool by M$ which makes people believe that command line tools are terrible. The message appears to be, "If it's bad here on windows (in familiar surroundings), imagine how bad will be in an unfamiliar UNIX environment." But a typical X windows terminal from '90 onward were so fast the text could not be read as it went by. One could only recognize the shape of the output rather than trying to read it. And that terminal was forwarded over X11 on a slow (10Mb/s) network to the local X display. Modern Linux terminals have subsequently been cluttered up by decorations with stretching and bouncing and background animations. Those features slow them down, but they still beat the pants off of anything M$ has ever produced. Especially the horrible Hyperterm (where text scrolled up and outside of the text area) and the pathetic "Power" shell. I don't know how people have endured it for so long. Old things are being re-invented and it appears nobody wants to maintain the old stuff to make it better. Old is good and the pool of bugs could keep getting smaller, but no. We want a new thing and a new batch of bugs. It's crazy.
Try kitty or alacrity on Linux? They're GPU driven so they are faster in terms of displaying text and also less cpu intensive. Very useful during compilation. If you're not interested in GPU accelerated terminals, or maybe you want your GPU to do other things, consider the st (suckless terminal) emulator. St is a pita to configure because you have to edit and compile it from source. BUT! Its just one single source file with 1k ish lines of pure C
text interfaces are inherently bad, doesn't matter how fast the text scrolls or how many fancy animations you add, this is what linux folks fail to understand, and unfortunately those linux folks seem to be getting more of an influence with ms which is why we get disastrous tools like this terminal.
My opinion is that Microsoft is not striving for excellence at all in the Windows area. Their two latest releases (Windows 8 and 10) were about expanding to the mobile market, grabbing user data and trying to funnel app sales through their store. If they didn't have these business objectives, I'm guessing we'd still be on Windows 7 - because why improve something that is effectively a monopoly anyway.
I'm so glad I found someone else who's worried about this. It's not just the terminal, but most apps today. They run like crap. Same app used to fly on a 7MHz single core CPU and a few KB of RAM with no hardware graphics acceleration at all, but today same or similar app requires a quad-core 2GHz+ CPU and 2GB+ RAM to even be usable. Something is horribly wrong.
I tried to learn how to do shit on a lower level, how to find and use the actual graphical primitives that all our graphical software is ultimately made of, I was pretty dumbfounded because I can't seem to find any solid ground to build software on. So we're stuck doing it on layers upon layers of crap. Want to build a graphical cross platform desktop app in 2019? Electron is probably your best bet. And it alone requires a supercomputer to run.
I tried programming on a Commodore Amiga, in that world everything is fairly simple because the hardware is simple and you have direct access to it. In today's world, especially if you don't want to tie the software you're making to a particular OS, you don't have a lot of options to go with.
It's a big jump from JS to C/C++. But making that code cross platform compatible isn't that big of an issue really. You just need to understand how different OSes work or use readily available frameworks.
It's called "I use a more powerful dynamic, interpreted language" and the time I save on performance optimizing is offloaded onto every user having to buy much beefier hardware. Except for games most programs are more like a proof of concept trying to be first to market rather than being a fluent user experience. Perhaps nobody wants to pay for fluid user interfaces besides gamers. My Windows 10 i7 3+ Gigahertz cpu needs multiple seconds to open a menu while a cheap game console can update 500 playing characters health status with 60fps. Perhaps "outsourcing software development" is the best indicator of not caring about quality any more in favor of lower production cost (often just more profit and not lower end sales price)
@@shallex5744 ...again..mwhat part of "at every turn" are you ignoramuses are having trouble processing ? Try getting Blow's d1ck out of your mouth and be a little less sycophantic and embarrassingly stupid going forward
@@thecollector6746Wasn't being sarcastic. Look into what happened when Casey Muratori raised an issue with Microsoft about Windows Terminal's poor performance.
It is all about human nature. You may start with Windows terminals and end up with questions that few dare to ask. The ability to dismiss the existence of the problem is more powerful than you realize.
@FichDichInDemArsch that's your prompt doing too many git commands. fish itself has no problem with large git directories. function fish_prompt; echo -n "> "; end and suddenly all the delay is gone. git prompts definitely need improvement.
I’m imagining that there are companies that have systems to create very sophisticated solutions with much less code and complexity than we are dealing with now. I think we peaked around 1994
"so there's like videogames that come out..." me every single time i am attempting to program a simple desktop GUI application and i find a bug/caveat/undocumented thing/missing feature in a brand new bleeding edge "modern" GUI framework for the 11th time in under an hour.
Many programmers have been fighting for decades against measuring objective qualities of software such as performance. They've made a living of acquiring some niche knowledge, such as the idiosyncrasies of some overly complex software framework, and they need those measurements to be out of the conversation in order to keep their jobs.
When taking employment you always have holy members that swear to clean code and doing everything so neat. And its a luxury to be your own man and be able to tell it like it is, as in any team you would not get the code through PR if it doesn't match their expectations
Fun fact, on Linux the terminal is way faster. Still with the graphical interface. But even my poop computer can output a whole screen worth of text in a terminal in a matter of milliseconds.
"jump scrolling" is what made xterms on early 80s hardware usable for large text output. 40 years later there are still people who don't understand that simple concept but instead waste their time with bullshit like GPU accelerated text output "to make things faster".
4 years later, and the new Windows terminal is the best one I've used so far. I have yet to find a Linux console that has all the features the Microsoft one has. Some have a decent but but are slow, others are fast but don't have much quality of life features.
@@Charlie-xh2nf sure, find me a different terminal emulator that can: load images from a url, apply gaussian blur to them, lower the darkness, render fonts with ligatures, allow for customizing everything (not just certain settings) per profile, well designed splits and the ability to have different profiles in different splits, good integration with mouse input (clickable links, correctly passing scroll inputs to programs) and do all of that with good performance without hammering your CPU/gpu constantly rendering 60fs when nothing is happening on screen
What exactly is he complaining about? Any default terminal just works, even right now there are GPU accelerated terminals like Alacritty, Wezterm and Kitty. Windows Terminal, although I don't use it often, it just works, it also has features that make it understandable why its users like it, it is a great improvement compared to the default option, it has tabs, it has profiles, so you can have a profile for CMD, another for PowerShell, another for WSL or another for Git Bash, it has splits, you can customize its appearance and it probably has other things that I don't know. What sucks in Windows is CMD and PowerShell, sometimes when I use CMD and a command has already been executed CMD will not update its state until I press enter, PowerShell on the other hand is quite slow compared to its competition when you use it on basic hardware. Also, I see people in the comments confusing what a terminal is with a shell, The terminal is to put it simple the window in which the shell runs, your terminal can have a monospaced font, a font size, colors, some terminals have tabs, others do not, etc. Terminals: Alacritty, Wezterm, Foot, Windows Terminal, GNOME Terminal, Xfce Terminal, Konsole, Kitty, iTerm, MacOS default terminal, Hyper, Tabby, Terminator, xterm, rxvt, etc. Shell: CMD, PowerShell, ZSH, Bash, Fish, Nushell, etc.
windows terminal has no keyboard shortcuts whatsoever for its interface. That's it. That's reason enough to throw it in the bin. Go try navigate its settings GUI without the mouse. Now go try do that with the legacy terminal (you do need to enable underlining keyboard shortcuts in the global windows settings though, because apparently, we like to - by default - hide the things that make navigation faster?)
@@GeorgeTsiros Do you mean Windows Console or Windows Terminal, the new one, released in 2019? When I used Windows, Windows Terminal was the terminal I used and I do remember that it had shortcuts, you can configure them with the graphical interface or in a json file, I used the basic ones, ctrl+tab to switch between tabs, ctrl-t to create a tab, there were also keyboard shortcuts to open different configured profiles, these profiles can be WSL, cmd, PowerShell or GitBash, I also remember being able to open split panels with shortcuts.
@@GeorgeTsiros What do you expect? It's a GUI, is it so bad to configure your terminal with a few clicks and then forget about it? do you do most of your terminal work in the configuration UI? to me, a Linux guy who configures his terminal with a configuration file using Neovim doesn't seem like such a bad thing.
Priorities of software industry has changed. Companies optimized for max profits. Like one guy maintains curl and is offered like $5k by amazon which is nuts
As a codestyle warrior myself, I do look at games with barely concealed envy. My field, AI, is soooo far behind in terms of both functionality and demand. And that's the key. Games succeed or fail based on the whims of millions of people worldwide, so they are optimized based on how well they hit those dopamine receptors. As such, they squeeze every bit of processing power from the hardware. As complex systems, I imagine many of them are heartbreakingly beautiful works of art. Other software, especially B2B software, is designed to please a small handful of investors and managers who make the decision to buy something. Workers are forced to use the software whether they like it or not. It's the same reason cicadas are slow and unresponsive to things around them, while mosquitoes are faster - and mosquitoes in tropical countries are even faster than those in temperate countries.
The comment he made at 5:40 tells me that he thinks ttl emulators are just windows that render lines of text. Nope, they emulate TTY rendering, and have to convert and understand streams of ASCII escape codes and do those things. Sure, it's often not hardware accelerated rendering on the GPU, and integrated CPU rendering is always terrible, and no it's not a set of shaders faking a bunch of supposedly impressive effects, but it's not actually AS simple as he's claiming. He's basically saying, "I have a program, it takes some input and prints it back out. Terminal emulator, done!". Nope, there's a lot more to those than that.
It's really not complicated. People program within performance constraints. If opening a certain program "should" theoretically take 2 milliseconds based on analysis, and it takes you 2 seconds, you're off by a factor of 1000 in performance. Will you be punished with 1000 times less sales? No. Some users will get pissed off it takes 2 seconds to load, but the market will not destroy you for that. When designing products companies maximize for what the market pays for, not what is theoretically right. People set performance targets and then do whatever convenient shit is available that still keeps them within those performance targets. There is logic to this. Sometimes performance does matter. The iPhone succeeded where the Windows Phone failed, because Apple recognized that scrolling the screen was performance critical and set a 60fps target on gesture interactions and animations. And they accomplished it, despite being the same company that produces abysmally bloated crap in other circumstances, where they don't deem it performance critical for market success. Imagine if Jonathan Blow were a Michelin star chef instead of a programmer. He'd be ranting about how "THIS SHOULD BE THE FRONT PAGE OF NEWS EVERY DAY!" about how some fast food restaurant isn't doing cooking right and doing talks about how civilization will collapse because people will forget how to cook well.
@@turdferguson3400 programmer arguments are the best, so based and logical lmao I can't even decide whos wrong and whos right. In the end I dont give a f and just code my shit and make it work lol, hope when the shit hit the fan because of my incompetence or lack of intelligence a lot of doctors will be there for me :D
It's not really so much to do with the programmer's skill but with the way these corporations operate. They specify features that their devs need to implement and performance is never part of the specification, unlike games. So devs ship what is asked of them and nothing more, because nobody is going to give them a bonus or a pat on the head or anything at all for making their feature really performant, it makes no sense for them to spend effort on this, it would in fact be detrimental to their career since they would take longer to finish their work compared to those who don't go this extra mile
Great comment, bad follow-up. Without capitalism or something similar, you go from only having economic incentives to do some of the important things to not having economic incentives to do any of the important things.
It's not a different version of a command line app, it supports an actual TERMINAL PTY which Windows never had until now (maybe the posix layer that went away after windows 2000 had it, idk). Finally windows is catching up to Linux and other OSes in this aspect. I personally use alacritty on all platforms (linux/windows/macos), it has hardware accelerated rendering, 24bit terminal support and more or about equal throughput (scroll lines) than any other well working terminal I have used.
@championchap it doesn’t need to but the GPU is better at drawing so why not? I would imagine it at least has an theoretical potential to consume less power (probably varies a lot in practise because of different hardware with different power saving features) drawing using shaders instead of the CPU because it can return to idle state faster?
@@pleggli Can you explain to me what's going on in this rant? Why are Windows users confined to just one terminal? Jonathan said "Why is this thing special, why isn't it something that 50 people do over the weekend"... Well on Linux it is, on Windows why is it not? I saw comments saying "Full unicode support still isn't a thing on Windows", why are people confined to just one terminal? Does Microsoft have a monopoly on it? I'm asking you because you mentioned you use Alacrity on Windows so idk what's going on, why are Jonathan and other people complaining if you have alternatives?
@@piface3016 I think this isn't just about the terminal, but the shell too. And the cmd shell sucks ass too. Powershell is... Decent. So best to use Alacritty with Powershell. But everyone is cheering for Terminal because it's a Microsoft-sanctioned replacement for the default terminal that comes with cmd/pwsh.
The past few months I've been going down the rabbit-hole of Data-oriented design and I must say that it's pretty weird to see that proponents of it doesn't get why most developers don't consider it. For me, and most developers I've met, we've just been taught the skill floor is extremely high, that the productivity rate is way slower, and thus cost, maintainability, etc. explodes into unreasonable territory for enterprises. If there was a quick way to disprove those assumptions, then the DoD community should do it. That's something I hope to do at least, if I find out that DoD can actually scale to less talented developers. Jai could be a great tool in the right direction, but we still need accessible falsifiable evidence that DoD isn't just for niche domains.
you don't need to be particularly skilled to put things into arrays and not use virtual functions where you don't need them. it's kind of a default that people start from, people actually need to learn to use OOP, because it's quite unintuitive for many people: things in nature are not organized as hierarchical ways, eg it would be stupid to say that cat "inherits" behaviours from mammals and not reptilia. even without inheritance, virtual functions are almost never needed, i'd say that 95-98% of functions can be non-virtual with no effect on readability.
I imagine in the original stream, some people must have commented that text in games in not actually text, but bitmap textures that are drawn by the GPU so it's not a fair comparison etc. And I hope they got burnt.
ok here's the thing: games nowadays render stuff using a GPU, true. But command prompts do and have always done the drawing on the CPU. Why did command prompts of the past draw faster on slower CPUs than modern command prompts then? His point regarding games is that even if they use the GPU, all of that complex stuff still has to go through the CPU at some point and thats where the main bottlenecking happens. And it still is capable of handling 60+fps that have to go from requests on the CPU to draw stuff, to being drawn on the GPU to them being used by the CPU. There's a lot of stuff going on.... Not to mention that physics in most games still run on the CPU and are only drawn by GPU so... uhhh yeah, that still makes a far more complex piece of software: the game, run better than the console itself. Not to mention the fact that we have old games that ran through software rendering inside of terminal programs and they ran fast enough to be playeable: good luck running those properly on modern terminal programs...
What's stopping your terminal from using bitmaps tho? Like, that's just how text in computers has been rendered since... forever, basically. Glyph rendering with modern fancy font processing is pretty expensive, old systems just optimized it the same way games do.
I don't need to tell you about how excellently configurable, lightweight, and no-brainy my terminal program of choice on Linux is, do I? Or that it's hardware accelerated to actually be able to print text ridiculously fast? Or that it has vi-keys for text selection and manipulation, so I can yank command output without leaving my keyboard? Or that it's developed and maintained by a single person for free, in an open manner so I can read and modify the code any time? Or that it's not even remarkably better than the competing terminal applications for linux, which are generally excellent... Sometimes windows people just seem a bit masochistic to me..
You can copy and paste on the windows terminal, by either right clicking inside the cmd terminal or, right clicking on the terminals window bar, clicking edit on the drop down list and then clicking paste. Its extremely obscure and many people don't even know you can do that. But I guess that's the problem, simple things like copy and pasting in a terminal should be much more simplistic and intuitive.
All who disagree probably have a very good "work-life balance", never had to do any serious hobby side projects, and probably get tired to technical jobs at 28 and decide to become managers or agile/scrum masters.
For some reason most terminals dont use the gpu. So I sort of asusme they are slow becasue they are not using frameworks. The general idea is that it mostly does not amter ebcause the job of a terminal is not to output text, it to to tell the computer to do something, some text being output is just a side effect and hopefully
@@marcossidoruk8033 Because ones that do not use the gpu display text thousands of times slower than ones that do. The popular terminals on among the power users are all gpu powered, also casey muratori (molly rocket on YT) created a reference terminal demo (either in response/support to this video or this video was in response to him, I forget the exact context) and must be rendering with the gpu because it uses quite a lot of gpu.
@@wisnoskij nah, if you keep your terminal simple enough there is no need for GPU, a lot of "power users" use st aka the simple terminal wich is already as fast as you would ever want a terminal to be, you can easily make real time 3d ASCII games there is literally no point going beyond that.
@@marcossidoruk8033 I agree, the point of a terminal is never to output text data onto the screen, so speed past a certain point is mostly useless, and can be worked around by skipping the actual rendering phase in most cases. If you dump a 1gb file to the terminal, just render the last page for example. But that is the entire point of this video. You can easily get a 10k% increase is rendering speed, as well as increasing efficiently and decreasing computer resources used by just utilising the gpu. It is better in every way at rendering. One of the biggest benefits of Caseys reference term is not that is like 100 times faster at dumping a file to the terminal, it is that it will use less cpu, less fan, less power for shorter periods of time.
@@wisnoskij yeah but you will use more dependencies, more code and thus probably make your code less portable and less modifiable, the point of st is to provide a fast terminal with as few lines of code as possible that can be used in any unix based os and is easily patchable to do pretty much whatever you want it to do, thats why its so popular among "power users" and that is why I think gpu enhanced terminals kinda miss the point, but whatever you find most useful is ok for you so idk.
my old android phone had a 7MB clock. Just how in the world does that happen? I had to factory reset the phone and it installed 'new' 'improved' stuff and now it takes two reboots to start and then a few minutes before anything will work at all. I have a new phone, of course, but like my old PCs and laptops that were fast and top of the range and worked really well are way beyond obsolete - can't even run puppy linux.
The answer is probably that the complexity of games programming, whilst staggering, is ultimately more understandable and decomposable into coherent black-box style units - and also just more appealing to work on. A game engine is a more closed system that generally doesn't interact with so many external unknowns. To compare the work a terminal does to the relatively easy process of spitting out text overlays in a controlled game environment is a little unfair. The complexity in a terminal may be orders of magnitude less in terms of sheer computing work done - but the complexity in terms of understanding what has to be done to make a console interoperate with the OS and other pograms is huge in terms of mental load. Less people are interested in solving those curly but boring/thankless problems than working with games and fancy graphics. A terminal should start very quickly - and unfortunately the latest ones are failing a bit on that point as we gain some of the useful graphical elements such as glyphs. Just take a look at some of the old curses systems - which still need to operate today - and see if you feel like writing some code to speed all this up whilst maintaining backwards compatibility. For a game engine - you can use unicode without really delving into it; to get a new terminal system running I think you'd need a deep understanding of unicode and many other systems that generally don't seem very exciting.
I disagree. The windows command prompt does not interact with other programs in any meaningful way and isn't even the same on many versions of windows, let alone multi platform. If the problem is that you have backwards languages and emoji, guess what, every other program also has those.
what? that makes no sense. I mean, yes, it makes sense that it is easier to understand something when it is decomposable into coherent components, but a game engine is complex af and most game devs dont even know how most stuff is implemented behind the scenes... why would a far more complex piece of software be easier to handle because of that tho? the terminal and the game both do the same thing at the end of the day: draw stuff on the screen. The terminal has to draw text only. The game has to draw text, meshes, polys, textures, images, all while keeping a stable framerate with many post processing effects etc etc... why is the text drawing of the console program so much slower? imagine i made inside of a game engine a terminal simulator, something that worked exactly like a terminal from windows for example, like cmd, but completely programmed by me. Are you proposing that that terminal with all the added stuff that wont get used from the game engine will be faster than the standalone official terminals AND MAKE SENSE?? im sorry but, even tho i know it is true that a terminal written in a game engine will be faster than windows' terminal, i dont agree that it is something that is understandable or that makes sense. The windows command prompt is simple as fuck. Or at least, the idea of a terminal or command prompt is simple af... why does it have to be orders of magnitude slower than games??? I mean, sure, the game engine will use the GPU for drawing all of that stuff, but that final image information still has to go through the CPU to get rendered. The terminal, which has only the purpose of drawing text, is somehow slower than older terminals from the past that were capable of doing the same thing with CPU only but faster. Terminals are obviously going to be slower than games because games have access to GPUs these days, sure, but only for drawing stuff like text... if you think about all the other graphical components a game has to draw, then it makes no sense that a powerful modern CPU struggles rendering text on a console giving us even slower text rendering speeds on the console than terminals from old operating systems that were ran on far less powerful computers... In short, this means that modern terminal programs are just made wrong and coded like shit.
Guys you just don't get it, the reason your rocket engine control system runs faster than my hello world app is obviously because I have a much harder job. Your controller only runs on the rocket, while my app has to run on windows, linux and macOS!
The funny thing is Microsoft devs KNOW how a terminal emulator should feel. I think that's why people got excited, they really thought m$ was finally going to deliver their users something good that isn't PowerShell
Johnathan Blow is great, but he doesn't get the UX benefits of refining "perfectly functional" existing utilities to make them more pleasant to use. Not everything is about overcoming extremely difficult technological challenges, sometimes it's just about improving the **design** of an already functional program, and adding a couple simple features.
Windows terminal is also not a "Manhattan project" type endeavor in terms of the resources Microsoft is providing, it just had a banger of a promotional video.
What Jon is flabbergasted by is that people are excited about this as though it’s an innovative product when it really doesn’t add any functionality to existing terminals apart from user experience (which Linux users have been building themselves for a long time now :P ). Also, it’s Microsoft Windows, so there’s a high likelihood it will be bloated with non-features that strain the processor. That’s why he says in the beginning, “Why does anyone think it’s not going to be terrible?”
Idk why this rant is directed towards terminal emulators and not browsers. Terminal emulators are just fine, and wt is actually pretty great for a microsoft product. They balanced end user and power user features pretty well imho
4:55 The problem is money. How much can you get from a console? Do most users know what it is (not to mention, use it)? Could you spark business' interest without expatiate sentences about what's "right", "wrong" or at least "reasonable"? Do they care about your discomfortable OCD?
He has a console window for inputting commands inside the editor of the game, so he has solved that problem, albeit in a different environment. I would guess something similar existed in The Witness too, and maybe even Braid. An example of someone writing a terminal is Casey Muratori with Refterm, written in a few days. It’s not a fully featured terminal, since it was written as a performance reference, but it still has most of the functionality you need out of a terminal.
Can I stick a dumb terminal to the rs232 and talk to Windows? No? Then it doesn't _have_ terminal capability, does it. Because that's the whole deal behind a "command prompt". That as long as you have a device that reads/writes characters, you can talk to the OS.
Idk, has Blow _seen_ the previous Windows Terminal? Perhaps people are excited because for some reason it's not something that you are able to see very often on Windows. Like he says, "why isn't this something that 50 people did last weekend?". That's exactly how it is on Linux, and therefore a new terminal app in that ecosystem isn't a huge event, or whatever he characterizes this reaction as.
You should learn that just stating conclusions isn’t an argument. I am sure there are more complicated programs than this new one but I didn’t hear you articulate a single problem with this program. You made no points, just hand waving. You are an excellent developer and smart, show it!
I mean... I can't even install windows terminal so I can't check it out (windows store literally installs it but then shows a greyed out install button and gives me no way to open it & I refuse to wait however long visual studio takes to load so I can build from source), but I've got to say blowes being somewhat unfair here. Firstly... does he actually know what this is. He admits he hasn't seen the trailer, so there's that, but from how he's describing it, it sounds kinda like he thinks its a new shell or terminal emulator like bash (or fish) and wsltty respectively. That's not what windows terminal is (at the very least, its more than that). It's an application that lets you spawn shells, structure them (split vertically or horizontally) and bind commands to configure the creation of them. It's basically microsofts attempt at CMDer (an application blowe uses might I add). It's gotten a lot of press for some pretty stupid reasons, but that doesn't undermine the goal. I mean, Microsofts never really shown themselves to be very giving to the developer community; they gave us visual studio (because windows is a horrible development environment unless you spend months tweaking it) & they gave us WSL (probably because everything basically runs on linux and making people to develop in an environment so non-linux has major porting issues). So you can sort of understand the fanfare given to windows terminal; its so unecessary that it almost seems like a gift to developers. Then there's the fact its open source, earning it more praise (& its fare share of controversy... supports emojis LOL). Secondly... as a long time lover of cmder, whats terrible about it. He calls it third party, so I assume he's talking about CMDer itself and not command prompt (which is built in to windows)... furthermore, you can get bash on windows. You could get it WAY before ubuntu on bash for windows with cygwin or msys2. For pete sake, CMDer comes with git bash for windows builtin and I could understand if blowe didn't like bash but in no world do I believe someone that uses command prompt has ever tried bash. Thirdly. New doesn't always mean bad. Granted a lot of new stuff is really badly designed. A lot of people take the powerful hardware we have for granted and choose to write unoptomised code because its easy, but there's no guarantee windows terminal will be anything like that. In general, a lot of open source projects aren't. Because if they're bad... someone will just try to make them good. Anyone can improve it, thats what make FOSS SO GREAT!!! Fourthly. As I'm sure blowe is aware. A shell is more than just 'text on a screen'. A terminal is basically text on a screen, but even then I doubt any slowness that one normally experiences is the fault of the terminal. I mean I type text on cygwin and I can immeadiately see what I've written. I can paste, 2/300 words and they appear pretty quickly (though not instantaneously mind you). I can run 'cat file.txt' where file is a really long file and all the text brushes past so fast I can't even react. If the output of a program like 'find' for example is slow, its probably because that program is slow (or trying to do something really time consuming (like recursively traversing large directories)) and not because the terminal can't keep up. Then you have to factor in a shell, a language and ecosystem existing atop a terminal. One which supports a myriad of features such as redirection, substitution and job control. I've got a pretty complicated startup bash script with I'd wager over a hundred subprocesses being spawned every new shell. Let me just add a timestamp printer to the start of my bash_profile and the end of my bashrc. It took on average of 1.5 seconds for me to spawn a new shell (even with forking being much slower on windows than linux). So startup time and response time are both reasonably fast for me.
I see your points, and I don't think you should take offense to any of the things said in this rant. I feel like the general theme underneath this rant has more to do with the fact that modern day software is usually written with unoptimized code. Unoptimized code is sadly now considered a decent baseline for features and newer devs will now just release unoptimized code to the user as a first pass. After programming my fair share of simple games, all I really want from a console/command prompt/terminal is the ability for my logs to be printed to the terminal relatively fast. If you consider that _most_ terminals have a line buffer of 1000 lines, printing large amounts of text to my terminal shouldn't be slow considering any new amount of text should be overriding older text. And 1000 lines is pretty small buffer, yet we still see modern software struggle with this amount of text. A good example of where you might see this conversation come up is w/ text editors. If you're bored, consider reading a blog or two about the load times of files in modern text editors. It's actually really sad that editors like Atom take a solid 3-6 seconds just open a file with maybe 500 lines. The state of software overall is frustrating and it seems that we are only moving father away from what a lot of ppl feel like is the right solution. Also, if u are kinda interested by the underlying ideas of this rant, give this video a watch - www.reddit.com/r/programming/comments/8iyqk9/the_thirty_million_line_problem/ -- offers a good highlevel overview
I no longer use the terminal, I use battlefield firestorm.
Idk, Battlefield struggles to run smoothly in my 9 year old laptop with integrated graphics, while Terminal has no problems at all. Maybe it's the Battlefield devs the ones that need to work on their optimization.
After Jai, JB will make his own terminal, and then his own OS
He's always reminded me of a more chilled out version of Terry A Davis.
@@ililililil8385 Underrated comment.
...and then on the seventh day he rested.
@@ililililil8385 RIP Terry. Glow in the darks finally got him
OS goes first. Isn't he going to use arch or something?
"how do you survive the cognitive dissonance of believing you are a righteous code style warrior who does everything correctly and having results that are so bad while other people have results that are so good at the same time". God damn. lmao
extra crispy
A lot of "clean coders" just care about asthetics, how many lines each method has, etc, while at the same time implementing the worst and most overcomplicated solution for every problem.
I asked myself that question constantly when I started my first software job two years ago, after 24 years of doing it solo.
I would love to hear him talk about Electron apps 😂
Pretty sure I know exactly what he'd say, straight up to the glossing over of the practicalities that made Electron so insanely popular
@@Flackon laziness is the only practicality that made it popular.
@@imranzero What other non-lazy frameworks exist that in your opinion are an alternative to Electron?
I think that this Electron shit must be prohibited on a government level and everybody who tries to use that must be jailed.
@@dnkreative federal restrictions on software that the rest of the world uses? what is this, China?
I write embedded real-time critical software. I feel like my modern development environment is slower, buggier, and more difficult to use than the environment I was using in 1997. The one thing that is marginally better is graphical diff/merge functionality. That is literally the only improvement that I can point to in 25 years. Just getting the environment variables and path names (we still haven't solved the mystery of / v. \ for mixed windows and unix environments, lol) correct is a major chore. We are literally creating containers for virtual machines to do our builds "to reduce the complexity." I didn't have to do that crap when I was first starting. I imagine my old compiler would kick ass on a modern computer. Compile times seem longer rather than shorter even though the computer is millions of times faster and the complexity of the programs is not that different.
Maybe it is because of my embedded environment, but I pretty much detest object-oriented programming. I think its disadvantages outweigh its advantages. I remember reading an Ada book talking about one of its advantages being compile-time resolution of function overloading versus run-time. As someone who walks stack traces when a system crashes and is looking at assembly language trying to figure out what name-mangled function was actually running when the system crashed, I can definitively say that ambiguous symbol tables and information hiding are not the advantages that they are made out to be. "We can make more complicated systems though." But can you? I deal with more stupid wrong parameter passed bugs than I ever used to. The guys writing these bugs are super smart, but the complexity just gets to a point where it is hard to hold it all in your head at once - particularly if you are getting interrupted with "why is the project not working yet?" status meetings.
Software engineering has always sucked as far as I can tell. Yourdon's Death March was originally published in 1997. Sad to look back on that era as "the good old days."
Carmack has a thing about this that he's been rating about for years. Ever since he left Id and started to see how the other half did it. System programmers and game programmers live in two completely different environments. And it gets downright silly. Real world example. Game devs are using Visual Studio or some other IDE, they're tossing their code into a full exhaustive debug before compile. Tracing everything back and doing whatever they can to eliminate bugs and slow downs so everything runs faster, smoother, and with less crashes. System devs are still on VIM and Emacs. But here's where it gets downright stupid. Visual Studio is a bug filled mess. They literally make the tool all the game devs are using to do all these amazing ultra complex things that are thousands of times more complex than Visual Stuido, but cannot be bothered to run their code through their own debugging software they created for Visual Studio before they ship it. Even when John can get people to use an IDE, he cannot seem to get system devs to consider debug passes to be part of the process. Finish code, now spend two to three times that long just debugging it, then compile it. Everything should be properly ran through a process to get rid of problems, and it's just not. Yet they'll spend months on some widget that has nothing to do with actual functionality that ticks a checkbox. They only wanna debug when there is a problem. Which is something that just does not work in game dev world. All those edge case bugs waiting to blow up the entire code base compile fine, but given enough time they are all going to hit and cause a performance problem that games cannot allow. Now look at all the stuff we're using everyday. None of it has been properly debugged in years. Everything slows down, everything crashes, everything just sucks more.
@@halycon404 Yeah, I'm a VIM guy, but I can use Emacs. Neither are really approved for the development I do anymore, so I am stuck with Notepad++. It isn't bad, but I am less productive than I would be in Vim. Some of the younger developers I work with have literally no concept of how the computer actually works. They couldn't walk a stack trace if their life depended on it. A real shame too, because some of them are quite brilliant. They have never had to learn, and I feel like the lack of understanding impacts their code quality inadvertently. I feel like simple issues like reentrancy are harder to comprehend when you don't have an understanding of the underlying assembly language, context switches, and interrupt service routines.
How come no one runs sublime? It’s awesome
@@halycon404 visual studio at least doesnt corrupt your code like it used to back with the visual studio 6 days. but maybe its just god stuffing with the software, and making it not work, its not microsofts fault. If anythings going wrong it could something wrong with your computer, I found .Net reliable, but 3dsmax was totally crap bugwise, blender isnt the best (not all parts of it), I prefer those new cadders for 3d printing, I find their methods are more fault tolerant. But it is actually going slow today but its the first time its ever happened, has it actually had a gain in bugs recently??? maybe its worse for it now!!!
Because intellect is NOT the number 1 quality that a technical professional must possess. It's "merely" the third or fourth. Anglo-Americans refuse to accept this. German technical pros know that all people are stupid and the whole process is designed for stupid people and for simplicity and in the end their things work.
You say that you work on embedded real-time and you "walk stack traces". The ship has already sunk for you. The German teams working on these kinds of projects, through the design of the project and actually spending money for development tools, eliminate the need for these kinds of big-effort-low-reward activities.
I have to keep coming back to this every so often. Today it was due to someone on Hackernews saying that "VSCode is one of the greatest pieces of engineering of our time.".
lmao
It could be faster, but like vscode is great...
I dont know about yall but vscode is really good.
@@patrolinbloated and dumb
4:40 it's not just the game that dude is running screen capture on top of it and it's still running in 60 fps
'Open terminal or text editor while playing and recording'
The application is unresponsive, do you want to close the program?
I honestly thought he was exaggerating .. but after seeing casey's refterm I finally understand!
I"m so happy to know there are other people out there concerned about this. I can never articulate it properly but dude, everything is getting so bad. People keep gluing these "assets" from "stores" and "repositories" together and calling themselves programmers, and the result is a 7 GB text editor that uses 32 GB of RAM when it works at all. But it's cool because their "packages" are "signed."
Your post reminds me of the old joke that EMACS stands for "Eight Megabytes And Constantly Swapping".
@@Roxor128 TBF EMACS is a complete OS that has pretty much everything (besides a decent text editor of course).
@@swapode If that wasn't the original intention, then it's the ultimate case of feature creep!
this is the boomerest comment i've read in a long time
@@ghostsdefeated4078 Even your insult is "community sourced."
keep making these byte sized videos. good job!
So good! Thank you for this, would have been lost to time without someone doing this thankless duty to man!
The best answer to question what is command-line?:
"It's where you type text characters and text characters get print back to you"
A true chad
been trying windows terminal for a few weeks. the first thing I was disappointed at was the fact that it wasn't actually a new terminal, but just another thing like cmder. still, pretty cool, find out about the json themes and whatever so at least it looks nice (something not very important for a terminal I suppose). it uses like 70MB of RAM as opposed to cmder's 2MB, but still pretty cool.
now the other day I find out that you can't drag tabs to reorder them, and I go googling around and end up in the main github issue about it and it turns out they have to prioritize the development of Edge first because that uses some thing called "Sets" which would be used, in turn, for the tabs in Windows Terminal. this thing was in development potentially for YEARS, with the fucking tabs being one of the most prominent "features", and you CAN'T FUCKING DRAG THE TABS BECAUSE THEY HAVE TO FINISH SOME OTHER PROGRAM WHICH USES SOME FRAMEWORK WHICH THEYRE THEN GOING TO USE IN THIS PROGRAM WHAT THE HELL
I wonder how much of this is because of low IQ because of dysgenics, and how much of it is wilfully doing stuff in a bad manner in order to have a longer, less challenging employment. A lot of it seems comfort-driven, people want 'nice' code, not working code.
@@NukeCloudstalker
> how much of this is because of low IQ because of dysgenics
Well, considering all studies into IQ distribution over time have either found no evidence for genetic effects, or very small effect sizes (0.038 IQ points per decade it in Kong et al. (2017), for example), I would say almost none. There is still much room for more research in this space though, and I am not an expert in the field by any means.
@@hemerythrin The heritability of intelligence is not really questionable. IQ-distribution over time will not get you any meaningful results, as IQ is by definition normally distributed, you'll find the same distribution for each generation, unless you find ways of comparing scores cross-generation (people have done this, they find that genetic markers for IQ is definitely dropping, and that IQ scores are too - but masked by the Flynn effect). I agree that there is room for more research, but the evidence doesn't show no effect - and larger effect sizes than you've shown. We are getting less intelligent, and one strong factor in this is genetic. I suggest you take my following reading recommendation to heart, its a short book that can easily be read in a single day in the weekend, but quite packed with relevant arguments, counter-arguments and so on.
The issue is that the Flynn-effect has masked genetic decline of intelligence, by making up for it by rapid, large-scale environmental improvements - improvements that you cannot keep making, we've "used up" that, and now we're actually seeing a decline over time in several western nations (and that's just the ones that have been studied - most haven't).
If you're genuinely interested in the topic, read the book "At Our Wit's End". It presents this case using all the studies your heart could desire, if nothing else we ought to be aware of this possibility, so we can analyze the issues that may arise from it properly, instead of acting in darkness. I do recommend it.
The world has gone truly mad and you're right to be angry. This is an outrage.
@@NukeCloudstalker "soft is bad because devs are stupid" is not a good explanation because it is a reification of intellect, in fact it's not an explanation at all, it's a way to put a label on a problem by saying "well, it's a form of stupidity too". IQ doesn't have anything with it because firstly at best it's supposed to indicate a level of intellect, not vice versa, secondly, trying to find that correlation is a reification by itself.
Funniest thing is most games have a dev console in which you can write commands
And which runs at 144, 240 or more FPS - whilst a full videogame casually renders in the background
@@ligma-agen Windows has a colossal amount of legacy code that makes it very difficult to interface with correctly. And Microsoft "prides" themselves in backwards compatibility with older software and OS's. Literally, you ccould change a small thing with a win32 applet and multiple software would lose compatibility. It's that fragile! Some Win devs have to build around all the madness with fancy curtains, while tip-toing around to ensure they don't f**k something up. That's the reason Jeffrey Snover just created Powershell and a whole new language to interface with the system and said, and I quote "Don't ever ask me to fix the Windows command prompt". Even though it should be, It's really not as easy as Jonnathan thinks it is(nothing really is when dealing with Windows lol). To "fix" it may require some major refactoring, which again would lose Microsoft a crapton of backwards compatibility.
@@jupiterapollo4985not really, Microsoft just doesn't have competent people to do it. Apple for example built a whole fucking framework to emulate the legacy apps, and not just a legacy apps for the same architecture but apps that use another instruction sets, not once but did it twice. Not fan of Apple, but they did good job, far better than any Microsoft could do, shame, Microsoft peaked in the 90s and now they are dog shit.
Microsoft could refractor the entire OS and built a framework as interface for legacy apps. Building a terminal is fucking easy for a trillion dollar company, but they are not competent to do it.
@@maxrinehart4177 Calling the Microsoft devs incompetent is very disingenuous. Some of the best software we use today have come from Microsoft such as the Office suite, Azure cloud, powershell, vscode, visual studio etc. The reality is the Microsoft devs are heavily controlled by corporate and can only do so much with the limitations they are given. Corporate doesn't want them to f**k around with win32 applets, so they don't. But calling them incompetent is a very low blow, as I'm sure there are and have been some very intelligent, hard working people working at that company.
@@jupiterapollo4985 The quake engine, the source engine, the unreal engine and the doom engine are all extremely old, and all have extremely old code still running in their respective modern versions, and all of them have a console that is capable of running at however many frames per second the system is capable of generating all while rendering games in the background, as well as processing all the logic involved. And games keep being produced nowadays in all of those engines I've listed. Old does not mean bad. If that were the case, then the windows terminal would have been slower in the past than it is now. The old code and backwards compatibility is not what is making it slow. Even if that were the case, what is stopping microsoft from making a completely brand new terminal program from the ground up? Since you are watching Jon's content, I suppose you also know Casey muratori, which means you most likely have already seen his refterm implementation. Is there any excuse for any operating system to have a terrible terminal or console in the year 2023? I think not.
Thank you for taking the time to share all these
im not into gaming or programming that much. but i love his rants
I remember seeing this live and screaming to myself yes! That's exactly what I think!
This cracked me up so hard
3:35 "Alright, let me- here, let me, let's, let's get some context, ok?
**typing** So like... there's like, video games that come out, right?"
Absolute machine
I often think the "cmd" terminal is an active propaganda tool by M$ which makes people believe that command line tools are terrible. The message appears to be, "If it's bad here on windows (in familiar surroundings), imagine how bad will be in an unfamiliar UNIX environment." But a typical X windows terminal from '90 onward were so fast the text could not be read as it went by. One could only recognize the shape of the output rather than trying to read it. And that terminal was forwarded over X11 on a slow (10Mb/s) network to the local X display.
Modern Linux terminals have subsequently been cluttered up by decorations with stretching and bouncing and background animations. Those features slow them down, but they still beat the pants off of anything M$ has ever produced. Especially the horrible Hyperterm (where text scrolled up and outside of the text area) and the pathetic "Power" shell. I don't know how people have endured it for so long.
Old things are being re-invented and it appears nobody wants to maintain the old stuff to make it better. Old is good and the pool of bugs could keep getting smaller, but no. We want a new thing and a new batch of bugs. It's crazy.
Try kitty or alacrity on Linux? They're GPU driven so they are faster in terms of displaying text and also less cpu intensive. Very useful during compilation.
If you're not interested in GPU accelerated terminals, or maybe you want your GPU to do other things, consider the st (suckless terminal) emulator.
St is a pita to configure because you have to edit and compile it from source. BUT! Its just one single source file with 1k ish lines of pure C
text interfaces are inherently bad, doesn't matter how fast the text scrolls or how many fancy animations you add, this is what linux folks fail to understand, and unfortunately those linux folks seem to be getting more of an influence with ms which is why we get disastrous tools like this terminal.
I love Powershell tho :(
@@doltBmB how are they inherently bad?
@@sub-harmonik it doesn't explain itself, it can't explain itself, the GUI was a revolution that linux didn't keep up with
My opinion is that Microsoft is not striving for excellence at all in the Windows area. Their two latest releases (Windows 8 and 10) were about expanding to the mobile market, grabbing user data and trying to funnel app sales through their store. If they didn't have these business objectives, I'm guessing we'd still be on Windows 7 - because why improve something that is effectively a monopoly anyway.
Windows still aims for excelence in some areas, like their kernel
@@alexnotes8239 windows 11 on the other hand...
@@alexnotes8239 XP was good. Would have stayed with it. But no support for it anymore.
I run typing tutor 7 on an XP virtual box
Watching this video should be mandatory training for any programmer
Microsoft should hire the guy that wrote the Battlefield V kill-feed to create a Windows terminal emulator that doesn't suck.
I'm so glad I found someone else who's worried about this. It's not just the terminal, but most apps today. They run like crap. Same app used to fly on a 7MHz single core CPU and a few KB of RAM with no hardware graphics acceleration at all, but today same or similar app requires a quad-core 2GHz+ CPU and 2GB+ RAM to even be usable. Something is horribly wrong.
I tried to learn how to do shit on a lower level, how to find and use the actual graphical primitives that all our graphical software is ultimately made of, I was pretty dumbfounded because I can't seem to find any solid ground to build software on.
So we're stuck doing it on layers upon layers of crap.
Want to build a graphical cross platform desktop app in 2019? Electron is probably your best bet. And it alone requires a supercomputer to run.
I tried programming on a Commodore Amiga, in that world everything is fairly simple because the hardware is simple and you have direct access to it.
In today's world, especially if you don't want to tie the software you're making to a particular OS, you don't have a lot of options to go with.
But I do agree that something is horribly wrong. I write Javascript for a living and at moments like this I feel slightly bad about it
It's a big jump from JS to C/C++. But making that code cross platform compatible isn't that big of an issue really. You just need to understand how different OSes work or use readily available frameworks.
It's called "I use a more powerful dynamic, interpreted language" and the time I save on performance optimizing is offloaded onto every user having to buy much beefier hardware. Except for games most programs are more like a proof of concept trying to be first to market rather than being a fluent user experience. Perhaps nobody wants to pay for fluid user interfaces besides gamers.
My Windows 10 i7 3+ Gigahertz cpu needs multiple seconds to open a menu while a cheap game console can update 500 playing characters health status with 60fps. Perhaps "outsourcing software development" is the best indicator of not caring about quality any more in favor of lower production cost (often just more profit and not lower end sales price)
Fun fact despite appearing in the fancy trailer, clickable links and full emoji support do not appear in the new windows terminal.
Wait, they couldn't even display emoji properly? That's worked in like.. every common X11 and Wayland terminal for like four or more years now lol.
Works fine for me.
This aged extremely well.
What's amazing is how opinionated he remains and is always proven wrong at every turn.
@@userasdf807 What part of "at every turn" are you having trouble processing ?
@@thecollector6746 what turn was he proven wrong at this time?
@@shallex5744 ...again..mwhat part of "at every turn" are you ignoramuses are having trouble processing ? Try getting Blow's d1ck out of your mouth and be a little less sycophantic and embarrassingly stupid going forward
@@thecollector6746Wasn't being sarcastic. Look into what happened when Casey Muratori raised an issue with Microsoft about Windows Terminal's poor performance.
"all these fucking modern cpp people and stuff". battlefield 5 probably has modern ccp coming out of its ears
It is all about human nature. You may start with Windows terminals and end up with questions that few dare to ask. The ability to dismiss the existence of the problem is more powerful than you realize.
Minor rant? I don't think I've ever heard Blow drop the F-bomb before.
I think "minor" refers to the size of the rant (as for major, I guess rust rant is an example of that)
You should watch his stream sometimes...
@@meanmole3212 His timezone is wack compared to mine.
Such an amazing rant. Absolutely spot-on.
Haha... Manhattan Project! LOL I love this rant! So true!
fish shell gets you, it calls itself "command prompt for the 90's" for having auto complete
fish shell is really nice
@FichDichInDemArsch that's your prompt doing too many git commands. fish itself has no problem with large git directories.
function fish_prompt; echo -n "> "; end
and suddenly all the delay is gone. git prompts definitely need improvement.
Joe Rogan with Graham Hancock - WATCHED 100%. I respect.
I’m imagining that there are companies that have systems to create very sophisticated solutions with much less code and complexity than we are dealing with now. I think we peaked around 1994
"so there's like videogames that come out..."
me every single time i am attempting to program a simple desktop GUI application and i find a bug/caveat/undocumented thing/missing feature in a brand new bleeding edge "modern" GUI framework for the 11th time in under an hour.
Many programmers have been fighting for decades against measuring objective qualities of software such as performance. They've made a living of acquiring some niche knowledge, such as the idiosyncrasies of some overly complex software framework, and they need those measurements to be out of the conversation in order to keep their jobs.
of course, if you can’t compete openly then just cause as much confusion as you can
LMAO Casey Muratori fulfilled JB's prophecy by exposing the Windows Terminal dev's incompetence.
obviously he didn’t because that terminal doesn’t have ligatures, which would make your terminal run 1000x slower.
When taking employment you always have holy members that swear to clean code and doing everything so neat.
And its a luxury to be your own man and be able to tell it like it is, as in any team you would not get the code through PR if it doesn't match their expectations
Has Jonathan Blow encountered Alacritty? It seems to be closer to his ideas of what should happen
Fun fact, on Linux the terminal is way faster. Still with the graphical interface. But even my poop computer can output a whole screen worth of text in a terminal in a matter of milliseconds.
Yeh, I've made real-time ascii games in linux termals lol
yeah while he was ranting I thought: all this man needs is “st”
Note that outputting text to a terminal should take microseconds, not milliseconds.
@@TetraluxOnPC the screen dont refresh that fast due to the monitor limitations
@@igorgiuseppe1862 It's more about throughput and latency than it is about refresh rate. The Linux console has much higher _throughput_, AFAIK.
"jump scrolling" is what made xterms on early 80s hardware usable for large text output. 40 years later there are still people who don't understand that simple concept but instead waste their time with bullshit like GPU accelerated text output "to make things faster".
When they announced and released that Windows Terminal, I thought first that it should have been done like 10-20 years ago
4 years later, and the new Windows terminal is the best one I've used so far. I have yet to find a Linux console that has all the features the Microsoft one has. Some have a decent but but are slow, others are fast but don't have much quality of life features.
Can you explain a bit?
@@Charlie-xh2nf sure, find me a different terminal emulator that can: load images from a url, apply gaussian blur to them, lower the darkness, render fonts with ligatures, allow for customizing everything (not just certain settings) per profile, well designed splits and the ability to have different profiles in different splits, good integration with mouse input (clickable links, correctly passing scroll inputs to programs) and do all of that with good performance without hammering your CPU/gpu constantly rendering 60fs when nothing is happening on screen
Thanks for showing everyone how r3t4rded you are and beyond saving
What exactly is he complaining about? Any default terminal just works, even right now there are GPU accelerated terminals like Alacritty, Wezterm and Kitty. Windows Terminal, although I don't use it often, it just works, it also has features that make it understandable why its users like it, it is a great improvement compared to the default option, it has tabs, it has profiles, so you can have a profile for CMD, another for PowerShell, another for WSL or another for Git Bash, it has splits, you can customize its appearance and it probably has other things that I don't know.
What sucks in Windows is CMD and PowerShell, sometimes when I use CMD and a command has already been executed CMD will not update its state until I press enter, PowerShell on the other hand is quite slow compared to its competition when you use it on basic hardware.
Also, I see people in the comments confusing what a terminal is with a shell, The terminal is to put it simple the window in which the shell runs, your terminal can have a monospaced font, a font size, colors, some terminals have tabs, others do not, etc.
Terminals: Alacritty, Wezterm, Foot, Windows Terminal, GNOME Terminal, Xfce Terminal, Konsole, Kitty, iTerm, MacOS default terminal, Hyper, Tabby, Terminator, xterm, rxvt, etc.
Shell: CMD, PowerShell, ZSH, Bash, Fish, Nushell, etc.
windows terminal has no keyboard shortcuts whatsoever for its interface.
That's it. That's reason enough to throw it in the bin. Go try navigate its settings GUI without the mouse. Now go try do that with the legacy terminal (you do need to enable underlining keyboard shortcuts in the global windows settings though, because apparently, we like to - by default - hide the things that make navigation faster?)
@@GeorgeTsiros Do you mean Windows Console or Windows Terminal, the new one, released in 2019? When I used Windows, Windows Terminal was the terminal I used and I do remember that it had shortcuts, you can configure them with the graphical interface or in a json file, I used the basic ones, ctrl+tab to switch between tabs, ctrl-t to create a tab, there were also keyboard shortcuts to open different configured profiles, these profiles can be WSL, cmd, PowerShell or GitBash, I also remember being able to open split panels with shortcuts.
@@germandavid2520 As I said, try to navigate its _settings_ UI with the keyboard.
@@GeorgeTsiros What do you expect? It's a GUI, is it so bad to configure your terminal with a few clicks and then forget about it? do you do most of your terminal work in the configuration UI? to me, a Linux guy who configures his terminal with a configuration file using Neovim doesn't seem like such a bad thing.
Priorities of software industry has changed. Companies optimized for max profits. Like one guy maintains curl and is offered like $5k by amazon which is nuts
As a codestyle warrior myself, I do look at games with barely concealed envy. My field, AI, is soooo far behind in terms of both functionality and demand. And that's the key. Games succeed or fail based on the whims of millions of people worldwide, so they are optimized based on how well they hit those dopamine receptors. As such, they squeeze every bit of processing power from the hardware. As complex systems, I imagine many of them are heartbreakingly beautiful works of art. Other software, especially B2B software, is designed to please a small handful of investors and managers who make the decision to buy something. Workers are forced to use the software whether they like it or not. It's the same reason cicadas are slow and unresponsive to things around them, while mosquitoes are faster - and mosquitoes in tropical countries are even faster than those in temperate countries.
The comment he made at 5:40 tells me that he thinks ttl emulators are just windows that render lines of text. Nope, they emulate TTY rendering, and have to convert and understand streams of ASCII escape codes and do those things. Sure, it's often not hardware accelerated rendering on the GPU, and integrated CPU rendering is always terrible, and no it's not a set of shaders faking a bunch of supposedly impressive effects, but it's not actually AS simple as he's claiming. He's basically saying, "I have a program, it takes some input and prints it back out. Terminal emulator, done!". Nope, there's a lot more to those than that.
The most negative guy on UA-cam. And he’s absolutely right!
It's really not complicated. People program within performance constraints. If opening a certain program "should" theoretically take 2 milliseconds based on analysis, and it takes you 2 seconds, you're off by a factor of 1000 in performance. Will you be punished with 1000 times less sales? No. Some users will get pissed off it takes 2 seconds to load, but the market will not destroy you for that.
When designing products companies maximize for what the market pays for, not what is theoretically right. People set performance targets and then do whatever convenient shit is available that still keeps them within those performance targets.
There is logic to this.
Sometimes performance does matter. The iPhone succeeded where the Windows Phone failed, because Apple recognized that scrolling the screen was performance critical and set a 60fps target on gesture interactions and animations. And they accomplished it, despite being the same company that produces abysmally bloated crap in other circumstances, where they don't deem it performance critical for market success.
Imagine if Jonathan Blow were a Michelin star chef instead of a programmer. He'd be ranting about how "THIS SHOULD BE THE FRONT PAGE OF NEWS EVERY DAY!" about how some fast food restaurant isn't doing cooking right and doing talks about how civilization will collapse because people will forget how to cook well.
If everybody eats McDonald's and chipotle every day, we all have to pay billions of dollars for their hospital bills when they get a heart attack.
@@turdferguson3400 programmer arguments are the best, so based and logical lmao I can't even decide whos wrong and whos right. In the end I dont give a f and just code my shit and make it work lol, hope when the shit hit the fan because of my incompetence or lack of intelligence a lot of doctors will be there for me :D
seriously i just saw this video and i cant stop laughing
It's not really so much to do with the programmer's skill but with the way these corporations operate. They specify features that their devs need to implement and performance is never part of the specification, unlike games.
So devs ship what is asked of them and nothing more, because nobody is going to give them a bonus or a pat on the head or anything at all for making their feature really performant, it makes no sense for them to spend effort on this, it would in fact be detrimental to their career since they would take longer to finish their work compared to those who don't go this extra mile
In short you can thank capitalism for this situation, the system where shortsightedness reigns supreme
Great comment, bad follow-up. Without capitalism or something similar, you go from only having economic incentives to do some of the important things to not having economic incentives to do any of the important things.
It is somehow acceptable for a terminal emulator to take 10 seconds to run 🤯
ace programmer & ace comedian
Albeit only one of these seems intentional
It's not a different version of a command line app, it supports an actual TERMINAL PTY which Windows never had until now (maybe the posix layer that went away after windows 2000 had it, idk). Finally windows is catching up to Linux and other OSes in this aspect.
I personally use alacritty on all platforms (linux/windows/macos), it has hardware accelerated rendering, 24bit terminal support and more or about equal throughput (scroll lines) than any other well working terminal I have used.
Try to benchmark it with st, there's almost no difference in speed even though st does not use the GPU.
@championchap it doesn’t need to but the GPU is better at drawing so why not? I would imagine it at least has an theoretical potential to consume less power (probably varies a lot in practise because of different hardware with different power saving features) drawing using shaders instead of the CPU because it can return to idle state faster?
Doesn't matter, people here just want to complain and focus on the worst
@@pleggli Can you explain to me what's going on in this rant? Why are Windows users confined to just one terminal? Jonathan said "Why is this thing special, why isn't it something that 50 people do over the weekend"... Well on Linux it is, on Windows why is it not?
I saw comments saying "Full unicode support still isn't a thing on Windows", why are people confined to just one terminal? Does Microsoft have a monopoly on it? I'm asking you because you mentioned you use Alacrity on Windows so idk what's going on, why are Jonathan and other people complaining if you have alternatives?
@@piface3016 I think this isn't just about the terminal, but the shell too. And the cmd shell sucks ass too. Powershell is... Decent. So best to use Alacritty with Powershell.
But everyone is cheering for Terminal because it's a Microsoft-sanctioned replacement for the default terminal that comes with cmd/pwsh.
The past few months I've been going down the rabbit-hole of Data-oriented design and I must say that it's pretty weird to see that proponents of it doesn't get why most developers don't consider it. For me, and most developers I've met, we've just been taught the skill floor is extremely high, that the productivity rate is way slower, and thus cost, maintainability, etc. explodes into unreasonable territory for enterprises. If there was a quick way to disprove those assumptions, then the DoD community should do it. That's something I hope to do at least, if I find out that DoD can actually scale to less talented developers. Jai could be a great tool in the right direction, but we still need accessible falsifiable evidence that DoD isn't just for niche domains.
you don't need to be particularly skilled to put things into arrays and not use virtual functions where you don't need them. it's kind of a default that people start from, people actually need to learn to use OOP, because it's quite unintuitive for many people: things in nature are not organized as hierarchical ways, eg it would be stupid to say that cat "inherits" behaviours from mammals and not reptilia. even without inheritance, virtual functions are almost never needed, i'd say that 95-98% of functions can be non-virtual with no effect on readability.
The Manhattan Project wasn't announced before release.
It also wasn't about nuclear weapons.
LOL, I hate MS Bing browser forced into the desktop search. And no off setting. This is the level of MS contempt for their users.
I imagine in the original stream, some people must have commented that text in games in not actually text, but bitmap textures that are drawn by the GPU so it's not a fair comparison etc. And I hope they got burnt.
So terminal text should be bitmap textures that are drawn by GPU xD
And... actually it is, at certain levels...
ok here's the thing: games nowadays render stuff using a GPU, true. But command prompts do and have always done the drawing on the CPU. Why did command prompts of the past draw faster on slower CPUs than modern command prompts then?
His point regarding games is that even if they use the GPU, all of that complex stuff still has to go through the CPU at some point and thats where the main bottlenecking happens. And it still is capable of handling 60+fps that have to go from requests on the CPU to draw stuff, to being drawn on the GPU to them being used by the CPU. There's a lot of stuff going on.... Not to mention that physics in most games still run on the CPU and are only drawn by GPU so... uhhh yeah, that still makes a far more complex piece of software: the game, run better than the console itself. Not to mention the fact that we have old games that ran through software rendering inside of terminal programs and they ran fast enough to be playeable: good luck running those properly on modern terminal programs...
What's stopping your terminal from using bitmaps tho? Like, that's just how text in computers has been rendered since... forever, basically. Glyph rendering with modern fancy font processing is pretty expensive, old systems just optimized it the same way games do.
but but but.... ligatures, or something
It's sad when you realize MPW command-line on the Macintosh is now permanently buried in the landfills of history.
Windows Terminal heats up my GPU just as much as video games do.
OMG. Roasting like a pro
Neofetch takes 400ms to run on my decently modern machine. Absolutely disgusting.
Also, I tried like 5 other versions all of which ran in under 20ms.
I respect this guy
Same thing for react and front end development
I don't need to tell you about how excellently configurable, lightweight, and no-brainy my terminal program of choice on Linux is, do I?
Or that it's hardware accelerated to actually be able to print text ridiculously fast?
Or that it has vi-keys for text selection and manipulation, so I can yank command output without leaving my keyboard?
Or that it's developed and maintained by a single person for free, in an open manner so I can read and modify the code any time?
Or that it's not even remarkably better than the competing terminal applications for linux, which are generally excellent...
Sometimes windows people just seem a bit masochistic to me..
because CLI is a thing of the past and no one uses it anymore to do serious business.
@@igorgiuseppe1862 trollface.jpg
> Sometimes windows people just seem a bit masochistic to me..
I have been saying the exact same thing for linux since forever.
Windows Terminal should have been written in pure C++/DirectX.
He needs a hug
thank you for the game example very cool I appreciate it as a dev :)
Holy shit... COPY AND PASTE ON WINDOWS TERMINAL?!?!?
THE FUTURE IS NOW!!!!
You can copy and paste on the windows terminal, by either right clicking inside the cmd terminal or, right clicking on the terminals window bar, clicking edit on the drop down list and then clicking paste. Its extremely obscure and many people don't even know you can do that. But I guess that's the problem, simple things like copy and pasting in a terminal should be much more simplistic and intuitive.
rant: "Like what the f***!"
shows example of BF5: "Opps, too violent for kids"
🧐
Wait until he discovers GTFO is an FPS with terminals in it.
All who disagree probably have a very good "work-life balance", never had to do any serious hobby side projects, and probably get tired to technical jobs at 28 and decide to become managers or agile/scrum masters.
But what DID kill myspace???
For some reason most terminals dont use the gpu. So I sort of asusme they are slow becasue they are not using frameworks. The general idea is that it mostly does not amter ebcause the job of a terminal is not to output text, it to to tell the computer to do something, some text being output is just a side effect and hopefully
Terminals don't use gpu because that is an utterly dumb idea, I mean, why would they.
@@marcossidoruk8033 Because ones that do not use the gpu display text thousands of times slower than ones that do. The popular terminals on among the power users are all gpu powered, also casey muratori (molly rocket on YT) created a reference terminal demo (either in response/support to this video or this video was in response to him, I forget the exact context) and must be rendering with the gpu because it uses quite a lot of gpu.
@@wisnoskij nah, if you keep your terminal simple enough there is no need for GPU, a lot of "power users" use st aka the simple terminal wich is already as fast as you would ever want a terminal to be, you can easily make real time 3d ASCII games there is literally no point going beyond that.
@@marcossidoruk8033 I agree, the point of a terminal is never to output text data onto the screen, so speed past a certain point is mostly useless, and can be worked around by skipping the actual rendering phase in most cases. If you dump a 1gb file to the terminal, just render the last page for example.
But that is the entire point of this video. You can easily get a 10k% increase is rendering speed, as well as increasing efficiently and decreasing computer resources used by just utilising the gpu. It is better in every way at rendering. One of the biggest benefits of Caseys reference term is not that is like 100 times faster at dumping a file to the terminal, it is that it will use less cpu, less fan, less power for shorter periods of time.
@@wisnoskij yeah but you will use more dependencies, more code and thus probably make your code less portable and less modifiable, the point of st is to provide a fast terminal with as few lines of code as possible that can be used in any unix based os and is easily patchable to do pretty much whatever you want it to do, thats why its so popular among "power users" and that is why I think gpu enhanced terminals kinda miss the point, but whatever you find most useful is ok for you so idk.
He loves JavaScript and PHP
my old android phone had a 7MB clock. Just how in the world does that happen? I had to factory reset the phone and it installed 'new' 'improved' stuff and now it takes two reboots to start and then a few minutes before anything will work at all. I have a new phone, of course, but like my old PCs and laptops that were fast and top of the range and worked really well are way beyond obsolete - can't even run puppy linux.
Alacritty is a pretty good terminal
it's better than all of the other windows terminals
I just want unicode support for my cute neovim icons. Long live Konsole.
The answer is probably that the complexity of games programming, whilst staggering, is ultimately more understandable and decomposable into coherent black-box style units - and also just more appealing to work on. A game engine is a more closed system that generally doesn't interact with so many external unknowns. To compare the work a terminal does to the relatively easy process of spitting out text overlays in a controlled game environment is a little unfair. The complexity in a terminal may be orders of magnitude less in terms of sheer computing work done - but the complexity in terms of understanding what has to be done to make a console interoperate with the OS and other pograms is huge in terms of mental load. Less people are interested in solving those curly but boring/thankless problems than working with games and fancy graphics. A terminal should start very quickly - and unfortunately the latest ones are failing a bit on that point as we gain some of the useful graphical elements such as glyphs. Just take a look at some of the old curses systems - which still need to operate today - and see if you feel like writing some code to speed all this up whilst maintaining backwards compatibility. For a game engine - you can use unicode without really delving into it; to get a new terminal system running I think you'd need a deep understanding of unicode and many other systems that generally don't seem very exciting.
I disagree. The windows command prompt does not interact with other programs in any meaningful way and isn't even the same on many versions of windows, let alone multi platform.
If the problem is that you have backwards languages and emoji, guess what, every other program also has those.
what? that makes no sense. I mean, yes, it makes sense that it is easier to understand something when it is decomposable into coherent components, but a game engine is complex af and most game devs dont even know how most stuff is implemented behind the scenes... why would a far more complex piece of software be easier to handle because of that tho? the terminal and the game both do the same thing at the end of the day: draw stuff on the screen. The terminal has to draw text only. The game has to draw text, meshes, polys, textures, images, all while keeping a stable framerate with many post processing effects etc etc... why is the text drawing of the console program so much slower? imagine i made inside of a game engine a terminal simulator, something that worked exactly like a terminal from windows for example, like cmd, but completely programmed by me. Are you proposing that that terminal with all the added stuff that wont get used from the game engine will be faster than the standalone official terminals AND MAKE SENSE?? im sorry but, even tho i know it is true that a terminal written in a game engine will be faster than windows' terminal, i dont agree that it is something that is understandable or that makes sense. The windows command prompt is simple as fuck. Or at least, the idea of a terminal or command prompt is simple af... why does it have to be orders of magnitude slower than games???
I mean, sure, the game engine will use the GPU for drawing all of that stuff, but that final image information still has to go through the CPU to get rendered. The terminal, which has only the purpose of drawing text, is somehow slower than older terminals from the past that were capable of doing the same thing with CPU only but faster. Terminals are obviously going to be slower than games because games have access to GPUs these days, sure, but only for drawing stuff like text... if you think about all the other graphical components a game has to draw, then it makes no sense that a powerful modern CPU struggles rendering text on a console giving us even slower text rendering speeds on the console than terminals from old operating systems that were ran on far less powerful computers...
In short, this means that modern terminal programs are just made wrong and coded like shit.
Guys you just don't get it, the reason your rocket engine control system runs faster than my hello world app is obviously because I have a much harder job. Your controller only runs on the rocket, while my app has to run on windows, linux and macOS!
"game engines dont have so many external unknows"
cpus archtectures and graphic card drivers have entered the chat
The funny thing is Microsoft devs KNOW how a terminal emulator should feel.
I think that's why people got excited, they really thought m$ was finally going to deliver their users something good that isn't PowerShell
Johnathan Blow is great, but he doesn't get the UX benefits of refining "perfectly functional" existing utilities to make them more pleasant to use. Not everything is about overcoming extremely difficult technological challenges, sometimes it's just about improving the **design** of an already functional program, and adding a couple simple features.
Windows terminal is also not a "Manhattan project" type endeavor in terms of the resources Microsoft is providing, it just had a banger of a promotional video.
What Jon is flabbergasted by is that people are excited about this as though it’s an innovative product when it really doesn’t add any functionality to existing terminals apart from user experience (which Linux users have been building themselves for a long time now :P ). Also, it’s Microsoft Windows, so there’s a high likelihood it will be bloated with non-features that strain the processor. That’s why he says in the beginning, “Why does anyone think it’s not going to be terrible?”
Idk why this rant is directed towards terminal emulators and not browsers. Terminal emulators are just fine, and wt is actually pretty great for a microsoft product. They balanced end user and power user features pretty well imho
4:55 The problem is money. How much can you get from a console? Do most users know what it is (not to mention, use it)? Could you spark business' interest without expatiate sentences about what's "right", "wrong" or at least "reasonable"? Do they care about your discomfortable OCD?
I love windows terminal, lol
Somebody show Jon Alacritty
I love how all these problems are trivial to him, but he doesn’t solve them
he does it just takes him decades lmao
He has a console window for inputting commands inside the editor of the game, so he has solved that problem, albeit in a different environment. I would guess something similar existed in The Witness too, and maybe even Braid. An example of someone writing a terminal is Casey Muratori with Refterm, written in a few days. It’s not a fully featured terminal, since it was written as a performance reference, but it still has most of the functionality you need out of a terminal.
What about the awesome 77 Mio Microsoft Git Repo with 6 hours for a single checkout?
Can I stick a dumb terminal to the rs232 and talk to Windows?
No?
Then it doesn't _have_ terminal capability, does it.
Because that's the whole deal behind a "command prompt". That as long as you have a device that reads/writes characters, you can talk to the OS.
Idk, has Blow _seen_ the previous Windows Terminal?
Perhaps people are excited because for some reason it's not something that you are able to see very often on Windows.
Like he says, "why isn't this something that 50 people did last weekend?". That's exactly how it is on Linux, and therefore a new terminal app in that ecosystem isn't a huge event, or whatever he characterizes this reaction as.
Ok, but how many people and how much money goes into building a game like that?
Why? Try to do it yourself and find why!
Powershell is literally the piece of software I hate most in the world.
You should learn that just stating conclusions isn’t an argument. I am sure there are more complicated programs than this new one but I didn’t hear you articulate a single problem with this program. You made no points, just hand waving. You are an excellent developer and smart, show it!
Did you saw his games Braid and The Witness, and also his programming language demos? He showed everything need a long ago
Check out Refterm by his friend Casey Muratori, which is literally thousands of times faster than windows cmd.
The new Microsoft terminal is more reactive than Commander, at least.
I blame clean code and frameworks
I bet the coders who created the terminal are all Microsoft Certified or whatever crappy certification system theyve got now.
I mean... I can't even install windows terminal so I can't check it out (windows store literally installs it but then shows a greyed out install button and gives me no way to open it & I refuse to wait however long visual studio takes to load so I can build from source), but I've got to say blowes being somewhat unfair here.
Firstly... does he actually know what this is. He admits he hasn't seen the trailer, so there's that, but from how he's describing it, it sounds kinda like he thinks its a new shell or terminal emulator like bash (or fish) and wsltty respectively. That's not what windows terminal is (at the very least, its more than that). It's an application that lets you spawn shells, structure them (split vertically or horizontally) and bind commands to configure the creation of them. It's basically microsofts attempt at CMDer (an application blowe uses might I add). It's gotten a lot of press for some pretty stupid reasons, but that doesn't undermine the goal. I mean, Microsofts never really shown themselves to be very giving to the developer community; they gave us visual studio (because windows is a horrible development environment unless you spend months tweaking it) & they gave us WSL (probably because everything basically runs on linux and making people to develop in an environment so non-linux has major porting issues). So you can sort of understand the fanfare given to windows terminal; its so unecessary that it almost seems like a gift to developers. Then there's the fact its open source, earning it more praise (& its fare share of controversy... supports emojis LOL).
Secondly... as a long time lover of cmder, whats terrible about it. He calls it third party, so I assume he's talking about CMDer itself and not command prompt (which is built in to windows)... furthermore, you can get bash on windows. You could get it WAY before ubuntu on bash for windows with cygwin or msys2. For pete sake, CMDer comes with git bash for windows builtin and I could understand if blowe didn't like bash but in no world do I believe someone that uses command prompt has ever tried bash.
Thirdly. New doesn't always mean bad. Granted a lot of new stuff is really badly designed. A lot of people take the powerful hardware we have for granted and choose to write unoptomised code because its easy, but there's no guarantee windows terminal will be anything like that. In general, a lot of open source projects aren't. Because if they're bad... someone will just try to make them good. Anyone can improve it, thats what make FOSS SO GREAT!!!
Fourthly. As I'm sure blowe is aware. A shell is more than just 'text on a screen'. A terminal is basically text on a screen, but even then I doubt any slowness that one normally experiences is the fault of the terminal. I mean I type text on cygwin and I can immeadiately see what I've written. I can paste, 2/300 words and they appear pretty quickly (though not instantaneously mind you). I can run 'cat file.txt' where file is a really long file and all the text brushes past so fast I can't even react. If the output of a program like 'find' for example is slow, its probably because that program is slow (or trying to do something really time consuming (like recursively traversing large directories)) and not because the terminal can't keep up. Then you have to factor in a shell, a language and ecosystem existing atop a terminal. One which supports a myriad of features such as redirection, substitution and job control. I've got a pretty complicated startup bash script with I'd wager over a hundred subprocesses being spawned every new shell. Let me just add a timestamp printer to the start of my bash_profile and the end of my bashrc. It took on average of 1.5 seconds for me to spawn a new shell (even with forking being much slower on windows than linux). So startup time and response time are both reasonably fast for me.
I see your points, and I don't think you should take offense to any of the things said in this rant. I feel like the general theme underneath this rant has more to do with the fact that modern day software is usually written with unoptimized code. Unoptimized code is sadly now considered a decent baseline for features and newer devs will now just release unoptimized code to the user as a first pass. After programming my fair share of simple games, all I really want from a console/command prompt/terminal is the ability for my logs to be printed to the terminal relatively fast. If you consider that _most_ terminals have a line buffer of 1000 lines, printing large amounts of text to my terminal shouldn't be slow considering any new amount of text should be overriding older text. And 1000 lines is pretty small buffer, yet we still see modern software struggle with this amount of text. A good example of where you might see this conversation come up is w/ text editors. If you're bored, consider reading a blog or two about the load times of files in modern text editors. It's actually really sad that editors like Atom take a solid 3-6 seconds just open a file with maybe 500 lines. The state of software overall is frustrating and it seems that we are only moving father away from what a lot of ppl feel like is the right solution. Also, if u are kinda interested by the underlying ideas of this rant, give this video a watch - www.reddit.com/r/programming/comments/8iyqk9/the_thirty_million_line_problem/ -- offers a good highlevel overview
Is this something specifically bad with the Windows console? I've never felt like the console on Linux or Mac had problems like this.
The windows console is slow af. See the videos of Casey and the response of ms to that is "because backwards compat".