You mean a whole different window at the OS level?
Yes, that way I could switch between windows in a single shortcut, or even place them side by side so I can see both at the same time with other shortcuts.
That’s just a way inferior hack to the way vim does it by default.
Can you explain this more?
Why wouldn’t you want window management to be managed by the window manager?
I’m assuming for your example that only one tab is shown at a time?
In that case, you can do that in vscode, the only difference is the semantics of what is considered a “window”, and what is considered a “tab”.
To do this in vscode:
Have one window with four panes, and another window with three panes:
Window 1
┌──────────┬──────────┐
│ │ │
│ Pane 1 │ Pane 2 │
│ │ │
├──────────┼──────────┤
│ │ │
│ Pane 3 │ Pane 4 │
│ │ │
└──────────┴──────────┘
Window 2
┌──────────┬──────────┐
│ │ │
│ Pane 1 │ Pane 2 │
│ │ │
├──────────┴──────────┤
│ │
│ Pane 3 │
│ │
└─────────────────────┘
You can then switch between your windows (or “tabs” in your example) by keyboard shortcut.
In vscode, you can make the Panes different files, or even different views of the same file.
I like to say:
We have a half finished skyscraper, and you’re asking me to Just add a new basement between the second and third floor. Do you see how that might be difficult? If we want to do it, we have to tear down the entire building floor by floor, then build up again from the second floor. Are you prepared to spend the money and push back the release date for that new feature?
You can take the contents of a C file, put it into a C++ file and there’s an 80% chance it will work without modification, and 15% of the incompatibility will be just sticking a type on your pointer instead of using void pointers (untyped pointers), or in newer code switching the restrict keyword for one of C++'s newer pointers.
You can’t do that between JS and Java.
Space-f lets you open a file in the current workspace, and :open /path always let’s you open any file on the computer
Is this a file tree, or just a fuzzy finder?
Fuzzy finders aren’t a substitute for a file tree picker. They’re only great, until you don’t know the name of a file, or until you need to know of a file’s existence in the first place.
I remember being really interested in Helix when it came out, but it didn’t have a built-in file picker.
Is this still an issue for users? Is there a built-in solution, or a usermade solution to this?
Also, is there plugin support?
I can’t use an editor without rainbow indent/brackets, without them code just takes too long to read that it becomes frustrating.
Some small nits to fix:
C has it’s own undefined behavior.
JS has confusing behavior, not undefined behavior. Its specs are well defined and backwards compatible to a fault, making some things unintuitive and harder to learn if you don’t learn the history of the language.
Problems with both should be avoided by learning and using standard practices. (Don’t pretend C is object oriented, always use ===
instead of ==
in js, etc…)
In complete agreement:
you have to fix the indentation because if not then the document won’t work or mean something completely different
Whitespace has no meaning in json. You can indent however you want, or not at all.
I’m assuming you’re running into issues because you’re writing json in a yaml file which does care about indentation, and you’re only writing json in yaml to get access to comments.
In which case it circles back around to: why not use toml? Whitespace formatting doesn’t corrupt the file, and it has built in comments.
I think you’re forgetting about the Animation API.
Example: making something flash once to get a user’s attention
element.animate( {opacity: [1, 0, 1]}, { duration: 500 } );
Use CSS animations everywhere you can, but if you need to be able to hook into an animation (to dynamically change the speed, cancel something, sync animations together, etc…) you should be using the Animation API.
There’s never a need for jQuery.
I have yet to be given an example of something a “general” intelligence would be able to do that an LLM can’t do.
Presenting…
Something a general intelligence can do that an LLM can’t do:
Play chess: https://www.youtube.com/watch?v=kvTs_nbc8Eg
Why can’t it play it? Because LLM’s don’t have memory, so they can’t work with logic. They are the same as the little “next word predictor” in your phone’s keyboard. It just says what it thinks is the most probable next word based on previous words, it’s not actually thinking or understanding anything. So instead, we get moves that don’t make sense or are completely invalid.
It sounds like to me that you’ve taken your knowledge of your commonly used languages for granted, and assumed a new language would be just as easy. But if you watch a developer who is dipping their toe into that ecosystem for the first time you’ll find them making mistakes and running into footguns you didn’t know were possible.
Regardless of the language, not having a proper guide leaves devs susceptible to the incorrect blogospam that’s out there, where engagement is rewarded over correctness.
Ignore all of the blogospam.
The two things you need to know:
Here’s my shortened version of number 2.
The beginning:
The false start:
The resumption:
async
/await
/Promise()
syntax sugaring, to make asynchronous programming easier...
(rest/spread operator) syntax sugaring, to make destructuring and variadic functions easier??
Nullish coalescing operator syntax sugaring??=
/&&=
/||=
Logical assignment syntax sugaringThe current state of things
Language-wise
Runtime-wise
Standard workflow
Tooling wise
For your simple fibonacci example:
console.log()
and see result in browser’s console.Deno.serve()
and see result in network requests/responsesconsole.log()
and see result in terminalThis comment just seems weird no matter which angle I try to approach it from.
immature tooling ecosystem
It’s over a decade old now. I wouldn’t call that immature.
Looking at your linked comment…
following a basic tutorial somehow ended up spending multiple seconds just to transpile and run “Hello, World!”.
hello.ts
containing: console.log("hello world");
deno run hello.ts
(time taken to run command: 0.037s)[…] 3 different ways of specifying the files and settings you want to use […] 3 incompatible ways to define and use a “module”
Yes, that tends to happen as ecosystems evolve over time. Typescript allows developers to use modern standards-compliant modules, while maintaining backwards compatibility for older code.
embracing duck typing means […]
One of typescript’s strengths is that its type system isn’t all or nothing. Typescript will support duck typers, but it isn’t forced or limited to that. You can add as much or as little typing as you want. In theory, this means that the language supports simple beginners up to experts creating turing-complete theorem solvers at compile time. In practice, this means a much smoother onboarding and porting experience.
Have a “generalized fibonacci” module taking 3 inputs […]
I’m not sure if this is the basic problem challenge or the hello world example was. It seems a bit ambiguous as to what you really want, but it’s easy to create a module that takes inputs and produces outputs while running on backend servers, in browsers, and in CLIs.
I thought I loved ts-node, since it’s a good patch over some annoying issues in node.
But I retried deno a few months ago (after having first tried it when it first came out) and I realised that I only ever liked ts-node, and that I actually loved deno.
Deno just ran ts as if it was ts-node without needing a dependency, or startup time, or any prior setup, and it did it so fast I thought something was wrong. It was great.
I absolutely understand OOP, its explosion took over everything that took a long time to recover from.
The problem with OOP is that it’s pushed as a cure-all both by teachers who do not the problems it solves and also do not understand its own limitations.
In almost every situation where OOP makes sense, something else makes more sense to use.
Interesting…
Every IDE and editor (gui and tui) I’ve used has always come preconfigured with a tab-size of 4.
The only thing I’ve ever experienced having a tab-size of 8 was github, and I thought that was just a problem with a setting from github’s size that I quickly set back to 4.
It seems that tui editors come with tab-sizes of 8 only when a config isn’t provided, and every environment I’ve used where I’ve used a tui editor has always come with sensible configs (for things like config location, language recognition for syntax highlighting, etc…) including a tab-size of 4.
The horizontal tabulation character moves the cursor to the next column which is a multiple of the tabulation length. See the examples here: https://en.m.wikipedia.org/wiki/Tab_key
Yes
Clearly the whitespace produced by each tab character has a different length.
No, each tab has the same size, the text rendered over the top of the tabs are not the same size.
Always remember the golden rule: Tabs for indentation, spaces for alignment.
It’s intuitive until you realise that not everything fits in a single inheritance hierarchy.
This gives a good example: https://www.youtube.com/watch?v=wfMtDGfHWpA
Windows 95, 98, 2000, XP and 7 are generally regarded as having great UIs.
Of course, we know what happened later:
https://mastodon.social/@danluu/111802159638869338